关于yolov5识别红绿灯并识别红绿灯状态

本文介绍了使用YOLOv5算法对红绿灯进行目标检测的过程,包括数据集准备、模型训练和基于灰度值的简单识别逻辑。通过划分识别框并分析不同区域的亮度,实现了红绿灯状态的实时判断。
摘要由CSDN通过智能技术生成

        随着人工智能技术的快速发展,目标检测技术在智能交通领域的应用越来越广泛。红绿灯是交通系统中的重要组成部分,准确识别红绿灯的状态对于保障交通安全具有重要意义。本报告旨在介绍使用YOLOv5算法识别红绿灯的实践过程与结果分析。

        为了训练YOLOv5模型识别红绿灯,我们首先需要准备相应的数据集,以及对应的标签信息。在收集数据时,我们特别注意涵盖各种复杂场景,如红绿灯与其它标识物的相互遮挡、大小变化等。

流程图:

标注使用labelimg,详情请参考其他博主

yolov5的安装与训练方式,详情请参考其他博主

代码位置:

识别框坐标划分:



gray = cv2.cvtColor(im0, cv2.COLOR_BGR2GRAY)  # 将视频转为灰度视频

                    third_width = (xyxy[2] - xyxy[0]) // 3

                    R = gray[int(xyxy[1]): int(xyxy[3]), int(xyxy[0]): int(xyxy[0] + third_width)]
                    Y = gray[int(xyxy[1]): int(xyxy[3]), int(xyxy[0] + third_width): int(xyxy[0] + 2 * third_width)]
                    G = gray[int(xyxy[1]): int(xyxy[3]), int(xyxy[0] + 2 * third_width): int(xyxy[2])]

                    sum_R = np.mean(R)
                    sum_Y = np.mean(Y)
                    sum_G = np.mean(G)

                    # 判断模块
                    if sum_R > 40:
                        # 如果R中像素点的灰度值的平均值大于40,则显示红灯
                        print('红灯')
                    elif sum_Y > 40:
                        # 如果Y中像素点的灰度值的平均值大于40,则显示黄灯
                        print('黄灯')
                    elif sum_G > 40:
                        # 如果G中像素点的灰度值的平均值大于40,则显示绿灯
                        print('绿灯')
                    else:
                        # 如果都小于40,则显示未检测到灯光
                        print('未检测到灯光')

        这是通过对yolov5红绿灯识别框的划分,划分成3个区域,识别对应区域的亮度值来判断红绿灯对应的灯是否亮起。

结果:

【资源说明】 基于YOLOv5实现的道路交通标志识别系统源码(含GUI)+项目使用说明+模型及评估指标曲线.zip 这是一个关于yolov5的道路标志识别项目,使用Pyqt5开发界面,Yolov5训练模型,数据库Mysql,包含五个模块:初始化参数、标志识别、数据库、数据分析和图像处理。 1、标志识别模块 左下角三个勾选框分别是结果保存、启动数据库录入、以及模型可视化分析 2、图像处理与数据增强模块 右侧栏是自定义参数的批量图像数据增强(按一定概率对一个文件夹所有图片使用勾选的数据增加方法) 3、初始化参数模块 模型基本参数勾选配置 4、数据库模块 5、数据分析模块 6、登录界面 开始 运行`main.py`。 账户密码 - admin 123456 - 1 2 - 修改main函数可直接进入 项目模块 - `pt`文件夹:存放模型(best.pt是道路标志识别模型) - `main_with`文件夹:`login.py`(登陆ui)、`win.py`(主ui) - `dialog`文件夹:rtsp弹出界面 - `apprcc_rc.py`:资源文件 - `login_ji.py`:界面登陆逻辑文件 - `run-exp52`:300轮训练后的道路标志识别模型 - `utils/tt100k_to_voc-main`文件夹:json转yolo格式 - `result`保存一些推理文件,`run`保存训练文件 - 数据集:【TT100k :链接见项目说明】 - 数据库文件:`data`文件夹下`-regn_mysql.sql` 安装依赖 pip install -r requirements.txt 【注意事项】 1、项目基于YOLOv5 v6.1 2、数据库连接 【备注】 1、该资源内项目代码都经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 2、本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶,当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。 3、如果基础还行,也可在此代码基础上进行修改,以实现其他功能,也可直接用于毕设、课设、作业等。 欢迎下载,沟通交流,互相学习,共同进步!
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值