辛 浪,刘 钧,袁 渊
(1.西安工业大学 光电工程学院,陕西 西安 710021;2.微光夜视技术重点实验室,陕西 西安 710065)
微光夜视图像的彩色显示技术,可以使得夜视系统获取高质量的图像,提高其分辨目标的能力,增大作用范围[1-2]。彩色夜视技术能提高夜间的观察能力且抗干扰能力强,因此不论在理论还是实际应用上,彩色夜视技术的发展均得到人们的广泛关注[3-4]。Reinhard 在2001年基于Ruderman的lαβ颜色空间,提出了一种利用目标图像与参考图像的统计特征进行线性变换,将参考图像的色彩颜色迁移至目标图像的算法,该算法是两幅彩色图像之间的颜色传递[5]。Welsh 等在Reinhard 基础上进行了算法的改进,将彩色图像的色彩传递到灰度图像,此算法是利用图像中每一点像素的邻域亮度均值和标准差来对比灰度图像和彩色图像之间的像素以实现,该算法运行效率慢,局部细节处赋色效果不佳[6]。许真等[7]提出建立纹理特征库的色彩纹理传递算法,建立Gabor 滤波器提取的纹理特征库[8]和灰度共生矩阵的纹理特征库,先利用纹理特征分割图像,再用微光图像和参考图像纹理融合套印进行颜色传递。仲红玉等[9]提出由参考图像列数和亮度共同决定的参数对目标图像进行像素匹配,将彩色图像的颜色传递到目标图像上。Arbelot 等[10]提出了使用基于区域协方差引入边缘感知纹理描述,进行颜色转换。Li等[11]采用了一种使用图形双拉普拉斯方法进行图像着色,用双二次曲面矩阵及其相应的归一化双拉普拉斯矩阵的特征值分析亮度、色调与饱和度相关联的3 个色彩通道进行颜色传递,传递后的图像色彩纹理清晰,传递过程需要手动上色。
本文提出了一种基于图像分割和局部亮度调整的颜色传递算法:通过采用简单线性迭代聚类法[12-14]和K-means 均值聚类法[15-16]对微光夜视图像进行聚类分割,结合参考图像,将分割后的目标图像用亮度值重映射的方法进行色度传递,再根据纹理沟壑调整亮度值,对目标图像进行彩色传递。
微光图像为弱纹理图像,纹理细节不清,灰度共生矩阵定义为像素对的联合分布概率,是一个对称矩阵,它不仅反映图像灰度在相邻方向、相邻间隔、变化幅度的综合信息[17],也反映了相同灰度级像素之间的位置分布特征,是计算纹理特征的基础。用条件概率计算图像相邻像素灰度的空间相关特性,得到共生矩阵,在已有共生矩阵的基础上计算14 种灰度共生矩阵的纹理特征向量[18]。将图像的灰度级量化成16 级,计算距离d=1;角度取0°、45°、90°、135°四个方向的灰度共生矩阵[19]。计算其灰度共生矩阵的4 个相关性较低且描述能力强的参数[20]:
1)对比度(Con),图像的清晰度和纹理沟纹深浅的程度,纹理沟纹越深,其对比度越大,看起来越清晰。
2)能量(J),图像灰度分布的均匀程度和纹理粗细度,能量值大表明当前纹理是一种规则变化较为稳定的纹理。
3)相关(Cor),衡量灰度共生矩阵元素在行或列方向上的相似性,值的大小反应了局部灰度相关性,值越大,相关性也越大。
4)熵(Sh),图像中纹理的复杂程度或非均匀度,熵值表明了图像灰度分布的复杂程度,熵值越大,图像越复杂。
式中:(i,j)为像素点;p(i,j)为每一个像素点对应的灰度值;µx、µy分 别是px、py的均值;σx、σy分别是px、py的标准差;px为灰度共生矩阵每一行的元素和所组成的数组,公式可表示为为灰度共生矩阵每一列的元素和所组成的数组,公式可表示为
用图像中每一点像素的邻域亮度均值和标准差对比灰度图像和彩色图像之间的像素来实现多参数亮度重映射算法。选取与目标图像有相似特征的参考图像,两幅图片从RGB 颜色空间转至YCbCr 颜色空间,将彩色图像的亮度值按照目标图像的亮度结合统计特征做线性变换,使其亮度值动态范围一致。在亮度通道上对每个像素进行匹配,匹配到与彩色图像上相近的像素点时将色彩信息(通道)传递给目标图像对应的像素点,保留目标图像本身的亮度信息,进行颜色空间逆变换得到结果图。参考图像进行亮度对比传递的公式如下:
式中:L为变换后新的彩色参考图像中像素点亮度值;ls为彩色参考图像l通道中某一点的亮度值;µs和 µt分别是彩色参考图像和灰度目标图像所有像素点的亮度均值;Ds和Dt为彩色参考图像和灰度目标图像。
本文算法包含以下要点:1)分割后的子目标图像纹理特征与参考图纹理特征值在相同范围内;2)按照每一像素点子目标图像的亮度值与参考值匹配,将亮度一致的像素点颜色进行传递;3)微光图像大多细节不清,为保证色彩传递后纹理细节不消失,将微光图像的亮度用灰度共生矩阵的对比度的值重新调整系数,最终得到一幅具有真实场景的颜色与纹理的彩色图片。算法思路框图如图1所示。
利用简单线性迭代聚类(SLIC)算法进行分割预处理,分割原理是将一幅图像以K个初始聚类中心为核心,根据距离产生大小近似相等的超像素小图块,图块中心的间隔近似为,在其中进行采样,对图像像素进行局部聚类。其中N为像素数,K为超像素数。
图1 算法思路总体框图Fig.1 Overall block diagram of algorithm
改进K-means 均值聚类算法,基于灰度图像的亮度均值、方差与对比梯度将超像素图块作为一个整体对其进行超像素合并。亮度均值表明在某一处的图像的平均灰度,同一物体在同一条件(光照、时间、场景相同)下亮度变化不大,所以拍摄的微光图像中同样的景物亮度均值相似。方差表示超像素图块中每一个像素点与均值的差,其中方差越大,其差越大,在超像素图块中灰度变化越大,场景变化也就越明显。对比梯度指一个像素点四连通邻域内的点的变化幅度,其值越大,周围明暗对比越明显。对已经分割成超像素的图片进行K-means 聚类,依照其每一超像素图块的均值、方差Var及四连通区域对比梯度Grad。
式中:xgrad为每一像素点的对比梯度;(i,j)为像素点;k为变量;n为每一个超像素范围内包含的像素点个数;x(i,j)为每一个像素点对应的灰度值。分割流程如下:
1)读取预分割微光图片;
2)选取超像素的个数K,在图像内均匀分配聚类中心;
3)在每个聚类中心的邻域2S×2S范围内,利用距离为每个像素点聚类,得到超像素尺寸大小近似为S×S,图像分为K个超像素的图像;
4)把每一个超像素图块看做是一个整体,再根据图像重新定义聚类中心,依照其每一超像素部分的均值、方差及对比梯度,对已经分割成超像素的图片重新进行全局K-means 聚类;
5)通过不断迭代收敛,至每个超像素聚类中心不再发生变化为止,图像根据景物特点分割出不同场景;
6)将不连续的超像素、尺寸过小的超像素重新分配给最邻近的聚类中心,遍历所有的像素点分配给相应的聚类中心,直到遍历完毕为止。
图2(a)为K-means 均值聚类分割时在整幅图像中寻找聚类点,图2(b)为超像素分割时在聚类中心邻域2S×2S范围内寻找聚类点,图2(c)为用K-means 均值聚类法将已分割超像素点进行聚类。
图2 图像分割Fig.2 Image segmentation
在全局算法的理论基础之上,基于已分割好的图像块,对不同景物特征的图像块分别进行颜色传递,提出局部区域的颜色传递。文中的参考图像按照灰度共生矩阵纹理特征及常见场景色彩给彩色图像分类标记。
选择常见场景目标(包括天空、建筑、树木、草地、道路)进行图片切割,切割成互不重叠64×64像素大小的图片,在同一场景下随机选择64 幅图,图3显示了选取的部分图像。分别计算0°、45°、90°、135°四个方向的灰度共生矩阵的上述特征,对4 个方向的同一特征求平均值和均方差,从而得到具有旋转不变性的八维纹理特征,用f1,f2,···,f8表示4 种特征的均值和均方差。用f9表示颜色信息,f9=1,2,3,当f9=1天空为蓝色,RGB 3 个颜色通道中蓝色分量大于其他分量,则可以满足天空的颜色;当f9=2,树木与草地是绿色分量最大;f9=3为建筑与地面。用f10表示类别标记,f10=1,2,3,4,5,其中1 是天空,2 是建筑,3 是树木,4 是草地,5 是道路。
图3 参考图像选取Fig.3 Reference image selection
本文面向自然场景,树木本身纹理沟壑深,其对比度大,但在微光图像中视觉效果不明显,为使其清晰,用上文灰度共生矩阵中对比度参数的均值及均方差调整图像亮度系数,让原本不容易赋上色彩的纹理沟壑深度部分更易上色。反之,文中天空和陆地本身色彩信息比较单一,但亮度相对较高一些,灰度共生矩阵的对比度小,沟纹浅,易赋色,则不再凸显出亮度信息。具体算法如下:
1)目标微光图像T进行分割后,对分割出来的模块进行纹理特征匹配并标记,Tm(m=1,2,3,4,5),其中1 是天空,2 是建筑,3 是树木,4 是草地,5 是道路;
2)选择目标图像Tm,计算纹理特征f1,f2,···,f8,用(10)式与参考图像的纹理特征匹配,D代表目标与参考图像纹理特征相似性,值越小,纹理特征值相似性越高,选择的参考图像标记为Sm,再用f9对匹配的参考图像Sm进行检验,得到目标图像的参考图像及它们的类别,类别用f10表示;
3)将图像Tm与Sm都转至YCbCr 空间,计算各个颜色分量上的均值和方差,将目标图像的颜色统计量传递给源图像,使目标图像具有与源图像一致的均值和方差,进行颜色统计量匹配的映射方法如(11)式:
4)用(12)式调整图片亮度,其中Y′T为调整后的亮度,YT为原亮度;
式中系数由灰度共生矩阵中对比度的均值和均方差求得,即2.2 小节中f1、f2的值,不同场景的值亦不同;
5)将二次颜色传递后的图像再进行颜色空间转换,由YCbCr 颜色空间空间转至RGB 空间;
式中:D(i,j)是 每个像素的系数;Tm是目标图像;µ、δ分别是目标图像灰度共生矩阵中对比度的均值和均方差;w1+w2=1;
6)重复2)~5),直至所有的目标场景都被传递上相应的最佳彩色。
本实验采用Andor 公司的EMCCD 相机,该相机的分辨率为130 像素,每秒可采集60 帧图像;采用AZURE 公司的M2518 MPW2 镜头,焦距为25 mm。本实验时间为2019年夏季7月底,凌晨01:00~03:00。地点:室外。温度:24 ℃。能见度:14 km。相对湿度:在60%~70%之间。光照度:1.9×10-3lx~ 2.7×10-3lx。采集的微光图像的宽度和高度都为1 024 像素,水平与垂直分辨率为96 dpi,位深度为8 bit 位。本文采用MATLAB 软件R2016a版本进行算法仿真。
图4为分割效果图,其中:图4(a1)、4(a2)、4(a3)为拍摄的原始微光图片,包括天空、建筑、树木、草地和路面常见微光场景;图4(b1)、4(b2)、4(b3)为预分割图像,利用超像素将图片分割成多块近似的小图块,为下一步分割做准备;图4(c1)、4(c2)、4(c3)为本文分割算法,图4(c1)中建筑、天空、树木、窗户4 种景物分割边缘清晰,图4(c2)中路面、草地、树木能很好地分割出来;图4(d1)、4(d2)、4(d3)是用Gabor 滤波器分割[21]作为对比组,将景物的形状分割出来,图4(d1)中天空和建筑连接处细节分割效果不佳,图4(d2)处同一路面分割成不同效果,图4(d3)建筑与树木的轮廓没有分割出来。
图5为颜色传递效果图。其中:图5(a1)、5(a2)、5(a3)为Welsh 算法所得到的全局颜色传递,从主观评价上看,整幅图像颜色传递成了彩色,但其天空色彩出现误传;图5(b1)、5(b2)、5(b3)为仲红玉等人算法颜色传递的结果;图5(c1)、5(c2)、5(c3)是本文算法颜色传递结果,相比前两种算法,得到的图像效果更好一些,整体色彩更适应人眼的视觉,图5(c1)中树木的颜色鲜艳且纹理细节清晰。
图4 分割效果图Fig.4 Effect diagram of segmentation
选取空间频率、平均梯度、峰值信噪比(PSNR)这3 个指标对图5的图像质量进行评价。由图6的柱状图所示,同一个柱状表为同一衡量指标下3 种不同场景的3 种颜色传递算法结果的值。图6(a)是平均梯度,描述了图像的微小细节变化和纹理变换的能力,平均梯度的值越大,边缘信息和纹理细节越明显;其中场景1 里本文算法平均梯度是3.157 1,仲红玉算法为2.330 5,Welsh 算法仅为1.650 2,仲红玉的算法平均梯度大于Welsh算法,本文算法值优于这两种算法。图6(b)为峰值信信噪比,该值是用图3(f)作为参考图像,计算像素点之间的误差,值越高,图像失真的程度越小,反映图像的色彩信息;峰值信噪比最高提高了5.171 6 dB,最低提高了1.267 8 dB,平均提高了2.8 dB,本文的算法值优于其他算法,图像失真小。图6(c)是空间频率(SF),反映了图像在空间域的总体活跃程度,空间频率的值越大,代表着图
像的视觉效果越好;本文算法3 个场景中分别为9.706 8、6.538 9、1.934 5,比Welsh 算法的5.671 1、3.608 3、3.927 9 值大,说明其图像所含的信息越多,边缘信息以及细节越丰富,图像效果越好。
图5 颜色传递效果Fig.5 Color transfer effect
图6 结果评价柱状图Fig.6 Results evaluation histogram
在分析现有算法的基础上,提出了一种基于分割的局部图像亮度调整颜色传递方法。颜色传递过程中,纹理细节不丢失,目标图像超像素预分割后再进行超像素之间的聚合,让图像中不同场景实现准确分割。颜色传递过程中利用不同的子区域分别进行颜色传递,目标图像与相应的参考图像亮度值对应,让每一部分颜色都尽可能地与自然真实场景颜色接近。利用灰度共生矩阵的对比度特性,根据不同场景子区域的纹理沟壑程度调整亮度,得到微光图像的局部颜色传递的图像符合人眼观察特性的彩色图片。文中颜色传递算法得到图像的平均梯度值最高4.928 5,最低3.157 1,比其他算法平均提高1.98;峰值信噪比的值本文算法最高13.287 1 dB,最低11.312 5 dB,比其他算法平均提高2.72 dB;空间频率的值本文算法最高11.934 5,最低6.538 9,比其他算法平均提高4.63。