基于机器深度学习的交通标志目标识别

在线工具推荐: 三维数字孪生场景工具  -  GLTF/GLB在线编辑器  -  Three.js AI自动纹理化开发  YOLO 虚幻合成数据生成器  -  3D模型在线转换  -   3D模型预览图生成服务

智能交通系统(ITS),包括无人驾驶车辆,尽管在道路上,已经逐渐成熟。如何消除各种环境因素造成的干扰,进行准确高效的交通标志检测和识别,是一个关键的技术难题。然而,传统的视觉对象识别主要依赖于视觉特征提取,例如颜色和边缘,这存在局限性。卷积神经网络(CNN)是针对基于深度学习的视觉对象识别而设计的,成功克服了传统对象识别的缺点。

在本文中,我们基于我们的交通标志识别 (TSR) 数据集实施了一个实验来评估最新版本的 YOLOv5 的性能,本项目中的实验利用UnrealSynth虚幻合成数据生成器 生成了试验的数据集。

1、介绍

近年来,随着人工智能(AI)的爆发,车载辅助驾驶系统更新了以往的驾驶模式。通过获取实时路况信息,系统及时提醒驾驶员进行准确操作,从而防止因驾驶员疲劳而发生车祸。除了辅助驾驶系统外,自动驾驶汽车的开发还需要从数字图像中快速准确地检测交通标志。

交通标志识别(TSR)是从数字图像或视频帧中检测交通标志的位置,并给出特定的分类。TSR方法基本上利用了视觉信息,例如交通标志的形状和颜色。然而,传统的TSR算法在实时测试中也存在一些弊端,例如容易受到驾驶条件的限制,包括照明、摄像头角度、障碍物、行驶速度等。实现多目标检测也非常困难,由于识别速度慢,容易遗漏视觉对象。

随着计算机硬件的不断完善,人工神经网络的局限性得到了很好的缓解,使机器学习进入了发展的黄金时期。深度学习是一种机器学习方法。深度神经网络模型在处理信息时模拟我们人脑的神经结构。利用该神经网络模型从道路图像中提取有效特征,远优于传统的TSR算法,具有提高算法鲁棒性和泛化性的潜力。

TSR的研究成果不仅避免了交通事故,保护了驾驶员,还有助于高效准确地检查道路上的交通标志,从而减少了不必要的人力和资源。此外,它还为无人驾驶和辅助驾驶提供技术支持。因此,基于深度学习的研究工作具有巨大的意义,对我们的日常生活具有不可估量的价值。

在本文中,我们主要研究如何实现基于深度学习的准确实时TSR模型。我们的贡献体现在三个方面。首先,我们收集并扩充样本图像,为我们的交通标志形成一个新的数据集。其次,关于最新版本的YOLOv5,我们实现了我们的实验,并基于我们的数据集评估了TSR性能。

2、TSR

TSR一直是近年来的研究热点。为此,研究了TSR对复杂图像场景中的交通标志区域和非交通标志区域的检测,TSR提取了通过交通标志模式表示的特定特征。现有的TSR方法基本上分为两类:一类是基于传统方法,另一类是与深度学习方法有关。

基于给定图像的颜色和形状的TSR方法的主要步骤是提取候选区域中包含的视觉信息,捕获和分割图像中的交通标志,并通过图案分类正确标记标志。尽管 TSR 需要颜色和形状信息,但用于提高识别准确性。交通标志的照度变化或褪色问题,以及交通标志的变形和遮挡,仍是未解决的问题。传统的机器学习方法通常选择指定的视觉特征,并利用这些特征对交通标志的类别进行分类。具体特征包括类似 Haar 的特征、HOG 特征、SIFT 特征等。

传统的TSR方法基于模板匹配,需要提取和利用交通标志的不变和相似视觉特征,运行匹配算法进行模式分类。这些方法的特征表示需要很好地指定,由于交通标志的变化,这是一个很难准确描述视觉特征的问题。

神经网络、贝叶斯分类器、随机森林和支持向量机(SVM)被用作分类器。然而,传统机器学习方法的性能取决于指定的特征,它们容易遗漏关键特征。此外,对于不同的分类器,需要相应的特征描述信息。因此,传统的机器学习方法存在局限性,其实时性相对来说没有可比性。

