基于Retinex的低光照车位图像增强 *
2023-06-25苗作华朱良建赵成诚刘代文李诒雯陈澳光
苗作华,朱良建,赵成诚,刘代文,李诒雯,陈澳光
(1. 武汉科技大学资源与环境工程学院,武汉 430081; 2. 冶金矿产资源高效利用与造块湖北省重点实验室,武汉 430081;3. 武汉光庭信息技术股份有限公司,武汉 430000)
前言
当汽车到达停车位附近时开启自动泊车系统,其过程可以简单归纳为车位感知、路径规划和执行控制。基于车载相机拍摄图像进行车位识别有着高识别率、低成本、使用寿命长等特点,被广泛应用于自动泊车系统[1]。但在如雨雾天气、地下车库等光照不足环境下,摄入图像中的车位信息质量差,影响车位识别,导致整个自动泊车功能的瘫痪。在各种环境影响因素中,低光照环境较为常见且难以避免,例如阴天、夜晚或者是灯光不足的地下车库等场景。低光照环境导致摄取图像整体亮度过暗,车位信息不够清晰,若能采用低光照图像增强算法,凸显车位线,则可以大幅提高车位线识别率,降低环境因素的影响。
姬伟等[2]在研究苹果采摘机器人夜间环境下的检测率时,提出一种基于引导滤波的Retinex 改进算法,采用具有边缘保持功能的引导滤波来估计照度分量,但最终算法运行时间需要13 s 左右。Zhou等[3]提出一种低照度图像的自适应增强算法,通过在HSV 颜色模型中增强V 通道,实现了低照度图像的全局亮度提升和局部对比度增强,但算法自适应参数计算量较大,算法时间复杂度较高。江浩斌等[4]将车载鱼眼相机图片转换为俯视图,并利用梯度模板识别车位角,通过车位角还原出车位,但没考虑鱼眼相机拍摄成图过程中,远端车位角信息易丢失,且当光照不足时图像过暗导致梯度下降,不易识别。黄晨等[5]使用去除背景光照的图像二值化方法得到带有车位信息的二值化图像,以此进行车位识别,但在低光照环境中,图像车位信息并不明显,且背景光照严重不均匀,该算法在低光照场景下的适用性有待商榷。
如上述方法,常规低光照增强算法因时间过长无法应用于车位识别系统,而车位识别算法又极易在低光照环境下失效。鉴于此,本文中提出一种融合限制对比度自适应直方图均衡化(CLAHE)和改进单尺度Retinex(SSR)的车位线图像增强算法,满足车位线增强的同时极大程度提高算法时间性能,为低光照环境下的车位准确识别奠定基础。
1 车位图像增强算法分析
自动泊车过程中,汽车低速状态下驶过停车位,车载侧面鱼眼相机全程拍摄,车位识别系统对视频帧图片进行检测。本文增强算法应用于车位检测算法之前,可以理解为检测算法中对输入图像的预处理过程。为了满足泊车过程中车位实时感知,保障汽车泊车过程流畅行驶,对算法时间性能要求极高。参考30 fps 帧率视频,想要实现单帧图像实时处理则须控制算法时间在33 ms 以内,当增强算法加检测算法总时间无法满足逐帧检测时限要求时,被迫对视频帧采样处理,而最终算法时间性能将决定采样间隔。显然,采样间隔越小,泊车过程中检测的图像越多,车位被检测概率和识别精准度就越高,故而时间性能是本文算法的核心诉求之一。
对于数据输入,首先根据车载鱼眼相机参数,畸变矫正后进行仿射变换,将鱼眼图转换为鸟瞰图;并提出一种融合限制对比度自适应直方图均衡化(CLAHE)和优化入射分量的单尺度Retinex(SSR)增强算法,高效实现对低光照图片中车位线增强;最后基于亮通道将图像灰度化,凸显车位,以灰度图作为增强算法最终结果输出。为了验证本文增强算法效果,在实验中加入车位线检测模块,本文使用自适应Canny 算子勾勒车位线,并通过Hough 直线检测,检测出近端横向车位线和两侧竖向车位线,最后使用模板匹配划定车位框,用检测结果评定增强效果。文中算法如图1所示。
图1 本文算法示意图
2 低光照车位图像增强算法
2.1 鱼眼图转鸟瞰图
在自动泊车过程中,车辆缓慢驶过停车区域,由放置于汽车左右两侧后视镜上的鱼眼相机获取带有车位信息的鱼眼图像,如图2所示。
图2 车位识别过程
鱼眼相机可以将很大角度范围内的光线压缩进一个相对较小的空间,生成的鱼眼图信息丰富,但会导致图像产生桶形畸变。如图3 摄取鱼眼图所示,除中心区域图像保持正常,外圈原本水平或垂直的景物都发生形变。理论上本文增强算法可以应用于鱼眼原图,使车位线增强,但实验中发现,仅针对车位检测过程,鱼眼图中无效信息过多,像素量偏大,严重降低增强算法的运行效率,且畸变后的车位线没有原本的平行和垂直关系,不利于后续车位检测算法进行特征识别。鉴于此,本文对于不同型号车辆搭载的鱼眼相机,使用棋盘标定法提前获取相机参数[6],经过畸变矫正[7]后进行仿射变换[8],得到鸟瞰图,限定鸟瞰图作为本文算法的数据输入。
图3 鱼眼图转鸟瞰图
如图3 所示,在光照充足时,转换后的鸟瞰图车位信息清晰,易于检测,但在低光照场景下,鱼眼图与转换后的鸟瞰图整体偏暗且车位信息模糊,难以识别车位。
2.2 限制对比度自适应直方图均衡化
低光照场景下的车位图像整体亮度偏低,且光照不均导致局部车位线模糊。为了改善图像质量,本文选择限制对比度自适应直方图均衡化(CLAHE)对原图做预处理。CLAHE 不同于传统直方图均衡化,在全局亮度均衡化的同时,能进行局部对比度增强且图像细节保留程度高[9]。
本文改进局部直方图均衡化过程,选择使用64×64窗口大小将图像分块,然后选择每块中心32×32 大小的像素计算映射函数,将此映射函数作用于该分块内的限制对比度直方图均衡化,此过程能降低映射函数统计像素点分布的运算量,加快局部直方图过程。
限制对比度即使用阈值限制直方图分布,如图4 所示,用阈值裁剪直方图中的峰值,被裁剪的像素均匀分布到每个灰度级,使直方图的分布趋于平缓,实现直方图均衡化的目的,且阈值设定越高,对比度增强越大。
图4 直方图阈值分割
阈值β设定计算公式为
式中:M是每个块中的像素数量;N是该块的动态范围;Smax是最大斜率;α是裁剪因子,用来控制对比度强度,当α接近0时,裁剪点为M/N,当α接近100时,对比度逐渐增强。通过直方图的累计分布函数(cdf),获得像素点的映射函数:
式中:T(l)是重映射函数;l是像素灰度级;pdf(l)是对应像素级的直方图值,即每个像素级内所包含像素点总数;lmax是块内最大像素值。最终基于每个块中裁剪后的cdf得到映射函数。
分块处理能很好增强局部对比度,但对于整幅图片也会产生块效应,如图5 所示,干扰直线检测。故而对像素点采用双线性插值的方法,修正映射函数,消除产生的块伪影[10]。对于每个像素点,图5 中点a、b、c、d 是4 个块的中心像素,像素k是图片上任意像素,通过双线性插值获得重新映射的像素K:
图5 双线性插值消除块效应
式中:T(k(i))表示重映射函数;k(i)是具有坐标(x,y)的任意像素k的值;Ta、Tb、Tc、Td即对应4 个块中心像素的映射值;xa、xb、xk、ya、yc、yk为对应像素点的坐标值。
经过双线性插值后消除块效应,图像整体亮度有提升且不突兀,局部对比度增强,低光照区域车位线信息得到改善,CLAHE结果如图5所示。
2.3 优化入射分量的单尺度Retinex增强
Retinex 理论是由Land 基于人类视觉系统提出的关于如何调整感知对象颜色和亮度模型的理论[10]。其中颜色恒常性理论指出,颜色恒常并不取决于外部光照环境的变化,而是取决于保持物体颜色感知恒定的心理倾向,即在光照变化时,人眼感知物体表面颜色趋于稳定的心理倾向。简单概括,同一个物体表面在不同的光照条件下会有不同的反色光谱,体色系统能够区分照明变化引起物体表面反射光谱变化的情况,但观察物体表面颜色的人认为,只要物体表面颜色在一定范围内,它是恒定的,并感觉物体表面颜色没有变化。所以根据Retinex 理论可以认为低光照场景下,被光照影响的原场景颜色是恒定的、可被恢复的。
基于Retinex 理论,一幅图像可以分解为反射分量和入射分量,反射分量代表了图像的本质属性,包含图像的所有边缘细节和颜色等;入射分量包含了图像中景物的大致轮廓和亮度的分布。通过降低入射分量对原始场景的影响程度,尽量保持代表图像本质的反射分量,使得低光照场景下的车位线颜色的恢复和边缘细节的增强。图像形成可以概括为入射光和反射光的乘积:
式中:I(x,y)是原图;L(x,y)是入射分量;R(x,y)是反射分量。将相乘关系的入射分量和反射分量取对数处理,使得原图在对数域表现为加性图像,通过图层加减即可获得所需反射分量图层。对数变换可以拉伸范围较窄的低灰度值且压缩范围较宽的高灰度值,达到增强暗区域且抑制过亮区域的目的。Retinex算法流程如图6所示。
图6 Retinex流程图
单尺度Retinex(single scale Retinex,SSR)是由Jobson 和Rahman 在1997 年提出的中心环绕算法发展而来的一种算法[12],使用高斯环绕函数模拟入射分量。
首先对式(5)取对数处理:
其中入射分量L(x,y)由环绕函数F(x,y)和原图的卷积获得:
环绕函数F(x,y)为
式中:c为高斯环绕空间常数;K是一个尺度。K满足:
从公式上理解SSR 算法,入射分量的计算是原图与高斯函数的卷积过程,是对图像中的像素点进行高斯加权所得。但是在实际应用中,二维高斯函数的时间复杂度高,其性能问题广受困扰[13],在本文算法对时间性能要求极高的条件下难以应用。
本文首先考虑二维高斯函数的可分离特性进行优化,使用一维高斯滤波在横向和纵向两个方向上分别平滑图像,得到和二维高斯滤波一样的拟合效果,如图7所示,最终时间性能提升了4倍,但对单幅图像处理,单步高斯过程仍需要70 ms 左右,仍不够理想。鉴于此,在不影响车位线的增强效果前提下,本文提出对原图进行递归方框滤波,高效实现对入射分量的拟合。
图7 模拟入射分量
Retinex及其改进算法[3,14-16]基于颜色恒常性,其重点都在于更有效地估计入射分量的权重,针对不同场景,不同模拟函数产生不同的增强效果。在SSR 算法中,高斯函数作为中心环绕函数模拟入射分量,使用大滤波窗口对图像滤波,使得图像模糊,契合入射分量特征。而高斯函数本质可以理解为高斯加权后的均值滤波,相较于均值滤波,会使图像滤波过程更加平滑[17],却也极大增加计算量。本文对原图进行递归方框滤波作为对入射分量的模拟,图像滤波后的模糊效果近似高斯模糊效果。经过实验,在50×50 的滤波窗口下,对原图两次递归方框滤波即可模拟入射分量,达到车位线增强目的,且算法单步运行时间在28 ms左右。
对比3 种入射分量模拟情况,使用高斯函数模拟的入射分量在原图轮廓和亮度分布情况上更清晰,但最终SSR 算法增强后,方框滤波模拟的入射分量并未影响整体车位线增强效果,且后续车位检测算法也证明此种入射分量的模拟过程是可行的。
2.4 图像滤波与灰度化
传统的低光照图像增强算法往往伴随颜色失真、噪声放大等一系列问题,导致增强后图像视觉效果差,需要花费很长时间进行降噪和色彩平衡的恢复。而车位检测过程运行于车载处理器后端,无可视化要求,故本文算法对噪声与色彩失真问题遵循高效实用原则进行处理。本文使用对边缘保持效果更好的中值滤波平滑噪声,并使用形态学算法减小车位线中间的黑色空洞,且增强车位线边缘。对于色彩失真现象,本文发现增强图像中车位线与地面背景色的对比度大,且车位线一般为白色,少量为黄色,其像素值远远大于地面背景像素值,故本文基于亮通道先验理论[18],将增强结果灰度化,既实现了最大程度将车位凸显于图像中,又直接避免了图像颜色失真的发生,同时以灰度图作为后续直线检测输入也比RGB 图像数据量更小,检测算法运行更快。
2.5 增强结果检测
根据上述原理,本文增强算法流程如图8 所示,得到的最终增强结果如图9所示。
图8 增强算法流程
图9 灰度化图像与检测结果
为了验证本文提出的增强算法的增强效果,本文使用最基础的车位检测算法对增强结果进行检测。检测算法首先使用自适应Canny 边缘检测算法[19]在结果图上勾勒车位线边缘,然后使用Hough直线检测算法[20]标记边缘中的直线,最后对标记出直线的图像使用矩形模板特征匹配算法[21],在鸟瞰图原图上划定最终的车位框,如图9所示。
3 实验结果与分析
3.1 实验环境
实验硬件环境:Intel(R) Core(TM) i7-10700F,2.90 GHz,RAM 16 GB,显卡:GTX 1660 SUPER。
本文采集多组低光照场景下的实际泊车视频,并且设定摄取的泊车过程视频帧率为30 fps,其中单帧鱼眼图分辨率为1080×1920,转换后的鸟瞰图分辨率为800×900。
3.2 算法增强效果
本文算法增强结果如图10 所示。由图可见:原图整体亮度过低,车位线仅隐约可见;经过本文算法增强后,图中车位线很明显的凸现,轮廓清晰,且与地面对比度高。经过检测,可以标记出两侧和车位入口直线,最终成功匹配出矩形车位。
图10 单幅图像增强结果
同时统计单帧图像算法运行时间,分模块记录单幅图片的增强算法运行时间、检测算法运行时间和总时间。本文统计算法3 次运行时间,计算平均值和标准差σ,最终算法运行时间在均值加减3倍标准差区间内,如表1所示。
表1 单幅图像算法运行时间
3.3 图像增强对比实验
随机从采集的泊车视频中选取一张汽车驶过停车位时的单帧图像,利用本方法进行图像增强,并与直方图均衡化方法[9]、HSV 空间亮度自适应增强方法[3]和传统SSR 方法[12]进行增强效果对比。4 种方法的车位线增强效果通过直线检测效果比较得出,如图11 所示。由图可见:原图未经处理情况下,无法检测出车位线;直方图算法进行全局灰度值均衡化,有明显亮度提升,但全局亮度提升突兀,且车位线与地面对比度一般,最终车位线检测情况只比原图稍有提升;HSV 空间亮度自适应增强方法亮度提升更均匀,且车位线与地面有一定对比度,但右侧区域边缘细节差;传统SSR 算法使用高斯函数拟合反射分量,整体增强效果达到车位增强需求,但与本文改进算法对比存在左侧高光区域抑制程度低,且左侧车位线边缘细节保留程度差,不够平滑。
图11 4种图像增强结果对比
算法运行时间如表2 所示,直方图方法有着最佳的时间性能,HSV 空间亮度自适应增强方法和传统SSR方法都难以满足算法实时性要求。
表2 各方法运行时间
通过对比,4 种方法都对低光照图像有一定增强效果,但本文算法比其他3 种方法增强程度更好,且时间性能虽不及直方图均衡化法,却远超过HSV空间亮度增强和传统SSR 方法,满足了隔帧采样处理的实际需求。
3.4 多组数据测试结果
为进一步测试本文增强算法性能,本文贴合实际低光照车位检测过程,采集了不同光照程度的泊车视频,从泊车视频中截取驶过停车位过程的2 s视频共60 张视频帧进行实验。通过本文增强算法增强2 s视频内的所有视频帧,再使用本文提出的检测算法进行检测,统计2 s视频中经过增强后可被划定车位的视频帧数量,实验结果如图12所示。
图12 多组数据增强结果车位检测
其中数据1和数据2是停车位有部分光源射入,停车位局部过暗的情况;数据3和数据4是无其他光源,仅车载灯光漫反射在停车位时的情况;数据5 是白天光照充足,但停车位在车库深处,光照相对较弱时的情况。增强结果显示,本文增强算法对不同程度的低光照场景都有足够的增强效果,有较好的算法鲁棒性。
60 张连续视频帧增强后的检测结果统计如表3所示,表中车位增强率表示单组数据输入的视频帧中,经过增强后可被检出车位的数量。统计结果显示,在低光照场景下,本文算法的车位增强率达到90%以上,保障了对视频帧进行采样检测时的车位检出率。
表3 车位识别情况
4 结论
(1)本文针对车位检测算法受低光照环境影响,车位识别率低的问题,提出了一种融合限制对比度自适应直方图均衡化(CLAHE)和优化入射分量的单尺度Retinex(SSR)增强算法,极大程度上增强低光照图像中的车位信息,利于后续车位检测,减小了低光照环境对车位识别系统的影响。
(2)算法应用于自动泊车过程中车辆侧面鱼眼相机拍摄的车位视频,针对常规低光照图像增强算法运行时间过长问题,减小CLAHE 中映射函数的计算窗口,使用递归方框滤波模拟入射分量,最后将增强结果基于亮通道灰度化,以灰度图作为增强结果输出。
(3)对比结果显示,本文实现了对低光照场景下的车位图像增强,增强效果远超时间性能最佳的直方图均衡化方法,满足车位线检测要求;运行时间又相较常规增强算法有极佳性能,单幅图片增强处理仅38 ms,满足了泊车视频隔帧检测时限要求。
(4)贴合实际泊车场景,采集多组低光照环境下的泊车过程视频,使用最基础的车位检测算法对增强结果进行检测。实验结果表明本增强算法在低光照场景下的车位增强率达到90%以上,保障了采样检测时的车位检出率。
实验中发现,当车位线与地面对比度较低时,会导致本算法增强结果车位边缘梯度较低,影响直线检测,因此后续将就低光照环境下的低对比度车位图像增强进行进一步研究。