Python+OpenCV+HOG+SVM+行人检测
时间: 2023-09-08 21:10:24 浏览: 121
OPENCV行人检测HOG+SVM检测视频中是否有人.zip
5星 · 资源好评率100%
Python OpenCV HOG SVM 行人检测是一种利用计算机视觉技术检测图像中是否存在行人的方法。该方法基于HOG(方向梯度直方图)特征和支持向量机(SVM)分类器。
具体实现步骤如下:
1. 收集训练数据:收集带有行人和不带行人的图像样本。
2. 生成HOG特征:使用OpenCV中的HOGDescriptor类来计算图像的HOG特征。
3. 训练SVM分类器:使用OpenCV中的svm类训练SVM分类器,用于分类图像中的行人和非行人。
4. 行人检测:利用训练好的分类器对新图像进行行人检测,可以使用OpenCV中的detectMultiScale函数实现。
代码示例:
```python
import cv2
# 创建HOGDescriptor对象
hog = cv2.HOGDescriptor()
# 设置SVM分类器
hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())
# 读取测试图像
img = cv2.imread('test.jpg')
# 行人检测
rects, weights = hog.detectMultiScale(img, winStride=(8,8), padding=(32,32), scale=1.05)
# 绘制检测结果
for (x, y, w, h) in rects:
cv2.rectangle(img, (x, y), (x + w, y + h), (0, 0, 255), 2)
# 显示结果
cv2.imshow('pedestrian detection', img)
cv2.waitKey(0)
cv2.destroyAllWindows()
```
在上述代码中,我们首先创建了一个HOGDescriptor对象,并设置了SVM分类器为默认的行人检测器。然后读取测试图像,并利用detectMultiScale函数进行行人检测,最后绘制检测结果并显示。
阅读全文