深度学习利用多层神经网络自动提取和学习视觉对象的特征,在图像处理方面具有重要意义。CNN 模型是 TSR 最流行的深度学习方法之一。TSR算法是基于区域建议的,又称两阶段检测算法,其核心思想是选择性搜索,其优点是检测定位性能好,但代价是计算量大,计算硬件性能高。

CNN 模型封装了 R-CNN、Fast R-CNN 和 Faster R-CNN。Faster R-CNN结合了边界框回归和目标分类,采用端到端的方法检测视觉对象,不仅提高了目标检测的准确性,而且提升了目标识别的速度。道路标志通常是从驾驶员的角度来检测的,在本文中,我们从卫星图像的角度来观察这些标志。在中,对输入图像采用引导图像滤波来去除图像伪影,如雾和雾。将处理后的图像导入到建议的网络中进行模型训练。

视觉目标检测由分类和定位两个任务组成。在YOLO出现之前,这两个任务在视觉对象检测中是不同的。在YOLO模型中,目标检测被简单地转换为回归问题。此外,YOLO遵循用于视觉目标检测的神经网络的端到端结构,通过一个图像输入同时获得预测边界框的坐标、目标的置信度和目标所属类别的概率。

3、方法论

YOLO系列机型已更新至YOLOv5。视觉目标检测的准确性不断更新;回归始终被采用为核心思想。在本实验中,我们以最新版本的 YOLOv5 作为 NZ-TSR 模型之一。YOLOv5 算法的结构与 YOLOv4 非常相似。整个网络模型分为输入层、骨干层、颈部和预测层四个部分。在图中详细介绍了 YOLOv5 的网络结构。

figure 1

图1

在输入部分,YOLOv5 和 YOLOv4 都利用马赛克方法来增强输入数据。该算法需要将输入图像归一化为固定大小,图像的标准大小为 608 × 608 × 3。此外,网络训练基于初始锚定框,通过与实际注释框进行比对,并迭代更新网络模型参数,得到预测框。

骨干部分包含焦点模块和CSP模块。对焦模型的关键步骤是通过切片操作压缩输入图像的高度和宽度。对图像进行拼接,将图像尺寸信息(即宽度和高度)整合到通道信息中,以增加输入通道。在CSP模块方面,YOLOv5设计了CSP模块的两个分支,分别是CSP1_X和CSP2_X。其中,CSP1_X模块主要用于骨干网,CSP2_X主要用于颈部网络。

YOLOv5 中的颈部部分模仿 YOLOv4,采用 FPN+PAN 结构。特征金字塔网络(FPN)从上到下工作,利用上采样操作来传输和融合信息,以获得预测的特征图。相比之下,PAN(路径聚合网络)是一个从下到上的特征金字塔。

4、实验

数据采集

本实验选取了多类具有较高认知度、重要安全意义的交通标志。由于真实数据的采集的成本高昂,且采集难度大耗时较长。在本文中,将使用UnrealSynth虚幻合成数据生成器 来生成训练所需要的数据集,用户只需要将在UnrealSynth虚幻合成数据生成器中搭建虚拟场景,经过对虚拟场景的简单配置就可以自动生成YOLO模型训练数据集,非常的简单方便:

1. 场景准备

  • 将模型导入到场景。
  • 配置场景先关参数,如:生成的图片数据集的图片分辨率、生成的图片的数量等。

2. 生成数据集

设置参数后,点击【确定】后会在本地目录中...\UnrealSynth\Windows\UnrealSynth\Content\UserData 生成本地合成数据集,本地数据包含两个文件夹以及一个 yaml 文件:images、labels、test.yaml 文件;images中存放着生成的图片数据集,labels中存放着生成的标注数据集。

images和labels目录下各有两个目录:train 和 val,train 目录表示训练数据目录,val 表示验证数据目录,标注数据的格式如下所示:

0 0.68724 0.458796 0.024479 0.039815
0 0.511719 0.504167 0.021354 0.034259
0 0.550781 0.596759 0.039062 0.04537
0 0.549219 0.368519 0.023438 0.044444
0 0.47526 0.504167 0.009896 0.030556
0 0.470313 0.69537 0.027083 0.035185
0 0.570052 0.499074 0.016146 0.040741
0 0.413542 0.344444 0.022917 0.037037
0 0.613802 0.562037 0.015104 0.027778
0 0.477344 0.569444 0.017188 0.016667

