Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >基于米尔全志T527开发板的OpenCV行人检测方案

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

原创
作者头像
用户10591265
发布于 2025-04-11 10:23:23
发布于 2025-04-11 10:23:23
9200
代码可运行
举报
文章被收录于专栏:米尔电子米尔电子
运行总次数:0
代码可运行

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

摘自优秀创作者-小火苗


一、软件环境安装

1.在全志T527开发板安装OpenCV

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install libopencv-dev python3-opencv

2.在全志T527开发板安装pip

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
sudo apt-get install python3-pip

二、行人检测概论

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

  • 准备训练数据集:训练数据集应包含大量正样本(行人图像)和负样本(非行人图像)。
  • 计算HOG特征:对于每个图像,计算HOG特征。HOG特征是一个一维向量,其中每个元素表示图像中特定位置和方向的梯度强度。
  • 训练SVM分类器:使用HOG特征作为输入,训练SVM分类器。SVM分类器将学习区分行人和非行人。
  • 评估模型:使用测试数据集评估训练后的模型。计算模型的准确率、召回率和F1分数等指标。

三、代码实现

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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()

四、实际操作

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
和sar比起来,其他Linux命令都是猹
我决定把今年装x的机会,留给sar命令。它是一个Linux下的监控工具,一直站在鄙视链的顶端。之所以让人望而生畏,主要是由于它繁多的参数。但,这么强大的命令,并非无章可循,实际上是非常简单的。
xjjdog
2021/01/25
1.2K0
Linux启动时间优化-内核和用户空间启动优化实践
从内核timestamp 0.000000作为内核启动起点,到free_initmem()输出"Freeing init memory"作为内核启动的终点。
233333
2023/07/09
1.1K0
Linux启动时间优化-内核和用户空间启动优化实践
Linux GNU C 和 ANSI C 的区别
Linux 上可用的 C 编译器是 GNU C 编译器,它建立在自由软件基金会的编程许可证的基础上,因此可以自由发布。GNU C对标准C进行一系列扩展,以增强标准C的功能。
Jasonangel
2021/07/07
5.6K0
linux sar 命令
sar命令全称 System Activity Report,它非常全能,可以分析linux系统各个维度的指标。包括:
用户5807183
2019/09/25
3.6K0
linux  sar 命令
关于Linux性能调优中系统CPU监测信息统计的一些笔记
人总是害怕去追求自己最重要的梦想,因为他们觉得自己不配拥有,或者觉得自己没有能力去完成。——保罗.柯艾略《牧羊少年奇幻之旅》
山河已无恙
2023/03/02
9220
关于Linux性能调优中系统CPU监测信息统计的一些笔记
Linux | 负载均衡理解之调度了解
每个处理器各自设置一个调度队列,从而可能出现有的处理器的就绪队列进程很多而另一个处理器上的就绪队列任务很少的现象。
heidsoft
2023/03/18
4850
Linux | 负载均衡理解之调度了解
sched.h (版本4.16.7全部内容)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
全栈程序员站长
2022/11/03
4030
操作系统与存储:解析Linux内核全新异步IO引擎io_uring设计与实现
作者:draculaqian,腾讯后台开发工程师 引言 存储场景中,我们对性能的要求非常高。在存储引擎底层的IO技术选型时,可能会有如下讨论关于IO的讨论。 http://davmac.org/davpage/linux/async-io.html So from the above documentation, it seems that Linux doesn't have a true async file I/O that is not blocking (AIO, Epoll or POS
腾讯技术工程官方号
2021/02/22
2.7K0
深入理解Linux电源管理
程磊,某手机大厂系统开发工程师,阅码场荣誉总编辑,最大的爱好是钻研Linux内核基本原理。
Linux阅码场
2022/09/28
7.1K0
深入理解Linux电源管理
SAR系统性能检测工具
/**  * sar man手册简译, 欢迎大家补充、指正  * Author: cnscn  * Time  : 2006-10-17 09:10  *  */ sar ---  收集、报告或保存系统活动信息 Collect, report, or save system activity information Options: -A    列出保存的当天的所有活动的文件内容, 等同于-bBcdqrRuvwWy -I SUM -n FULL -P ALL -b    报告I/O和传送速率统计。
一见
2019/03/14
1.2K0
Linux kernel中常见的宏整理
替换列表和标识符列表都是将字符串 token 化以后的列表。区别在于标识符列表使用,作为不同参数之间的分割符。每一个参数都是一个 token 化的列表。在宏中空白符只起到分割 token 的作用,空白符的多少对于预处理器是没有意义的。
233333
2019/12/20
1.8K0
grafana展示的CPU利用率与实际不符的问题探究
最近看了一个虚机的CPU使用情况,使用mpstat -P ALL命令查看系统的CPU情况(该系统只有一个CPU core),发现该CPU的%usr长期维持在70%左右,且%sys也长期维持在20%左右:
charlieroro
2023/02/25
1.3K0
grafana展示的CPU利用率与实际不符的问题探究
Linux | 块设备了解之三层结构
块设备是文件系统的底层支撑,完成数据的存储和访问。块设备也能脱离文件系统以螺设备的形式工作。
heidsoft
2023/03/18
1.5K0
Linux | 块设备了解之三层结构
谈谈 Linux 文件系统
最近在看一本 Linux 环境编程的书,加上之前工作中接触了一些关于存储的东西,便突然有兴趣整理一下 Linux 是怎么支撑文件系统的。
CS实验室
2021/07/14
4.8K0
谈谈 Linux 文件系统
Linux kernel中常见的宏整理
替换列表和标识符列表都是将字符串 token 化以后的列表。区别在于标识符列表使用,作为不同参数之间的分割符。每一个参数都是一个 token 化的列表。在宏中空白符只起到分割 token 的作用,空白符的多少对于预处理器是没有意义的。
网e渗透安全部
2019/12/18
2.1K0
Linux中断 - IDT
中断描述符表简单来说说是定义了发生中断/异常时,CPU按这张表中定义的行为来处理对应的中断/异常。
扫帚的影子
2020/02/18
7K0
Linux中断 - IDT
UDP协议源码解析之接收
调用读取数据的函数前,我们要先调用bind绑定socket对应的地址信息,因为系统是根据地址和端口去查找一个socket的。由代码可以知道,入口没有什么逻辑,主要逻辑在udp层的实现代码中。代码的实现比较简单,就是从socket的接收队列中摘下数据。
theanarkh
2019/03/06
1.2K0
[转] Linux Asynchronous I/O Explained
Linux Asynchronous I/O Explained (Last updated: 13 Apr 2012) ******************************************************************************* by Vasily Tarasov <tarasov AT vasily dot name> Asynchronoes I/O (AIO) is a method for performing I/O oper
西湖醋鱼
2020/12/30
3.8K0
How to view past performance with sar in Linux
There are many tools/utilities that can be used to analyze the current system performance. But how d
heidsoft
2019/12/18
1.5K0
Linux 监控之 IO
块是文件系统的抽象,而非磁盘的属性,一般是 Sector Size 的倍数;扇区大小则是磁盘的物理属性,它是磁盘设备寻址的最小单元。另外,内核中要求 Block_Size = Sector_Size * (2的n次方),且 Block_Size <= 内存的 Page_Size (页大小)。
sunsky
2020/08/20
3.9K0
Linux 监控之 IO
相关推荐
和sar比起来,其他Linux命令都是猹
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
本文部分代码块支持一键运行,欢迎体验
本文部分代码块支持一键运行,欢迎体验