Opencv:HOG特征与行人检测Python实现
一、内容
HOG特征与行人检测
HOG(Histogram of Oriented Gradient)特征在对象识别与模式匹配中是一种常见的特征提取算法,是基于本地像素块进行特征直方图提取的一种算法,对象局部的变形与光照影响有很好的稳定性,最初是用HOG特征来来识别人像,通过HOG特征提取+SVM训练,可以得到很好的效果。
HOG特征提取的大致流程:
在这里插入图片描述
二、代码
import cv2 as cv
# 主程序入口
if __name__ == '__main__':
# 读取图像
src = cv.imread("D:/vsprojects/images/pedestrian.png")
cv.imshow("input", src)
# HOG + SVM
hog = cv.HOGDescriptor()
hog.setSVMDetector(cv.HOGDescriptor_getDefaultPeopleDetector())
# Detect people in the image
(rects, weights) = hog.detectMultiScale(src,
winStride=(4, 4),
padding=(8, 8),
scale=1.25,
useMeanshiftGrouping=False)
# 矩形框
for (x, y, w, h) in rects:
cv.rectangle(src, (x, y), (x + w, y + h), (0, 255, 0), 2)
# 显示
cv.imshow("hog-detector", src)
cv.waitKey(0)
cv.destroyAllWindows()
三、结果
1.原图
2.结果