APP下载

超细电子内镜图像插值与色彩校正FPGA算法设计与实现

2016-02-09严壮志谷东兴

中国医疗器械杂志 2016年4期
关键词:色卡内窥镜插值

罗 强,严壮志,,谷东兴,曹 雷

1 上海大学通信与信息工程学院,上海市,200444

2 上海生物医学工程研究所,上海市,200444

超细电子内镜图像插值与色彩校正FPGA算法设计与实现

【作者】罗 强1,严壮志1,2,谷东兴1,曹 雷1

1 上海大学通信与信息工程学院,上海市,200444

2 上海生物医学工程研究所,上海市,200444

针对目前超细电子内镜成像像素数有限和色彩失真等问题,该文研究开发基于双线性插值原理的FPGA图像插值算法和基于多项式回归原理的FPGA色彩校正算法。仿真测试实验结果表明,该文提出的算法实现了1280×720@60 Hz高清视频实时显示,同时以爱色丽色卡为标准,平均色差较校正前下降了约30%。

超细电子内镜;图像插值;色彩校正;FPGA

0 引 言

电子内窥镜是一种可以对人体内部器官和组织进行直接成像的医疗仪器。相对传统的硬管式、半屈式及光导纤维内窥镜,电子内窥镜具有可变焦观测,亮度和清晰度可调整,图像可存储、回放等优点[1]。医生通过使用电子内窥镜可以更加快速、方便和精确地诊断病情[2-3]。

现今,在微创手术中人们对术后恢复快、创口小的需求越来越高,这使得电子内窥镜朝着小型化的方向发展,但现有的小型化电子内窥镜分辨率普遍偏低。如Covi D等研制的用于电子内镜微创手术的一次性摄像模具,其尺寸为5.0 mm×8.2 mm×7.0 mm,图像分辨率只有640×480[4]。Wang L等采用1/18英寸的CMOS传感器,设计出了基于DSP的内窥镜图像处理系统,图像传感器分辨率为76 800像素[5]。徐忠等[6]采用微型CMOS图像传感器配合LVDS技术,设计了一种医用超细内窥镜系统,传感器尺寸缩小至2.4 mm×2.7 mm,但分辨率也只有648×488。内窥镜的低分辨率导致图像的信息量减少,最终可能影响医生对病情的诊断。

此外,医生常通过观察组织表面颜色、轮廓等信息的细微变化进行病情的诊断,然而受到采集、处理等设备影响,图像不可避免的会出现色彩失真[7]。如Cheng J等[8]设计的基于CMOS图像传感器的电子内窥镜系统,遇到了图像色彩失真的问题。赵深林等[9]采用SOPC技术设计的嵌入式内窥镜系统,同样也存在图像色彩的失真。而内窥镜成像出现色彩失真,将直接影响病灶的诊疗。

本文针对上述电子内窥镜在分辨率和色彩还原上的不足,研发基于FPGA的超细电子内窥镜实时图像处理系统。该系统利用双线性插值算法将采集的内窥镜图像从720×576插值到1 280×720分辨率;同时基于多项式回归方法对图像进行色彩校正。

1 超细电子内镜实时视频图像处理系统

本文搭建的系统主要分为三个部分:(1)CCD图像采集模块;(2)FPGA与DDR2_SDRAM组成的图像处理器模块;(3)医用高清监视器。CCD图像采集模块由1/6英寸超细图像传感器组成,输出PAL制式图像。视频解码器则将采集模块送来的视频信号转化为ITU-R BT.656标准数据。数据进入FPGA后,进行解交织操作、视频插值、色彩校正,并构造符合HDMI标准的时序和控制信号。最后数据经视频编码器编码并送入监视器显示。系统整体架构如图1所示。

图1 超细电子内镜实时图像处理系统结构框图Fig.1 The structure diagram of real-time image processing system of ultra-thin electronic endoscope

