2. 中国科学院 沈阳计算技术研究所, 沈阳 110168
Shenyang Institute of Computing Technology, Chinese Academy of Sciences, Shenyang 110168, China
随着手持式摄像设备、无人机、定点监控摄像设备等的广泛应用, 低亮度视频的图像质量问题也日益突出. 我们在图像采集的过程中, 往往由于照明和天气的条件不佳, 导致采集到的图像出现曝光不足、对比度低、图像整体偏暗等现象, 导致获取的视频大多无法直接进行分析和使用, 需要后期大量的调试. 因此, 有效的低照度视频质量增强算法在现实应用中很有意义, 特别是视频会议、监控识别、医学成像分析领域有着重要的作用.
现阶段已经有了许多低照度图像增强的算法, 比如直方图均衡化、伽马变换、时空递归滤波器等等. Guo[1]提出了LIME算法来增强低照度图像. 该算法将找到的每个像素光照度在R、G、B三通道中的最大值估计作为初始照明图的照度映射, 得到初始照度图, 从而通过光照图来实现相应的增强, 但是处理之后噪点过多;程芳瑾等人[2]通过改进Retinex算法来增强低照度视频. 该算法在处理像素颜色时, 将其看成一个由R、G、B分量组成的矢量, 再通过用彩色矢量之间的夹角余弦值来描述颜色之间的区别, 最终通过夹角余弦值对MSR结果进行调整, 但实际计算速度较慢, 并且有一些矢量相近颜色会出现干扰的情况. Dong等人[3]提出了基于暗原色先验的低照度图像增强算法. 同时利用了后续帧间的时间相关性来加速计算. 该算法在图像对比度方面有显著的效果, 但是在去雾处理中无法对图像进行去噪, 而且在快速去雾过程中, 降低了图像的保真度. 在Dong等人[3]的基础上, 有许多人对其进行了改进. 比如刘洋等人[4]使用时域累积信息对视频进行去噪预处理. 但是该处理方法所使用的时域双边滤波在去噪效果上还是不佳, 而且时间较慢. 黄勇等人[5]使用导向滤波处理透射率, 但是在计算速度上还是没有较大的改善.
本文在暗原色先验和保边滤波的基础上, 提出了一种改进的, 基于暗原色先验的低照度视频增强算法, 引入快速导向滤波去噪, 不但能简化计算, 提高效率, 而且快速导向滤波的保边去噪性能要优于双边滤波, 去噪效率上要优于导向滤波.
1 研究 1.1 暗原色先验理论He等人[6]通过对大量真实环境下的照片进行分析和比对, 发现在无雾条件下, 绝大多数有效场景区域, 某些像素点总会至少有一个颜色通道具有极低的值, 例如游人, 建筑, 植物的颜色构成, 都会包含红色, 蓝色, 绿色等带有低通道的色彩. 利用这个先验建立的去雾模型, 能够估算出雾的浓度并且复原得到高质量的去雾干扰的图像. 对于任意的真实图像J, 它的暗原色可以表示为:
$ {{J}^{{dark}}}{(x) = }\mathop {{min}}\limits_{{c} \in {\{ r,g,b\} }} {(}\mathop {{min}}\limits_{{y} \in {\mathit{\Omega} (x)}} {(}{{J}^{c}}{(y)))} $ | (1) |
式中, Jc代表图像J的某一个颜色通道, Ω(x)是像素点x的一块方形邻域. 观测得知对于非天空清晰无雾的图像, Jdark的强度总是很低且趋近于0, 故称Jdark为J的暗原色.
Dong等人[3]在He等人[6]工作的基础上, 发现低照度图像在求反之后, 图像表征及直方图表征与去雾之前的图像具有很高的相似度. 并且求反后的图像, 背景区域的像素至少在一个通道内强度很低. 这说明该理论同样适用于低照度的图像.
1.2 快速导向滤波简介导向滤波[7]是一种保边滤波. 它在计算上的时间复杂度是O(N), 即与当前图像像素点个数N成线性关系, 与滤波器大小无关[8]. 导向滤波还能够有效地抑制梯度翻转的现象. 而快速导向滤波[9]在导向滤波的基础上, 进一步简化计算, 通过下采样, 将时间复杂度降低为O(N/s2), 其中s为采样率. 该滤波能够通过引导图像保留边缘信息, 磨平区域信息中的噪点, 因此能有效改善低照度图像改进算法中噪点过多的问题.
2 改进的基于暗原色先验的低照度图像增强算法基于1.1节的结论, 以Dong等人[3]的增强算法为基础, 并对其进行改进. 首先对输入的低照度视频进行逐帧求反, 再对每一帧进行去雾处理, 同时利用快速导向滤波对大气光透射图进行优化, 最后对结果再次求反, 获得增强后的视频. 整体步骤如图1所示.
2.1 低照度图像增强
对一副低照度图像, 首先对其进行取反的操作:
$ {{R}^{c}}{(x) = 255 - }{{I}^{c}}{(x)} $ | (2) |
其中, c是彩色通道, Ic(x) 是输入图像中像素点x在当前通道的值, Rc (x)是取反之后图像中像素点x在当前通道的值. 雾天图像模型一般可以这样建模:
$ {R(x) = J(x)t(x) + A(1 - t(x))} $ | (3) |
其中, J为无雾状态下的图像, R为雾天情况下的图像, t(x)是折射率, 也就是指无雾图像中的亮度被拍摄设备获取得到的比例, A指大气光成分. 此时, J(x)t(x)是直接衰减项, A(1–t(x))描述为大气光的补偿部分. 将式(3)变形, 得:
$ {J}\left( {x} \right){ = }\frac{{{R}\left( {x} \right){ - A}}}{{{t}\left( {x} \right)}}{ + A} $ | (4) |
求出t(x)即可由R(x)反推得J(x).
在去雾算法中, 折射率t被定义为如下形式:
$ {t}\left( {x} \right){ = 1 - \omega }\mathop {{min}}\limits_{{c} \in {\{ r,g,b\} }} \left( {\mathop {{min}}\limits_{{y} \in {\mathit{\Omega} (x)}} \left( {\frac{{{{R}^{c}}{(y)}}}{{{{A}^{c}}}}} \right)} \right) $ | (5) |
使用保雾参数ω, 取ω为0.95, 来使恢复的图像看起来更为自然. 取Ω(x) 局部方形块的大小为3×3, 在此大小下, 有较快的计算速率, 且在图像精细化上也足够达到我们的要求. 大气光成分A会随着拍摄时天气环境而发生变化, 但在单独的画面上, 它被认为是一个常量. 估计大气光值时, 采用暗原色辅助计算, 可使结果更贴近真实. 选取暗原色中最亮的0.1%像素作为备选像素集合, 且对集合内像素的强度进行排序, 取强度最大的像素点为大气光的估计值.
式(4)中的t是一个非常粗略的估计, 如果直接使用, 在边缘处会有块效应, 无法清晰描述图像内部色块的边缘信息. He等人[6]使用soft matting来改善t, 但是在时间效率上非常低, 无法满足视频传输的实时性. 黄勇等人[5]使用导向滤波处理透射率, 但是在计算速度上还是没有较大的改善. 本文采用快速导向滤波代替soft matting, 利用求反后的图像R的灰度图对透射率t进行快速导向滤波, 从而解决边缘信息保真度和时间复杂度的问题.
2.2 快速导向滤波详解众所周知, 噪声和边缘最大的区别, 是噪声区域周围的像素梯度一般较大, 并且以噪声为中心, 周围梯度变化基本相似. 而边缘则出现了梯度的阶跃, 并且像素梯度变化最大的方向在边缘的法线方向, 从法线方向到边缘的切线方向, 梯度变化幅度递减. 一般的滤波无法区分噪声和边缘, 因此只能用处理噪声的方式来处理边缘信息, 导致边缘被模糊.
而快速导向滤波[9]针对的是边缘细节信息. 该滤波在输入时, 不仅需要输入待处理图像P, 还需要输入引导图像I. 而输出图像q是P和I共同作用的产物.
滤波器公式为:
$ {{q}_{i}}{ = }\sum\limits_{{j} \in {{W}_{i}}} {{{W}_{{ij}}}{(I)*}{{p}_{j}}} $ | (6) |
引导图像I确定加权平均运算中所采用的权值.
假设导向滤波器在导向图I和输出图像q之间在一个二维窗口内是一个局部线性模型: 为了让引导图像提供的信息在边缘判定上效果较好, 只有当引导图像与输出图像q存在线性关系时, 才认为有效. 即:
$ {{q}_{i}}{ = }{{a}_{k}}{{I}_{i}}{ + }{{b}_{k}}{,}\forall {i} \in {{\omega }_{k}} $ | (7) |
a和b是当窗口中心位于k时该线性函数的系数.
一般认为输出图像q是由输入图像p去掉了噪声干扰n所得的. 也就是有公式:
$ {{q}_{i}}{ = }{{p}_{i}}{ - }{{n}_{i}} $ | (8) |
通过上述三个公式, 解出n最小时的a和b. 此时使用最小二乘法进行计算.
$ {E}\left( {{{a}_{i}}{,}{{b}_{k}}} \right){ = }\sum\limits_{{i} \in {{\omega }_{k}}} {{{\left( {{{a}_{k}}{{I}_{k}}{ + }{{b}_{k}}{ - }{{p}_{i}}} \right)}^{2}}} $ | (9) |
为了使得结果更加符合实际, 使用岭回归进行优化计算, 引入正则项:
$ {E}\left( {{{a}_{i}}{,}{{b}_{k}}} \right){ = }\sum\limits_{{i} \in {{\omega }_{k}}} {\left( {{{\left( {{{a}_{k}}{{I}_{k}}{ + }{{b}_{k}}{ - }{{p}_{i}}} \right)}^{2}}{ + } \in {a}_{k}^{2}} \right)} $ | (10) |
求得:
$ {{a}_{k}}{ = }\frac{{\frac{{1}}{{\left| {\omega } \right|}}\sum\nolimits_{{i} \in {{\omega }_{k}}} {{{I}_{i}}{{p}_{i}}{ - }{{\mu }_{k}}{{\overline {p} }_{k}}} }}{{{\sigma }_{k}^{2}{ + } \in }} $ | (11) |
$ {{b}_{k}}{ = }{\overline {p} _{k}}{ - }{{a}_{k}}{{\mu }_{k}} $ | (12) |
$ {{q}_{i}}{ = }{\overline {a} _{i}}{\overline {I} _{i}}{ + }{\overline {b} _{i}} $ | (13) |
但这样使得计算的时间复杂度较高. 快速导向滤波和普通导向滤波的区别, 就是快速导向滤波对输入图像和引导图像进行了下采样预处理. 由于输入图p和导向图I都是透射图, 本身就对清晰度的要求不高, 因此在处理之前, 先对p和I进行双线性插值下采样, 采样时缩小到原图的1/4, 那么对应滤波器的窗口半径r’=r/4, 最终在对获得的
至此, 通过快速导向滤波求得新透视图t, 带入到式(4)中, 求出J(x), 再对J(x)进行翻转, 就可以得到增强后的图像.
3 实验结果与分析 3.1 实验数据为了有效的验证本算法性能, 对低照度图像做了以下3组对照实验, 选取的对照组为Dong算法和普通导向滤波的增强算法. 分别从亮度通道直方图, 亮度均值, 时间来客观衡量各算法的性能, 对3种算法的增强能力进行比较与分析. 选取的3张图片具体参数如下:
以下是图片结果, 从左上到右下分别为: 原图, 文献[3]算法, 导向滤波算法, 本文算法.
从主观上分析: 文献[3]算法在3张图片上对于非暗区域的亮度和对比度提升都相当明显. 但是由于该算法未对折射率图t进行处理, 也没有去噪, 所以整体噪点较多, 且无法较好处理暗区域. 图A中, 车、灯、路面虽然都有明显提升, 但是左边地面区域噪点非常严重. 同时, 由于对比度提升过大, 导致颜色也严重失真. 图B中, 文献[3]算法效果尚可, 但是噪点依然明显. 不管是地面还是车厢, 都可看到明显的失真情况. 图C同理, 虽然车、楼和雪都被较好地提亮了, 但是楼道灯光和雪堆都出现了失真的情况. 导向滤波和本文快速导向滤波均为对文献[3]算法的改进, 故放在一起进行对比. 图A中, 我们看到, 虽然快速导向滤波进行了下采样和还原, 但是并没有丢失太多信息, 整体效果与导向滤波相比, 除了左边地面略有失真之外基本没有差别, 而时间缩短了50%以上. 图B同理, 本文算法在车厢、路灯、树木、天空和路面上均没有明显噪点, 在左边空调上方的提亮效果甚至优于导向滤波. 图C上两种算法效果差异较大, 导向滤波处理的图片整体较亮, 但是由于图片清晰度的原因, 反而将图中车辆前地面的原图自带噪点体现得更加明显. 而本文算法虽然亮度不如导向滤波算法, 但是车辆前地面并无太大瑕疵.
首先分析数据. 从直方图来看, 文献[3]算法的亮度直方图整体还是靠左, 相对原图并没有太大的改善. 导向滤波和本文的快速导向滤波在直方图上差异较小, 都对原式直方图有向右变换的趋势, 说明亮度增强的有效性. 从亮度均值来看, 不管是图A, B, 还是图C, 导向滤波算法和本文算法都在原有均值上提高了一倍以上. 文献[3]算法在图A和图B上提升了4倍, 但是在图C上提升较小, 提升效果不稳定. 而导向滤波算法和本文算法的发挥比较稳定, 基本保持2–3倍的提升. 最后, 从时间上看, 本文算法优于导向滤波算法优于文献[3]算法, 且3种算法均会因为图片分辨率提升而提升. 在分辨率较小的图A和图B上, 本文算法相较导向滤波能保证50%的提升. 在图C上只提升了41%, 原因是图C的分辨率较大, 在上采样和下采样时有较大的花费. 综合实际情况, 本文算法已经能够满足一般视频拍摄, 相较文献[3]算法和导向滤波算法, 从效果和时间效率上都有明显提升.
综上, 可以看到本文算法不论是从提亮情况、整体效果还是处理时间, 相较文献[3]算法和导向滤波算法, 均有明显提升.
4 结语
通过本文从现有的暗原色去雾算法为基础出发, 使用快速导向滤波对透视图进行处理, 最终能够从亮度均值, 时间效率和主观感受等方面验证其有效性, 在实际实验过程中相较文献[3]算法和基于导向滤波的提升算法有较大改善. 未来的工作可考虑如何在上采样和下采样还原过程中进一步减少计算, 使快速导向滤波更快, 以满足分辨率更高的视频.
[1] |
Guo XJ. LIME: A method for low-light image enhancement. Proceedings of the 24th ACM International Conference on Multimedia. Amsterdam, the Netherlands. 2016. 87–91.
|
[2] |
程芳瑾, 杜晓骏, 马丽, 等. 基于Retinex的低照度图像增强. 电视技术, 2013, 37(15): 4-6, 10. DOI:10.3969/j.issn.1002-8692.2013.15.002 |
[3] |
Dong X, Wang G, Pang Y, et al. Fast efficient algorithm for enhancement of low lighting video. ACM SIGGRAPH 2010 Posters. Los Angeles, CA, USA. 2010. 69.
|
[4] |
刘洋, 潘静, 庞彦伟. 一种基于暗原色先验的低照度视频增强算法. 电子测量技术, 2013, 36(10): 55-57, 77. DOI:10.3969/j.issn.1002-7300.2013.10.015 |
[5] |
黄勇, 孙兴波, 袁文林, 等. 基于暗原色先验的低照度图像增强. 四川理工学院学报(自然科学版), 2015, 28(3): 42-45. |
[6] |
He KM, Sun J, Tang XO. Single image haze removal using dark channel prior. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2011, 33(12): 2341-2353. DOI:10.1109/TPAMI.2010.168 |
[7] |
He KM, Sun J, Tang XO. Guided image filtering. Proceedings of the 11th European Conference on Computer Vision. Heraklion, Crete, Greece. 2010. 1–14.
|
[8] |
翟佳. 基于暗原色先验的低照度视频快速增强算法[硕士学位论文]. 天津: 天津大学, 2014.
|
[9] |
He K, Sun J. Fast guided filter. arXiv:1505.00996. 2015.
|