0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

OpenCV预训练SVM行人HOG特征分类器实现多尺度行人检测

OpenCV学堂 来源:OpenCV学堂 作者:OpenCV学堂 2022-07-05 11:02 次阅读

HOG概述

HOG(Histogram of Oriented Gradient)特征在对象检测与模式匹配中是一种常见的特征提取算法,是基于本地像素块进行特征直方图提取的一种算法,对象局部的变形与光照影响有很好的稳定性,最初是用HOG特征来来识别人像,通过HOG特征提取+SVM训练,可以得到很好的效果,OpenCV已经有了。HOG特征提取的大致流程如下:

2a4ac09a-fba0-11ec-ba43-dac502259ad0.png

305524ee-fba0-11ec-ba43-dac502259ad0.jpg

详细解读

第一步:灰度化
对HOG特征提取来说第一步是对输入的彩色图像转换为灰度图像,图像灰度化的方法有很多,不同灰度化方法之间有一些微小的差异,从彩色到灰度的图像转换可以表示如下:

337b1dae-fba0-11ec-ba43-dac502259ad0.jpg

第二步:计算图像梯度
计算图像的X方向梯度dx与Y方向梯度dy,根据梯度计算mag与角度,计算梯度时候可以先高斯模糊一下(可选步骤),然后使用sobel或者其它一阶导数算子计算梯度值dx、dy、mag、angle:

3396b56e-fba0-11ec-ba43-dac502259ad0.png

第三步:Cell分割与Block
对于图像来说,分成8x8像素块,每个块称为一个Cell,每个2x2大小的Cell称为一个Block,每个Cell根据角度与权重建立直方图,每20度为一个BIN,每个Cell得到9个值、每个Block得到36个值(4x9), 图像如下:

33b8ee9a-fba0-11ec-ba43-dac502259ad0.jpg

每个Block为单位进行L2数据归一化,作用是抵消光照/迁移影响,L2的归一化的公式如下:

36c50be6-fba0-11ec-ba43-dac502259ad0.png

第四步:生成描述子
对于窗口64x128范围大小的像素块,可以得到8x16个Cell, 使用Block在窗口移动,得到输出的向量总数为7x15x36=3780特征向量,每次Block移动步长是八个像素单位,一个Cell大小。

39da79b0-fba0-11ec-ba43-dac502259ad0.jpg

使用HOG特征数据

HOG特征本身是不支持旋转不变性与多尺度检测的,但是通过构建高斯金字塔实现多尺度的开窗检测就会得到不同分辨率的多尺度检测支持。OpenCV中HOG多尺度对象检测API如下:

virtualvoidcv::detectMultiScale(
InputArrayimg,
std::vector< Rect >&foundLocations,
doublehitThreshold=0,
SizewinStride=Size(),
Sizepadding=Size(),
doublescale=1.05,
doublefinalThreshold=2.0,
booluseMeanshiftGrouping=false
)
Img-表示输入图像
foundLocations-表示发现对象矩形框
hitThreshold-表示SVM距离度量,默认0表示,表示特征与SVM分类超平面之间
winStride-表示窗口步长
padding-表示填充
scale-表示尺度空间
finalThreshold-最终阈值,默认为2.0
useMeanshiftGrouping-不建议使用,速度太慢拉

使用OpenCV预训练SVM行人HOG特征分类器实现多尺度行人检测的代码如下:

importcv2ascv

if__name__=='__main__':
src=cv.imread("D:/images/pedestrian.png")
cv.imshow("input",src)
hog=cv.HOGDescriptor()
hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())
#Detectpeopleintheimage
(rects,weights)=hog.detectMultiScale(src,
winStride=(4,4),
padding=(8,8),
scale=1.25,
useMeanshiftGrouping=False)
for(x,y,w,h)inrects:
cv.rectangle(src,(x,y),(x+w,y+h),(0,255,0),2)

cv.imshow("hog-detector",src)
cv.waitKey(0)
cv.destroyAllWindows()

原文标题:HOG特征详解与行人检测

文章出处:【微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

审核编辑:彭静

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 分类器
    +关注

    关注

    0

    文章

    152

    浏览量

    13162
  • OpenCV
    +关注

    关注

    29

    文章

    623

    浏览量

    41202
  • HOG特征
    +关注

    关注

    0

    文章

    2

    浏览量

    909

原文标题:HOG特征详解与行人检测

