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

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

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

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Yalmip使用教程(7)-求解器的参数设置

博客中所有内容均来源于自己学习过程中积累的经验以及对yalmip官方文档的翻译&#xff1a;https://yalmip.github.io/tutorials/ 这篇博客将详细介绍yalmip工具箱中常用的求解器设置选项。 1.求解器的基本设置 使用sdpsettings函数可以对求解的相关参数进行设置。最常用的设置…

【操作系统】STM32-操作系统——持续更新

【操作系统】STM32-操作系统——持续更新 文章目录 前言一、ucosii二、freertos1.介绍2.移植 总结 前言 提示&#xff1a;以下是本篇文章正文内容&#xff0c;下面案例可供参考 一、ucosii UCOSII移植到STM32F103C8T6上之移植记录&#xff08;一&#xff09; UCOSII移植到ST…

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年,35M带宽

京东云16核64G云服务器租用优惠价格500元1个月、5168元一年&#xff0c;35M带宽&#xff0c;配置为&#xff1a;16C64G-450G SSD系统盘-35M带宽-8000G月流量 华北-北京&#xff0c;京东云活动页面 yunfuwuqiba.com/go/jd 活动链接打开如下图&#xff1a; 京东云16核64G云服务器…

通用爬虫的概念简述

一、&#x1f308;什么是通用爬虫 通用爬虫&#xff08;General Purpose Web Crawler或Scalable Web Crawler&#xff09;是一种网络爬虫&#xff0c;其设计目标是对整个互联网或尽可能广泛的网络空间进行数据抓取。通用爬虫主要用于搜索引擎构建其庞大的网页索引数据库&#…

LaTeX 空格与换行

任意多个空格与一个空格的功能相同。只有字符后面的空格是有效的&#xff0c;每行最前面的空格被忽略。单个换行被视作一个空格&#xff0c;连续两个换行表示分段。~被称作一种不可打断的空格&#xff0c;排版系统不会在这种空格之间换行。西文的逗号、句号和分号等标点后面应该…

二分查找 -- 力扣(LeetCode)第704题

题目 https://leetcode.cn/problems/binary-search/description/ 给定一个 n 个元素有序的&#xff08;升序&#xff09;整型数组 nums 和一个目标值 target &#xff0c;写一个函数搜索 nums 中的 target&#xff0c;如果目标值存在返回下标&#xff0c;否则返回 -1。 示例…

【毕业论文】酒店价格采集与可视化查询设计与实现开题报告2000字

酒店价格采集与可视化查询设计与实现开题报告 研究背景 随着互联网技术的飞速发展&#xff0c;人们获取信息的途径越来越多样化。特别是在旅游行业中&#xff0c;消费者对于酒店价格的透明度和实时性要求越来越高。美团、大众点评、抖音等平台作为信息聚合和分享的重要渠道&a…

SpringMVC框架简介

前言 现在由于功能以及业务的复杂性&#xff0c;大部分系统从技术上就拆分开为前后端分离&#xff0c;单体应用我都很少没接触了&#xff0c;导致现在对springMVC那套都忘记了很多东西&#xff0c;因此这篇文章在来回忆一下SpringMVC这个框架&#xff1b;很多时候因为业务的需…

SQL语言

一、DDL数据库定义语言 1、登录mySQL mysql -u"用户名" -p"密码" -h"登录地址 -h&#xff1a;默认为本机 示例&#xff1a; 2、查看当前存在的数据库 show databases; 示例&#xff1a; 3、创建数据库database create…

Jenkins (五) - Docker SonarQube

Jenkins (五) - Docker SonarQube Jenkins 集成 SonarQube&#xff0c;编译项目并通过SonarQube分析项目 前提 基于已有的环境 Jenkins (四) - Docker SonarQube 基于 Jenkins (三) - 拉取编译 上的mockito-demo工程 配置工程 Administration -> Projects -> Manage…

Java数据结构队列

