自动驾驶中的交通标志识别原理及应用

自动驾驶中的交通标志识别原理及应用

image

附赠自动驾驶学习资料和量产经验:链接

概述

道路交通标志和标线时引导道路使用者有秩序使用道路,以促进道路行车安全,而在驾驶辅助系统中对交通标志的识别则可以不间断的为整车控制提供相应的帮助。比如禁止类标志可以帮助系统提前进行危险预判;警告类标志可以帮助系统提前进行在某些情况下进行提前避障处理;指示类标志可以帮助系统进行控制预处理,以确保行车遵循道路指示。故对于交通标示的正确识别及精准应用可以为驾驶辅助系统甚至自动驾驶提供更加完美的助攻。本文将从两方面进行描述,分别详述交通标志识别的原理及应用方法。

交通标志识别原理

交通标志识别又称为TSR(Traffic Sign Recognition)是指能够在车辆行驶过程中对出现的道路交通标志信息进行采集和识别,及时向驾驶员做出指示或警告,亦或者直接控制车辆进行操作,以保证交通通畅并预防事故的发生。在安装有安全辅助驾驶系统的车辆中,如果车辆能够提供高效的TSR系统,及时为驾驶员提供可靠地道路交通标志信息,有效提高驾驶安全性和舒适性。

image

image

如下将介绍一种典型的道路交通标志识别的方法。

TSR是根据人类视觉系统辨识物体的特性,其识别原理是利用道路标志丰富的颜色信息和固定的形状信息进行特征识别。具体可将识别过程分为“分隔”和“识别”两个步骤。其中分隔是指在获取的图像中发现候选目标,并进行相应的预处理,其次是交通标志识别,包括特征提取和分类等,最后进一步判定目标的真实性。

image

1、交通标志分隔

交通标志分隔实际是需要快速从复杂的场景图像中获取可能是交通标志的感兴趣区域。然后采用模式识别的方法对感兴趣区域进行进一步辨识,定位其具体位置。由于交通标志功能是起到指示性、提示性和警示性等作用,他们设置都具有醒目、颜色鲜明、图形简洁、意义明确等特点。因此感兴趣区域通常是利用其颜色和形状进行的。

如下举例说明利用颜色如何进行分隔。

交通标志的颜色无疑具有显著性特征,以颜色进行检测和识别的方法有很多,包括对颜色空间的各个通道或其组合进行阈值分割或聚类,区域分裂,颜色边缘检测等,用经过训练的人工神经网络作为分类器识别颜色,以颜色为索引,将目标在直方图与模板库中图像的直方图进行匹配,找出可能的若干模板,为下一步形状分析做准备。

目前,在交通标志识别中常用的彩色空间包括RGB、HIS、CIE几种,而RGB作为图像处理中常用的三基色,是构建其他各种颜色的基础,其他颜色表示方式可以用RGB变换得到。

image

image

我们知道,对于交通标志而言大都颜色比较单一、固定,比如红色标志一般表示禁令,蓝色标志一般表示指示类,黄色标志一般表示警告类,这里正好利用RGB的三基色红、黄、蓝加以识别匹配来表示,但由于对于驾驶辅助系统功能TSR通常是一个动态交互识别的过程,其对于光照、气候以及阴影等干扰的影响反应较为敏感,而RGB信息不仅代表色彩,也代表亮度,并且三基色之间存在着很大的相关性,因此,为了消除RGB颜色本身包含的亮度信息,可在RGB空间将颜色值R、G、B将在亮度上进行归一化,从而将一个三维空间降到二维空间表示的颜色信息,这样RGB三基色颜色之间的亮度相关性就减小了。

由于颜色空间更多的还包含了饱和度等信息,故为了更好区分颜色与亮度信息,研究人员更多采用适合人类视觉特性的色彩模型HSI模型来处理交通标志识别,H表示不同颜色,S表示颜色深浅,I表示明暗程度,HSI其最大的特点是H、S、I之间相关性极小,在HSI空间中的每个彩色图像都对应着一个相对一致的色调H。

image

2、交通标志识别