系统采用Altera公司Cyclone IV E系列EP4CE30F23C6的FPGA作为主处理器,它具有高达28 848个LEs,含有20个全局时钟和608 256 bits的存储器单元,可以满足各种复杂算法的设计与实现。视频编、解码器分别由TW2867解码芯片和SIL9134编码芯片构成。另外,各算法是在CPU型号为Intel(R) Core(TM) i5-4460 3.2 GHz、内存8 GB的主机上,采用Verilog语言、Altera公司Quartus II 12.1集成开发环境设计完成。

2 算法设计及实现

2.1 图像插值FPGA算法的设计与实现

为了提高图像分辨率,本文采用插值算法进行图像的缩放。传统的算法有线性插值算法、基于边缘的插值算法、加权系数算法以及小波变换的插值算法等,但大多数插值算法计算复杂、延时长。本文为了达到高清视频的实时显示,最终选择双线性插值算法,该算法在FPGA中实现的复杂度适中,而且能够较好地保留原始图像的细节和边缘信息[10]。

图2 插值算法示意图Fig.2 The schematic diagram of the interpolation algorithm

如图2所示,双线性插值算法需要先将待插值像素点gm,n映射到原像素空间,并与像素点fp,q建立水平距离wq和垂直距离wp。接着利用插值点周围的四个像素点fp,q、fp,q+1、fp+1,q、fp+1,q+1,分别对图像进行水平插值和垂直插值。其中,水平插值需要完成两次计算,得到新的像素gp,n,gp+1,n,位置如图2中虚线与水平实线的交叉处。两次水平插值计算公式表示为:

垂直方向插值运算公式为:

其中wq、wp计算公式如下:

式中符合[.]为取整号,m、n为插值点在插值后图像中的横、纵坐标值,Sm、Sn为水平、垂直缩放因子,且在已知输入、输出分辨率的情况下,Sm、Sn为定值。

Sm、Sn计算公式为:

式中M0、N0表示插值前图像的水平、垂直像素个数,M1、N1表示插值后图像的水平、垂直像素个数。Sm、Sn的数据宽度定义为18 bits,其中高4 bits为整数部分,低14 bits为小数部分。此时,FPGA在实现式(4)、(5)的运算时,只需完成m×Sm与n×Sn的相乘操作,取乘积的低14 bits数值即为wq、wp。

有了wq、wp值,将式(1)、(2)代入式(3)中得到最终的插值公式:

定义4个系数:

通过以上对算法的设计,将算法拆分为多个步骤,从而方便算法在FPGA的实现。图3显示图像插值的FPGA算法实现框图,包括RAM-FIFO存储模块、缩放因子存储模块、插值系数计算模块以及加权求和模块等。

RAM-FIFO缓存模块由多个双端口RAM组成,每个RAM的缓存容量为一行视频数据,本文采用四个RAM组成数据缓存器,以达到相邻两行四个像素点输出的目的。式(6)和式(7)计算得到的Sm、Sn存放在缩放因子存储模块中。而加权求和模块完成式(8)的计算,最终得到插值点gm,n。

图3 FPGA实现插值的结构框图Fig.3 The structure diagram of the interpolation on FPGA

根据上述方法分别对Y、Cb、Cr三个数据通道进行处理,即可完成720×576到1 280×720分辨率的视频插值。

2.2 色彩校正FPGA算法的设计与实现

文献[11]介绍了多种色彩校正方法的优缺点。本文结合FPGA并行计算的特点,基于多项式回归法进行色彩校正,并利用流水线对算法进行硬件加速。

多项式回归法的基本原理就是利用一组方程组,对输入的变量x1, x2, ...,xp个变量通过选择性组合成更高维的v1, v2, ...,vj( j≥p)的输入数据,这些数据通过线性组合对目标数据进行拟合,从而求出该方程组的系数[12]。

本文选择爱色丽标准24色色卡作为目标图像。如图4(a)所示,色块大多代表自然物,如人体皮肤和蓝天等,且24色色块是经科学配制,以相同的方式反射可见光谱中的光。

