基于FPGA的彩色图像实时采集系统设计
2014-03-21李华,朱波
李 华,朱 波
(1.商洛学院,陕西 商洛726000;2.中国科学院 西安光学精密机械研究所,陕西 西安710119;3.西安交通大学-西安光学精密机械研究所 空间视觉联合实验室,陕西 西安710049)
1 前 言
为了让CCD/CMOS图像探测器采集到景物的全彩色图像,通常的方法是使用3片探测器结合分光棱镜的方法。但是,出于系统体积、重量和维护难易程度等因素的考虑,实际应用往往使用一片图像探测器,但是在探测器前覆一层膜(CFA),例如应用最为广泛的Bayer格式[1]。再结合去马赛克算法就可以得到全彩色图像,显然,算法的优劣对彩色图像的质量将起到举足轻重的作用。目前去马赛克算法的研究现状可归纳为两点,易于FPGA 等硬件实现的各种线性算法基本上插值效果都不能令人满意[2-4];而插值性能优良的非线性算法,其实现难度却都比较复杂,大部分还停留在理论研究或计算机仿真的层面[5-9],不能或不易FPGA 硬件实现。而另一方面,随着探测器分辨率越来越高、帧频越来越快,图像的传输已经成为了制约图像应用的瓶颈,特别是远程传输应用,因此,基于GigE 的图像传输已经成为未来数字相机系统的趋势。好的算法与设计只有运行在合适的硬件平台才能发挥其长处,FPGA 凭借其并行运算优势,有较多高等级的产品(比如宇航级芯片)可供选择,使其在图像处理领域[10-11],特别是空天应用的图像处理领域受到越来越多的重视。本文正是在这种大背景下,依托某预研课题研究并设计了一套基于FPGA 的全彩色实时图像采集系统,取得了较好的效果。
2 系统设计原理及方法
本文彩色图像采集系统的原理框图如图1所示。采用的CMOS 图像探测器是美光公司的MT9M011,FPGA 使 用 的 是Xilinx 公 司 的Virtex-4,型号为XC4VSX55,PHY 芯片则是MARVELL公司的MX88E1111。
图1 基于FPGA 的系统原理框图Fig.1 Block diagram of FPGA-based system
系统的工作过程为:当系统上电稳定后,首先通过FPGA 对MT9M011 图像探测器的寄存器进行配置,使其正常工作并输出Bayer格式图像,然后将Bayer格式图像顺序送入FPGA,先对其进行8bit量化,然后进行去马赛克等彩色相关处理,最后经过GigE 接口将彩色图像输出,整个处理过程以流水线的形式进行,做到了图像的实时处理与输出。下面将结合图1详细介绍各个功能模块的设计原理与硬件实现过程。
2.1 MT9M011图像探测器时序设计
MT9M011是美光公司的一款基于Bayer格式的彩色CMOS图像探测器,其设计简单、性能稳定,因此,被广泛用于需要彩色成像的系统。
与其他公司的CMOS探测器相比,该探测器时序相对比较简单,仅仅通过类似于I2C 传输协议的串行线完成对特定寄存器的配置,就可使其正常工作[12],需要配置的主要寄存器包括:改变输出图像分辨率的R03与R04,调节帧频的R05及改变曝光时间的R09 等。本文根据实际应用需要,将探测器工作状态设置在分辨率为1 280×1 024、帧频为15f/s的模式下,其中,曝光时间通过RS422 总线,根据外部成像条件实时进行修改。图2所示为写05号寄存器为0x110,设置帧频为15f/s的Modelsim 仿真波形,其他寄存器设置与此类似。当设置完寄存器,探测器就开始输出图像了。需要指出的是,为了保证探测器的输出稳定性与可靠性,本设计还在每帧图像的帧逆程期间都对相应的寄存器进行一次配置。
图2 写寄存器仿真波形Fig.2 Simulation of register writing timing
2.2 去马赛克过程设计
通常,自然界图像的能量谱主要集中在低频区域[6],即沿着给定像素的水平和垂直轴线分布,因此,本文去马赛克算法的插值过程主要是基于水平和垂直方向进行。文献[13]算法结合以上特点,取得了较好的彩色恢复效果。因此,本文在文献[13]的基础上对算法进行了进一步的简化和改进,在基本不降低彩色恢复效果的前提下大大节约了硬件资源。下面将结合图3所示的Bayer格式图像对算法进行详细说明。
图3 Bayer格式图像Fig.3 Bayer image
2.2.1 绿色分量恢复过程
红色通道和蓝色通道均存在缺失绿色分量,考虑到Bayer格式的对称性,此处仅以计算红色通道缺失的绿色分量为例进行介绍。首先,应用二阶拉普拉斯修正网络如图3所示。以R0为中心的5×5Bayer格式图像,插值得到处水平方向绿色分量和垂直方向绿色分量,如式(1)和式(2)所示:
将整幅Bayer图像的红色通道应用式(1)和式(2),得到图像中所有红色通道缺失的水平和垂直绿色分量。
这时,我们依据色差梯度来选择绿色分量,因为梯度大的方向色差值变化剧烈,不易估计,因此,我们取梯度值小的作为插值结果。首先构造式(3)和式(4)所示的色差表达式:
其中:i,j表示每个像素的行列号,假设图像的分辨率为M×N,则1≤i≤M,1≤j≤N。再构造色差的梯度表达式如式(5)所示:
得到色差梯度以后,我们构造一个5×5的窗口来统计窗口内的梯度值,取SH(i,j)和SV(i,j)为窗口内水平和垂直方向梯度值之和。通过比较计算,当SV(i,j)<SH(i,j)时,=,反 之,=,完成整幅图像中绿色分量的估计。
2.2.2 红色(蓝色)通道的蓝色(红色)恢复
当整幅图像的绿色分量得到后,我们仍然用色差梯度法来估计缺失的红、蓝分量。对红色通道处缺失蓝色分量的估计,以图3中的R0为例,其四周的蓝绿色差共有4个,分别为:
式(7)即红色通道处缺失的蓝色分量。根据Bayer格式图像对称的特点,同样的方法可求得蓝色通道处丢失的红色分量。
2.2.3 绿色通道的蓝色(红色)恢复
绿色通道缺失的蓝色分量和红色分量的计算方法和2.2.2节的计算类似,只是Bayer格式图像中绿色分量是红、蓝分量的两倍,因此要进行两次计算。
2.2.4 后续处理
经过2.2.1~2.2.3节的计算,得到了整幅图像中每个像素处的R,G,B 分量。但是,为了进一步降低伪彩色,我们构造了低通滤波器来保留低频成份。本文从恢复效果和硬件资源占用角度出发,构造了3×3的二维低通滤波器用于后续改善处理[13-14],如式(8)所示:
分别应用式(8)对每个通道缺失的另外两种分量进行改善[13],从而完成整幅图像最终的彩色恢复。
2.2.5 算法效果评价
选取了比较典型的3种彩色恢复算法和本文算法进行去马赛克效果的比较,样本选择Kodak标准图像库里的8幅经典图像,如图4所示。首先对图4的8幅图像进行Bayer格式退化,然后应用算法进行彩色恢复。为了便于对算法的效果进行说明,采用了PSNR 和目视两个指标对彩色恢复效果进行评价。
图4 从Kodak图库中提取的试验图像Fig.4 Test images from Kodak
图5所示为本文算法和其他几种算法恢复结果的目视效果,表1所示为几种算法恢复结果的PSNR 统计。很显然,本文算法的整体性能大大优于其他几种算法。但是,因为本文算法是对文献[13]算法简化改进得到的,所以彩色恢复效果稍差于文献[13],以图4(e)为例,PSNR 仅相差0.1dB,基本上性能一致,但是,硬件资源却比文献[13]算法节约了20%。
图5 几种算法对图5(b)的恢复效果比较.(a)原图;(b)Bayer格式图像;(c)双线性插值结果;(d)文献[3]恢复结果;(e)文献[7]恢复结果;(f)本文算法恢复结果Fig.5 Interpolation results of different demosaicking methods.(a)Origin image;(b)Bayer image;(c)BI;(d)Reference[3];(e)Reference[7];(f)Proposed
表1 几种算法恢复结果的PSNR 数值统计Tab.1 PSNR performance comparison of different demosaicking methods (dB)
2.2.6 算法FPGA 硬件实现
分析本文算法可知,计算方面仅由加法、移位和比较等操作构成,和线性图像处理方法在硬件实现,特别是FPGA 实现上难度相当,能够做到硬件实时处理。
由于算法各主要步骤都是在数据窗口进行,所以,本文在FPGA 内部通过BlockRAM 构造了图6形式的图像行缓存,每个行缓存的深度为图像的一行,Rxx为D 触发器,构成像素缓存。这样,就构成图像流水线窗口,同时对5行图像数据进行各种计算与处理。
图6 彩色插值算法硬件实现过程Fig.6 Process of FPGA implemented demosaicking method
从Bayer格式图像进入FPGA 到彩色图像输出,本文算法共需要缓存约12行图像,因为像素时钟是25MHz,所以,延时仅有(1 280+396)×12×40ns≈0.8ms(其中,396是图像行逆程占用的像元数),基本满足实时处理的需要。
2.3 基于GigE的数据传输设计
GigE因其传输速率快、误码率小且成本低廉,已经广泛应用于各大公司数字相机的数据传输,因此,本系统设计了基于FPGA 的GigE 数据传输机制。
2.3.1 GigE传输方案的可行性分析
由于本文系统采集的是全彩色图像,即每一像素的色深是24bits,而探测器输出图像的分辨率为1 280×1 024,帧频为15f/s,这样,1s内传输的图像数据为:
相应的图像传输带宽就是0.472Gbit/s,由于本课题对图像质量的苛刻要求,所以,不能对图像进行压缩,这就给传输带来了较大的挑战。
根据应用需要,本系统GigE 要同时给数个子系统输出彩色图像,即一对多的广播方式,因此只能采用UDP协议,这也是目前大部分GigE 相机使用的协议,传输机制则使用单工通讯。按照UDP协议规定,一包数据的结构分为包头+数据+帧间隙,其中,包头由源MAC、目标MAC、源IP、目标IP 等42Bytes固定数据组成。有效数据的长度为46Bytes~1 500Bytes,由于系统传输的是全彩色图像,每个像素由3Bytes组成,因此,本文将一包数据的长度设定为320个像元,刚好是一行图像长度的1/4,转化到UDP包格式数据的长度即320×3=960Bytes,满足UDP 数据格式要求。除了包头和数据,数据帧之间的间隙也是有严格要求的,IEEE802.3标准规定最少要保证12Bytes,这样,本文千兆以太网的理想传输效率为:
相应的理想带宽为0.947Gbit/s,对比式(9)可知完全满足本文全彩色图像传输的需要,不会造成数据的丢失。
2.3.2 GigE传输方案的具体设计
我们知道,为了方便采集,图像探测器是以固定格式输出的,帧有效结合行有效作为图像有效的标志,图像数据以行为单位,连续输出。而基于千兆以太网的数据传输则仅以数据包为单位进行传输,每包的有效数据长度为320个彩色像元,这样,图像的接收者就无法辨识图像的开始与结束,这给实际应用将带来很大麻烦,为了解决这个问题,本文在设计上采取了添加帧头的方式,具体做法是,当图像的帧有效来临时,首先将图像在FPGA 内部进行缓存,同时FPGA 内部生成一个数据长度为100Bytes的帧头包,用于存储拍摄时间、曝光时间等图像信息,同时,也起到了区别两帧图像的目的。
由于图像的像元时钟为25 MHz,而GigE 使用的是125 MHz的时钟,所以,怎么安排图像组包也是基于GigE 传输要重点考虑的问题,本文设计采用了如下策略:系统首先发送100Bytes的帧头包,当发现图像行有效的下降沿时开始从缓存FIFO 中读取数据组成GigE数据包,而且连续发送4包,刚好完成一行图像的发送,然后再等待下一个行有效的下降沿,如此反复就完成了图像连续、无误的传输,传输一行图像GigE 消耗的时间为:
而图像探测器输出一行图像的总时间为:
所以,一行图像时间内可以完成4包数据的发送。值得一提的是,42Bytes包头数据里面第19和20 两Bytes用于设置包标识,本设计通过FPGA 发送连续的计数达到统计丢包数的目的,防止误码的发生。
由于以太网只对应网络体系的数据链路层和物理层,所以本文FPGA 完成的是MAC层开发,控制帧的生成,数据在FPGA 内按照GigE格式输出给PHY芯片MX88E1111,将MAC层数据转换为可以在物理链路上传播的格式连接到RJ-45接口,输出给远端存储与显示单元,用于后端应用。
3 试验与结果分析
按照第2节的设计思路,对相机系统进行了详细设计,并结合光机系统进行了实际成像试验。在分辨率为1 280×1 024,帧频为15f/s,20 ms曝光时的成像效果如图7所示,其中,图7(a)为Sniffer软件捕获的100Bytes长度图像帧头包信息,图7(b)为实际得到的全彩色图像,可以看出,图像色彩逼真、细节丰富,伪彩色得到了有效抑制,和理论成像结论一致,充分证明了设计的可行性。
由于UDP只是一个简单的面向数据色的运输层协议,和所有使用UDP 协议作为传输机制的系统一样,本文系统也存在丢包与误码的问题,经过详细试验测试,丢包率在1%以内,可以满足用户的实际要求,下一步,将尝试点对点的TCP/IP协议,以尽量杜绝丢包现象。
图7 实际成像效果Fig.7 Real imaging
4 结 论
根据彩色图像采集系统的发展趋势,结合实际预研课题,研究并设计了一套基于FPGA 硬件实现的彩色图像实时采集系统。巧妙地运用梯度和色差关系改进了Bayer格式图像的插值效果,降低了插值算法硬件实现的难度,并结合GigE数据传输接口,大大提高了数据传输能力。实验结果表明,相比其他彩色图像采集系统,本系统获取的彩色图像在PSNR 和目视方面,性能均有大幅度的提升,而整个系统的开发难度却仅和线性算法相当。目前,该系统工作正常,其优良的性能得到了用户的好评。值得一提的是,该系统可扩展性强,只要根据需要更换不同型号的彩色图像探测器,稍微修改一下FPGA 管脚分配等参数就可以用于其他成像系统,因此,具有广阔的应用空间。
[1] Bayer B E.Color imaging array:US Patent,3 971 065[P].1975-03-05.
[2] 王暕来,杨春玲.基于最大类间方差法的图像分割系统的设计与实现[EB/OL].http:∥www.altera.com.cn/education/univ/local/events/articles/july08-3.pdf.Wang J L,Yang C L.Implementation of image segmentation system based on Otsu method[EB/OL].http:∥www.altera.com.cn/education/univ/local/events/articles/july08-3.pdf.
[3] Henrique S M,He L W,Ross C.High-quality linear interpolation for demosaicing of bayer-patterned color images[C].IEEE International Conference on Acoustics,Quebec,Canada:Speech and Signal Processing:2004:485-488.
[4] Adams J E,Hamilton J F.Adaptive color plane interpolation in single color electronic camera:US Patent,5 506 619[P].1996-04-14.
[5] Zhang L,Wu X L.Color demosaicking via directional linear minimum mean square-error estimation[J].IEEE Transactions on Image Processing,2005,14(12):2167-2178.
[6] Zhang L,Wu X L,Antoni B,et al.Color demosaicking by local directional interpolation and nonlocal adaptive thresholding[J].Journal of Electronic Imaging,2011,20(2):203016(1-16).
[7] Daniele M,Stefano A,Giancarlo C.Demosaicing with directional filtering and a posteriori decision[J].IEEE Transactions on Image Processing,2007,16(1):132-141.
[8] Zhang L,Dong W S,Wu X L,et al.Spatial-temporal color video reconstruction from noisy CFA sequence[J].IEEE Transactions on Circuits and Systems for Video Technology,2010,20(6):838-847.
[9] 朱波,汶德胜,王飞,等.应用字典学习算法改善Bayer格式图像彩色恢复效果[J].电子与信息学报,2013,35(4):8-16.Zhu B,Wen D S,Wang F,et al.Improvement of Bayer-pattern demosaicking with dictionary learning algorithm[J].Jounal of Electronics &Information Technology,2013,35(4):8-16.(in Chinese)
[10] 张传胜.基于SOPC的通用液晶屏人机交互系统GUI的设计[J].液晶与显示,2013,28(2):250-254.Zhang C S.Design of man-machine interaction systems based on LCD screen of SOPC [J].Chinese Journal of Liquid Crystals and Displays,2013,28(2):250-254.(in Chinese)
[11] 王静轩,尹传历.基于DSP和FPGA 的嵌入式实时图像增强系统[J].液晶与显示,2013,28(3):459-463.Wang J X,Yin C L.Embedded color image enhancement system based on DSP and FPGA[J].Chinese Journal of Liquid Crystals and Displays,2013,28(3):459-463.(in Chinese)
[12] Micron Inc.MT9M011datasheet[OL].[2004-01-05].http:∥www.ic5.cn/p_MT9M011_nzw.html.
[13] 朱波,汶德胜,王飞.改进的Bayer插值算法及其硬件实现[J].光电子激光,2013,24(6):1211-1218.Zhu B,Wen D S,Wang F.Improved bayer-pattern demosaicking and its hardware design[J].Journal of Optoelectronics·Laser,2012,24(6):1211-1218.(in Chinese)
[14] Kolta R W B,Aly H A,Fakhr W.A hybrid demosaicking algorithm using frequency domain and wavelet methods[C]∥International Conference on Image Information Processing,2011:1-6.