当在试车环境中分割出来交通标志信息的感兴趣区域后,需要采用一定的算法对其进行判别,以便确定它属于哪一种具体的交通标志,一般的判别方法包括模板匹配法、基于聚类分析法、基于形状分析方法、基于神经网络分析法、基于支持向量机的方法。

2.1 基于模板匹配法

模板匹配法是对交通标志建立相应的模板库,当系统分割出感兴趣区域时,通过像素遍历的方式与模板库中的形状进行匹配,通过统计校验误差值,选择误差值最小的模板库中的标志作为匹配到的实际交通标志,该方法简单,但运算量大、适应能力差、效果不一定如预期。

2.2 基于聚类分析法

聚类算法是一种建立在统计基础上的算法,抗噪声能力强,适用于自然场景的图像处理,聚类算法检测识别主要用在对颜色的识别上,由于交通标志的颜色是固定的,因此初始聚类中心是已知的,这就能达到很好的分类效果。也可通过对已经聚类完成的区域进行二次聚类,这样就能进一步去除噪声,达到更好的效果。

2.3 基于神经网络的方法

神经网络是模拟人脑神经细胞元的网络结构,由大量神经元相互连接而成的非线性动态系统,对于交通标志认知而言,利用该方法建议一个三层神经网络,分别对应于RGB空间三通道,另外通过建立一个控制单元,网络作为一个相关检测器,如果目标区域存在交通标志,网络输出相应的高频信号,否则输出低频信号。

2.4 支持向量机的方法

支持向量机是一种典型的前馈神经网络方法,用于解决模式分类和非线性问题,其主要思想是建立一个最优决策超平面,使得该平面两侧距平面最近的两类样本之间的距离最大化,为分类提供更好的泛化能力。对于非线性可分模式分类问题,需要将负责的模式分类问题非线性的投射到高维特征空间,因此只要变换是非线性的且特征空间维数够高,则原始模式空间能变成一个新的高维特征空间,在该空间中,其模式以较高的概率变得线性可分。其中变换过程要求生成一个核函数进行卷积,相应典型的核函数表示如下:

高斯函数:

image

用于径向集函数分类器

内积函数:

image

用于高阶多项式集分类器;

Sigmoid核函数:

image

用于实现一个单隐层感知器神经网络;

交通标志识别应用

目前交通标志的识别技术还无法做到较高的灵敏、稳定和准确性,特别是针对受到不同季节、天气条件影响下的光照条件有所不同导致采集到的图像复杂多样;而道路交通情况的复杂性可能造成交通标志污损、颜色、形状发生变化,而树木、建筑物的遮挡又可能导致其无法被及时的识别到位,同时在高速驾驶过程中,由于车辆行驶抖动等因素,可能造成图像帧匹配过程中出现误差,从而无法稳定地识别出相应的交通标志。因此交通标志识别目前在驾驶辅助领域还未能得到广泛的应用,较为成熟的应用方案有如下几种:

1、基于限速标志的自动限速

基于限速标志的自动限速主要是利用识别到的限速标志显示的限速值,自车提前进行预判,这里我们设置几种不同的速度值进行比较。

VReal表示本车当前实际巡航车速,Vtarget表示本车目标巡航速度,Vlim表示限速值信息,Vfront表示识别到的前车车速。

image

根据自身车速这一敏感信息进行如下不同程度的限速策略:

1.1 本车定速巡航:

  • 当检测到本车VReal>Vlim且Vtarget<Vlim时,系统自动根据目标巡航车速进行减速控制,此时需考虑限速值大小,发送较大的减速度确保本车减速到限速标志时,其速度不大于限速标志;

  • 当检测到本车VReal<Vlim且Vtarget>=Vlim时,系统自动根据识别到的限速值Vlim进行减速;

  • 当检测到本车VReal<Vlim<Vtarget时,系统控制本车加速度斜率,确保本车通过限速牌时其速度值不大于限速值;

  • 当检测到本车VReal<Vtarget<Vlim时,可按照正常的加速逻辑加速至目标车速,此时需考虑加速度斜率不能出现加速过猛引起的驾驶恐慌;