文章出处:【微信号:CVSCHOOL,微信公众号:OpenCV学堂】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    中伟视界:矿山智能化——实时检测识别井下行人车辆,人工智能赋能高风险作业安全

    行车不行人检测AI分析算法通过利用人工智能和深度学习技术,对井下行人和车辆的行驶情况进行实时检测和识别,应用于矿山等高风险作业环境中。该算法具有高准确性、实时性、鲁棒性和可扩展性等特点
    的头像 发表于 07-16 19:37 411次阅读
    中伟视界:矿山智能化——实时<b class='flag-5'>检测</b>识别井下<b class='flag-5'>行人</b>车辆,人工智能赋能高风险作业安全

    opencv图像识别有什么算法

    图像识别算法: 边缘检测 :边缘检测是图像识别中的基本步骤之一,用于识别图像中的边缘。常见的边缘检测算法有Canny边缘检测器、Sobel边缘检测器
    的头像 发表于 07-16 10:40 687次阅读

    opencv的主要功能有哪些

    OpenCV提供了丰富的图像处理功能,包括图像的读取、显示、保存、转换等。此外,OpenCV还支持图像的滤波、边缘检测、形态学操作、图像金字塔等高级图像处理技术。 特征
    的头像 发表于 07-16 10:35 1202次阅读

    训练和迁移学习的区别和联系

    训练和迁移学习是深度学习和机器学习领域中的两个重要概念,它们在提高模型性能、减少训练时间和降低对数据量的需求方面发挥着关键作用。本文将从定义、原理、应用、区别和联系等方面详细探讨
    的头像 发表于 07-11 10:12 653次阅读

    大语言模型的训练

    能力,逐渐成为NLP领域的研究热点。大语言模型的训练是这一技术发展的关键步骤,它通过在海量无标签数据上进行训练,使模型学习到语言的通用知识,为后续的任务微调奠定基础。本文将深入探讨大语言模型
    的头像 发表于 07-11 10:11 349次阅读

    训练模型的基本原理和应用

    训练模型(Pre-trained Model)是深度学习和机器学习领域中的一个重要概念,尤其是在自然语言处理(NLP)和计算机视觉(CV)等领域中得到了广泛应用。训练模型指的是在大
    的头像 发表于 07-03 18:20 1979次阅读

    人脸检测模型有哪些

    : Viola-Jones 算法 Viola-Jones 算法是一种基于 Haar 特征和 AdaBoost 算法的人脸检测方法。它通过训练一个级联分类
    的头像 发表于 07-03 17:05 851次阅读

    ESP32-S3运行人检测功耗有多大呢?

    ESP32-S3运行人检测,功耗有多大?
    发表于 06-26 06:32

    【大语言模型:原理与工程实践】大语言模型的训练

    大语言模型的核心特点在于其庞大的参数量,这赋予了模型强大的学习容量,使其无需依赖微调即可适应各种下游任务,而更倾向于培养通用的处理能力。然而,随着学习容量的增加,对训练数据的需求也相应
    发表于 05-07 17:10

    不同种植设施背景蔬菜作物无人机高光谱精细分类2.0

    4、结果分析 4.3 不同分类方法比较与分析 4.3.1基于SVM方法的分类结果比较 在不同SVM分类方法中,由于其所采用的
    的头像 发表于 03-21 11:19 407次阅读

    EPSON XV4001BC陀螺仪传感汽车导航系统的应用

    近年来为了提高汽车应用系统的可靠性,传感融合系统被越来越多的应用到汽车领域,如汽车导航系统中的行人检测碰撞警告等,通过提供精准的导航信息,为驾驶员提供更安全,更稳定,更舒适的出行
    发表于 03-19 10:59 0次下载

    这些“黑话”只有PCB设计制造内行人才懂

    【干货分享】这些“黑话”只有PCB设计制造内行人才懂!
    的头像 发表于 12-15 10:10 582次阅读
    这些“黑话”只有PCB设计制造内<b class='flag-5'>行人</b>才懂

    一种通过视图合成增强训练的2D扩散模型的可扩展技术

    现有的3D物体检测方法通常需要使用完全注释的数据进行训练,而使用训练的语义特征可以带来一些优势。
    的头像 发表于 12-14 10:00 394次阅读
    一种通过视图合成增强<b class='flag-5'>预</b><b class='flag-5'>训练</b>的2D扩散模型的可扩展技术

    大模型+模态的3种实现方法

    我们知道,训练LLM已经取得了诸多惊人的成就, 然而其明显的劣势是不支持其他模态(包括图像、语音、视频模态)的输入和输出,那么如何在训练LLM的基础上引入跨模态的信息,让其变得更强
    的头像 发表于 12-13 13:55 1571次阅读
    大模型+<b class='flag-5'>多</b>模态的3种<b class='flag-5'>实现</b>方法

    基于LiDAR的行人重识别的研究分析

    基于激光雷达(LiDAR)的行人重识别。我们利用低成本的LiDAR设备解决了人员再识别中的挑战,构建了名为LReID的LiDAR数据集,并提出了一种名为ReID3D的LiDAR-based ReID框架。
    发表于 12-11 10:41 629次阅读
    基于LiDAR的<b class='flag-5'>行人</b>重识别的研究分析