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

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

算法描述

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

示例代码

#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 测试数据

posted @ 2025-07-31 17:19  yjbjingcha  阅读(17)  评论(0)    收藏  举报