1.2 本车跟随前车行驶:

  • 当检测到本车VReal>VFront>Vlim时,系统在确保本车不与前车碰撞的情况下进行自动减速控制;

  • 当检测到本车VReal<Vlim<VFront时,系统在确保本车在识别距离内不超过限速值的情况下进行适当加速控制;

  • 当检测到本车Vlim<VReal<Vtarget时,系统控制本车在一定识别距离内减速到限速值,不跟随前车进行加速;

  • 当检测到本车VFront<Vlim<VReal时,本车既可以按照目标前车进行减速控制,也可以按照限速值进行控制,输出的减速度值大小需确保在一定距离处自动减速到限速值处;

1.3 通过限速牌后控制逻辑

以上本车进行自动限速后,当车辆行驶通过限速牌,同时识别到新的限速牌时需要重新进行速度控制,如新的限速牌限速值比当前值小,则根据1)2)中的逻辑进行进一步限速,如新的限速牌限速值比当前值大,则需要根据当前更新后的本车实际车速、前车车速、本车目标巡航车速进行加速度重分配,确保限速和碰撞优先考虑的同时进行适当控制。

2、 基于并道策略的提前并道

image

image

对于车辆行驶在高速路情况下来说,驾驶车辆需要考虑在不同场景下进行提前变道的问题,目前有两种可行方案:

  • 其一,当在一定距离前检测到前方有并道标志信息时,通过语音或仪表图像提前提示驾驶员对车辆进行变道控制将车辆变道至目标车道;

  • 其二,当在一定距离前如果系统接收高精度地图相关车道级别信息,则可以直接控制车辆变道至目标车道,期间需要检测目标车道线是否为虚线,目标车道是否变道安全等;

3、基于红绿灯识别的提前刹车

基于红绿灯标志识别的驾驶辅助系统,要求在系统基于识别到的红绿灯提前对车辆巡航及变道进行控制。

image

主要有以下几种控制场景策略:

3.1 识别到绿灯:

若本车处于跟随前车行驶状态,前车以较低速度行驶,本车在确保碰撞安全的前提下,继续跟随前车行驶,并同时实时监控车灯变化,一旦变成黄灯,则立即停止跟随策略,保持一定的减速至刹停;

若本车处于自车定速巡航模式,本车已达到定速值,则进行匀速控制,若本车未达到定速值,则根据定速值进行匀加速控制,期间需要实时监控信号灯变化,同时控制加速斜率;

3.2 识别到黄灯:

若本车识别到黄灯,则不管本车是否处于跟车状态,均需要控制本车减速之刹停,期间减速过程可进行舒适性减速,由发动机反拖转换为制动切入;

3.3 识别到红灯:

若已经识别到红灯,则根据前车停止状态,确保避撞的前提下,控制本车急减速至刹停,保持本车刹停状态下与前车1m以上的距离;

总结

自动驾驶需要保证在道路行驶中充分遵守驾驶规则,保证系统控制的驾驶过程符合法律规定,交通标志识别在自动驾驶系统开发过程中起着举足轻重的作用,不仅能够为系统提供各种引导和约束信息,如显示当前路段交通状况,提示前方驾驶环境危险和困难,为自动驾驶系统做出警告,同时做出为驾驶安全提供相应的指引策略。当前交通标志识别技术由于受到道路、环境、天气、光照及驾驶稳定性的影响,其识别效果鲁棒性无法得到相应的保证,这就使得该技术还无法大规模的市场普及应用。当然后续针对如上提到的对其性能的限制策略也可通过如下一些算法进行前瞻性研究:

  1. 开展去除实际道路复杂环境干扰的预处理算法研究;如可采用图像复原技术进行处理运动模糊,采用图像不变距理论分析处理图像旋转、扭曲等情况,利用几何分析、推理及模糊理论等处理图像遮掩问题;

  2. 发展多分辨率以及多分形技术;采用金字塔结构的多分辨率分割算法尽心图像分割;

  3. 发展信息融合技术;利用除摄像头这一直观检测的传感器外,系统还可利用地图信息,后续发展5G下的V2x信息仍旧可为本车交通标志识别提供辅助;

  4. 深入研究句法结构模式识别技术;利用结合传统统计学识别方法结合句法模式识别技术获得图像的结构信息,进一步深化对识别图像标志的理解。

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

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

