无人机上仅使用CPU实时运行Yolov5(OpenVINO实现)(下篇)

news2024/11/24 17:35:25

​上期中我们讲了Yolov5的前两节环境配置及简单运行,在本期中我们带来后面两节在不同处理器下的实验数据及如何训练自己的模型。​

三、在不同处理器上的延迟与效果

为了查看Yolov5在不同设备上的延迟与效果,下面我们对Inter的i3、i5、i7三种处理器在同样的环境下做了实验

1、 Intel® Core™ i3-8145UE CPU

按照上面流程配置好环境后,打开终端输入以下指令:

cd <path-to-Prometheus>/./Scripts/start_yolov5openvino_server.shroslaunch prometheus_detection yolov5_intel_openvino.launch

即可看到如下效果:

Yolov5在i3-8代上的测试

Yolov5在i3-8代上的延时

2、Intel® Core™ i5-8265U CPU

配置环境与输入指令与i3中相同,下面直接看测试效果

Yolov5在i5-8代上的测试

Yolov5在i5-8代上的延时

3、Intel® Core™ i7-8665UE CPU

配置环境与输入指令与i3中相同,下面直接看测试效果

Yolov5在i7-8上的测试

Yolov5在i7-8代上的延时

4、 11th Gen Intel® Core™ i5-1135G7 @ 2.40GHz × 8

配置环境与输入指令与i3中相同,下面直接看测试效果

Yolov5在i5-11代上的测试

Yolov5在i5-11代上的延时

结论:从上面的实验数据来看,yolov5的帧率随着i3,i5,i7的增加而增加,随着7代,8代,9代CPU的增加而增加,随着电脑主频1.1GHz,1.6GHz,2.4GHz增加而增加。

四、训练自己的yolov5模型并部署

1. 数据标注

下载数据集标注工具,下载地址:Spire Web或者百度网盘 (密码: l9e7) ,数据集管理软件SpireImageTools:gitee地址或者github地址。

解压,打开标注软件 SpireImageTools_x.x.x.exe

首先点击Tools->Setting...,填写一个 save path (所有的标注文件都会存储在这个文件夹中)

将拍摄的视频转为图像 (如果采集的是图像,则跳过这一步骤),点击 Input->Video, 选择要标注的视频。

然后,点击`Tools->Video to Image`

点击OK 后,等待完成,结果会存储在:

打开需要标注的图像,点击菜单Input->Image Dir, 找到需要标注的图像所在文件夹 ,按Ctrl+A,全选,打开所有图像:

点击菜单:Tools->Annotate Image->Box Label,开始标注图像

label中填写待标注目标名称,然后将对话框拖到一边。

开始标注,在主窗口中开始标注,鼠标滚轮放大缩小图像,按住左键移动可视图像区域不断点击左键将目标框包围,使用Yolo训练时,点击2个点即可:

标注时,如果点错,按鼠标右键可以取消。标注完成后,如果不满意,可以点击绿色边框(边框会变红,如下图所示),按`Delete`删除

继续标注行人类别:

全部标注完成后,将标注输出为Yolo格式,准备训练——在标注完成之后,按下Ctrl+o

点击OK即可,需要等待转换。

注意,如下两个文件夹是我们训练Yolov5需要的

2.开始训练Yolov5

在准备好scaled_imagesYolo_labels两个文件夹之后,我们就可以训练Yolov5了。首先,创建一个car_person.yaml,将其放到<path-to-Prometheus>/Modules/object_detection_yolov5openvino/data/文件夹下。car_person.yaml的具体内容如下:

# train and val data as 1) directory: path/images/, 2) file: path/images.txt, or 3) list: [path1/images/, path2/images/]train: data/car_person/images/train/val: data/car_person/images/train/# number of classesnc: 2# class namesnames: ['car', 'person']

注意1car_person是自定义名称,我们这次标注的数据集仅有这2个类别。

注意2names: ['car', 'person']这里的类别顺序需要跟Yolo_categories.names里的类别顺序一致。

将训练图像与标注拷贝到对应位置

首先,在<path-to-Prometheus>/Modules/object_detection_yolov5openvino/data/下新建一个文件夹car_person然后,在car_person下再新建2个文件夹imageslabels最后,将准备好的scaled_images拷贝到images下,并重命名为train;将准备好的Yolo_labels拷贝到labels下,并重命名为train

结合car_person.yaml里的内容,我想你应该明白上面目录结构的含义啦。

开始训练

