李堃,黎向锋,杨振泰,毕高杰,谢昌刚
(南京航空航天大学 机电学院,江苏 南京 210016)
据美国国家公路交能安全管理局的事故统计:虽然夜间驾驶在整个公路交通中只占25%左右,但是却有42%的交通事故和58%的重大交通事故发生在夜间道路上[1]。主要原因在于夜间行车时的可视距离相较于日间行车大为缩短,且夜间行车时的光照条件更为复杂。尤其是对面来车时前照灯的灯光容易使驾驶员产生不适感[2-3],对驾驶员的判断产生干扰。目前,辅助驾驶技术发展迅速,摄像头作为辅助驾驶的重要工具可通过对其采集到的视频数据进行处理,能够对道路中影响驾驶员驾驶的目标进行快速准确地检测,如:车辆、行人、路标及障碍物等。但是,多数的目标检测技术都是基于日间行车的情况,日间行车时光照相对充足、均匀,摄像头采集的视频数据中噪声较少,智能算法能够成功应用于场景,实现高效的目标检测,为驾驶员提供辅助的驾驶决策。相对而言,夜间行车的情况更为复杂,对面来车的照明灯和路灯等光源不仅会对驾驶员产生干扰,同时摄像头在这些光源下采集到的视频数据中也包含了大量的眩光。
根据北美照明工程学会定义:眩光是指在视野内远大于眼睛可适应的照明(图1)。夜间驾驶过程中采集到的夜视图像中存在的眩光主要包括白色、红色和黄色3种情况。其中白色和红色眩光分别由车辆的照明灯和刹车灯产生,较为常见;黄色眩光是由转向灯或者驻车灯产生。相对于前两种情况,黄色眩光出现频率低,光源亮度较小,对驾驶员影响不大。眩光问题通常的解决方法是改善照明方案或者进行遮光处理等[4],但是夜视图像中光源的不确定性使得传统的解决方法很难达到预期效果。本文针对夜视图像中的眩光问题,通过对比多种方法[5-9],选择去雾算法作为去除白色眩光的方法,并简化计算过程,在保证去雾效果的前提下,大幅提升了处理速度。同时,针对红色眩光提出了一种针对性的去除方法,能够有效抑制夜视图像中的红色眩光,改善图像视觉效果(本刊为黑白印刷,图片如有疑问请咨询作者)。
图1 存在眩光的夜视图像
如图1所示,由于路灯或者对面来车的照明灯等光源影响,夜视图像中包含了大量的眩光。图1(a)的夜视图像展示了道路旁路灯产生的白色眩光和前方车辆尾灯产生的红色眩光,图1(b)展示了对面来车的前照灯产生的白色眩光。这是两种典型夜视图像中包含的眩光情况。眩光的存在使得夜视图像的视觉效果很差,整体的对比度偏低,存在大量噪声。智能算法无法在这样的场景下产生理想识别效果,需要对其中存在的眩光进行去除。
通过观察噪声分布的特征可以发现,夜视图像中的眩光噪声呈现明显的雾状特征,因此,可以使用去雾算法进行去除。常用的去雾算法有暗通道先验去雾[10]、直方图均衡去雾[8]、同态滤波增强以及基于Retinex[9]的去雾方法等。分别使用上述常用去雾方法处理夜视图像,处理效果如图2所示。
图2 不同方法去雾效果
观察图2可以发现,针对夜视图像中存在的眩光问题,暗通道先验去雾算法的处理效果最好,因此本文选择暗通道先验去雾算法作为去除夜视图像中眩光的基准方法。
图3所示为两幅夜视图像的暗通道图像。原始图像的暗通道图像计算公式如下:
其中:Jdark(x)为暗通道图像;Ω(x)为以像素x为中心的窗口。
图3 暗通道图像
暗通道先验去雾算法的核心为:
Jdark→0
由此推导出的恢复公式为:
其中:A为全球大气光成分;I(x)为待去雾的图像;J(x)为无雾图像;t为折射率;t0为常数,取t0=0.1。
传统暗通道先验去雾算法计算流程如图4所示。尽管暗通道先验去雾在去雾效果上表现优异,但是处理效率不高,无法满足实际应用的要求。本文对暗通道先验去雾方法中的计算部分做了简化处理,使得其在保证处理效果基础上满足实时性的要求。
图4 暗通道先验计算流程图
处理图像数据时,在对图像细节处理效果要求不高且图像尺寸相对较大时,常常使用降采样方法以减少数据的计算量。本文使用的原始数据是由上汽提供的行车记录仪实测数据,每帧图像的尺寸为1280×720,降采样的比例为0.5。实验所使用的计算机配置为inteli5处理器,2.50GHz,4GB内存。实验表明,对原始数据降采样,得到的结果图像与直接使用原始数据计算得到的结果图像差异很小,满足预期效果;同时计算速度得到大幅提升(表1)。
表1 降采样前后算法运行平均时间 单位:ms
对暗通道图像进行最小值滤波/导向滤波处理是对透射率的细化。为了解决在景深突变的情况下,去雾图像中物体边缘出现的halo效应,同时也是数据计算中耗时较长的部分。依照实际情况,夜视图像中所涉及到的场景中景深的突变比较小,如图5所示,直接省略该步骤对处理结果的影响很小,同时提高了处理效率(表2)。
图5 去除导向滤波前后处理效果
表2 (原始图像)去除导向滤波前后算法运行平均时间 单位:ms
处理方法时间包含导向滤波166.320去除导向滤波108.818
夜视图像由于特殊场景的图像细节不丰富,因此原始数据的降采样不会对处理结果产生较大影响;同样在计算透射率矩阵时,对数据再次进行降采样,然后计算透射率;最后,经过插值得到粗略的透射率矩阵;使用粗略计算得到的透射率矩阵进行夜视图像的恢复,也能得到预期效果(图6)。透射率降采样前后算法的运行平均时间如表3所示。
图6 透射率降采样前后处理效果
表3 (降采样数据)透射率降采样前后算法运行平均时间 单位:ms
处理方法时间直接计算38.665 7降采样后计算26.682 7
通过简化暗通道先验算法的计算过程,在保证夜视图像处理效果的前提下,大幅提升了算法的运行速度,测试视频在实验设备上的帧率为36FPS,达到流畅显示的要求。
对比图2中处理后的结果图像,两幅图像中的白色雾状眩光都得到了很好去除,但是相比于第2幅图像,第1幅结果图像中仍然存在着红色眩光。红色眩光主要是由车辆尾灯的灯光在空气中尘埃的散射作用下形成的,存在于车辆尾灯的周围,呈现出红色的光晕;同时,在夜间行驶的情况下,路面也会反射少量的红色光,使得夜视图像中前方车辆尾部区域不均匀的分布着红色眩光。图7展示了多车行驶时较严重的红色眩光问题。
图7 多车下的红色眩光
在单车或者多车的情况下,去除白色眩光后的夜视图像中,红色眩光的存在都会降低图像的视觉效果,使驾驶员在视觉上产生不适感。红色眩光以及路面反射红光的存在,会影响依靠颜色分割的相关算法的实现,对智能算法的实现精度也会造成影响。
红色眩光和白色眩光产生的原因不同,但是这两种眩光的特征相似:均呈现雾状特征。传统的去雾算法都是针对白雾情况,本文针对夜视图像中车辆尾灯的光晕(眩光)以及路面的反射红光,提出了去除特定颜色眩光的方法,能够有效去除夜视图像中的红色眩光,改善图像的视觉效果。
本节提出的方法基于暗通道先验去雾算法,遵循暗通道先验去雾的基本思想,通过获取等价的暗通道图像及相关参数,对特定颜色的雾状噪声进行去除。
图8是经过第1次去雾处理后3个通道的单通道图像。
图8 第1次去雾后图像的3个通道图像
观察3个通道的图像,夜视图像的G、B单通道图像符合正常夜视图像的单通道图像特征,R通道图像中存在着大量雾状的白色噪声,对应于夜视图像中的红色眩光。因此,去除夜视图像中的红色眩光问题可以通过去除R通道图像中的白色噪声而得到解决。
暗通道先验去雾算法适用于三通道图像,参考上节的工作,简化步骤的暗通道先验去雾算法能同时保证处理效果和处理效率。R通道图像上的雾状噪声为雾状特征,对暗通道先验去雾算法进行适当的调整,使其能够应用于单通道图像,从而完成特定颜色雾的去除。
传统暗通道图像的获取方式无法应用于单通道图像。暗通道先验算法以图像的暗通道图像作为标准来达到去除原始图像中雾的目的。对于单通道图像中存在的白色雾状噪声,需要一个衡量标准使其能够达到暗通道图像中雾的衡量标准。经过实验,提出了一个等价单通道图像的暗通道图像获取公式:
其中:Kdark(x)为等价暗通道图像,当Kdark→0时,图像中的红色眩光得到去除。
图9所示为图1中两幅夜视图像的等价暗通道图像,对比图9中两幅等价暗通道图像,眩光部分在等价暗通道图像中清晰地展现出来。
图9 图像(图1中)的等价暗通道图像
传统的大气光值A的获取方式:
1) 从暗通道图像中按照亮度的大小选取前0.1%的像素。
2) 在原始图像中寻找对应点亮度值的平均值作为A值。
在本节,实验处理的原始数据为R通道图像,其亮度值的含义为对应点的灰度值;本文使用的图像均为归一化的图像,即R通道图像的灰度值分布在0~1。在实验过程中,通过观察多个夜视场景下的A值,发现A基本上都分布在0.99~1之间,因此直接将A=1作为已知参数进行后续的实验计算(图10)。
图10 不同A值处理效果
对比图10中使用不同A值的计算结果,将A作为常数1处理图像和使用传统方式获取A后再处理图像,结果差异很小,实验将A作为常数进行计算。
实验中,后续的图像处理中的计算同样采用第1节所述的简化方法进行,两次去雾处理平均耗时42ms,结果视频的帧率约24FPS,基本达到流畅显示的要求。两次去雾的处理结果如图11所示。
摄像头是汽车的“眼睛”,在日间行车的情况下,能够以视觉的方式采集前方道路信息,从而识别出前方车辆及灯语等,但在夜间行车情况下,由于行车周围环境光照的影响,使摄像头采集到的图像数据中包含了大量眩光,严重影响车辆检测和灯语检测算法的实现,削弱摄像头在夜间行车时的辅助驾驶功能。本文针对这一问题,使用暗通道先验去雾算法去除图像中的白色眩光,经过对计算过程的简化,同时保证了夜视图像的处理质量和效率;针对红色眩光,提出了去除特定颜色眩光的方法,能够有效去除夜视图像中的红色光晕及地面反光。经过预处理,摄像头采集到的夜视图像整体视觉效果得到有效提升。实验证明,本文算法能够有效应用于上汽提供的夜间行车记录仪采集的视频数据,为夜间车辆检测及灯语识别算法的实现创造了良好条件。
图11 去雾效果展示