红绿灯识别是自动驾驶中最为基础的功能,识别方法主要有两种,一种基于视觉图像识别,一种基于v2x。
v2x,即通过红绿灯自己实时发送信号状态,再由车辆低延迟接收信号。该方法要对红绿灯进行改造,不仅对基础设备信号能力要求过高,而且对网络传输要求也不低,虽说目前5G出来了,但要大规模试用还需要一段时间,除却基础的要求外,对异常信号的处理等由于尚未实验环境,同样难以得到可以论证的方案。
基于视觉图像识别,即通过对2d图像进行检测分类识别获取交通灯的各项状态信息。该方法目前也有两种实现方案,一种基于高精地图位置获取感兴趣区域而后检测分类识别,另外一种完全基于2d图像检测分类识别。
基于高精地图位置获取感兴趣区域,而后对目标区域进行检测分类识别红绿灯状态算是业界比较通用的做法了。
以apollo开源为代表,便是使用该方法。该方法的输入包括自车位置(imu),查询地图中红绿灯的到位置信息,以及当前位置摄像头图像,输出即地图中红绿灯的id,颜色状态等信息。其中摄像头图像往往至少需要2个摄像头配合完成,包括一个短焦看近处的镜头,一个长焦看远处的镜头。目标检测通常采用yolo,ssd等单阶段网络训练得到,由于分类任务往往比较简单(基础的需要识别红、黄、绿、黑四种颜色),可以使用的分类网络也非常多。
这种方法的优势是通过地图投影到图像中,获取先验的感兴趣区域,能够有效的聚焦车辆关注的交通灯,减少其他交通灯及检测模型误检测误识别等问题,能够较好的实现自动驾驶车辆“看”灯的过程,为决策层提供较为可靠的light信息。
这种方法的缺陷是让简单的红绿灯识别功能变得十分臃肿,且扩展性降低,由于交通灯识别强依赖地图信息