此时基于多项式回归的色彩校正算法[13-14]可描述如下:记N=24为校正用的参考色卡的色块数目,对于相机实际输出的第i个颜色块的颜色值表示为向量xi:(Ri,Gi,Bi) (i=1, 2,..., N),同时校正目标值表示为向量Si:(SRi,SGi,SBi) (i=1, 2,..., N)。采用k :(R, G, B) 多项式的组合形式推导色彩校正模型。此时多项式回归方程表示为:

式(13)的矩阵形式为:

式中T表示矩阵转置运算,A为映射系数矩阵,S为目标值矩阵,X为相机获取的测量值矩阵。S、X表示为:

利用最小二乘法推导出矩阵A的计算公式:

将求得的映射矩阵A代入式(18),便可实现对图像的色彩校正。式(18)中Rin, Gin, Bin表示原图像中各像素点的R, G, B值,Rout, Gout, Bout则表示校正后像素点的R, G, B值。

根据以上描述,为了求出映射矩阵A,需要获得测量矩阵X和目标矩阵S。本文利用采集卡采集内镜图像,首先需要进行白平衡处理。如图4(b)为采集的爱色丽24色标准色卡的内镜图像,对其中各色块选定区域取均值,将取均值后的24色值组成测量矩阵X。同时将图4(a)参考的标准色卡24色值作为目标矩阵S。

图4 目标图像及校正前的图像Fig.4 The target image and the image before correction

此时求得矩阵A为:

但视频经过FPGA插值后输出为YCbCr444格式数据,需要先将数据转换为RGB格式。YCbCr444转RGB格式如式(20)所示:

利用FPGA进行矩阵运算,如果能够减少矩阵之间的计算,必然会降低FPGA资源的消耗,同时提高系统的实时性。鉴于此,本文对色彩校正公式(18)和YCbCr转RGB公式(20)进行优化,将式(20)代入式(18),使原先两次矩阵运算合并为一次运算,如公式(21)所示:

将式(19)代入式(21)得到优化后的色彩校正公式:

考虑到公式(22)中的系数为浮点数,而FPGA无法直接完成浮点数运算。本文将式(22)中所有数据放大210倍,即左移10 bit,实现了浮点数到定点数的转换。

图5 FPGA实现色彩校正的RTL原理框图Fig.5 The RTL schematic of color correction on FPGA

图5为本文设计的色彩校正RTL原理框图。如图5所示,作者采用完全的流水线设计思想实现FPGA色彩校正算法。将整个色彩校正公式(22)划分为三级流水单元:第一级流水单元完成式(22)中所有的乘法;第二级流水单元根据矩阵式(22)中系数的符号,区分正、负数完成公式中的加法运算;第三级流水线单元则完成最终的和运算,并把结果赋值给Rout,Gout,Bout。另外,在第三级流水线中,比较器与选择器组成数据溢出检测电路;如果操作二中输出的所有负数之和大于所有正数之和,将把h0赋值给输出端,反之则将和运算结果赋给输出端。

3 验证实验与讨论

为了验证本文方法的有效性,本文设计了两组实验,包括图像插值和图像色彩校正实验。在图像插值实验中,本文将手心作为内镜测试对象,以手握拳方式模拟人体体腔;通过冻结视频的方式,获取同一帧视频插值前后的图像。在色彩校正实验中,本文先对电子内镜系统进行白平衡处理,利用采集卡采集FPGA色彩校正前后的色卡图像,并以标准的爱色丽24色色卡为目标图像。

实验环境为 Matlab 2013b,实验主机的CPU型号是Intel(R) Core(TM) i5-4460 3.2 GHz,内存为8 GB。采集卡采样精度为10 bit,HDMI接口采样率最高可达225 MSPS。整个验证实验分为两个步骤:

