许凤麟, 苗玉彬, 张 铭
(上海交通大学 机械与动力工程学院, 上海 200240)
轮胎式龙门起重机(RTG)常用于执行港口集装箱装卸任务,通常需要横跨各集装箱区域进行往复行驶.RTG的行进路线受到严格限制,一旦偏离轨道就会发生撞箱事故,造成严重的经济损失.为了保证RTG自动驾驶的安全性,需要由高精度的视觉检测系统来识别引导线的准确位置与走向,以确定RTG的实时位置和行进方向.夜间环境下RTG探照灯的照明距离有限,无法为远端引导线提供有效的光照补偿.同时,集装箱对环境光的遮挡造成了引导线部分区域亮度过低,颜色与边缘无明显的区分特征,使得对引导线边缘的检测十分困难.将低照度、低对比度的图像进行色彩增强可以有效地降低后续引导线边缘识别算法的复杂度,提高系统的整体运算效率,以达到实时性检测的运算要求.
Retinex算法是图像色彩增强领域应用最为广泛的算法之一,不但可以弥补光照不均对彩色图像的影响,而且可以增强整体图像的对比度,但存在容易使图像色彩失真的问题.文献[1]提出一种截尾全变差Retinex模型,通过模型描述图像的阴影特性,进而实现复原照度不均匀图像的目的.文献[2-3]结合了引导滤波(GIF)与Retinex算法,将经过GIF处理的图像作为照度分量,对传统算法进行了改进,有效地改善了Retinex算法在高对比度边缘的失真问题,提升了色彩增强的效果.文献[4]在GIF算法的基础上提出了加权引导滤波(WGIF)算法,针对GIF在全图范围内采用相同正则化参数的局限性,通过引入权重因子进一步提升滤波结果的边缘质量,避免出现光晕效果.然而WGIF算法中基于方差的权值估计不能很好地反映图像的强边缘区域[5],对于低对比度图像的边缘增强效果并不明显.因此,本文通过改进WGIF算法,提高了算法的边缘保持能力,并进一步提升了Retinex算法的性能.
针对RTG夜间自动驾驶时,在低照度环境下的引导线边缘不突出、引导线难以检测等问题,提出一种彩色加权引导滤波-Retinex(CWGIF-Retinex)算法.首先,将原图像用针对彩色图像的WGIF算法进行平滑处理;然后将滤波后的图像作为Retinex算法中的照度图像输入,计算得到反射图像;最后,将反射图像进行Gamma校正,进而得到经过色彩增强的图像.该算法在充分保持原图像边缘信息的同时,既消除了传统算法中可能出现的光晕伪影又避免了图像的颜色失真问题,使得经过色彩增强后的图像能够更好地还原实际场景.
GIF是一种需要引导图的滤波器[6].定义输入的引导图为I,滤波前的图像为p,滤波后的图像为q,则q与I在以点k为中心的窗口ωk内满足局部线性关系:
qi=akIi+bk, ∀i∈ωk
(1)
式中:ak和bk是固定系数;像素点i遍历窗口ωk.当引导图像中存在边缘信息时,输出结果也会在同一位置出现边缘信息.系数ak和bk应满足使得q与p之间的差E(ak,bk)最小的条件,因此问题可转化为
(2)
上式最小化的解为
(3)
(4)
WGIF算法能够提高GIF算法的边缘保持效果[4].该算法基于图像局部窗口内的方差,定义了权重因子,使有明显纹理区域的图像方差更大,对应的权值也更高,由此计算得到的ak值也较大,纹理信息在一定程度上得以保留.但事实上,更大的方差并不一定与更强的图像边缘信息相对应.对于低照度的夜间图像,其灰度图的亮度差异并不明显,仅通过计算方差很难得到合适的权值.
此外,与引导滤波算法类似,WGIF算法也是基于局部线性关系的,即只有原图像存在边缘信息时,经过滤波后的图像才存在边缘信息.因此,选取合适的边缘检测算法对提升滤波算法的边缘保持效果至关重要.针对彩色图像的矢量梯度(VG)方法[7]可以有效地提升图像边缘信息检测的准确性,但对于照明不均以致局部偏暗或对比度较弱的夜间图像,低亮度区域的色彩信息往往缺失严重,难以对弱光照边缘信息进行准确的检测.
为了进一步增强边缘检测的准确性,本文先对原始图像进行色彩增强处理,弥补低照度区域的色彩信息,减弱阴影边缘的对比度,再用VG方法检测反射图像中的边缘信息.经过Retinex算法处理后,VG方法能够更好地识别图像阴影区域内的边缘信息,减少遗漏与误检测,避免对阴影边缘的错误增强处理.经过滤波后的图像边缘更清晰,有利于进一步的场景标志分析与引导线位置识别.基于原始的WGIF算法,将边缘权重因子修正为
(5)
式中:Rθ(i)是原始图像经过Retinex算法计算后得到的反射分量Rθ在i点的矢量梯度;N为像素总数;ε取值为Rθ图像灰度最大值的 0.1 倍.
WGIF算法及CWGIF算法对同一幅标志线图像的滤波效果对比图如图1所示.在平滑效果相近的前提下,CWGIF算法能够更好地保留标志线的边缘信息.为了对比这2种滤波算法对边缘信息的处理效果,在图1的3幅图中各取同一位置的某一行数据(图中白线位置)得到3条灰度值变化曲线,其数据分析结果如图2所示.
图1 2种算法效果对比图Fig.1 Comparison of image processing effect between the two algorithms
图2 2种滤波效果的单行数据对比Fig.2 Single row data comparison between the two algorithms
由图2(a)和(b)可知,2种滤波方案对原图像均有很好的平滑效果,经过滤波后图像局部区域的像素波动都得到了有效抑制.但是,这2种滤波方案对于没有明显边缘信息的图像区域其处理效果则无显著区别.由图2(b)和(c)可知,滤波后图像的边缘梯度并不会被明显削弱,CWGIF算法能够对彩色图像的边缘起到更好的保护作用.
Retinex理论将1幅图像I(x,y)分为2部分,可由照度分量L(x,y)和反射分量R(x,y)的乘积表示,
I(x,y)=R(x,y)L(x,y)
(6)
式中,L(x,y)来自于自然光照,其强度变化一般而言相对缓慢,在频域上表现为图像的低频成分;R(x,y)代表了场景中的实际色彩信息[8],其值取决于成像物体的表面材质,不同物体之间的反射率差异很大,在频域上表现为图像的高频成分.由于R(x,y)反映的是去除光照影响后物体的真实色彩,根据式(6),L(x,y)的估算越准确,计算得到的R(x,y)的色彩恢复效果越好.因此,如何获得准确的L(x,y)是Retinex算法的关键.Retinex算法的主要缺陷在于算法增强后的图像会在高对比度边缘区域出现严重的光晕伪影[9].为了解决这一问题,传统方案采用边缘保持的双边滤波作为环绕函数来代替原始算法的高斯滤波[3].但是,双边滤波的平滑效果不理想,保留了大量由于非光照原因而产生的边缘,往往与实际的光照环境不符,致使对L(x,y)的估计不够准确.
本文用GIF代替双边滤波实现对照度分量的估计,可通过盒滤波与积分图像技术求解GIF.GIF算法的时间复杂度为O(N),小于双边滤波的算法复杂度O(Nr)(r为窗口大小),因此GIF算法的计算效率高于双边滤波.经高斯滤波、双边滤波及引导滤波处理后的路面标志线对比图如图3所示.图像中引导线边缘突变区域的宽度在7个像素左右,为了在保护边缘信息的同时起到边缘平滑的效果,设3种滤波的窗口大小均为5像素×5像素.
为了对比这3种滤波对边缘信息的处理效果,在图3中提取与图1同一位置的单行数据得到相应的拟合曲线,截取图像相应的左半边数据进行比较,其分析结果如图4所示.
图4 不同滤波器滤波效果的单行数据对比Fig.4 Single row data comparison of different filtering effects
由图4可知,GIF能够在尽可能保留原图中标志线边缘信息的同时,在标志线边缘以外的区域获得很好的平滑降噪效果.这是高斯滤波和同样具有边缘保持特性的双边滤波所无法做到的.正因为具备了这种特性,GIF更能反映图像的低频信息,也更适合作为Retinex算法中照度图像的输入.
然而,GIF在获得比较好的平滑效果的同时,也牺牲了一定的边缘细节信息.相比之下,利用GIF算法作为环绕函数能够获得更好的滤波效果,进而提升反射分量的图像质量.基于此,本文提出利用针对彩色图像的CWGIF算法估计照度分量,在起到平滑效果的同时有针对性地加大图像边缘区域的权重,突出显示图像的边缘;进而依据Retinex原理计算得到反射分量;最后通过Gamma校正来实现夜间图像的色彩增强.具体的CWGIF算法流程如图5所示.
图5 CWGIF算法流程图Fig.5 The flow chart of CWGIF algorithm
为了验证CWGIF算法权值的有效性,在宁波梅山保税港区的集装箱码头进行图像采集任务,并对弱光照条件下的码头集装箱区域的引导线进行了边缘信息检测.利用灰度图的LoG算子、VG及Retinex-VG 三种边缘提取算法对同一幅夜间图像的边缘进行提取,其效果对比图如图6所示.
由图6(b)和(d)可知,后者的边缘轮廓信息更完整,主要的边缘特征更突出,对噪声有明显的抑制作用,且对弱光照区域的边缘信息检测效果更好.此外,与图6(c)相比,引入Retinex算法后对噪声的敏感度显著降低,在保持边缘信息不发生缺失的前提下大大减少了错误边缘的输出,同时还能起到抑制由光照形成的阴影边缘的作用.综上所述, Retinex-VG算法能够更好地保留图像中有效的边缘信息,减少噪声的出现.
图6 不同算法边缘提取效果对比图Fig.6 Comparison of different edge extraction algorithms
主观分析CWGIF-Retinex算法在色彩和边缘两方面的处理效果,选取RTG在3个不同行进区域时的引导线图像,将该算法对照度不均匀区域的处理效果与双边滤波-Retinex算法进行对比,结果如图7所示.
图7中双边滤波的窗口仍然选取为5像素×5像素以保证边缘保持效果.与原图像相比,CWGIF-Retinex算法能够更好地还原图像中亮度偏低区域的色彩,使得因接近集装箱底部而光照过暗难以识别的白色引导线与邻近地面的对比度得到显著增强,图像整体色彩分布更均衡,达到了图像色彩增强的目的.与双边滤波-Retinex算法相比, CWGIF-Retinex算法能获得更好的色彩增强效果,弱光照区域引导线的颜色特征更显著.此外,应用双边滤波对图像进行照度估计造成了引导线边缘的模糊,致使引导线边缘的准确识别变得十分困难.相比之下,CWGIF-Retinex算法能够进一步增强原图像的边缘特性,尤其在弱光照区域效果更为显著.
为了客观地评价色彩增强后的图像质量,通常采用对比增强因子F与色彩增强因子CEF[10]作为评价标准.其中:对比增强因子F反映的是图像轮廓对比度的质量;色彩增强因子CEF反映的是图像增强前后的色彩丰富度.表1和2所示为通过计算得到的双边滤波-Retinex及CWGIF-Retinex算法相对于图7中3张港口图像的F与CEF值.由表可知,2种参数值均大于1,即都起到了对比度与色彩增强的效果.同时,CWGIF-Retinex算法在不同场景下均比双边滤波-Retinex具有更好的性能.
色彩增强处理对提升引导线区域的检测精度是评价算法效果的重要标准.由于夜间光照成分以黄光为主,以G-B为主要指标提取引导线能够得到很好的效果.经比较发现,经过CWGIF-Retinex处理后,图像中的引导线检测精度相比原图及双边滤波-Retinex处理图均有了明显的提升.从图7中A1,A2,A3这3幅图像中提取出来的中心引导线如图8所示.
图7 3种不同路段下的色彩增强算法效果对比图Fig.7 Comparison of color enhancement algorithms on three differentareas
表1 2种算法的对比增强因子FTab.1 Contrast enhancement factor F of the two algorithms
表2 2种算法的色彩增强因子CEF
Tab.2 Color enhancement factor CEF of the two algorithms
算法CEFA1A4A7双边滤波-Retinex1.03351.07951.0047CWGIF-Retinex1.09721.09671.1271
图8 色彩增强前后引导线提取效果对比图Fig.8 Comparison of guideline detection before and after color enhancement
通过以上分析可知,CWGIF-Retinex算法实现了对夜间港口图像的色彩增强与边缘增强,相较于传统算法的处理效果有了进一步的提升,能够满足基于视觉的引导线边缘准确检测的工程需要.经过CWGIF-Retinex算法处理后,原始图像的色彩分布得到了明显的优化,达到了图像色彩增强的预期效果,同时还原了更多的图像细节,进而提高了引导线位置检测的精度与稳定性.
为了解决RTG在港口集装箱区域的视觉导航任务中因夜间光照条件较差而难以提取地面引导线边缘的问题,提出一种针对彩色图像的CWGIF-Retinex算法,以实现对低照度、低对比度图像的色彩增强与边缘增强效果.将经过Retinex算法处理的图像用VG算法提取边缘,并以此作为WGIF算法的权值,构成CWGIF算法.利用此算法对原图像滤波,估计空间中的照度分布,用单尺度Retinex算法进一步计算场景中物体的反射分量,再通过Gamma校正来调整反射图像的对比度,最终得到光照影响被大幅削弱的夜间彩色图像,从而构建了完整的夜间环境色彩增强与边缘增强算法流程.算法的实际处理效果表明,该算法能够在弱光照条件下提高图像对比度,同时对原图像中的边缘信息形成加强效果,以保证后续引导线空间位置检测任务中的测量精度,避免了一般色彩增强算法中引导线边缘信息缺失,甚至产生光晕伪影的缺陷.CWGIF-Retinex算法使得通过摄像头实现港口夜间引导线位置的准确检测更具有可行性,提高了夜间低照度条件下的引导线特征检测的精确度和稳定性,为轮胎式龙门起重机的计算机视觉辅助驾驶提供了技术支持.