热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

【自动驾驶感知红绿灯】红绿灯识别知识点

红绿灯识别是自动驾驶中最为基础的功能,识别方法主要有两种,一种基于视觉图像识别,一种基于v2x。v2x,即通过红绿灯自己实

红绿灯识别是自动驾驶中最为基础的功能,识别方法主要有两种,一种基于视觉图像识别,一种基于v2x。

v2x,即通过红绿灯自己实时发送信号状态,再由车辆低延迟接收信号。该方法要对红绿灯进行改造,不仅对基础设备信号能力要求过高,而且对网络传输要求也不低,虽说目前5G出来了,但要大规模试用还需要一段时间,除却基础的要求外,对异常信号的处理等由于尚未实验环境,同样难以得到可以论证的方案。

基于视觉图像识别,即通过对2d图像进行检测分类识别获取交通灯的各项状态信息。该方法目前也有两种实现方案,一种基于高精地图位置获取感兴趣区域而后检测分类识别,另外一种完全基于2d图像检测分类识别。

基于高精地图位置获取感兴趣区域,而后对目标区域进行检测分类识别红绿灯状态算是业界比较通用的做法了。

以apollo开源为代表,便是使用该方法。该方法的输入包括自车位置(imu),查询地图中红绿灯的到位置信息,以及当前位置摄像头图像,输出即地图中红绿灯的id,颜色状态等信息。其中摄像头图像往往至少需要2个摄像头配合完成,包括一个短焦看近处的镜头,一个长焦看远处的镜头。目标检测通常采用yolo,ssd等单阶段网络训练得到,由于分类任务往往比较简单(基础的需要识别红、黄、绿、黑四种颜色),可以使用的分类网络也非常多。

这种方法的优势是通过地图投影到图像中,获取先验的感兴趣区域,能够有效的聚焦车辆关注的交通灯,减少其他交通灯及检测模型误检测误识别等问题,能够较好的实现自动驾驶车辆“看”灯的过程,为决策层提供较为可靠的light信息。

这种方法的缺陷是让简单的红绿灯识别功能变得十分臃肿,且扩展性降低,由于交通灯识别强依赖地图信息,导致自动驾驶识别交通灯必须有高精地图,而高精地图的构建过程非常繁琐,且排查红绿灯异常问题往往需要联合排查,无法实现该功能的快速闭环更新。

完全基于2d图像检测分类识别,由于都属于各家各自的技术机密,具体细节不得而知,不过从业界目前所使用的方法推到,目前纯视觉来识别light信息尚不成熟,漏检、误检问题无法得到有效的解决之前,还是让该方案还是充满神秘感吧。

除却以上基础的方案外,要想实现全方位的红绿灯基础的识别功能也并不简单,以最常见的竖灯场景为例子,通常包括红、黄、绿、黑四种颜色实时变化,而且还存在light故障(长黑灯、长黄闪),以及普通的红灯闪烁、黄灯闪烁、绿灯闪烁等识别要求,此外要想识别倒计时牌、箭头、圆头等类型也充满挑战。

此外,目前检测红绿灯,往往是自动驾驶汽车距离交通灯越近,识别的状态越好,距离越远,红绿灯在图像中的感兴趣区域越小,其识别难度越高,但是自动驾驶汽车走到停止线附近再识别出红绿灯,显然无法让车辆更加平稳的停车,只有在远处看灯准确,才能让车辆能够更加平稳的停在停止线前。红绿灯的小目标检测与识别十分重要。

此外,识别红绿灯容易受到车外天气环境的影响。例如太阳强光、弱光导致成像灯盘颜色分别困难,夜晚红绿灯旁边的灯管干扰,夜晚抓拍违章的强灯光干扰,摄像头受到水渍污渍等干扰等等。

此外,红绿灯的样式也并不统一,安装规范也各式各样。通常我们看到的交通灯为横条灯或竖条灯,其组合方式包括单灯、两灯、三灯甚至是四灯,除了我们常见的箭头、圆头,还有读条灯等,安装背景也各式各样,不能一一举例,这些都为自动驾驶识别红绿灯带来非常大的挑战。

此外,摄像头的抓拍还与红绿灯的本身的发光频率息息相关,有许多light的闪烁频率较低,人眼无法观察闪烁状态,然后如果使用低频的摄像头抓拍,非常容易出现light为黑灯状态(实际是有颜色的),这种现象属于led灯闪烁问题,抑制LED闪烁问题,就称为LFM。

【知识点1】LFM---LED闪烁抑制

从路灯、交通灯,到车载照明,低功耗、长寿命、高可靠的LED正在快速取代传统照明方式。但LED在道路上的普遍使用,却带来“LED闪烁”现象。“LED闪烁”是由LED驱动方式而产生的现象,LED灯以交流方式驱动,驱动频率一般在90Hz以上,即最慢脉冲周期为11毫秒左右,LED在11毫秒周期内实现一次亮灭,为节能及延长使用寿命,占空比通常不超过50%,如果相机曝光时间较短(例如3毫秒),则有可能曝光时间正好对上LED被关灭期,这时候图像传感器抓到的就是LED灭掉的图像,如果是LED阵列,在这种情况下拍到的图像就是一部分亮,一部分暗,这就是“LED闪烁”现象。

【友情提示】遇到LED闪烁问题,通常有两种解决方案。一种为更换带有LFM功能的摄像头;一种是使用 斩波曝光(chopped)来缓解LED闪烁问题,但治标不治本。当然还有一种额外方法,是要求业主更换信号灯供应商。