相关文章

Igh related:Small Bug fixing

BUG1 Undefined symbol Identifier “CLOCK_MONOTONIC” Undefined symbol Identifier “TIMER_ABSTIME” Solution In your main cpp file, add this in the first line: #define _GNU_SOURCE

Transformer位置编码详解

在处理自然语言时候&#xff0c;因Transformer是基于注意力机制&#xff0c;不像RNN有词位置顺序信息&#xff0c;故需要加入词的位置信息来显示的表明词的上下文关系。具体是将词经过位置编码(positional encoding)&#xff0c;然后与emb词向量求和&#xff0c;作为编码块(Enc…

CAS Server使用Maven构建以及自定义扩展使用

介绍 ​CAS&#xff08;Central Authentication Service&#xff09;中心授权/认证服务&#xff0c;是由耶鲁大学发起的一个开源项目&#xff0c;距今已有20年之久&#xff0c;功能相当丰富&#xff0c;目的在于为Web应用系统提供一种可靠且稳定的单点登录解决方案。 CAS分为…

Open CASCADE学习|在给定的TopoDS_Shape中查找与特定顶点 V 对应的TopoDS_Edge编号

enum TopAbs_ShapeEnum{TopAbs_COMPOUND,TopAbs_COMPSOLID,TopAbs_SOLID,TopAbs_SHELL,TopAbs_FACE,TopAbs_WIRE,TopAbs_EDGE,TopAbs_VERTEX,TopAbs_SHAPE}; 这段代码定义了一个名为 TopAbs_ShapeEnum 的枚举类型&#xff0c;它包含了表示不同几何形状类型的常量。这些常量通常…

目标检测——色素性皮肤病数据集

一、重要性及意义 首先&#xff0c;色素性皮肤病变是一类常见的皮肤疾病&#xff0c;其发病率有逐年增高的趋势。这些病变可能由遗传或环境因素导致黑素细胞生成异常&#xff0c;如黑色素瘤等。黑色素瘤具有极高的恶性率和致死率&#xff0c;而且恶化可能性大&#xff0c;容易…

openplc Linux 地址映射io,读写驱动数据等使用记录

1. 上一篇记录 openplc使用C语言文件读写驱动实现基本流程。 openPLC_Editor C语言编程 在mp157 arm板上调用io等使用记录_openplc c 编程-CSDN博客 2. 下面通过映射地址的方式控制io和读写驱动数据。 在runtime 环境的 hardware 硬件配置中 选择 python on Linux(PSM)&#…

柱状图中最大的矩形-java

题目描述(力扣题库 84): 给定 n 个非负整数&#xff0c;用来表示柱状图中各个柱子的高度。每个柱子彼此相邻&#xff0c;且宽度为 1 。求在该柱状图中&#xff0c;能够勾勒出来的矩形的最大面积。 解题思想: 单调栈: 利用先进后出的思想, 先算出长度更高的柱子所能勾勒…

MXNet的下载安装及问题处理

1、MXNet介绍&#xff1a; MXNet是一个开源的深度学习框架&#xff0c;以其灵活性和效率著称&#xff0c;支持多种编程接口&#xff0c;包括Python、C、R、Julia、Scala等。MXNet支持大规模分布式训练&#xff0c;同时兼顾CPU和GPU的计算资源&#xff0c;尤其擅长于模型并行和数…

1.0-spring入门

文章目录 前言一、版本要求二、第一个spring程序1.引入pom2.代码部分2.1 spring bean2.2 springContext.xml2.3 测试2.4 执行结果 总结 前言 最近想要系统的学习下spring相关的框架,于是乎,来到了B站(真是个好地方),spring会专门开一个专栏出来,记录学习心得,与大家共勉。 Spri…

实景三维技术在推进城市全域数字化转型的作用