synth.yaml是数据的配置文件,数据格式如下:

path:
train: images
val: images
test:
names:0: traffic sign

4,4 实验结果

YOLOv5模型在结果中具有出色的可视化功能。首先,我们直观地显示其数据集的最终识别结果,如图5图4、我们清楚地观察到 YOLOv5 实验中的 TSR 非常准确。

figure 4

图4

最后,YOLOv5 在数据集中的所有具体评估指标如图5所示, 特别是,第二列和第三列分别是用于视觉目标检测和分类的训练数据集和验证数据集的损失函数的平均值。该值越小,模型的识别性能越好。

figure 5

图5

通常,评估实验结果最方便、最直接的方法是准确性。在本文中,我们利用PR曲线来证明模型TSR性能的准确率和召回率之间的权衡。

5 结论和今后的工作

本项目旨在基于交通标志数据集,探究TSR的准确性和速度。因此,本文选择了YOLO系列算法的最新版本,即YOLOv5,来评估其性能。在这个实验中,我们使用UnrealSynth虚幻合成数据生成器 ,通过搭建虚拟场景的方式,生成了交通标志的数据集。然后,我们基于具有非常强计算能力的Google Colab平台实现了精心设计的实验。从实验结果来看,YOLOv5在所有类中的准确率均高达97.70%,各类的平均精度均在90.00%以上。

未来,我们将继续扩展我们的数据集,以涵盖所有类别的交通标志。同时,将包括更多新开发的视觉对象识别模型,如Mask R-CNN、CapsNet和Siamese神经网络。胶囊神经网络(CapsNet)已被用于有效识别一类具有空间关系的交通标志。

转载:基于机器深度学习的交通标志目标识别 (mvrlink.com)

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

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

相关文章

安装两个WIN10/WIN11系统到两个盘中,第二个系统依赖原系统盘引导的问题

前段时间折腾装一个双系统,主要两个方面考虑: 1. 原来的系统又许多软件,想着先保留; 2. 系统想安装到一个固态硬盘中; 在安装的过程中遇到了一些问题,这里记录分享一下。 问题1,运行系统自动安装…

Langchain-Chatchat学习

参考:Langchain-Chatchat 阿里通义千问Qwen 保姆级教程 | 次世代知识管理解决方案 - 知乎 (zhihu.com) 该文档没有安装成功,安装成功的文档 可见:Langchain-Chatchat的安装过程-CSDN博客 中文LLM生态观察 模型 就开源的部分而言&#xf…

Servlet概念视频笔记

学习地址:121-尚硅谷-Servlet-什么是Servlet_哔哩哔哩_bilibili 目录 1.Servlet技术 a.什么是Servlet b.手动实现Servlet程序 c.url地址如何定位到Servlet程序去访问 d.Servlet的生命周期 e.GET 和 POST 请求的分发处理 f.通过继承 HttpServlet 实现 Servlet程序 g.使用…

如何在财税行业查找批量客户?

现在市场上代记账公司也不算少,做过这行的都知道,最初呢行业竞争不强,都是靠地推、老客户转介绍,或者长期以往的蹲守各个地区的工商注册服务中心,找那些才注册企业的老板或者创业者。但是,随着市场经济的发…

Python+Requests模块_设置代理、超时设置、重定向设置

设置代理 代理(英语:Proxy),也称网络代理,是一种特殊的网络服务,英文全称是(Proxy Server),其功 能就是代理网络用户去取得网络信息。形象的说:它是网络信息…

[每周一更]-(第75期):Go相关粗浅的防破解方案

