赵 凡,张 葆
(1.中国科学院长春光学精密机械与物理研究所
中国科学院航空光学成像与测量重点实验室,吉林 长春 130033;2.中国科学院大学,北京 100049)
图像增强主要是将图像转换为更适合人眼观察或者机器分析、识别的形式,改善图像的质量和视觉效果,以便获得更清楚、明晰的富含大量有用信息的可使用图像[1-4]。对于航拍图像,由于恶劣的天气条件和拍摄距离远会使图像的对比度低、图像的纹理细节模糊[5-6]。因此,改善图像的对比度、增强图像的细节纹理信息是航拍图像增强中的重要部分。
直方图均衡化是增强图像对比度的一种常见方法[7-8],该方法将图像的直方图变为均匀分布的形式,来增大灰度值的动态范围。单一形式的全局均衡化会造成一些灰度级的合并,使得一些细节信息缺失。对图像进行分段拉伸也是一种常见算法[9-10],但是分段拉伸算法的关键点在于分段点的选择,分段点的选择稍有不慎便影响了整幅图像的增强效果。本文提出了一种能够提高图像对比度、增强图像纹理细节的算法。首先将原始直方图进行子层分割,根据子层灰度概率密度之和的大小将灰度概率密度较大的灰度值动态范围进行扩展。通过对分割后子层灰度范围的重新定义,完成灰度范围拉伸,从而提高图像的整体对比度。
在图像增强的硬件实现上,现场可编程门阵列(FPGA)在结构上的并行处理优势使得其更适合完成高速的运算能力[11-13]。该系统采用cyclone3系列的EP3C16FPGA为处理器,具有实现简单、集成度高、功耗低的特点,同时系统结构性强,具有很大的灵活性。流水线操作设计是FPGA中常用的设计思想与技术之一,利用它可以提高时钟频率,降低功耗。流水线系统为级联结构,各级通过存贮元件分开[14-15]。流水线最大特点是数据流在各步骤在时间上是连续的,并且每步运算都是在时钟的控制下进行的,如果每步执行时间并不相等,流水线就会产生“瓶颈”,降低了数据处理效率。而组合逻辑引起的时序事件,没有时钟的控制,采用组合逻辑对本文算法进行建模,则能够快速高效地进行运算。
为了更好地对图像中的目标增强,突出其信息,通常我们会用直方图分割。通过将直方图分割成几个子区域,然后根据子层直方图的特征,在每个子区域中完成该区域灰度范围的拓展或压缩。增大灰度概率密度较大子层的动态范围,压缩概率密度较小子层的灰度值范围。通过直方图灰度范围的重新映射,能有效扩大对比度,提高视觉效果。
将原始直方图按其灰度级范围平均分割为n个区域,即SR0,SR1,...SRn-1。为了增大处理后图像的对比度,在这几个区域中对灰度级进行拉伸。我们采取以下方法对灰度范围进行拉伸或压缩:
其中:h(Xi)是图像中灰度级为Xi的像素个数,SSHk则表示在分割的后的SRk与SRk+1区间内所有灰度级的像素个数和,反映到直方图上也就是SRk与SRk+1区间的面积。该子层区域占全局直方图的比例为:
其中:n为图像中所有像素数和。该子层区域反映到表示灰度值的横坐标上为:
其中:L为灰度最大值,SSRk为区域SRk重新定义后的区域。从上述公式可以看出,重新定义后的区域SSRk与原始区域SRk的面积成正比。
图1 子层分割Fig.1 Sub-layer segmentation
考虑到图像的增强后效果以及计算量,本文中将直方图分为4个子层,每个子层经拉伸或压缩后如图1所示。可以看出灰度密度概率和较大的区域如SR0,经过映射后其灰度范围SSR0较广。灰度级拉伸后,图像的对比度得到了提高。
为了避免子层直方图灰度范围被过分拉伸或者压缩,我们对子层灰度区域的重新映射过程加以约束:
其中:L为灰度最大值,k为所划分子层区域的个数。我们将重新拉伸或者压缩后的子层灰度区域范围约束为:
其中:α为子层灰度范围约束参数,ASSRk为子层SSRk经过约束后的灰度值区域。从该公式可以看出,当SSRk小于r时,则经过约束后子层k的灰度值范围ASSRk大于经过压缩后子层k的灰度值范围SSRk,也就意味着经过约束后,避免了概率密度之和较小区域被过分压缩的缺点。当参数α取值0.5时,ASSRk与SSRk之间的关系反映到视觉上,可以用图2表示。
图2 子层范围约束Fig.2 Sublayer range constraints
由图2可以看出,原本灰度值范围较大的SSR0经过此约束后范围变为ASSR0,明显变小,而与r相等的区域SSR1、SSR2经过此变换后保持不变,小于r的区域SSR3约束为范围ASSR3,范围变大,也就防止了累积概率密度之和较小的区域被过分压缩。
子层灰度级经过拉伸或者压缩后,输入灰度值所对应的输出灰度值为:
其中:I(n)为输入图像的灰度值,O(n)为该输入灰度值对应输出灰度值。
该系统以EP3C系列FPGA为主处理器,完成图像的增强处理,系统的结构框图如图3所示。
图3 系统结构框图Fig.3 System block diagram
系统工作流程为:在FPGA相机控制模块的控制下采集来自相机的图像,经过本文算法处理后,显示在VGA上。具体实现过程如下。由于图像具有实时性的特点,在连续两帧图像变化不大的假设下,根据前一帧直方图统计结果对后一帧进行处理。在相机控制信号的控制下,在帧有效,行有效和数据有效的前提下,一个像素时钟FPGA接收一个有效数据,将灰度值作为RAM地址,不同地址中的数值表示该亮度的像素数,进行直方图统计,并在统计过程中求得最小与最大值灰度值Vmin和Vmax。算法的实现具体步骤为:
步骤1:根据直方图统计结果,在最大值与最小值间平分成4个区域。
步骤2:分别求出每个区域的面积。
步骤3:每个区域归一化处理,得到每个区域灰度级范围的重新映射。
步骤4:根据每个灰度值范围的大小,加约束条件,求得最终每个区域的灰度级范围。最终根据步骤1~4所求得的结果带入公式(6)中。这样在下一帧图像的每个像素灰度值输入的同时可以求得对应的输出灰度值。
由于本文系统图像的采集是实时性的,所以系统处理具有实时性的要求。流水线处理是高速设计中一个比较常用的设计步骤,流水操作是在时钟CLK的控制下按照步骤进行的,且整个数据流的处理是单流向的,它是将某个设计处理流程分为若干步骤(串联起来)。如果本文算法按照流水操作,则可以按照如图4的步骤流程进行。
图4 流水线操作Fig.4 Pipelining operation
流水线操作的最大特点是,数据流在各个步骤的处理从时间上看是连续的,每个步骤是在时钟的控制下进行的,且前一个步骤的输出是后一个步骤的输入。本文处理过程中,步骤1(Vmax-Vmin)/4完成需要1个时钟周期,步骤2中从RAM地址Vmin与Vmax之间将对应地址中数值相加,得到每个区域面积,需要Vmax-Vmin个时钟周期,步骤三需要1个时钟周期,步骤4需要1个时钟周期。由于步骤2所需时间较长,在步骤2处理过程中,步骤3需要等待很长时间。流水线各段执行时间不相等,流水线就会产生堵塞,按照上述计算,本文算法完成一条线性流水线需要Vmax-Vmin+3个时钟周期。
用流水线加速比(Tp)来衡量流水线的有效性,流水线加速比是指在完成同样n个任务的情况下,非流水线所需的顺序执行时间与流水线所需的执行时间的比值。
其中:n为任务数,K为一条流水线上的段数,Dt表示每段完成需要的时钟周期。本文中每秒需要处理图像数为50帧,即任务数为50,每条流水线需要分为4步完成,所以k取值4,所以Tp=50[1+1+ (Vmax-Vmin)+1]/[(1+1+ (Vmax-Vmin)+1)+49(Vmax-Vmin)]趋近于1,所以该流水线的性能并不好,处理速度比较慢,在对实时性要求较高时,流水线操作并不能满足要求。
组合逻辑没有时钟的控制。利用FPGA可以并行执行程序的特点,采用组合逻辑对本文算法进行建模,使之能够快速高效地进行运算。本文将由组合逻辑引起的事件称为即使事件,特征是不受时钟沿的控制。如图5所示。
图5 组合逻辑的即使事件Fig.5 Immediate action of combinational logic
我们把算法的每一个步骤当作一个即时事件,根据组合逻辑的特点,每个即时事件可在一个时钟周期内完成,4个即时事件可并行执行,全部总合起来也是引起一个即时事件,所以可以在一个时钟周期内完成。本文算法的建模图如图6所示。
图6 本文算法即时式的建模图Fig.6 Modeling of instant style of proposed algorithm
即时事件1是执行增强算法运算的任务模块,它的输入是由直方图统计得到的灰度最大值和灰度最小值。它根据输入最大和最小灰度值运算以后,将区域划分结果输出给下一个任务模块即即时事件2,依次进行,等第四任务模块完成时,完成一帧图像的处理。采用组合逻辑对本文算法进行建模,使之能够快速高效地进行运算,整个算法在一个时钟周期内即可完成,相对于流水线操作处理速度明显提高。
图7(a)图像大小为256×256。本文通过对原始图像观察,可以发现,灰度值比较集中,反映到图像中就是细节不明显,对比度低。同时原始图像主要的轮廓不明显。
图7 不同算法图像增强后效果Fig.7 Performance comparison of different algorithms
区域多直方图红外图像增强方法(RHE)是通过对直方图分层,在每个子层进行直方图均衡化来达到对图像增强的目的。这种基于分层的直方图均衡化相对于直方图均衡化(HE)有了一定改进,由于该方法都是基于直方图分割的,在每个子层做直方图均衡化处理,经过处理后直方图的灰度范围得到了拓展,从(b)可以看出经过RHE算法处理后图像的对比度得到了很好的提高,但是由于这类方法是基于直方图均衡化的,不可避免地会导致灰度级合并,通过直方图均衡化后图像,灰度值较小区域更暗,不能显现出水纹的细节信息,且灰度值较大区域过亮,失去原有纹理信息。本文算法α=0时增强后的图像较RHE算法处理后图像相比,图像效果有了明显改进,可以看到图中的水纹细节信息。但是α=0该算法对子层区域灰度值范围的拉伸或压缩时,存在过度拉伸或压缩的缺点,灰度值较小的像素点经过范围拓展后灰度值更小,图7(c)所示,部分区域过暗,水纹的细节信息不明显,同时灰度值较大区域的灰度值经拉伸后灰度值更大。图7(d)为当α=0.5时,经过处理后图像。该灰度范围较原图明显增大,但是在α的约束下,灰度值范围没有被过分拉伸,所以明显看出整幅图像的细节信息,视觉效果很好。
本文采用灰度平均梯度值(GMG)以及信息熵来判断增强算法的效果和有效性。灰度平均梯度值是分别将图像长度和宽度方向上的相邻像素灰度值做差后求平方和再求均方根值,它能较好地反映图像的对比度和纹理变化特征,其值越大表示图像越清晰,图像质量越好。公式为:
而信息熵代表图像中所有信息状态所具有的平均信息量,作为图像质量的评价标准,信息熵越大意味着图像中细节信息越多,视觉效果越好[16],定义为:
其中:p(i)表示灰度值为i的概率密度。
图8 不同算法处理后图像信息熵以及GMGFig.8 Image information entropy and GMG of enhanced image after different algorithms
由图8可以看出经过本文算法处理后图像的GMG以及信息熵最大。
为了验证采用即时操作实现该算法的有效性,本文采用即时操作对图7(a)进行了处理与普通实现方法、流水线操作方式进行了比较。图7(a)图像大小为256×256。
表1 三种操作性能比较Tab.1 Performance evaluation of three performances
表1给出了3种操作的性能评价,可以看出,完成图7(a)的增强处理,采用即时操作相比于流水线操作时间减少了5×103ns,比普通操作时间减少5.2×103ns。运行速度明显提高。
为了提高图像对比度、增强图像纹理细节,提出了一种子层分割灰度拉伸算法,根据子层灰度概率密度之和的大小将灰度概率密度较大的灰度值动态范围进行扩展或压缩,为了防止区间被过分拓展或压缩,运用系数α加以约束,完成灰度范围拉伸,从而提高图像的整体对比度。本文方法处理后的图像,细节丰富,灰度动态范围宽,该算法很大程度上改善图像了的清晰度和视觉质量。该增强系统采用FPGA作为整个算法的中央处理器,根据FPGA并行执行的特点,采用组合逻辑对本文算法进行建模,算法可在一个时钟周期内完成,相比于流水线操作时间提高5×103ns。该系统具有集成度高、图像处理速度快和实时性强等特点。结果表明,该算法在硬件实现上,能够有效地实现预期目标,基本可以实现工程应用。
[1]Rui L.A quantitative measure based infrared image enhancement algorithm using plateau histogram [J].Optics Communications,2010,283:4283-4288.
[2]贺柏根,刘剑.基于 DSP+FPGA的实时图像去雾增强系统设计[J].液晶与显示,2013,6(28):968-972.He B G,Liu J.Real-time image defogging and enhanced system designed based on DSP+FPGA [J].Chinese Journal of Liquid Crystal and Displays,2013,6(28):968-972.(in Chinese)
[3]Xiang Z B.Image enhancement using multi scale image features extracted by top-hat transform [J].Optics & Laser Technology,2012,44:328-336.
[4]尹传历,王啸哲.机载嵌入式图像增强系统设计与实现[J].液晶与显示,2013,28(4):604-607.Yin C L,Wang X Z.Design and realization of airborne embedded image enhancement system [J].Chinese Journal of Liquid Crystal and Displays,2013,28(4):604-607.(in Chinese)
[5]孙伟,李大健.基于大气散射模型的单幅图像快速去雾[J].光学精密工程,2013,21(4):1040-1046.Sun W,Li D J.Fast single image fog removal based on atmospheric scattering model[J].Optics and Precision Engineering,2013,21(4):1040-1046.(in Chinese)
[6]易盟,郭宝龙.结合优化梯度滤波与投影不变的航拍视频配准[J].光学精密工程,2012,20(3):651-660.Yi M,Guo B L.Aerial video registration combining optimal gradient filters and projective invariant[J].Optics and Precision Engineering,2012,20(3):651-660.(in Chinese)
[7]Turgay C.Two-dimensional histogram equalization and contrast enhancement[J].Pattern Recognition,2012,45:3810-3824.
[8]Lee Chulwoo,Lee Chul.Power-constrained contrast enhancement for emissive displays based on histogram equalization [J].IEEE Transactions on Image Processing,2012,21(1):80-93.
[9]牛英宇.图像自适应分段线性拉伸算法的FPGA设计[J].现代电子技术,2010,10:78-80.Niu Y Y.Implementation of adaptive-piecewise linear stretching algorithm based on FPGA [J].Modern Electronics Technique,2010,10:78-80.(in Chinese)
[10]武治国,王延杰.一种基于直方图非线性变换的图像对比度增强方法 [J].光子学报,2010,39(4):755-758.Wu Z G,Wang Y J.An image enhancement algorithm based on histogram nonlinear transform [J].Acta Photon Ica Sin ica,2010,39(4):755-758.
[11]Hamouda M.An efficient dsp-fpga-based real-time implementation method of SVM algorithms for an indirect matrix converter[J].IEEE Transactions On Industrial Electronics,2011,58(11):5024-5031.
[12]熊文彬,蒋泉.基于FPGA实现的视频显示系统[J].液晶与显示,2011,26(1):92-95.Xiong W B,Jiang Q.Video display system based on FPGA [J].Chinese Journal of Liquid Crystal and Displays,2011,26(1):92-95.(in Chinese)
[13]刘春香,郭永飞.星上多通道遥感图像的实时合成压缩[J].光学精密工程,2013,21(2):445-453.Liu C X,Guo Y F.Composition and compression of satellite multi-channel remote sensing images[J].Optics and Precision Engineering,2013,2(21):445-453.(in Chinese)
[14]Porikli F.Constant time O (1)bilateral filtering[C].IEEE Conference on Computer Vision and Pattern Recognition,2008.
[15]Paris S,Durand F.A fast approximation of the bilateral filter using a signal processing approach [C].ECCV,2006:568-580.(in Chinese)
[16]韩希珍.结合偏微分方程增强图像纹理及对比度[J].光学精密工程,2012,20(6):1382-1388.Han X Z .Enhencement of image texture and contrast combined with partial differential equation[J].Optics and Precision Engineering,2012,20(6):1382-1388.(in Chinese)