广告

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

2025-04-14 阅读:
本文将介绍基于米尔电子MYD-LT527开发板(米尔基于全志 T527开发板)的OpenCV行人检测方案测试。摘自优秀创作者-小火苗

 

IpLednc

米尔基于全志T527核心板及开发板

一、米尔基于全志T527开发板,软件环境安装

1.安装OpenCVIpLednc

sudo apt-get install libopencv-dev python3-opencvIpLednc

IpLednc

2.安装pipIpLednc

sudo apt-get install python3-pipIpLednc

IpLednc

二、行人检测概论

米尔基于全志T527开发板,使用HOG和SVM构建行人检测器的关键步骤包括:IpLednc

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

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

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

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

三、代码实现

import cv2IpLednc

import timeIpLednc

def detect(image,scale):IpLednc

    imagex=image.copy()   #函数内部做个副本,让每个函数运行在不同的图像上        IpLednc

    hog = cv2.HOGDescriptor()   #初始化方向梯度直方图描述子IpLednc

    #设置SVM为一个预先训练好的行人检测器IpLednc

    hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector())  IpLednc

    #调用函数detectMultiScale,检测行人对应的边框IpLednc

    time_start = time.time()     #记录开始时间IpLednc

    #获取(行人对应的矩形框、对应的权重)IpLednc

    (rects, weights) = hog.detectMultiScale(imagex,scale=scale)    IpLednc

    time_end = time.time()    #记录结束时间IpLednc

    # 绘制每一个矩形框IpLednc

    for (x, y, w, h) in rects:  IpLednc

        cv2.rectangle(imagex, (x, y), (x + w, y + h), (0, 0, 255), 2)IpLednc

    print("sacle size:",scale,",time:",time_end-time_start)IpLednc

    name=str(scale) IpLednc

    cv2.imshow(name, imagex)     #显示原始效果IpLednc

image = cv2.imread("back.jpg") IpLednc

detect(image,1.01)IpLednc

detect(image,1.05)IpLednc

detect(image,1.3)IpLednc

cv2.waitKey(0)IpLednc

cv2.destroyAllWindows()IpLednc

四、实际操作

米尔基于全志T527开发板,行人识别的实际操作。IpLednc

IpLednc

IpLednc

责编:Demi
文章来源及版权属于,EDN电子技术设计仅作转载分享,对文中陈述、观点判断保持中立,不对所包含内容的准确性、可靠性或完整性提供任何明示或暗示的保证。如有疑问,请联系Demi.xia@aspencore.com
  • 微信扫一扫
    一键转发
  • 最前沿的电子设计资讯
    请关注“电子技术设计微信公众号”
广告
广告
热门推荐
广告
广告
EE直播间
在线研讨会
广告
面包芯语
广告
向右滑动:上一篇 向左滑动:下一篇 我知道了