cd <path-to-Prometheus>/Modules/object_detection_yolov5openvino/python3 train.py --img 640 --batch 16 --epochs 5 --data data/car_person.yaml --weights weights/yolov5s.pt

显示以上内容说明训练成功!可以增加训练期数(`--epochs 5`)提升效果。

部署训练好的模型

刚刚训练好的模型会保存在<path-to-Prometheus>/Modules/object_detection_yolov5openvino/runs/exp?/weights/best.pt?需根据自己的情况而定(最新训练的模型?为最大的数字),将best.pt重命名为yolov5s.pt,拷贝到<path-to-Prometheus>/Modules/object_detection_yolov5openvino/weights/下,然后执行第部分3-5的操作进行OpenVINO部署。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/648449.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

「深度学习之优化算法」笔记(三)之粒子群算法

1. 粒子群算法简介 粒子群算法&#xff08;Particle Swarm Optimization,PSO&#xff09;是一种模仿鸟群、鱼群觅食行为发展起来的一种进化算法。其概念简单易于编程实现且运行效率高、参数相对较少&#xff0c;应用非常广泛。粒子群算法于1995年提出&#xff0c;距今&#xff…

新世界-旧世界

以下内容是这两天朋友问答形成的一些观点&#xff0c;堆成一篇文章。看似没有关联性&#xff0c;但你仔细品味&#xff0c;你会感觉到它们其实讲的是一个事。至于是一个啥事&#xff0c;我不说&#xff0c;你们自己猜。 &#xff08;1&#xff09; 今年年初看见篇文章&#xff…

前端vue仿京东天猫简单好用的瀑布流瀑布流式布局列表组件waterfall

前端vue仿京东天猫简单好用的瀑布流瀑布流式布局列表组件waterfall&#xff0c; 下载完整代码请访问uni-app插件市场址:https://ext.dcloud.net.cn/plugin?id13046 效果图如下&#xff1a; #### 使用方法 使用方法 <!-- proList: 条目数组数据 goProDetail:条目点击事…

vue路由的两种模式 hash与history

文章目录 vue路由是什么&#xff1f;Hash 模式Hash具体的原理如下&#xff1a;Hash 模式的好处缺点 History 模式实现 History 模式的原理如下&#xff1a;History 模式的好处缺点 vue路由是什么&#xff1f; Vue 路由是 Vue.js 框架提供的一种机制&#xff0c;用于实现单页面…

驱动开发:内核解锁与强删文件

在某些时候我们的系统中会出现一些无法被正常删除的文件&#xff0c;如果想要强制删除则需要在驱动层面对其进行解锁后才可删掉&#xff0c;而所谓的解锁其实就是释放掉文件描述符&#xff08;句柄表&#xff09;占用&#xff0c;文件解锁的核心原理是通过调用ObSetHandleAttri…

【科学文献计量】关于使用metaknowledge读取文献后转化字典结构报错PD问题的解决方式

关于使用metaknowledge读取文献后转化字典结构报错PD问题的解决方式 1 问题说明2 问题探索3 问题解决4 数据核实1 问题说明 在进行文献下载完毕后,使用metaknowledge读入文献时候是正常的,但是要通过RC.makeDict()方法转化为字典结构,却发生了PD报错问题(KeyError: PD),如…

基于SpringBoot+vue的在线考试系统设计和实现

博主介绍&#xff1a; 大家好&#xff0c;我是一名在Java圈混迹十余年的程序员&#xff0c;精通Java编程语言&#xff0c;同时也熟练掌握微信小程序、Python和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我擅长在JavaWeb、SSH、SSM、SpringBoot等框架下…

阿里云新人专享是什么意思?是新注册用户还是新用户或者老用户?

阿里云2023年促销活动中云服务器购买条件大多都指定为新人专享&#xff0c;有的用户购买提示“不满足购买条件”&#xff0c;有的虽然能买&#xff0c;但是点击购买之后的价格却跟活动显示价格有很大的出入&#xff0c;活动中的云服务器会提示“新人专享”&#xff0c;那么什么…

Python爬取城市天气数据,并作数据可视化

1.爬取广惠河深2022-2024年的天气数据 import requests # 发送请求要用的模块 需要额外安装的 import parsel import csvf open(广-惠-河-深天气.csv, modea, encodingutf-8, newline) csv_writer csv.writer(f) csv_writer.writerow([日期, 最高温度, 最低温度, 天气,…

EEPROM 磨损管理算法