第一步:利用采集卡采集插值前后的图像,通过查看图像采集界面获取视频信息,包括:图像分辨率及帧率;并对比分析插值前后图像。

第二步:采集FPGA色彩校正前后的色卡图像,对图像中的各色块取均值,并与标准的24色色卡进行比较,绘制色度图,计算色差。

为了更加直观地观察本文方法对图像色彩的校正效果,将采集到的色卡图像转换到CIE XYZ空间计算色度坐标(x, y),并映射到色度图中进行分析。色度坐标计算如公式(23)所示:

式中X、Y、Z表示在CIE XYZ空间下观测到的三刺激值。由于色度图能够较好地反映真实世界的颜色,使颜色的描述更加简便[15]。

为了衡量色彩校正的程度,利用式(24)进行定量评价。假设(L1, a1, b1),(L2, a2, b2)为CIE Lab颜色空间上的两色度值,此时色差△Eab计算公式为:色差△Eab值越小,表明两色度值区别越小。色差的计算是在CIE Lab标准色差空间进行的,这是由于CIE Lab空间能够较好地反映物体颜色的心理感觉效果,因此常用于评价颜色的校正效果[16]。

3.1 图像插值实验

图6 插值前后图像Fig.6 The image before and after interpolation

如图6所示,插值前图像分辨率为720×576,而经过插值后,系统输出1 280×720分辨率的图像,达到了高清视频的实时显示。可以看出本文方法较好地解决了电子内镜成像分辨率不足的缺点。对比图6(a)、(b)可以看出,插值后的图像边缘并未出现明显的马赛克、模糊等现象。

3.2 图像色彩校正实验

图7(a)为FPGA校正后的图像。从图7(a)可以看出,图像经过FPGA硬件校正后,各色块的颜色都更加接近于标准色值即图4(a)。对比图4(b)与图7(a)可以发现,图7(a)视觉感更强、颜色更加鲜艳。

图7 校正后的图像及色度分布图Fig.7 The corrected image and the diagram of chromaticity distribution

同时将图4(a)、(b)以及图7(a)转换到CIE XYZ色彩空间,并绘制了相应的色度图,如图7(b)所示。图中每个空心圆代表色卡的一种颜色,共24个点,且校正后的点与目标点相连,距离越远表示失真越大。分析色度图7(b)中各图像色块均值点的分布情况,可以看出图像经过FPGA校正后,大部分的色块均值点更加接近于目标值,尤其对距离目标值较远的点校正效果最佳。这说明图像经过FPGA校正后,色彩得到了较好地还原。

本文通过计算采集的原图4(b)和FPGA校正后的图7(a)在CIE Lab色彩空间相对于目标图4(a)的色差值,然后对比色差均值和最值进行比较。结果如表1所示。

对比表1中数据,经过FPGA校正后色差均值从29.337下降到20.446,降幅达到30%。

表1 校正前后图像的色差比较Tab. 1 Comparison of color difference for the uncorrected and corrected images

4 总结

本文设计了图像插值和色彩校正FPGA算法,并搭建了超细电子内镜实时图像处理系统,实现了内镜图像插值和色彩校正。测试结果表明,本文设计的FPGA算法能够有效地将视频插值到1 280×720分辨率;并使得显示的画面更加逼真。同时,本文搭建的系统可以实时稳定地采集和处理视频信号,为未来更高性能的电子内镜图像处理系统的设计提供了一定的参考价值。

[1] Tang Y, Huang C, Gu W, et al. Deinterlacing technique in medical endoscope system [C] // IEEE BMEI, 2010, 1: 184-188.

[2] Desilets D, Kaul V, Tierney WM, et al. Automated endoscope reprocessors[J]. Gastrointestin Endosc, 2010, 72(4): 675-680.

[3] 朱泳, 严壮志, 康明洪. 基于格子波尔兹曼模型的内镜图像高光修复[J]. 仪器仪表学报, 2015, 12: 2747-2755.

