OpenCV行人检测应用方案--基于米尔全志T527开发板
2025-04-10
1328
来源:米尔电子
摘自优秀创作者-小火苗

一、软件环境安装
1.安装OpenCV
sudo apt-get install libopencv-dev python3-opencv

2.安装pip
sudo apt-get install python3-pip

二、行人检测概论
准备训练数据集:训练数据集应包含大量正样本(行人图像)和负样本(非行人图像)。
计算HOG特征:对于每个图像,计算HOG特征。HOG特征是一个一维向量,其中每个元素表示图像中特定位置和方向的梯度强度。
训练SVM分类器:使用HOG特征作为输入,训练SVM分类器。SVM分类器将学习区分行人和非行人。
评估模型:使用测试数据集评估训练后的模型。计算模型的准确率、召回率和F1分数等指标。
三、代码实现
import cv2
import time
def detect(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) in rects:
cv2.rectangle(imagex, (x, y), (x + w, y + h), (0, 0, 255), 2)
print("sacle size:",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()四、实际操作


更多资讯
引入STM32MP135F安全芯!米尔MYD-YF13X系统、安全、功能三重升级
米尔RK3506 DSMC实战,Local Bus高速互联
OpenClaw秒级上线!JishuShell适配米尔RK3576开发板
米尔RK3576 + ROS2 进阶:NPU加速MixFormerV2目标跟随与机械臂抓取实战
智造新方向 · 国产芯未来,米尔即将亮相新唐2026研讨会
当6 TOPS不再是极限:RK3576+Hailo-8,让高帧率摄像头真正“实时”
新品!从MINI到工业板:米尔T153开发板工业场景全覆盖
新品!瑞萨RZ/T2H驱控一体单芯、多轴实时控制,助力工业以太网
RK3576 + ROS2 SLAM建图与导航实战
米尔亮相德国嵌入式展2026 Embedded World