【知识点2】斩波曝光(chopped)

在智能交通领域常会遇到拍摄交通信号灯的需求。大部分信号灯直接使用220V市电供电,因此会存在10ms的光能量周期(美国是110V,周期8.3ms)。偶尔也会有信号灯厂家偷工减料,使用半波整流器件将电频率的负半周过滤不用,这就导致信号灯每亮10ms之后就会熄灭10ms。虽然人眼看不出来,但sensor看的非常清楚。

由于信号灯存在10ms的明暗周期,当sensor曝光时间很短时,就会遇到某一帧图像里信号灯碰巧全都不亮的尴尬场景,如下图所示。

一般在晴朗的夏天,sensor曝光时间可能会需要短于1ms才能保证画面不过曝,此时遇到信号灯近似熄灭的概率已接近50%。而在夜晚则曝光时间通常需要大于10ms,所以不会遇到信号熄灭的问题,相反会遇到信号灯光太强以致sensor过饱和,全部信号变成白灯的问题。

除了红绿灯之外,很多汽车上使用的LED大灯或者信号灯也是有频率的,而且平均点亮的时间(占空比,duty cycle)可能更短,如下图所示,这种情况sensor抓拍到LED(信号)灯熄灭的概率会更大。

为了缓解这个问题,有人提出了斩波曝光的工作模式,其原理是把正常曝光所需的曝光时间(比如1ms)分散到11ms的固定时间间隔内执行,通过多次短暂曝光的效果累加实现1ms等效曝光时间,且能保证采样到信号灯最亮的时刻,如下图所示。

这种方法的好处是增大了捕捉到信号灯点亮的概率,但是由于捕捉的时间短,所以画面上信号灯的亮度会比正常的要弱。所以这种方法并没有完美解决问题,只是一种缓解(mitigation)的方法。

参考资料

[1] Understanding CMOS Image Sensor @ 刘斯宁


推荐阅读
  • 低分辨率和畸变严重的棋盘格角点的自动检测
    文章:AutomaticDetectionofCheckerboardsonBlurredandDistortedImages作者:MartinRufl ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • OpenMap教程4 – 图层概述
    本文介绍了OpenMap教程4中关于地图图层的内容,包括将ShapeLayer添加到MapBean中的方法,OpenMap支持的图层类型以及使用BufferedLayer创建图像的MapBean。此外,还介绍了Layer背景标志的作用和OMGraphicHandlerLayer的基础层类。 ... [详细]
  • SLAM优秀开源工程最全汇总
    https:zhuanlan.zhihu.comp145750808 1、CartographerCartographer是一个系统,可跨多个平台和传感器配置以2D和3D形式提供实 ... [详细]
  • 聊聊 中国人工智能科技产业 区域竞争力分析及趋势
    原文链接:聊聊中国人工智能科技产业区域竞争力分析及趋势最近看了一个关于国内AI的报告《中国新一代人工智能科技产业区域竞争力评价指数(2021ÿ ... [详细]
  • 在2022年,随着信息化时代的发展,手机市场上出现了越来越多的机型选择。如何挑选一部适合自己的手机成为了许多人的困扰。本文提供了一些配置及性价比较高的手机推荐,并总结了选择手机时需要考虑的因素,如性能、屏幕素质、拍照水平、充电续航、颜值质感等。不同人的需求不同,因此在预算范围内找到适合自己的手机才是最重要的。通过本文的指南和技巧,希望能够帮助读者节省选购手机的时间。 ... [详细]
  • iOS开启Google位置服务器和显示定位权限的方法
    本文介绍了在iOS开发中如何开启Google位置服务器和显示定位权限的方法,包括导入CoreLocation和MapKit库、在界面导入头文件和在info.plist文件中添加授权等步骤。同时还介绍了iOS11中NSLocationAlwaysAndWhenInUseUsageDescription的功能变化。阅读本文可以帮助开发者了解如何在iOS应用中使用Google位置服务器和处理定位权限相关的问题。 ... [详细]
  • 4554:[Tjoi2016&Heoi2016]游戏 ... [详细]
  • Shodan简单用法Shodan简介Shodan是互联网上最可怕的搜索引擎,与谷歌不同的是,Shodan不是在网上搜索网址,而是直接进入互联网的背后通道。Shodan可以说是一款“ ... [详细]
  • 最近学习了关于使用最为流行的jquery发送请求,在实践中以最为简单的聊天室作为测验的辅助工具,对相关网页开发有一个初步的认识,希望大家能够一起学习进步。首先介绍一下 ... [详细]
  • 推荐 :以数据驱动的方式讲故事
    直觉vs数据首先,你有思考过一个问题吗?当你的直觉与你所掌握的数据矛盾的时候,你是听从于直觉还是相信你所掌握的数据呢?201 ... [详细]
  • 题目描述http:acm.nyist.netJudgeOnlineproblem.php?pid306Dr.Kong设计的机器人卡多非常爱玩,它常常偷偷跑出实验室,在某个游乐场 ... [详细]
  • 尾款|建材_作为程序员,如何开展自己的副业?月赚三万的真实故事
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了作为程序员,如何开展自己的副业?月赚三万的真实故事相关的知识,希望对你有一定的参考价值。作为一名 ... [详细]
  • 一维和二维数组的前缀和与差分 ... [详细]
  • 获得要素图层通过UID获取1<summary>2获得要素图层UID获取(第一种方法)3&l ... [详细]
author-avatar
itbases
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有