当前位置: 首页 > news >正文

OpenCV中DPM(Deformable Part Model)目标检测类cv::dpm::DPMDetector

  • 操作系统:ubuntu22.04
  • OpenCV版本:OpenCV4.9
  • IDE:Visual Studio Code
  • 编程语言:C++11

算法描述

OpenCV 中用于基于可变形部件模型(DPM) 的目标检测器,主要用于行人、人脸等目标的检测。它是一种传统的基于特征的目标检测方法,不依赖深度学习,而是使用 HOG 特征 + 部件模型来进行检测。

示例代码

#include <iostream>
#include <opencv2/dpm.hpp>
#include <opencv2/opencv.hpp>using namespace cv;
using namespace cv::dpm;
using namespace std;int main()
{// 指定模型文件路径(支持多个类别)vector< String > modelPaths = { "car.xml" };  // 可添加多个如 "car.xml"vector< String > classNames = { "car" };      // 类别名称// 创建 DPM 检测器Ptr< DPMDetector > detector = DPMDetector::create( modelPaths, classNames );if ( detector.empty() ){cerr << "Failed to create DPMDetector!" << endl;return -1;}// 读取图像Mat image = imread( "/media/dingxin/data/study/OpenCV/sources/images/cars.png" );if ( image.empty() ){cerr << "Failed to load image!" << endl;return -1;}imshow( "Original", image );// 执行检测vector< DPMDetector::ObjectDetection > detections;detector->detect( image, detections );// 显示检测结果for ( const auto& det : detections ){if(det.score > 1.0)rectangle( image, det.rect, Scalar( 0, 255, 0 ), 2 );cout << "Detected object with score: " << det.score << endl;}imshow( "Detections", image );waitKey();return 0;
}

运行结果

在这里插入图片描述

模型文件获取

你需要下载 .xml 格式的 DPM 模型文件才能运行检测。

官方支持的模型包括:

类别文件名
行人(Pedestrian)
轿车(Car)car.xml
自行车(Bicycle)bicycle.xml

你可以从 OpenCV 的额外测试数据仓库获取这些模型:

🔗 OpenCV Extra GitHub - dpm 测试数据

http://www.lryc.cn/news/579952.html

相关文章:

  • 前端基础知识Webpack系列 - 03(webpack中常见的Loader?解决了什么问题?)
  • STM32CubeMX教程1 实现点灯点灯
  • 量化开发(系列第3篇): C++在高性能量化交易中的核心应用与技术栈深度解析
  • 三态逻辑详解:单片机GPIO、计算机总线系统举例
  • 【python实用小脚本-128】基于 Python 的 Hacker News 爬虫工具:自动化抓取新闻数据
  • RK-Android11-性能优化-限制App内存上限默认512m
  • 基于Hadoop的公共自行车数据分布式存储和计算平台的设计与实现
  • 如何调节笔记本电脑亮度?其实有很多种方式可以调整亮度
  • Mysql+neo4j创建节点和关系
  • [环境安装] 图数据库Neo4j 2025.05 安装(apple M芯片)
  • XILINX Kintex 7系列FPGA的全局时钟缓冲器(BUFG)和区域时钟缓冲器(BUFR/BUFH)的区别
  • EPLAN 电气制图:建立自己的部件库,添加部件-加SQL Server安装教程(三)上
  • HarmonyOS学习记录3
  • 2025微信小程序wxapkg解包全攻略
  • 怎么下载Eclipse CDT历史版本
  • 深度剖析:如何解决Node.js中mysqld_stmt_execute参数错误
  • 【Maven】Maven命令大全手册:28个核心指令使用场景
  • 教资报名手机裁剪照片工具推荐 | 教师资格证照片在线生成器
  • 技术与情感交织的一生 (九)
  • 微信小程序51~60
  • BTC.D三阶段发展解析:从铭文生态到超级比特币公链
  • [Linux]内核如何对信号进行捕捉
  • 生成式AI版权迷局中的技术破茧之路
  • 7月4日星期五今日早报简报微语报早读
  • 面试150 赎金信
  • Winscope在aosp 13/14/15版本的使用总结
  • uni-app实现单选,多选也能搜索,勾选,选择,回显
  • uniapp 微信小程序水印
  • Vue中对象赋值问题:对象引用被保留,仅部分属性被覆盖
  • Stable Diffusion Web 环境搭建