这里写目录标题 前言需求结构局限性代码示例 前言 …最近工作上有用到EEPROM&#xff0c;在我的应用中需要一分钟一次的擦写频率&#xff0c;按照设备一天工作16h&#xff0c;十年的设备设计寿命来计算&#xff0c;大概要擦写300万次。超出了一般的EEPROM擦写循环次数100万。 …

【前端 - CSS】第 17 课 - CSS 特性

欢迎来到博主 Apeiron 的博客&#xff0c;祝您旅程愉快 &#xff01; 时止则止&#xff0c;时行则行。动静不失其时&#xff0c;其道光明。 目录 1、缘起 2、CSS 三大特性 2.1、继承性 2.2、层叠性 2.3、优先级 3、总结 1、缘起 CSS 是一种用于样式化网页的语言&#xf…

无代码开发smardaten与Power Platform详细对比

文章目录 前言&#xff1a;亟待转型的软开创业者什么是低/无代码居高不下的企业级软件搭建成本1. 开发周期较长2. 在需求明确、软件修改、系统集成等方面存在多种卡点3. 数据管理混乱 无代码/低代码开发&#xff0c;时代的潮流无代码平台 smardaten1. smardaten 简介2. smardat…

一起看 I/O | 将 Kotlin 引入 Web

作者 / 产品经理 Vivek Sekhar 我们将在本文为您介绍 JetBrains 和 Google 的早期实验性工作。您可以观看今年 Google I/O 大会中的 WebAssembly 相关演讲&#xff0c;了解更多详情: https://youtu.be/RcHER-3gFXI?t604 应用开发者想要尽可能地在更多平台上最大限度地吸引用户…

高阶智驾进入「普及」周期,这四家车企包揽年度方案创新奖

特斯拉、理想等新能源汽车头部企业推动的NOA高阶智能驾驶上车潮&#xff0c;正在席卷整个汽车行业。包括吉利、广汽、长安、红旗等头部自主品牌也在加速推进&#xff0c;同时&#xff0c;在NOA、电子电气架构、数据闭环平台等方面&#xff0c;实现科技平权。 6月8-9日&#xff…

三菱FX3U中级课程-模拟量与PID

可别小看FX3U&#xff0c;它的功能比西门子200smart要强大&#xff0c;对于使用三菱PLC的设备&#xff0c;很多小型设备都可以用FX3U来做。 ​​ 三菱FX3U模拟量与PID 课程章节 第一节课 必须知道的模拟量理论知识 - 大白话讲解00:50:33 第二节课 通过测量空压机的压力才学习…

不确定 A Survey of Uncertainty in Deep Neural Networks(乱记)

随着深度学习技术的不断发展&#xff0c;DNN模型的预测能力变得越来越强&#xff0c;然而在一些情况下这却并不是我们想要的&#xff0c;比如说给模型一个与训练集完全不相关的测试样本&#xff0c;我们希望模型能够承认自己的“无知”&#xff0c;而不是强行给出一个预测结果&…

【深度学习】1 感知机(人工神经元)

认识感知机 感知机接收多个输入信号&#xff0c;输出一个信号 感知机的信号只有“流/不流”(1/0)两种取值 0对应“不传递信号”&#xff0c;1对应“传递信号”。 输入信号被送往神经元时&#xff0c;会被分别乘以固定的权重。神经元会计算传送过来的信号的综合&#xff0c;只有…

云平台 stm32连接oneNET保姆级别教学只看这一篇就够了~

1 注册账号 oneNET点击直达 如图点击右上角开发者中心 点击多协议接入 点击添加产品 如下图设置参数 点击立即添加设备 点击添加设备 如下图设置参数 点击右边的详情查看设备ID和鉴权信息 点击产品概况获取 产品ID 平台注册告一段落 你现在拥有了一个oneNET账号 设备ID …

easycode-自定义的模板-类型对应问题

一、遇到的问题 1、mysql数据库中有些字段没有生成到 在图形工具中修改了表结构 &#xff0c;增加了字段&#xff0c;这个时候要在idea中刷新下数据库 2、数据库中有tinyint 类型的字段&#xff0c;生成代码后mapper.xml中jdbcType总是BYTE&#xff0c;但是mybatis中并没有BYT…

echarts分割柱形图实现渐变电量效果柱状图

先看下效果图是这个样子的 &#xff0c;和普通的柱状图最明显的区别就是需要做成类似于电池格电量显示效果。 目录 1、官网找例子 2、改造示例 3、全部代码 4、初始效果和完成效果对比 1、官网找例子 首先到Echarts官网找到基础的柱状图 官网初始option 我们将option复制到…