百度Apollo的交通灯感知

交通灯感知模块利用摄像头来提供精确和全面的交通灯状态。通常情况下,交通灯有三种状态:红、黄、绿。然而,当交通灯不工作时,可能显示为黑色、闪烁红灯或者黄灯。有时,在摄像头的视野范围内无法找到交通灯,从而导致状态感知失效。为了覆盖所有情形,交通灯感知模块提供五种状态输出:红、黄、绿、黑、未知。

Apollo交通灯感知分为三个步骤:

1)过滤:选取感兴趣区域(Region of Interest,ROI)

2)识别:利用卷积神经网络(Convolutional Neural Network,CNN)对上述ROI进行交通灯识别;

3)修正:对上述识别结果进行修正。

(一)过滤(Rectifier

受标定、定位和高精度地图的影响,投影位置不完全可靠,需要一个更大范围的ROI来找到交通灯的精确边框。选取ROI的优点是节省算力、保证实时性。当然,也可以在全图上直接进行检测分类。但是,为了保证推理的实时性,往往将原图缩放成较小的图后放入CNN网络,这样大目标变成小目标,降低了检测分类的准确率

如果CNN在ROI中找不到任何信号灯,则输入信号灯的状态会被标记为“未知”,并跳过“Recognizer”和“Reviser”两个步骤。

(二)识别(Recognizer

通过CNN来实现交通灯的检测,CNN接收带有ROI的图像作为输入,输出一系列的边框。Apollo根据检测评分、输入灯的位置和形状来选取合适的信号灯。

CNN的输出是一个四维向量,分别代表黑色、红色、黄色和绿色的概率。当且仅当最大概率足够大时,选取最大概率的颜色作为灯的状态,否则灯的状态会被设置为黑色,意味着状态不确定。

(三)修正(Reviser

由于交通灯可能闪烁或者被隐藏,上述识别不一定完美,当前的状态可能并不是实际状态,这就需要对当前状态进行修正。如果接收到一个确定的状态,比如红色或者绿色,修正器保存并直接输出该状态。如果接收到的状态是黑色或者未知,修正器将查找已经保存的Map。当交通灯的状态持续了一段时间,修正器将输出该保存的状态,否则,将输出黑色或者未知。

由于存在一定的时序(先验性),黄色只可能出现在绿色后面、红色前面,出于安全角度考虑,任何检测到的出现在红色后面的黄色都被复位成红色,直到绿色显示。

参考:https://github.com/ApolloAuto/apollo/blob/master/docs/specs/traffic_light.md

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值