孔 壮,何衡湘,代 俊,孙 彬,朱建坤
(1.电子科技大学,四川 成都 611731;2.西南技术物理研究所,四川 成都 610041)
高分辨率视频图像实时增强系统的设计
孔 壮1,何衡湘2,代 俊2,孙 彬1,朱建坤1
(1.电子科技大学,四川 成都 611731;2.西南技术物理研究所,四川 成都 610041)
雾霾天气情况下,视频成像跟踪系统采集到的图像往往呈现对比度低、灰度分布集中的特点,地面的军事人员很难准确、快速地识别跟踪目标,为了解决这一问题,本文以Xilinx公司的Spartan 3AN系列低成本FPGA芯片为核心,设计了高分辨率(1 004×1 004)视频图像实时增强系统,主要工作为系统硬件平台的设计和限制对比度直方图自适应均衡(Contrast Limited Adaptive Histogram Equalization-CLAHE)算法的FPGA实现。通过实际系统测试,设计满足实时性的要求,同时增强效果明显,可以清晰地识别目标。该系统可用于医学图像增强、交通检测及航空航天等多个领域,具有较高的实用价值。
图像增强;实时处理;CLAHE;FPGA
在雾霾天气下,从物体反射的光线在大气中传播时受到悬浮的雾霾颗粒的散射影响,以及雾霾颗粒本身作为光源的环境光影响,造成入射到观察者或CCD的光线发生衰减,形成的图像对比度低、层次不丰富[1]。近些年来,针对雾霾天图像增强算法的研究,一直是国内外的研究热点,根据处理方式不同可以将增强算法分为基于物理模型的方法和基于非物理模型的方法[2]。其中基于直方图均衡的CLAHE算法[3]增强效果明显,计算量适中,适合并行实现。
现场可编程逻辑门阵列(FPGA)基于查找表的架构以及丰富的寄存器资源可以灵活地实现流水线设计,极大地提高系统的数据吞吐量和最大工作频率。另外FPGA内部丰富的逻辑资源、块存储资源以及专用IP核资源可以方便地实现数据的并行计算,非常适合图像处理领域。本文对CLAHE算法的实现流程和数据处理进行多个改进,在Xilinx推出的低成本Spartan-3AN系列XC3S1400AN型号FPGA实现了高分辨率视频图像的实时增强,并完成了硬件平台的设计。
数字图像直方图信息表示图像各个灰度级出现的次数或频率,其数学意义为各灰度级的概率分布函数。雾天图像的对比度低,直方图中像素集中分布在少数的灰度级上,为了达到图像增强的目的,可以通过直方图均衡的方法,即将直方图近似于均匀分布。通过离散形式的累积分布函数作为直方图变换函数,就可以实现直方图的均匀扩展,累积分布函数相当于图像原始灰度和增强后像素灰度的一种映射关系,如
(1)
式中:L表示图像灰度级总数;rk为直方图中某个灰度级,0≤k≤L-1;N为图像总的像素数量;nk代表灰度级rk的像素的数量;sk为rk灰度级增强后对应新的灰度级。全局直方图均衡(ImageHistogramEqualization)算法即为对图像所有像素通过式(1)的映射进行增强,该算法对整幅图像进行统一的变换计算简单,但存在细节损失、过度增强等问题。
为了解决全局直方图均衡算法的缺陷,Zuiderveld等人提出限制对比度的自适应直方图均衡(CLAHE)算法[3]。首先,对图像进行分块,具体子图块的个数N需要根据图像大小以及实际需要确定。然后统计每个子块的直方图,根据判决门限β对直方图进行削峰,把多余的像素个数累加到超出门限像素变量Excess中,遍历整个直方图灰度级以后,需要将Excess重新分配到小于判决门限β直方图灰度级上,该操作需要多次重复,直到变量Excess为0。再根据重分布后新的直方图按式(1)对每个子块的直方图进行均衡映射,得到N个子图块的直方图映射函数。最后,对整个图像的像素点进行线性加权重构[4],将重构的像素点重新连接,即为CLAHE算法处理后的图像。
视频图像由高分辨数字CCD采集,通过CameraLink接口[5]输入到硬件处理平台,在FPGA内部完成图像增强,裁剪门限β的值可通过RS-422接口实时改变,然后通过VGA接口输出到显示器上显示,系统框图如图1所示。
图1 系统硬件框图
系统采用ADIMEC-1000md型号CCD工业相机采集视频图像,图像分辨为1 004×1 004,数据时钟为40 MHz,帧频为30.5 f/s,双通道8 bit数据输出模式。数据由CameraLink接口传输到硬件平台,5对LVDS图像数据进入芯片DS90CR288A进行CMOS/TTL电平转换,其中4对转换成28 bit的图像信息,包括24 bit的图像数据信号、相机的场同步、数据同步和行同步信号;另外1对信号转换成时钟信号。针对本系统因为相机采用双通道数据输出模式,所以只需要使用CameraLink中的A、B口就可以。
FPGA产生相机的控制信号需要经过差分驱动芯片DS90LV047A,通过CameraLink接口传到相机。异步串行通信部分包括2对差分信号,其中一对是由相机到FPGA通信信号,另一对是FPGA到相机的通信信号,系统选用差分收发芯片DS90LV019用来对这两对信号进行电平转换。
经过FPGA图像增强算法后的图像数据需要实时地在显示器显示,供军事人员监视跟踪目标,本系统采用的视频输出接口为VGA接口[6],采用Analog Devices公司的ADV7123视频数模转换芯片进行视频数模转换,图像数据作为ADV7123的高8位,后面两位补0处理。
VGA接口的行、场同步信号需要根据VGA时序以及不同分辨率和刷新频率的时序要求产生,本系统采用分辨率为1 280×1 024、刷新频率为60 Hz的时序要求如表1所示,VGA时序如图2所示。在FPGA内部使用两个计数器,根据表1的时序要求,生成行、场同步信号连接到VGA接口。
图2 VGA时序图
符号参数场同步信号/行行同步信号/像素时钟Ts同步脉冲10661688Tdisp显示时间10241280Tpw脉冲宽度3112Tfp前沿148Tbp后沿38248
3.1 算法实现优化
CLAHE算法的FPGA的实现流程主要有直方图统计、直方图重分配、直方图均衡以及线性加权计算像素重构[7]。其中直方图统计与像素重构根据图像像素的灰度值,所以需要在场同步信号有效时并行执行;所有子图块直方图重分配和直方图均衡计算过程可以在场消隐期间并行完成。
1)时钟管理以及子区域划分
通过Xilinx FPGA特有的时钟管理器(DCM)对PCLK进行2倍频PCLK_2X,然后以PCLK_2X作为像素时钟将输入的双通道图像数据拆分成单独的像素灰度数据(IMGDAT)。同时根据像素时钟和行同步信号作为计数信号,可以得到像素的水平和垂直坐标。
子图块与子区域划分的方法如图3所示,在像素重构线性计算中可以使用移位运算代替除法运算。
图3 像素子区域的划分
2)直方图统计
图像直方图相当于存储图像每个灰度级出现个数的存储器,所以这里使用FPGA内部专用的块RAM(Block RAM)资源生成的双口RAM来完成直方图统计。裁剪门限β可以由上位机通过RS-422接口传输到FPGA,根据β对直方图削峰以及统计Excess。
以像素数据作为直方图统计双口RAM的读写地址,读出数据dout与裁剪门限β比较,等于β时写入RAM的数据din=β,超出门限累加变量Excess加1;小于β时,写入RAM的数据din=dout+1。
3)直方图重分配
在场同步低电平(场消隐)期间,设计以PCLK_2X上升沿计数器,用于生成直方图统计RAM的读写地址,按图4所示流程[8]依次对直方图RAM中灰度级的数据重分配,重复3次上述流程完成直方图重分配操作。
图4 直方图重分配流程图
4)直方图均衡
直方图重分配完以后,根据式(1)进行直方图均衡,该过程相当于原始图像灰度与增强后图像灰度的一种映射关系,同样可以使用双口RAM来实现,称为直方图查找RAM。FPGA内部没有专用的除法器,需要消耗大量的逻辑资源完成除法运算,可以利用专用乘法器与FPGA移位运算解决这一问题,对式(1)进行改进,子图块的大小为251×251,灰度级数L=256,比例系数P=255×2512/2562取近似值为267,某灰度级rk的直方图累加值为ACC,则该灰度级的直方图均衡映射灰度级sk可以由公式(2)计算。在完成上述操作以后,需要对直方图统计RAM清零。
sk=(ACC×P)≫16bit
(2)
5)像素线性加权重构
CLAHE算法流程最后一步像素灰度值重构的计算,需要根据原始图像各个像素位置以及子图块直方图均衡映射函数来完成。利用视频图像两帧图像的高度相似性,以前一场的直方图均衡映射函数作为当前场图像数据的依据。
在前一场视频图像的消隐期间,获得了16个子图块的直方图均衡后像素映射查找表RAM,以行、场同步复合信号为使能,以输入像素数据IMGDAT为地址,同时读出16个直方图查找表RAM中对应的像素映射灰度值,根据属于的子区域从16个像素映射灰度值取F1(Iold)、F2(Iold)、F3(Iold)和F4(Iold)。式(3)中线性加权参数r和x在根据像素的坐标来确定,在一个周期能通过专用乘法器的乘法运算以及移位运算就能得到像素重构的结果Inew。
Inew= F1(Iold)+r·x·(F1(Iold)+F4(Iold)-
F2(Iold)-F3(Iold))/256+x·(F2(Iold)-
F1(Iold))/256+r·(F3(Iold)-F1(Iold))/256
(3)
3.2 FPGA资源消耗及时序分析
CLAHE算法FPGA实现资源消耗情况如表2所示,其中16个Block RAM用作直方图统计RAM剩下的16个用作直方图查找RAM。32个专用乘法器(MULT)16个用于直方图均衡计算,4个用于像素重构计算。消耗2个时钟管理器DCM和7个全局布线资源GCLK,用来产生算法所需的控制时钟。
表2 CLAHE算法FPGA实现资源消耗
LogicUtilizationUsedAvailableUtilization/%NumberofSlices26841126423NumberofSliceFlipFlops1220225285Numberof4inputLUTs48972252821NumberofbondedIOBs195023NumberofBRAMs3232100NumberofMULT18X18SIOs203262NumberofGCLKs72429NumberofDCMs2825
图像增强系统的原始输入信号为30 Hz灰度数字视频,双通道像素时钟为40 MHz,每场视频图像所占用的时间为33.4 ms,单场视频图像共有1 736行,每行像素个数为1 536,场正程时间ttrace和场消隐时间tfblank的计算如式(4)和(5)所示
ttrace=1 004×1 536/(80×106)≈19.27 ms
(4)
tfblank=(1 736-1 004)×1 536/(80×106)≈14.06 ms
(5)
直方图统计以及像素重构以行、场同步复合信号为使能并行执行,需要的时间tcomplex计算为式(6)。直方图重分配、直方图均衡和统计RAM清零操作在场消隐期间顺序执行,需要计数器产生读取和写入地址和使能,所以消耗的时间可以由采用的计数器总的时间tcount计算,如式(7)所示,由计算结果可知,tfblank远远大于tcount,所以系统能在场消隐实时处理前一帧图像的直方图数据,为下一帧图像的重构准备。
tcomplex=1 004×1 004/(80×106)≈12.55 ms
(6)
tcount= (1 000+400)/(80×106)+
400/(40×106)=27.5 μs
(7)
CCD相机采集的视频数据分成两路,一路经过图像采集卡保存到PC机硬盘上,另一路通过CameraLink接口进入FPGA进行图像增强,硬件平台预留测试接口,将图像增强后的数据经过图像采集卡保存到另一台PC机中。系统外场试验采集到的原图像和增强后图像对比如图5所示。本文采用对比度、有效灰度级和图像熵作为图像增强的客观评价参数,图5中的图像客观评价结果如表3。
图5 外场试验图像效果对比
图像参数对比度有效灰度值熵图像a046615853481图像b0667512458056图像c052155954421图像d0823113360069
对比图5a和图5b、图5c和图5d以及表3中的客观评价指标,原图像画面非常模糊,很难识别跟踪目标(图中白色亮点),经过系统增强后的图像对比度得到增强,图像层次感更强烈,细节更丰富,目标(图中白色亮点)清晰明显,说明系统满足实际要求,具有较强的应用性。
为了解决雾天情况下视频成像跟踪系统采集到图像模糊不清目标难以分辨的问题,本文采用低成本FPGA为核心设计高分辨率视频图像实时增强系统硬件平台,并在FPGA内部实现了限制对比度直方图均衡算法(CLAHE),经过试验测试,系统在满足实时性的同时,图像对比度明显增强,地面军事人员可以清晰地监视跟踪目标。该系统还可以用于民用室外监控、航天测控等领域,实际应用价值较高。
[1] 王欣威,李颖,董慧颖.基于大气模型的天气退化图像复原方法及应用[J].沈阳理工大学学报,2005,24(01):36-39.
[2] 郭蟠,蔡自兴,谢斌.图像去雾技术研究综述与展望[J].计算机应用,2010,30(9):2417-2421.
[3] ZUIDERVELD K. Contrast limited adaptive histogram equalization[M]. Cambridge:MA Academic Press,1994.
[4] 周卫星,廖欢.基于高频强调滤波和CLAHE的雾天图像增强算法[J].电视技术,2010,34(7):38-40.
[5] 马利刚,马铁华.基于FPGA的实时图像采集系统设计[J].计量与测试技术,2009,36(4):51-56.
[6] 孙艳.基于FPGA的VGA显示控制器的实现[J].自动化与仪器仪表,2008(6):106-107.
[7] 杨光,李晶,吴钟建,等.基于FPGA的实时视频增强[J].电视技术,2013,37(19):19-23.
[8] REZA A M. Realization of the contrast limited adaptive histogram equalization for real-time image enhancement[J].Journal of VLSI Signal Processing,2004(38):35-44.
责任编辑:许 盈
Design of High Resolution Video Image Real-time Enhancement System
KONG Zhuang1, HE Hengxiang2, DAI Jun2, SUN Bin1, ZHU Jiankun1
(1.University of Electronic Science and Technology of China,Chengdu 611731, China; 2. Southwest Institute of Technical Physics,Chengdu 610041,China)
Under fog and haze weather condition, the images collected by real-time video imaging and tracking system often appear with characteristics of low contrast and centered gray distribution, the target is difficult to be accurately and quickly identified and tracked by military personnel on the ground. In order to solve this problem, the high resolution (1 004×1 004) video image real-time enhancement system, taking the low cost FPGA chip of Spartan 3AN serial of Xilinx company is designed in this paper, the main work includes the system hardware platform is designed and contrast limited adaptive histogram equalization (CLAHE) enhancement algorithm is implemented in FPGA. The practical system tests prove that the design meets real-time requirements, enhancement effect is obvious, and the target can be clearly identified. The system can be used for medical image enhancement, traffic detection, aerospace and other fields, it has high practical value.
image enhancement; real-time processing; CLAHE; FPGA
TP391.41
A
10.16280/j.videoe.2015.20.027
2015-03-30
【本文献信息】孔壮,何衡湘,代俊,等.高分辨率视频图像实时增强系统的设计[J].电视技术,2015,39(20).