往期精品导航
前言
基于YOLO的无人驾驶辅助系统,能够实时检测前方行驶道路状况,语音播报前方路口交通状况,如红灯、绿灯、左转红灯、行人等,辅助司机完成驾驶。
本文介绍了一种基于YOLOv9的智能驾驶辅助系统。
可检测 “biker”: “骑自行车的人”, “car”: “汽车”, “pedestrian”: “行人”, “trafficLight”: “红绿灯”, “trafficLight-Green”: “绿灯”, “trafficLight-GreenLeft”: “左转绿灯”, “trafficLight-Red”: “红灯”, “trafficLight-RedLeft”: “左转红灯”, “trafficLight-Yellow”: “黄灯”, “trafficLight-YellowLeft”: “左转黄灯”, “truck”: "卡车"等11种目标。
数据集大小15000张左右,已按照yolo个数划分好训练集、验证集和测试集
一、软件核心功能介绍及效果演示
1.1 软件主要功能
- 支持图片、图片批量、视频文件、本地摄像头、网络摄像头进行检测
- 界面实时显示检测结果、类别数量、目标数量、FPS等
- 支持图片、视频、摄像头等检测结果保存,自动保存到文件夹中
- 支持语音报警,检测到目标时,自动进行语音播报
- 支持自定义IOU阈值、置信度阈值的参数
1.2 界面参数说明
- 上传图片或视频文件进行检测
- 调用本地摄像头检测检测
- 上传图片文件夹,批量对图片进行检测
- 通过Rtsp协议,调用网络摄像头进行检测
- 显示检测结果目标类别数量
- 显示检测结果目标数量
- 显示帧率,当使用GPU加速时,可实现实时检测
- 切换不同的模型
- 调整IOU阈值,当检测结果中IOU超过阈值,才能显示
- 调整置信度阈值,当检测结果中置信度超过阈值,才能显示
- 调整延迟时间
- 调整绘制线条宽度
- 开启/关闭报警功能,开启后,每隔10s对检测结果进行语音播报,默认播报内容“请注意,前方xx”, 支持diy音频
- 开启/关闭保存功能,将图片、视频、摄像头结果自动保存在runs/detect/exp文件夹中
- 保存页面中当前帧的检测结果。
1.3 视频演示
基于YOLOv9的智能驾驶辅助检测系统【python源码+UI界面+数据集+模型+语音报警+安装说明】
二、如何实现
如何实现一个基于YOLO的目标检测系统,一般来说,首先得有显卡,不然没有办法训练模型。之后我们要准备数据集,然后下载yolo官方提供的开源代码,训练模型,最后需要制作一个交互式页面,能够使用训练好的模型,下面我将围绕这几部分,讲解如何自己制作一个基于YOLO的目标检测系统。
2.1 环境配置
正所谓工欲善其事,必先利其器。运行这样的一个系统,我们首先要有对应的环境支持。GPU对于模型训练是必须要,ubuntu环境下可以通过nvidia-smi查看自己的GPU。如果没有显卡,那么可以直接放弃训练模型这一步骤了,可以在网上搜搜有没有其他人训练好的模型,拿过来直接用。
确认有GPU之后,就可以配置环境了,怎么配置这里不在叙述,项目中提供了完整的配置说明文件,当然网上能够找到很多类似的教程,这里简单列举了下,可以作为参考
YOLOv5数据集的文件结构和文件格式以及标注工具LabelImg的说明文档
2.2 数据集
训练模型之前,需要准备数据集,数据集的获取方式有很多,网上也有很多开源的数据集。对于找不到的数据集,也可以采用自己标注的方式,通过labelimg工具可以实现,下面是labelimg工具的使用说明。
YOLOv5入门实践(2)——手把手教你利用labelimg标注数据集
标注好的数据集,我们要将其保存为固定的格式才能用于训练,比如yolo格式、voc格式,这两种格式之间也是能够通过程序进行转换的,如
yolov8-制作数据集,数据集格式转换(yolo格式-voc格式)附完整代码
这里要确保图片名称和对应的labels文件名称要保持一致
2.3 训练模型
目前最新版本的yolo已经跟新到了yolov10, 下面列举几种常用的官方地址
yolov5 、yolov8、 yolov9、 yolov10
官方代码中一般都提供了使用说明,我们只需要将代码以及相应的预训练权重文件下载下来,然后按照使用说明进行训练就可以了。
需要修改的地方有两个,一个是数据集的配置文件
2.4 交互式页面设计
一般大家使用的都是pyqt页面,可以通过Qt Designer工具进行页面设计,下面式该工具的使用教程
设计好页面后,即可对进行编程,实现需要的功能。