news 2026/4/15 17:21:33

OpenCVSharp:HOG行人检测

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
OpenCVSharp:HOG行人检测

概述

HOG行人检测是一种基于方向梯度直方图特征的计算机视觉目标检测技术,它通过计算图像局部区域的梯度方向直方图来描述目标的外观形状特征。该算法首先将图像分割为小的连通区域(细胞单元),计算每个单元内像素的梯度方向并生成直方图,然后将相邻的细胞单元组合成块并对块内的直方图进行归一化处理,最终形成能够有效描述行人轮廓和形状的特征向量。这些特征向量被输入到预先训练好的SVM分类器中,判断图像区域是否包含行人,并通过多尺度扫描策略在不同大小的窗口中搜索目标,从而实现对图像中行人的准确检测和定位。

实践

/* by 01022.hk - online tools website : 01022.hk/zh/websocket.html */ // 读取图像 using var img = Cv2.ImRead(ImagePath, ImreadModes.Color); if (img.Empty()) { MessageBox.Show("无法读取图像文件", "错误", MessageBoxButton.OK, MessageBoxImage.Error); return; } // 创建HOG描述符 using var hog = new HOGDescriptor(); hog.SetSVMDetector(HOGDescriptor.GetDefaultPeopleDetector()); // 检查检测器大小 bool b = hog.CheckDetectorSize(); Console.WriteLine("CheckDetectorSize: {0}", b); // 运行人检测 // 使用默认参数运行检测器。要获得更高的命中率(以及更多的误报), // 降低hitThreshold和groupThreshold(将groupThreshold设置为0以完全关闭分组)。 OpenCvSharp.Rect[] found = hog.DetectMultiScale( img, HitThreshold, new Size(8, 8), new Size(24, 16), 1.05, GroupThreshold);

按照读取图像、创建HOG描述符、检测三个步骤来实现。

可以发现里面自带了一个行人检测器。

查看SetSVMDetector方法:

/* by 01022.hk - online tools website : 01022.hk/zh/websocket.html */ public virtual void SetSVMDetector(float[] svmDetector) { ThrowIfDisposed(); using var svmDetectorVec = new VectorOfFloat(svmDetector); NativeMethods.HandleException( NativeMethods.objdetect_HOGDescriptor_setSVMDetector(ptr, svmDetectorVec.CvPtr)); GC.KeepAlive(this); }

SetSVMDetector 是 HOGDescriptor 类中的一个关键方法,用于设置线性 SVM 分类器的系数,这些系数决定了 HOG 描述符如何识别特定对象。

然后也是使用DetectMultiScale这个方法进行目标检测,查看它的函数签名:

public virtual Rect[] DetectMultiScale(Mat img, double hitThreshold = 0, Size? winStride = null, Size? padding = null, double scale=1.05, int groupThreshold = 2)

DetectMultiScale 是 HOGDescriptor 类中最核心的方法之一,用于在图像中执行多尺度目标检测,特别适用于检测不同大小的目标对象。

参数名类型默认值含义说明调优建议
imgMat必需输入图像,支持 CV_8UC1(灰度图)和 CV_8UC4(彩色图)格式确保图像格式正确,必要时进行转换
hitThresholddouble0特征与 SVM 分类平面之间的距离阈值。值越低检测越敏感,值越高检测越严格误报多时增加此值,漏检时降低此值
winStrideSize?null窗口滑动步长,必须是块步长的倍数。控制检测窗口在图像上移动的步长较大值(如8x8)提高速度,较小值(如4x4)提高精度
paddingSize?null填充参数,为了保持 CPU 接口兼容性。必须为 (0,0)通常保持默认值即可
scaledouble1.05检测窗口的缩放系数,控制多尺度检测时窗口大小的变化率检测小目标时用接近1的值(1.01-1.03),速度优先时用较大值(1.1-1.2)
groupThresholdint2相似度阈值系数,用于合并重叠的检测框。值为0表示不执行分组同一对象被多矩形检测到时增加此值,不同对象被错误合并时降低此值

效果:

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/13 10:21:32

南京大学学位论文LaTeX模板:5分钟快速上手指南

还在为论文格式排版头疼吗?南京大学学位论文LaTeX模板(njuthesis)就是你的终极解决方案!这个专业模板能让你在5分钟内轻松搞定所有格式问题,把宝贵时间真正用在内容创作上。无论你是本科生、研究生还是博士后&#xff…

作者头像 李华
网站建设 2026/4/12 23:43:12

Chatgpt+飞书多维表格,让 AI 在表格里变成“超强业务员”!

咱们先聊一下Chatgpt大模型 —— 它是由OpenAI 推出的生成式 AI 工具,核心能力是理解自然语言、处理非结构化信息,能做文本创作、数据提炼、逻辑分析等工作,早已成为职场人处理文字和数据的帮手。但单独用这个大模型的时候,总会免…

作者头像 李华
网站建设 2026/4/14 6:26:21

基于YOLO13-C3k2-Star的阿塞拜疆传统服饰目标检测模型实现

1. 基于YOLO13-C3k2-Star的阿塞拜疆传统服饰目标检测模型实现 1.1. 项目背景 阿塞拜疆拥有丰富多彩的传统服饰文化,这些服饰不仅是日常穿着,更是国家历史和民族身份的重要象征。随着计算机视觉技术的发展,目标检测算法能够有效识别和分类这…

作者头像 李华
网站建设 2026/4/13 8:29:53

【详解】hydra工具安装与使用

目录 Hydra工具安装与使用 1. 安装Hydra 1.1 系统要求 1.2 安装依赖 1.3 下载Hydra源码 1.4 编译和安装 1.5 验证安装 2. 使用Hydra 2.1 基本用法 2.2 常用选项 2.3 示例 2.3.1 SSH暴力破解 2.3.2 HTTP表单暴力破解 3. 注意事项 安装 Hydra 使用 Hydra 的基本示…

作者头像 李华
网站建设 2026/4/13 12:48:26

入行科普|FPGA 设计岗位对专业能力有哪些要求?

近年来,随着国产算力、自主可控和专用硬件需求持续增长,FPGA 从“边缘岗位”逐渐走向主流应用场景。无论是在通信、数据中心、AI 加速,还是工业控制、国防军工领域,FPGA 工程师的需求都在快速释放。 那么,FPGA 设计岗位…

作者头像 李华