2025-4-11 17:58
16 次阅读|
0 个评论
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志T527开发板)的OpenCV行人检测方案测试。 摘自优秀创作者-小火苗 一、软件环境安装 1.在全志T527开发板安装OpenCV sudo apt- get install libopencv-dev python3-opencv 2. 在全志T527开发板 安装pip sudo apt- get install python3-pip 二、行人检测概论 使用HOG和SVM基于全志T527开发板构建行人检测器的关键步骤包括: 准备训练数据集 :训练数据集应包含大量正样本(行人图像)和负样本(非行人图像)。 计算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 () 四、实际操作