OpenCV行人检测应用方案-

2025-04-10

本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV行人检测方案测试。

摘自优秀创作者-小火苗

OpenCV行人检测应用方案- (https://ic.work/) 技术资料 第1张



一、软件环境安装

1.安装OpenCV

sudo apt-get install libopencv-dev python3-opencv

OpenCV行人检测应用方案- (https://ic.work/) 技术资料 第2张


2.安装pip

sudo apt-get install python3-pip

OpenCV行人检测应用方案- (https://ic.work/) 技术资料 第3张


二、行人检测概论

使用HOG和SVM构建行人检测器的关键步骤包括:

准备训练数据集:训练数据集应包含大量正样本(行人图像)和负样本(非行人图像)。

计算HOG特征:对于每个图像,计算HOG特征。HOG特征是一个一维向量,其中每个元素表示图像中特定位置和方向的梯度强度。

训练SVM分类器:使用HOG特征作为输入,训练SVM分类器。SVM分类器将学习区分行人和非行人。

评估模型:使用测试数据集评估训练后的模型。计算模型的准确率、召回率和F1分数等指标。


三、代码实现

import cv2import timedefdetect(image,scale): imagex=image.copy() #函数内部做个副本,让每个函数运行在不同的图像上hog=cv2.HOGDescriptor() #初始化方向梯度直方图描述子 #设置SVM为一个预先训练好的行人检测器hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) #调用函数detectMultiScale,检测行人对应的边框time_start=time.time() #记录开始时间 #获取(行人对应的矩形框、对应的权重)(rects,weights)=hog.detectMultiScale(imagex,scale=scale) time_end=time.time() #记录结束时间 #绘制每一个矩形框for(x,y,w,h)inrects: cv2.rectangle(imagex,(x,y),(x+w,y+h),(0,0,255),2)print("saclesize:",scale,",time:",time_end-time_start)name=str(scale)cv2.imshow(name,imagex) #显示原始效果image=cv2.imread("back.jpg")detect(image,1.01)detect(image,1.05)detect(image,1.3)cv2.waitKey(0)cv2.destroyAllWindows()


四、实际操作

OpenCV行人检测应用方案- (https://ic.work/) 技术资料 第4张

OpenCV行人检测应用方案- (https://ic.work/) 技术资料 第5张

文章推荐

下一篇

相关推荐