郭昊琰,兰国峰,赵 辉,杨 俊,陈晓锋
(1.中北大学 信息与通信工程学院,太原 030051;2.上海航天技术研究院 北京研发中心,北京 100081)
近年来,随着半导体行业的飞速发展,CMOS图像传感器在各方面的性能和指标有效提升,具备功耗低、结构简单、集成度高、成本低等优势[1],广泛应用在工业、遥感、医学等领域[2]。线阵相机是将一维图像传感器阵列作为感光元件,总像元数量较面阵相机少,但可以具有更高的横向视野和拍摄帧率[3],因此更适用于一维高速动态目标的拍摄。
将线阵高速CMOS相机应用于立靶精度测量中可实现高速动态小目标的非接触式坐标测量[4]。测量时,当高速动态小目标飞行物(下文简称为“飞行物”)穿过测试区域时,会遮挡相应像元背景光,在相机上成像,得到过靶目标图像[5]。测量过程中,对目标飞行物图像进行准确识别和定位是解算飞行物过靶位置的关键[6]。对于高速运动的飞行物,相机在拍摄时,需要采用较高的拍摄帧率,但帧率提高相机的曝光时间就会减小,从而导致背景光亮度不够,此时就需要通过增加外部光源以增强光照亮度,但飞行物通过有效测试区时可能位于相机视野内的任意位置,由于光源的发光面积、亮度均匀性等参数的影响,当飞行物通过的位置位于视野暗区时,会出现飞行物图像对比度低,淹没在背景中难以分辨和提取,从而造成测试中出现漏检等情况,影响测试系统的测量精度和准确性。
为了准确提取飞行物图像,识别其在过靶图像中所处的位置,本文提出了基于直方图差分法的阈值分割算法对原始图像进行二值化处理,并结合形态学平滑处理和轮廓提取,在不改良背景光源的情况下,实现了对视野暗区内动态目标的快速提取。
为了准确提取出飞行物图像,识别其在过靶图像中所处的位置,本文设计了线阵相机动态目标拍摄系统结构,如图1所示。利用图1所示的结构对高速动态小目标进行拍摄,并对图像特征进行分析。
图2(a)、(b)为线阵相机拍摄的过靶飞行物分别通过明亮背景区域、黑暗背景区域的图像,单帧图像分辨率为4 096 pixel×2 000 pixel,飞行物直径为6 mm。可以看出,原始图像背景的灰度不均匀,视野两端存在大部分暗区。其中,图2(a)中的飞行物位于明亮背景区域,飞行物图像所占像素点少,但对比度高,边缘轮廓清晰,易于通过二值化方法进行图像分割,实现目标图像的提取;图2(b)中飞行物图像位于右侧黑暗背景区域,飞行物图像淹没在背景中,难以分辨,需要通过识别算法进行处理,才能使其成为有效信息;同时,原始图像具有明暗交替变化的条纹背景,条纹的粗细与飞行物阴影的宽度相当,这不利于目标图像的提取。
图2 含有目标飞行物的原始图像
图2(a)、(b)中所拍摄飞行物大小相同,过靶速度相近,图像分辨率不变。通过手动选点方式,确定图2(a)、(b)中飞行物所在行的像元编号,并对相应行像元灰度分布进行分析,如图3(a)、(b)所示。由于相机横向视野中间亮、两端逐渐变暗,所拍摄图像的灰度级也大致呈现中间高、两端低的趋势;图3(a)中飞行物中心位置所处横向像元编号为2906,其灰度级低于大部分背景灰度,边缘特征清晰,易于分辨和提取;图3(b)中飞行物图像中心位置所处横向像元编号为3965,其灰度信息几乎淹没在背景中,但仍然具有一定的边缘特征,且飞行物图像中心处灰度级仍低于背景灰度。
图3 目标飞行物所在行的图像灰度分布图
位于黑暗背景区域的飞行物图像难以分辨,但飞行物图像灰度级仍低于大部分背景图像,并具有一定的边缘特征,因此可首先对原始灰度图像进行二值分割,在保留飞行物图像原始轮廓的情况下,达到增强目标、抑制背景的效果,而选取合适的灰度级阈值是进行图像分割的关键[7]。灰度阈值分割算法是一种常用的图像分割算法,对于一幅灰度图像,可选取合适的灰度级阈值T,然后将图像每一像素的灰度级Tij与T进行比较,大于T的像素点分配大灰度值(如255),小于T的像素点分配小灰度值(如0),就得到了一幅二值图像,从而起到分割目标图像与背景图像的作用。具有代表性的分割算法如迭代式阈值分割算法、最大熵阈值分割算法和直方图阈值分割算法。本节对三种灰度阈值分割算法的原理和有效性进行了分析和验证,表明了这三种算法应用于高速小目标飞行物图像提取的局限性,并针对飞行物过靶图像特征,提出了基于直方图差分法的阈值分割算法。
2.1.1 迭代式阈值分割算法
迭代式阈值分割算法是一种在无人介入的情况下自动选取阈值,并对图像进行二值分割的方法,其基本思想是将一估计值作为初始阈值,再按照某种策略不断改进这一估计值,直到选出使人满意的阈值[8]。好的阈值改进策略应该能够快速收敛,同时每次迭代产生的新阈值应优于旧阈值[9]。具体算法步骤如下:
1)计算原始图像的灰度中值,将其作为初始阈值T0;
2) 使用T0将原始图像分割为两个区域R1和R2,计算R1和R2中所有像素的平均灰度值μ1和μ2;
3) 由μ1和μ2得到新的阈值T1=(μ1+μ2)/2;
4) 设置参数T,若|T1-T0| 按照上述步骤编写程序,对原始图像进行灰度阈值分割。设置参数T=0,即阈值不再发生变化时迭代结束。程序运行结束后得到最终的阈值为153,图像处理结果如图4所示,可以看出图像分割的效果并不理想,目标飞行物与背景图像未得到有效分离。 图4 迭代式阈值分割算法处理结果 2.1.2 最大熵阈值分割算法 最大熵阈值分割算法借鉴了信息论中熵的概念,核心思想是使选择的阈值所分割图像的目标、背景两部分所处区域灰度统计的信息量为最大,其算法结构简单、性能稳定,被广泛地应用于图像处理中[10],算法原理如下: 对于一副灰度图像,将分割阈值记为t,灰度i出现的概率记为Pi,i∈{0,1,2,…,L-1},则: (1) 灰度级小于t的图像区域记为目标O,灰度级大于t的图像区域记为背景B,则目标O和背景B的灰度概率分布分别如式(2)、式(3)所示: (2) PB=Pi/(1-Pi),i=t+1,t+2,…,L-1 (3) 则目标O和背景B的熵的数学定义分别如式(4)、式(5)所示: (4) (5) 则熵的判别函数表示为: φ(t)=HO+HB (6) 当判别函数φ(t)取最大值时,对应的灰度值t即为最佳灰度分割阈值: (7) 为验证最大熵阈值分割算法的有效性,根据上述算法原理编写程序,对原始图像进行二值化分割处理,结果如图5所示,可以看出所得的分割图像并不理想,目标仍然淹没在黑暗背景中,无法进行进一步的提取。 图5 最大熵阈值分割算法处理结果 2.1.3 直方图阈值分割算法 图像各灰度级像元个数通常由直方图进行统计,可通过分析直方图特征,寻找合适的灰度分割阈值。直方图阈值分割算法就是根据直方图寻找合适的阈值,实现图像的二值化分割[11]。具有代表性的算法如直方图阈值双峰法,其适用于目标和背景在灰度直方图上各自形成一个波峰的情况,则选取两波峰间低谷对应的灰度值为阈值,即可将目标和背景很好地分离[12];但本文原始图像中目标飞行物所占像素点很少,直方图中无法分辨目标物对应波峰,不适合采用阈值双峰法进行分割。 本文在直方图阈值分割算法原理的基础上,对原始图像的直方图特征进行了充分分析,提出了基于直方图差分法的阈值分割算法。图2(b)所示原始图像的直方图如图6所示,由于光源限制,在所拍摄的原始图像中,图像两端的灰度有明显下降,灰度级分布在0~10范围内的像素点数形成波峰,对应着黑暗区域背景图像的主要灰度;飞行物图像所占像素点数量少,且灰度级低于大部分背景图像,应位于波峰左侧;飞行物图像灰度级与波峰对应灰度级相近,但像素点数量差距大,波峰出现陡峭的前坡,前坡最陡峭的位置对应着分割飞行物和背景的最佳灰度阈值。因此本文提出了基于直方图差分法的阈值分割算法,步骤如下: 1)对直方图上0~10灰度级范围内的像素点数求一阶前向差分; 2)将一阶差分极大值点的灰度值作为灰度分割阈值,对原始图像进行二值化分割。 按照上述步骤编写程序,对原始图像进行处理,得到的灰度分割阈值为3,处理结果如图7所示,可以看出飞行物图像得到了有效增强。 图6 含有目标飞行物的原始图像灰度直方图 图7 基于直方图差分的阈值分割算法处理结果 原始图像经过二值化处理后,目标图像区域已经得到了有效增强,但图像右侧边缘仍有明显的噪声区域,若直接进行轮廓提取和质心定位,会对定位结果产生干扰,如图8所示,图像噪声的存在使定位算法标记出大量错误的定位点(如图中黑色小圆点),因此需要对噪声进行滤除。 图8 噪声对飞行物图像定位产生干扰(局部放大) 图像的滤波去噪可以在空间域进行,也可以在频率域进行,图像的空间域卷积运算与频率域乘法运算等效[13],这种数学关系可由式(8)表示: f(x,y)⊗h(x,y)⟺F(u,v)·H(u,v) (8) 式(8)中,f(x,y)为原始二维图像的灰度值函数;h(x,y)为空间域滤波器的矩形邻域;F(u,v)为原始图像的频谱函数;H(u,v)为滤波器的频率响应函数。空间域滤波直接作用于图像本身,对图像做卷积运算;频率域滤波由滤波器的频响函数作用于图像频谱进行乘法运算,再将图像由频率域通过傅里叶逆变换还原到空间域。前者算法简单、处理速度快,对噪声类型的针对性更强;后者在功能设计上更加直观,对噪声类型的适用性更广[14]。 2.2.1 空间域滤波算法 具有代表性的空间域滤波算法如均值滤波和排序滤波。其中,均值滤波是对图像某一像元以及该像元邻域内所有像素点的灰度求均值并替换原始灰度值。记原始图像某一像素点(x,y)的灰度值为f(x,y),均值滤波处理后的灰度值记为g(x,y),则均值滤波的处理过程可表示为: (9) 式(9)中,x,y=0,1,…,N-1;A为所选窗口中(x,y)邻域内的所有像素点,M表示邻域内像素点个数。 均值滤波属于线性滤波,通常适用于消除单一噪点峰值,但抑制噪声的同时也使目标图像边缘更加模糊[15]。根据式(9)所述算法原理编写程序,对图7所示图像分别进行3×3、5×5、7×7和9×9模板均值滤波,结果如图9所示,为了更清晰地展示处理结果,图9中(a)~(d)图像均为局部截取并放大,可以看出去噪效果并不理想,同时所选窗口越大,目标图像边缘模糊效果就越明显,不利于原始轮廓的保留。 图9 均值滤波图像处理结果(局部放大) 排序滤波属于非线性滤波,相比于线性滤波在保护图像细节方面更具优势[16],其首先对某邻域内各像元灰度值进行升序排序,然后取第r个像元的灰度值替换原始灰度值。中值滤波是排序滤波的一种特殊情况,即r取排序后的中值。对于一幅灰度图像,将其所有像素点灰度值构成的序列记为f1,f2,…,fn,窗口大小设为m(窗口内包含m个像素点,m为奇数),中值滤波处理后图像对应位置的灰度值序列记为g1,g2,…,gn,则中值滤波处理过程可表示为式(10): gi=Med{fi-v,…,fi-1,fi,fi+1,…,fi+v} (10) 式(10)中,fi-v,…,fi-1,fi,fi+1,…,fi+v表示窗口内的m个元素,其中i表示窗口的中心位置,有v=(m-1)/2。 中值滤波是一种非线性处理方式,既能够抑制噪声又能够一定程度上保留目标图像细节,对脉冲干扰或椒盐噪声等孤立、像素点少的噪声图像有较好的滤除效果[17-18]。根据式(10)所述算法原理编写程序,对图7所示的图像分别进行3×3、5×5、7×7和9×9模板的中值滤波,处理结果的局部放大图像如图10所示,由于图7所示的原始图像噪声的密度较大,不能由中值滤波很好地滤除;且随着设置窗口的增大,目标图像轮廓出现不同程度的失真,不利于目标的准确定位。 图10 中值滤波图像处理结果(局部放大) 为了进一步验证排序滤波算法的有效性,同时考虑了另外两种特殊情况,即r分别取最小值和最大值。编写程序对图7所示原始图像分别进行最小和最大排序滤波,处理结果如图11和图12所示,去噪效果并不理想。由于图像中的噪点均为小灰度值,r取最小值时,反而放大了原有的噪声信号,如图11(a)~(d)所示;当r取最大值时,虽然噪声得到有效滤除,但目标图像轮廓出现严重失真,如图12(a)~(d)所示,影响了后续的定位。 图11 排序滤波取最小值处理结果(局部放大) 图12 排序滤波取最大值处理结果(局部放大) 2.2.2 频率域滤波算法 频率域滤波主要分为低通滤波、高通滤波和带通滤波等。根据图像噪声的频谱分布特性,可选用不同的滤波器实现图像去噪。图像数据中灰度值变化较快的部分表现为频率域中的高频分量[19],因此高频分量反映图像细节,低频分量反映图像主体轮廓。图7中图像边缘区域大部分孤立的噪点属于高频成分,目标飞行物图像主体属于低频成分,因此可以考虑采用低通滤波器进行图像去噪。 常用的低通滤波器有理想低通滤波器和巴特沃斯(Butterworth)低通滤波器。其中理想低通滤波器的频率响应表现为过渡曲线在截止频率D0处竖直下降,高于D0的分量被完全抑制,低于D0的分量被完全保留,因此含有目标图像轮廓信息的高频信号也可能被滤除,造成图像边缘模糊;另外,在利用傅里叶变换进行空域-频域转换的过程中会不可避免地产生振铃效应,并且高频信息损失越严重,振铃现象越明显[20]。理想低通滤波器频率响应的数学形式表示为: (11) 式(11)中,D(u,v)表示频率点(u,v)距频谱图像中心的距离。考虑到上述理想低通滤波器的局限性,在实际应用中一般选取过渡曲线更加平滑的巴特沃斯低通滤波[21],其频率响应如式(12)所示: (12) 式(12)中,D0为巴特沃斯低通滤波器的截止频率,n为阶数,n越大则过渡曲线约陡峭。由于通带与阻带间存在平滑过渡,高频信号并没有被完全滤除,图像边缘的模糊现象将得到改善。 按照式(11)、式(12)所述算法原理编写程序,分别验证上述两种低通滤波器对图7中噪声的滤除效果,处理结果如图13所示,可以看出两种滤波器均不能有效滤除图像噪声。在截止频率相同的情况下,理想低通滤波导致图像高频信息的损失更加严重,目标图像边缘的振铃现象更为明显,如图13(a)所示;巴特沃斯低通滤波一定程度上抑制了振铃效应,改善了目标图像边缘的模糊现象,但由于噪声图像的频谱范围较大,与目标图像频谱存在交叠,造成去噪效果并不理想,如图13(b)所示;另外,采用频率域滤波进行图像去噪处理,存在“空域-频域-空域”的转换过程,运算量大,实际应用中可能无法保证算法的运行效率。 图13 低通滤波图像处理结果 综合上述对各种滤波算法的对比分析可知,滤波算法虽然技术成熟,操作简单,但降噪效果一般,适应性差,不适用于本文所述应用场景。为此需要另外选取性能优越、构成简单的去噪算法,在保留目标图像原始轮廓的同时,滤除图像噪声,从而实现对目标飞行物图像的准确定位。 2.2.3 形态学处理算法 形态学处理算法是一种基于图像结构和几何形状分析的非线性图像处理算法,它通过结构元素(structuring element)定量地修正待处理图像的几何特征,降噪性能好、算法结构简单[22],在噪声抑制、图像识别方面均有广泛应用。形态学处理的基本运算是膨胀和腐蚀,运算符记为⊕和Θ。膨胀运算为扩张过程,能够填补边界不平滑的凹陷部分;腐蚀运算为收缩过程,能够剔除边界不平滑的凸起部分[23]。使用结构元素B对图像A进行膨胀和腐蚀运算的数学定义分别如式(13)、(14)所示: (13) AΘB={x|(B)x⊆A} (14) 膨胀和腐蚀运算经常一起用于图像处理,如形态学开运算就是使用相同的结构元素对一幅图像先进行膨胀、再进行腐蚀,闭运算则恰好相反[24]。开运算可以抑制正脉冲信号,剔除图像中的毛刺;闭运算可以抑制负脉冲噪声,填补图像中的间隙[25]。相比于膨胀和腐蚀运算,开、闭运算能够更好地保留目标图像的原始特征[26]。使用结构元素B对图像A进行形态学开运算和闭运算,在数学形式上分别表示为式(15)、(16): A°B=(AΘB)⊕B (15) A·B=(A⊕B)ΘB (16) 本文使用圆形结构元素对二值化图像进行先闭后开平滑处理,有效滤除了过靶图像边缘区域的噪声,削减了噪声对目标图像定位的干扰,同时平滑了飞行物图像边缘毛刺,并填补了图像内部微小间隙,处理结果如图14所示;再进行轮廓提取,清晰流畅的图像轮廓为后续的质心定位提供了有利条件,保证了算法的运行效率;最后由质心定位算法确定飞行物图像中心位置,同时删除面积较小的连通域,进一步消除图像噪点,得到定位结果,如图15所示,飞行物图像轮廓得到了较好的保留,定位结果符合实际情况。 图14 形态学平滑处理结果(局部放大) 图15 平滑处理后的飞行物图像定位结果(局部放大) 为了进一步验证本文所述算法在基于线阵相机的高速小目标提取中的有效性,按照图1所示结构搭建实验系统,使用线阵CMOS相机拍摄飞行物从视野暗区不同位置过靶的图像,然后使用本文提出的算法进行图像处理,算法流程如图16所示。 图16 图像处理算法流程图 单帧图像分辨率为4 096 pixel×2 000 pixel,算法运行平台处理器主频为2.4 GHz,运行内存为8 GB,得到飞行物图像定位结果和算法运行时长,如表1所示。共进行4组实验,第1组~第4组实验中,飞行物均从视野暗区通过,过靶位置逐渐靠近视野边缘。为了更清晰地展示图像处理结果,表1中所示原始图像、飞行物定位结果图像均为局部截取并放大。 表1 飞行物图像定位结果和程序运行时间 如表1中原始图像(局部)所示,第1组~第4组实验中,随着飞行物位置逐渐向视野边缘靠近,背景照明光源的亮度逐渐减小,飞行物图像对比度随之下降,直至淹没在背景中,难以分辨。按照图16所示算法流程对飞行物图像进行提取:首先采用基于直方图差分法的阈值分割算法对原始图像进行图像分割,根据直方图一阶差分特征选取灰度阈值并进行二值化;然后采用形态学先闭后开运算对二值化图像作平滑处理,再进行轮廓提取和质心定位,同时删除面积较小的连通域,最终得到飞行物图像中心位置。如表1中定位结果图像(局部)所示,采用本文所述算法所提取的飞行物图像轮廓得到了很好的保留,定位结果受噪声影响小,真实反映了目标飞行物在过靶图像中的位置。另外,本文所述算法在4组实验中的平均运行时长为0.860 s,具有良好的实时处理效率,若移植到数字信号处理器(DSP, digital signal processor),其运行时长将进一步缩短。 针对线阵相机在成像背景亮度不均匀的情况下,捕捉到的动态目标对比度低、难以识别等问题,本文首先分析对比了几种具有代表性的灰度阈值分割算法在处理原始图像时的有效性,并在直方图阈值分割算法原理的基础上,提出了一种基于直方图差分的阈值分割算法,对含有目标飞行物的原始图像进行二值化处理,实现了目标和背景图像区域的有效分割;然后分析对比了几种滤波算法的图像去噪效果,并选择采用形态学平滑处理算法去除图像噪声,去噪效果明显,同时目标飞行物图像轮廓得到了较好的保留;再进行轮廓提取;最后由质心定位算法确定目标飞行物图像中心位置并删除面积较小的连通域,实现了对成像视野暗区内飞行物图像的快速提取。实验中选择直径6 mm飞行物作为动态目标,使用线阵CMOS相机对通过视野暗区的飞行物进行拍摄,并采用本文所述算法进行图像处理。实验结果表明,飞行物图像得到有效增强,定位结果符合实际情况,算法运行效率高,证明了本文所述算法的有效性,在基于线阵相机的高速小目标提取中具有应用价值。2.2 图像去噪算法
3 实验结果和分析
4 结束语