4月2日&#xff0c;国家数据局发布《深化智慧城市发展推进城市全域数字化转型的指导意见&#xff08;征求意见稿&#xff09;》&#xff08;下称&#xff1a;《指导意见》&#xff09;&#xff0c;向社会公开征求意见。 《指导意见》作为推进城市数字化转型的重要文件&#xf…

Java学习笔记24(面向对象编程(高级))

1.面向对象编程(高级) 1.1 类变量和类方法 1.类变量 ​ *类变量也叫静态变量/静态属性&#xff0c;是该类的所有对象共享的变量&#xff0c;任何一个该类的对象去访问它时&#xff0c;取到的都是相同的值&#xff0c;同样任何一个该类的对象去修改它时&#xff0c;修改的也是…

C语言数据结构(11)——归并排序

欢迎来到博主的专栏C语言数据结构 博主ID&#xff1a;代码小豪 文章目录 归并排序两个有序数组的合并归并归并排序 归并排序的代码 归并排序 两个有序数组的合并 当前有两个有序数组arr1和arr2&#xff0c;我们创建一个可以容纳arr1和arr2同等元素个数的新数组arr。 让一个…

探索数据结构:特殊的双向队列

✨✨ 欢迎大家来到贝蒂大讲堂✨✨ &#x1f388;&#x1f388;养成好习惯&#xff0c;先赞后看哦~&#x1f388;&#x1f388; 所属专栏&#xff1a;数据结构与算法 贝蒂的主页&#xff1a;Betty’s blog 1. 双向队列的定义 **双向队列(double‑ended queue)**是一种特殊的队列…

js中使let关键字报错,改用var关键字解决

js中使let关键字报错,改用var关键字解决 项目场景&#xff1a;问题描述原因分析&#xff1a;解决方案&#xff1a;总结 项目场景&#xff1a; 使用 let 关键字报错&#xff0c;报错信息为&#xff1a; Uncaught ReferenceError: maxNum is not defined at getMaxNum (4-3.htm…

Open-GroundingDino和GroundingDino的推理流程实现

1、简单介绍 GroundingDino是一个多模态检测模型&#xff0c;可以输入文本提示输出视觉目标的位置&#xff0c;实现了文本和图像的匹配。相比较于一众的OVD算法&#xff0c;GroundingDino在文本处理上的灵活度高&#xff0c;因为大多OVD算法是采用clip文本编码器&#xff0c;这…

Stable Diffusion介绍

Stable Diffusion是一种前沿的开源深度学习模型框架&#xff0c;专门设计用于从文本描述生成高质量的图像。这种称为文本到图像生成的技术&#xff0c;利用了大规模变换器&#xff08;transformers&#xff09;和生成对抗网络&#xff08;GANs&#xff09;的力量&#xff0c;以…

2024-04-06 问AI: 介绍一下 ResNET 50 预训练模型

文心一言 ResNet50预训练模型是一种深度卷积神经网络&#xff08;CNN&#xff09;&#xff0c;它在图像处理和计算机视觉任务中取得了显著的效果。相比于传统的CNN模型&#xff0c;ResNet50具有更深的网络结构&#xff0c;通过引入残差连接&#xff08;residual connection&am…

7(8)-2-CSS 盒子模型

个人主页&#xff1a;学习前端的小z 个人专栏&#xff1a;HTML5和CSS3悦读 本专栏旨在分享记录每日学习的前端知识和学习笔记的归纳总结&#xff0c;欢迎大家在评论区交流讨论&#xff01; 文章目录 CSS 盒子模型1 盒子模型&#xff08;Box Model&#xff09;组成2 边框&#x…

软考程序员2024年5月报名流程及注意事项

2024年5月软考程序员报名入口&#xff1a; 中国计算机技术职业资格网&#xff08;http://www.ruankao.org.cn/&#xff09; 2024年软考报名时间暂未公布&#xff0c;考试时间上半年为5月25日到28日&#xff0c;下半年考试时间为11月9日到12日。不想错过考试最新消息的考友可以…

题目:学习使用register定义变量的方法。

题目&#xff1a;学习使用register定义变量的方法。 There is no nutrition in the blog content. After reading it, you will not only suffer from malnutrition, but also impotence. The blog content is all parallel goods. Those who are worried about being cheated …