队列(Queue) 概念 队列的使用 注意&#xff1a;Queue是个接口&#xff0c;在实例化时必须实例化LinkedList的对象&#xff0c;因为LinkedList实现了Queue接口。 import java.util.LinkedList; import java.util.Queue;public class Test {public static void main(String[]…

使用GPT需要注意的事项

GPT出来之后&#xff0c;基本就告别浏览器搜索问题答案了。将问题原封不动的copy给GPT基本可以得到解答。 但是这个也有弊端&#xff0c;那就是太依赖GPT了。 1&#xff0c;使用GPT需要更强的专业知识&#xff1a;除了能问对问题&#xff0c;还要具备识别GPT&q…

VPDN(L2TP、PPTP)

1、虚拟专用拨号网络 远程接入VPN&#xff0c;客户端可以是PC机 技术&#xff1a;L2TP、PPTP 术语&#xff1a;LAC&#xff1a;L2TP的访问集中器 --- 提供用户的接入 LNS&#xff1a;L2TP的网络服务器 --- 提供L2TP服务的服务器 2、技术 1&#xff09;PPTP 点对点隧道…

深入理解Java匿名内部类(day21)

在Java编程中&#xff0c;匿名内部类是一种非常有用的特性&#xff0c;它允许我们定义和实例化一个类的子类或实现一个接口&#xff0c;而无需给出子类的名称。这种特性使得代码更加简洁、紧凑&#xff0c;尤其适用于一些只使用一次的临时对象。本文将深入探讨Java匿名内部类的…

租用阿里云的服务器多少钱?30元、61元、99元、165元、199元

租个阿里云的服务器多少钱&#xff1f;很便宜&#xff0c;云服务器2核2G3M固定带宽99元一年、2核4G服务器30元3个月、199元一年&#xff0c;轻量应用服务器2核2G3M配置61元一年、2核4G4M带宽165元一年&#xff0c;可以在阿里云CLUB中心查看 aliyun.club 当前最新的优惠券和活动…

基于Socket简单的TCP网络程序

⭐小白苦学IT的博客主页 ⭐初学者必看&#xff1a;Linux操作系统入门 ⭐代码仓库&#xff1a;Linux代码仓库 ❤关注我一起讨论和学习Linux系统 TCP单例模式的多线程版本的英汉互译服务器 我们先来认识一下与udp服务器实现的不同的接口&#xff1a; TCP服务器端 socket()&…

基于单片机电子密码锁系统设计

**单片机设计介绍&#xff0c;基于单片机电子密码锁系统设计 文章目录 一 概要二、功能设计设计思路 三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机电子密码锁系统设计概要主要包括以下几个方面&#xff1a; 一、系统概述 基于单片机电子密码锁系统是一个…

打造你的专属云开发环境:支持任意 IDE,任意云服务 | 开源日报 No.215

loft-sh/devpod Stars: 6.9k License: MPL-2.0 devpod 是一个开源的、仅限客户端的、不受限制的工具&#xff0c;可以与任何集成开发环境&#xff08;IDE&#xff09;一起使用&#xff0c;并允许您在任何云端、Kubernetes 或本地 Docker 上进行开发。 使用 devcontainer.json…

贪心算法|45.跳跃游戏II

力扣题目链接 class Solution { public:int jump(vector<int>& nums) {if (nums.size() 1) return 0;int curDistance 0; // 当前覆盖最远距离下标int ans 0; // 记录走的最大步数int nextDistance 0; // 下一步覆盖最远距离下标for (int i 0;…

qt-C++笔记之QLabel加载图片

qt-C笔记之QLabel加载图片 —— 2024-04-06 夜 code review! 文章目录 qt-C笔记之QLabel加载图片0.文件结构1.方法一&#xff1a;把图片放在项目路径下&#xff0c;在 .pro 文件中使用 DISTFILES添加图片文件1.1.运行1.2.qt_test.pro1.3.main.cpp 2.方法二&#xff1a;不在 .pr…