Go作为编译语言,天然存在跨平台的属性,我们在编译完成后,可以再不暴露源代码的情况下,运行在对应的平台中,但是 还是架不住有逆向工程师的反编译、反汇编的情形;(当然我们写的都不希望被别人偷了…

国内高速下载huggingface上的模型

目录 前言 modelscope huggingface安装 Windows设置环境变量 Linux设置环境变量 设置国内镜像 Windows(cmd.exe) 当前窗口有效 永久生效 Linux 当前窗口有效 永久生效 下载模型 前言 国内优先使用modelscope,hugging face镜像站下载…

MySQL字符函数

在数据库中,字符函数是一组用于处理字符串的函数。这些函数可以帮助我们执行各种操作,如连接、比较、替换等。本文将介绍一些常用的MySQL字符函数,并演示如何在查询中使用它们。 1.concat() 函数 CONCAT() 函数用于连接两个或多个字符串。它…

【C/PTA —— 13.指针2(课内实践)】

C/PTA —— 13.指针2(课内实践) 一.函数题6-1使用函数实现字符串部分复制6-2 拆分实数的整数部分和小数部分6-3 存在感 二.编程题7-1 单词反转 一.函数题 6-1使用函数实现字符串部分复制 void strmcpy(char* t, int m, char* s) {int len 0;char* ret …

【C/PTA —— 13.指针2(课外实践)】

C/PTA —— 13.指针2(课外实践) 一.函数题6-1 鸡兔同笼问题6-2 冒泡排序6-3 字符串反正序连接6-4 计算最长的字符串长度6-5 查找星期 二.编程题7-1 C程序设计 实验5-7 数组指针作函数参数7-2 查找奥运五环色的位置 一.函数题 6-1 鸡兔同笼问题 int Chic…

CSS新手入门笔记整理:CSS图片样式

图片大小 语法 width:像素值; height:像素值; 图片边框:border 语法 边框:宽度值 样式值 颜色值; border:1px solid red; 图片对齐 水平对齐:text-align 语法 text-align:取值; 属性值 说明 left 左对齐(默认值) cent…

csp 现值计算 C语言

号: 202212-1 试题名称: 现值计算 时间限制: 1.0s 内存限制: 512.0MB 问题描述: 问题描述 评估一个长期项目的投资收益,资金的时间价值是一个必须要考虑到的因素。简单来说,假设…

Unittest(1):unittest单元测试框架简介setup前置初始化和teardown后置操作

unittest单元测试框架简介 unittest是python内置的单元测试框架,具备编写用例、组 织用例、执行用例、功能,可以结合selenium进行UI自动化测 试,也可以结合appium、requests等模块做其它自动化测试 官方文档:https://docs.pytho…

JS逆向-mytoken之code参数

前言 本文是该专栏的第60篇,后面会持续分享python爬虫干货知识,记得关注。 本文以mytoken为例,通过js逆向获取其code参数的生成规律。具体的“逆向”思路逻辑,笔者将会详细介绍每个步骤,并且将在正文结合“完整代码”进行详细说明。 接下来,跟着笔者直接往下看正文详细…

OpenOffice 4.1.14的安装以及与数据库进行连接

起因:因为MS Office的Access只能和自家的数据库连接,感觉不太舒服,因此尝试使用Openoffice组件中的Base进行替换。这里记录一下从安装到进行数据库连接的过程。 1.下载地址 https://www.openoffice.org/download/index.html 我这里是Debian1…

(C++)三数之和--双指针法

个人主页:Lei宝啊 愿所有美好如期而遇 算法原理 双指针法,不一定是说就要使用指针,只是一种形象的说法,在数组中,我们一般将数组下标当做指针。我们首先对数组进行排序,从左向右标定一个下标i&#xff0…

CentOS7根分区扩容之二

Centos根分区快接近100%,如果根分区是逻辑卷,那么可以增加额外的磁盘,通过逻辑卷扩容的方式增加到根分区空间。 1.检查当前根分区大小 df -Th2.检查额外的磁盘 3.把磁盘格式化为lvm类型的文件分区。 [rootlocalhost ~]# fdisk /dev/sdb We…

数据结构:带头双向循环链表的实现

引言 单链表存在缺陷:需要从头开始找前一个节点 解决方法:双向链表 链表的结构(8种): 1. 单向,双向 2. 带头、不带头 带头即为带哨兵位的头节点,第一个节点不存储有效数据。带头节点&#…

leetcode刷题详解—— 环形子数组的最大和

1. 题目链接:918. 环形子数组的最大和 2. 题目描述: 给定一个长度为 n 的环形整数数组 nums ,返回 nums 的非空 子数组 的最大可能和 。 环形数组 意味着数组的末端将会与开头相连呈环状。形式上, nums[i] 的下一个元素是 nums[(…

VUE语法-(readonly的用法)将数据设置成只读模式

1、功能概述 在Vue中定义一个变量,这个变量的值不允许被修改,核心是通过readonly设置成只读。 如果不会使用ref和reactive响应式数据参考如下博客: https://blog.csdn.net/tangshiyilang/article/details/134701103 2、具体实现 如下案例…