[4] Covi D, Cavallotti C, Vatteroni M, et al. Miniaturized digital camera system for disposable endoscopic applications[J]. Sensor Actuator A Phys, 2009, 162(2):291-296.

[5] Wang L, Shi Y, Lu Z, et al. Miniaturized CMOS imaging module with real-time DSP technology for endoscope and laryngoscope applications.[J]. J Sign Proc Syst, 2009, 54(54):7-13.

[6] 徐忠, 刘洪英, 皮喜田,等. 医用超细内窥镜系统研究[J]. 中国生物医学工程学报, 2014, 33(1):107-111.

[7] Hopenfeld B. ST segment depression: The possible role of global repolarization dynamics[J]. Biomed Eng Online, 2007, 6(4):1-16.

[8] Chen J, Wang LQ, Meng ZB, et al. Color correction for highdefinition electronic endoscope [J]. J Innov Opt Health Sci, 2012, 5(4):1510-1519.

[9] 赵深林. 基于ARM与FPGA的医用内窥镜摄像系统设计[D]. 重庆: 重庆大学, 2012.

[10] 冉峰, 杨辉, 黄舒平. 面阵CCD彩色视频图像实时采集系统的设计[J]. 光学精密工程, 2010, 18(1):273-280.

[11] Xu X Z, Shen LS, Liu CJ. Color correction methods and application in image processing[J]. Appl Res Comput, 2008, 25(8):2250-2254.

[12] 徐晓昭, 沈兰荪, 刘长江. 颜色校正方法及其在图像处理中的应用[J]. 计算机应用研究, 2008, 25(8): 2250-2254.

[13] Lu Y H, Huang C H. RTL/FPGA implementation of color correction for digital cameras[C]// iCAST2013, UMEDIA2013, 2013: 428-433.

[14] Wang X, Zhang D. An optimized tongue image color correction scheme[J]. IEEE Trans Inform Tech Biomed, 2010, 14(6): 1355-1364.

[15] 戴海平, 叶庆好. CIE1931色度图的计算机再现[J]. 大学物理, 1998. 17(2): 35.

[16] 王欢, 陈向宁, 姜明勇. 彩色图像显示系统的色彩还原技术研究[J]. 计算机工程与应用, 2014, 50(4): 200-202.

Design and Implementation of Image Interpolation and Color Correction for Ultra-thin Electronic Endoscope on FPGA

【Writers】LUO Qiang1, YAN Zhuangzhi1,2, GU Dongxing1, CAO Lei1

1 School of Communication and Information Engineering, Shanghai University, Shanghai, 200444
2 Shanghai Institute of Biomedical Engineering, Shanghai, 200444

This paper proposed an image interpolation algorithm based on bilinear interpolation and a color correction algorithm based on polynomial regression on FPGA, which focused on the limited number of imaging pixels and color distortion of the ultra-thin electronic endoscope. Simulation experiment results showed that the proposed algorithm realized the real-time display of 1280×720@60Hz HD video, and using the X-rite color checker as standard colors, the average color difference was reduced about 30% comparing with that before color correction.

ultra-thin electronic endoscope, image interpolation, color correction, FPGA

R318.6

A

10.3969/j.issn.1671-7104.2016.04.001

1671-7104(2016)04-0235-05

2016-04-25

上海市科委“科技创新行动计划”(13DZ1941203);“科技支撑计划”资助项目(15441905400)

罗强,E-mail: luoqiang4242@shu.edu.cn

猜你喜欢

色卡内窥镜插值
滑动式Lagrange与Chebyshev插值方法对BDS精密星历内插及其精度分析
一种具有附加内窥镜功能的医疗管
电子内窥镜临床评价要求探讨
内窥镜技术研究进展
数字色卡
基于pade逼近的重心有理混合插值新方法
2018/19秋冬国际流行色定案色卡分析
混合重叠网格插值方法的改进及应用
2016年情人节色卡
鼻内窥镜在分泌性中耳炎治疗中的作用