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

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.xdnf.cn/news/14805.html

相关文章:

  • KVM高级功能部署
  • Go应用容器化完全指南:构建最小化安全镜像的终极实践
  • 【MySQL\Oracle\PostgreSQL】迁移到openGauss数据出现的问题解决方案
  • Python入门Day2
  • Python字符与ASCII转换方法
  • Qt 事件
  • Python从入门到精通——第一章 Python简介
  • 从 TCP/IP 协议栈角度深入分析网络文件系统 (NFS)
  • join性能问题,distinct和group by性能,备库自增主键问题
  • 孪生素数猜想 - 张益唐的核心贡献和陶哲轩的改进
  • vue-37(模拟依赖项进行隔离测试)
  • 互联网大厂Java面试实录:Spring Boot与微服务在电商场景中的应用
  • 经典灰狼算法+编码器+双向长短期记忆神经网络,GWO-Transformer-BiLSTM多变量回归预测,作者:机器学习之心!
  • List中的对象进行排序处理
  • Go基础(Gin)
  • Python 机器学习核心入门与实战进阶 Day 1 - 分类 vs 回归
  • 扣子空间PPT生产力升级:AI智能生成与多模态创作新时代
  • 【Linux仓库】进程优先级及进程调度【进程·肆】
  • Linux之Socket编程Tcp
  • Spring Cloud(微服务部署与监控)
  • Superman
  • Rust Web 全栈开发(一):构建 TCP Server
  • 新版本没有docker-desktop-data分发 | docker desktop 镜像迁移
  • MYSQL基础内容
  • Django 安装使用教程
  • OpenHarmony 5.0监听导航栏和状态栏是否显示
  • OpenCV CUDA模块设备层-----高效地计算两个uint 类型值的平均值函数vavg2()
  • android核心技术摘要
  • gin框架 中间件 是在判断路由存在前执行还是存在后执行的研究
  • 机器学习:集成学习方法之随机森林(Random Forest)