交通信号灯检测与行人过马路策略
一.概述
在智能交通领域关于交通标志,车道线,车辆前向碰撞预警,后向碰撞预警,车距检测等已经有比较广泛的研究。这些交通相关的计算机视觉方向也是目前自动驾驶汽车正在解决或者已经解决的经典问题。相比于这几个方向,对于交通灯的检测的研究相对较少。交通灯的检测在自动驾驶汽车的安全行驶中至关重要。传统CV的研究中,更多的是针对比较简单的高空架空的交通灯的识别。在复杂的城市环境中,交通灯的检测和识别仍然是一个比较困难的问题。虽然目前借助于Deep Learning 的技术,交通灯的识别效果有了很大的进步。但是复杂城市环境道路中的交通灯检测仍然达不到很高的精度。
交通信号灯的检测与识别是无人驾驶与辅助驾驶必不可少的一部分,其识别精度直接关乎智能驾驶的安全。一般而言,在实际的道路场景中采集的交通信号灯图像具有复杂的背景,且感兴趣的信号灯区域只占很少的一部分。针对这些难点,国内外的众多研究者提出了相应的解决方案。总的来说,大多基于传统的图像处理方法;但目前也有用强学习能力的卷积神经网络去进行识别,但这类方法往往需要大量的训练样本避免过拟合的风险。截至目前的大多数方法都是在各种颜色空间中利用信号灯颜色的先验进行分割得到兴趣区域,然后再通过信号灯所特有的形状特征和角点特征等进行进一步的判定。
二.信号灯检测识别技术方案
1) 颜色分割
为了消除噪声,光照等因素的干扰,首先对采集的图像进行直方图均衡化。即:对每一个通道(R,G,B)数据进行直方图均衡化,再合并为一个3通道图像。颜色特征是交通信号灯重要而显著的特征之一。要对交通信号灯进行颜色分割,首先要选择合适的色彩空间。RGB色彩空间中的R、G、B这3个分量之间相关性较高,受光照影响较大,不利于颜色分割。因此,对RGB这3个通道数据进行归一化,即R=R./(R+G+B),G=G./(R+G+B),B=B./(R+G+B)R=R./(R+G+B),G=G./(R+G+B),B=B./(R+G+B);然后,统计了不同环境条件下拍摄的交通信号灯的红色、绿色的R,G,B值,确定交通信号灯的颜色阈值。
2)感兴趣区域提取
该步骤的主要目的为对分割的红色通道图像和绿色通道图像,进行联通区域的标定,并提取区域的基本几何特征,比如长度,宽度,长宽比,面积(即白色像素个数)。
3)信号灯区域判定与识别
该步骤在前一步骤的基础上根据信号灯的特有特征过滤出真正的信号灯区域。本技术使用了3个先验知识:信号灯面积;信号灯形状;信号灯的黑色边框。
信号灯面积
本技术设置的上下限是10,200;可根据实际情况进行设定,过滤面积过大或过小区域。
信号灯形状
形状特征是交通信号灯重要而显著的另一特征,尽管气候、道路环境等会对采集的交通信号灯产生不同程度的噪声、褪色及形变,但是交通信号灯的形状和几何尺寸不会发生太大的变化。对于圆形交通信号灯使用圆形度检测,过滤圆形度过低的区域,其中圆形度是指候选区域边缘接近圆形的程度
。圆度的定义为CircleMetric=潜在白色区域面积/外接矩形框面积CircleMetric=潜在白色区域面积/外接矩形框面积,该值如果为0.785,则为圆形;设置的阈值为0.5。
信号灯的黑色边框
交通信号灯在形状上有个显著的特征,即它的灯板是一个黑色矩形框。根据交通信号灯的设计规范,利用该特征可以将交通信号灯的范围提取出来。可采用SVM分类器,进行识别。
a. 首先根据一些训练图像建立黑色边框正样本,即在工程中用鼠标框住黑色灯框,在该区域内提取颜色直方图;重复操作,得到正样本集;同样的道理,我们在训练图像中其它区域提取负样本集;最后在颜色直方图的特征空间中学习出分割超平面。
b. 在识别前加载训练好的SVM文件,而后在之前检测出的白色连通区域的上下位置提取一定大小无重叠区域,在该区域内提取颜色直方图特征;
c. 根据该颜色直方图特征,根据训练的分割超平面预测其类别;
d. 如果是,则白色区域可进一步判定为信号灯区域;若不是,则过滤掉该区域。
目前,各路研究者已经开发出了特定的方法来解决这一问题。
1)项目整体设计:
整个项目主要分为三大部分:Traffic
lights locate; Traffic lights detect; Traffic lights recognize;
Traffic lights locate: 交通灯定位部分主要是对项目所使用的图片进行预处理等操作,准确找到交通灯区域;
Traffic lights detect: 交通灯检测部分主要是对定位部分得到的交通灯区域进行精确筛选;
Traffic lights recognize: 交通灯识别部分主要是对检测到的交通灯进行红,黄,绿的颜色区分。
2)项目相关数据集:
Bosch Small Traffic Lights
Dataset
三.行人过马路实验方案
过马路是我们走在大街上参与交通路权的重要交通场景之一。车辆驾驶员和行人之前通常使用非语言交流来相互判断协商人行横道是否可以通行。随着没有人工安全员的自动驾驶汽车上路,无人车很难将车辆的驾驶意图传达给十字路口的行人,这可能会使行人和其他道路使用者的安全性降低。
比如福特在研究车辆顶端粘贴灯带来向行人示意;
捷豹的车辆用投影在地上的字条来示意行人;
还有Drive.ai而直接使用了LED灯带显示出车辆下一步的信息来解决行人过马路的问题。
但是,这些方法都有一些不符合逻辑的地方,除非每辆汽车都以相同的方式进行操作,否则此策略将行不通。例如,除非汽车制造商就前灯应如何传达某些信息或政府制定规则达成共识,否则不可能确保行人了解该信息。对于新技术,例如汽车上的LED留言板,也是如此。在不学习多个系统的情况下,需要有一套行人可以理解的标准消息。
即使车辆以相同的方式进行通信,也有几辆汽车接近十字路口并做出关于停车的独立决策可能会造成混乱。想象一下,有三到五辆自动驾驶汽车靠近人行横道,每一辆都显示自己的信息。行人在决定是否过马路之前,需要在行驶的汽车上阅读所有这些信息。
通过对行人的安全感进行研究,发现行人对红绿灯的信任超越了对自动驾驶汽车的恐惧。这就说明帮助行人信任并与自动驾驶汽车安全互动的一种方法可能是将汽车的驾驶行为与交通信号灯联系起来。
他们建立了一个虚拟现实模拟器,让人们体验街道十字路口并选择是否要过马路。在不同的模拟中,自动驾驶汽车或多或少地表现得就像一个激进的驾驶员。在更具侵略性的模式下,汽车将在最后可能的瞬间突然停车,以让行人过马路。在较不积极的模式下,它会更早开始制动,并向行人表明它将为他们停下来。
激进驾驶降低了行人对自动驾驶汽车的信任,使他们不太可能过马路。但是,只有在没有交通信号灯的情况下,这才是正确的。当有灯光时,行人聚焦在交通信号灯上,通常会过马路,而不管汽车是否在积极行驶。这表明行人对交通信号灯的信任超过了对自动驾驶汽车行为的担忧。
该团队最终研究出了更好的方法,是使汽车与交通信号灯直接通信,行人已经着眼于了解当前的交通信号灯。通过在无线网络中进行接入,汽车可以比通过等待相机看到的交通灯更早地知道交通灯在做什么。
这项技术仍在开发中,研究诸如如何在汽车和信号之间发送消息和确定消息优先级的问题。它可以有效地将无人驾驶汽车置于交通信号灯的控制之下,并具有适应当前状况的方法。例如,一个交通信号灯可能告诉正在驶近的汽车将要变成红色,从而使他们有更多的时间停车。在湿滑的道路上,汽车可能会要求灯保持绿色几秒钟,因此无需突然停止。
为了实现这一目标,工程师和政策制定者需要共同努力,开发技术和制定规则。每个人都必须更好地了解对方的所作所为。同时,他们需要了解并非每种解决方案都适用于每个地区或社会。