OpenCV行人检测应用方案--基于米尔全志T527开发板

描述

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

摘自优秀创作者-小火苗

 

米尔电子

 


 

一、软件环境安装

 

1.安装OpenCV

 

  •  

sudo apt-get install libopencv-dev python3-opencv

 

米尔电子


 

2.安装pip

 

  •  

sudo apt-get install python3-pip

 

米尔电子


 

二、行人检测概论

 

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

 

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

 

 

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

 

 

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

 

 

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


 

 

三、代码实现

 

import cv2import timedef 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()

 

四、实际操作

米尔电子

米尔电子

 

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分