影像科学与光化学  2015, Vol. 33 Issue (4): 330-335   PDF (1766 KB)    
一种适用于并行运算处理的实时高动态范围图像合成算法研究
王旋1 , 陈忻2, 刘巍1    
1. 武汉第二船舶设计研究所, 湖北 武汉 430064;
2. 中国科学院 上海技术物理研究所, 上海 200083
摘要:针对目前现有高动态范围图像(HDRI)的合成算法因复杂度高而难以应用于强实时系统的缺点,本文提出了一种适用于并行运算处理硬件的基于多曝光时间的实时HDRI合成算法。该方法首先完成探测器光照响应曲线的生成与标定,然后在现场可编程门列阵(FPGA)中通过数字信号处理技术完成多曝光图像序列的场景照度恢复以及像素的实时融合。仿真验证结果表明,该算法能够正确有效地在FPGA中执行,可达到实时HDRI获取的设计要求。
关键词高动态范围图像     数字信号处理     FPGA    
Research on a Real-time High Dynamic Range Image Synthesis Algorithm for Parallel Computing Environment
WANG Xuan1 , CHEN Xin2, LIU Wei1    
1. Wuhan Second Ship Design and Research Institute, Wuhan 430064, Hubei, P. R. China;
2. Shanghai Institute of Technical Physics of CAS, Shanghai 200083, P. R. China
Abstract: High dynamic range image (HDRI) synthesis is of high algorithm complexity, which makes it almost impossible to implement in real-time processing situation. To deal with this drawback, we proposed a real-time HDRI synthesis algorithm that is applicable to hardware which can deal with parallel computing. This method first derives detector illumination response function, and then accomplishes the recovery of illuminances on scenes of multi-exposure images and real-time integration of pixels through digital signal processing on FPGA. Simulation results indicate the correctness and efficiency of this algorithm, which also can meet the design requirements in real-time processing.
Key words: high dynamic range image(HDRI)     digital signal process (DSP)     field-programmable gate array (FPGA)    
1 引言

高动态范围图像(high dynamic range image,HDRI)是一种可以表示实际场景中亮度大范围变化的图像类型,其图像中的像素值正比于场景中对应点的实际亮度值,因此能够更好地刻画场景中亮区和暗区的光学特性,最大限度保存场景中的细节信息[1]。在一些应用场景中,如:卫星遥感探测、军事侦察、工业检测、智能交通等领域,往往需要实时获取当下场景的信息数据,关注更多的细节特征,以提高应用的性能指标,因此对HDRI数据的获取与合成速度提出了较为严苛的要求[2,3]

目前,国内外对HDRI数据获取与合成方法的研究主要有:多次曝光法[4]、多靶面曝光合成法[5]、单像素集成多感光单元法[6]、自适应像素曝光法[7]、光学衰减器法[8]等。其中,多次曝光法以无需对现有成像系统进行改造或重新设计,且合成算法复杂度不高、稳定可靠等优点,尤为适用于在具有并行计算能力的处理器上。

本文针对实际应用中HDRI快速合成的设计需求,提出并在现场可编程门列阵(FPGA)中实现了一种基于多曝光时间的实时HDRI合成算法。该算法首先选择多幅不同曝光时间下的图像序 列,在上位机中完成探测器光照响应曲线的生成,然后在FPGA中完成多曝光图像的场景照度恢复以及像素的实时融合。通过仿真和试验验证,该算法能够正确有效的在FPGA中执行,可达到HDRI实时合成的设计要求。

2 方法原理

多曝光时间下的HDRI合成算法原理如下:假设一共需要获取P幅图像,其中第j幅图像的曝光时间为Δtj 。每幅图像共有N个像素,第j幅图像的第i个像素的像素值用Zij表示。第i个像素处的曝光量为Xi,经过探测器镜头入射到第i个像素处的传感器的真实照度为Ei。由于是连续获取P幅图像,考虑到图像获取时间间隔较短,实际场景环境的光照强度基本上没有太大的变化,因此认为每张图像中的真实场景的光照强度是近似恒定的。那么对第j幅图像的第i个像素的总曝光量符合公式(1)所表征的线性关系:

假设探测器的响应输出值与总曝光量存在非线性映射关系 ,如公式(2)表示:

探测器辐照响应曲线为单调曲线,因此反函数f存在。记为g=lnf-1,公式(2)经过变形可得:

其中,Zij和Δtj 是已知的,g(Zij)和lnEi是未知的,而g(Zij)就是需要拟合的非线性辐照响应函数。在n位数字图像中,Zij是0~2n-1范围的整数,因此并不需要g(Zij)的解析表达式,只要计算出相应的2n个g(Zij)值就可以了。因此,对公式(2)的求解就转化为对最小二乘目标函数的求解,由公式(4)表示:

目标函数中需求解的未知量为2ng(Zij)N个lnEi 。因此,获得响应曲线实际上并不需要利用图像中所有的像素数据。根据线性方程组解的性质可以知道,需要使用的像素数N满足公式(5)即可:

拟合出光照响应曲线后,就可以根据该曲线恢复每张图像的场景辐射照度。融合所有的P幅图像计算每个像素的照度值Ei来减小误差,如公式(6)表示:

其中,w(Zij)是为了减少数据中的噪声影响引入的权重函数,如公式(7)表式:

利用公式(7)即可求出所有像素点的照度值,其值的变化范围很大,且正比于实际场景点的亮度,最终合成所对应场景的高动态范围图像。

3 硬件实现

多曝光时间HDRI合成的处理框图如图1所示,首先要设置不同曝光时间拍摄一组原始序列图像,然后利用原始图像计算出光照响应曲线,最后根据响应曲线融合出高动态范围图像。

图1 多曝光时间HDRI合成流程示意图 Multi-exposure time HDRI synthesis porcess diagram

在该算法的FPGA硬件实现中,响应曲线可通过采集到的数据预先计算出来,存储在FPGA中,在实际运算时再进行调用。这样做的优势就是可以事先利用某一已知的亮度来标定比例系数,获得绝对亮度值,满足实际应用分析需求。

HDRI合成算法的FPGA实现结构图如图2所示,工作时,探测器在图像序列曝光控制模块控制下进行不同时间的曝光,采集到的图像序列将会首先进行依照辐照响应曲线进行映射恢复每张图片的照度,最后进行图像序列的照度融合,完成HDR图像的合成。

图2 硬件实现结构框图 Structure of hardware implementation diagram

图像序列曝光控制模块可根据用户命令配置每张图像的曝光时间以及图像序列数目,并根据配置数据控制探测器进行拍摄。数据采集模块完成探测器图像数据的接口交互,由探测器的行同步与帧同步信号一起控制数据的采集。响应曲线查找表存储预先计算出来的响应曲线数据,探测器采集到的数据通过查找表输出对应的照度值。在FPGA中可通过调用ROM IP核实现响应曲线查找表,由于支持的探测器输入为10 Bits,因此实例化的ROM大小为1024×16 Bit。

场景照度合成模块用于完成多图像数据的合成,恢复场景的真实照度,其计算过程如公式(6)所示。由于图像序列的采集是依次获取的,因此可以通过序列迭代的方式完成图像的计算。

整个模块设计结构如图3所示,将探测器响应输出,响应曲线查找表输出对应的照度信息,以及当前帧对应的积分时间送入场景照度合成模块。根据照度信息查找到对应的权重函数,积分时间通过查找表对数化,然后根据公式完成分母部分与分子部分的迭代累加计算。最后通过除法器完成这一组序列的真实场景辐照输出,输出的数据为lnEi。可通过增加一个Cordic模块进行反对数化,得到对应的Ei值。

图3 照度恢复模块实现框图 Illuminance recovery module block diagram

整个模块对于单幅图像单个像素的处理采用全流水线方式进行,流水线级数为7,其计算速度 可达单个时钟周期。对于多幅图像由于采用叠加的工作模式,因此在采集完成多幅图像后即可同步完成高HDRI的融合。

4 仿真与验证

为了验证该算法的实际运行情况,以Xilinx Spartan6 FPGA为主处理器搭建测试平台对其进行验证。调用Matlab图像库中office图像序列作为测试图像,如图4所示,曝光时间分别为0.03(a)、0.1(b)、0.3(c)、0.625(d)、1.3(e)、4(f),最大动态范围为256。通过以太网将图像传输至测试平台中,测试平台模拟真实图像采集处理过程,进行HDRI合成,合成后的图像通过以太网传输至上位机中。

图4 Matlab图像库测试图像序列曝光时间:0.03(a); 0.1(b); 0.3(c); 0.625(d); 1.3(e); 4(f) Test image sequence from Matlab image library Exposure time: 0.03(a),0.1(b),0.3(c),0.625(d),1.3(e),4(f)

图5是根据公式(4)拟合出的光照响应曲线,它以16 Bits有符号定点数方式存储在FPGA的ROM中,其中12 Bits为小数位。

图5 测试图像序列 Test image sequence result

图6为融合原始图像序列后生成的高动态范围图像,合成后图像动态范围可达2×103

图6 合成HDR图像 HDR synthesis image

硬件实现的HDR合成算法在合成速度上有很大优势,将相同的算法在PC机中执行。采用的PC配置如下: CPU为Intel I7-3770,内存4GB,操作系统为Windows7家庭版,运行软件为Matlab2010b。整个算法需要执行24.5 s才能完成HDR图像的合成。而基于硬件实现的HDR由于采用全流水线架构,可以在采集完曝光图像组的7个周期后完成图像的合成,非常适合高帧频输出的应用场合。

通过公式8比较两种实现方式的误差情况:

残差结果如图7所示,残差分布直方图如图8所示。从图中可以看出硬件实现计算的平均误差在3.5%,可以满足实际应用中对精度的要求。本文提出的用恢复成像系统光照响应曲线来实时合成高动态范围图像的方法是合理可行的。

图7 两种实现方式的残差图像 Residual image of two kinds of implementations

图8 残差分布直方图 Residual distribution histogram
5 结语

高动态范围图像可以准确获取场景细节特征信息,在卫星遥感遥测探测、工业检测、军事侦察,以及智能交通等领域有着广泛的应用前景。本文提出了一种基于多曝光时间的实时HDRI合成算法,在上位机中预先标定出探测器光照响应曲线,然后在FPGA中通过数字信号处理完成多曝光图像的场景照度恢复以及像素的实时融合。通过仿真平台验证,合成后的图像动态范围提升了87.2%,平均计算误差为3.5%,图像细节特征可辨识率大幅提升。本文提出的算法能够正确有效地在FPGA中执行,可达到实时HDRI获取的设计要求。

参考文献
[1] Erik R,Greg W,Sumanta P, Paul D. High Dynamic Range Imaging Acquisition, Display, and Image-Based Lighting[M]. 2nd Edition. USA: Morgan Kaufmann,2010.
[2] Jinno T, Okuda M. Multiple exposure fusion for high dynamic range image acquisition [J]. IEEE Transactions on Image Processing,2012, 21(1): 358-365.
[3] 刘真,杨丹丹,朱明.HDR图像压缩算法比较研究[J].影像科学与光化学,2011,29(1):32-44. Liu Z,Yang D D,Zhu M.Comparison of HDR image compression algorithms[J]. Imaging Science and Photochemistry,2011,29(1):32-44.
[4] 江燊煜,陈阔,徐之海,冯华君,李奇,陈跃庭. 基于曝光适度评价的多曝光图像融合方法[J].浙江大学学报(工学版), 2015,49(3):470-475,481. Jiang S Y, Chen K, Xu Z H, Feng H J, Li Q, Chen Y T. Multi-exposure image fusion based on well-exposedness assessment[J]. Journal of Zhejiang University (Engineering Science), 2015,49(3):470-475,481.
[5] Ikeda E. Image data processing apparatus for processing combined image signals in order to extend dynamic range[P]. US patent, 5801773. 1998.
[6] Street R A. High dynamic range segmented pixel sensor array[P]. US patent, 5789737. 1998.
[7] Guthier B, Kopf S, Effelsberg W. Capturing high dynamic range images with partial re-exposures[C]. Proceedings of IEEE 10th WorkShop on Multimedia Signal Processing, 2008, 241-246.
[8] Nayar S K, Branzoi V. Adaptive dynamicrange imaging: optical control of pixelexposures over space and time[C]. Proceedings of the Ninth IEEE International Conference on Computer Vision, 2003, 2: 1168-1175.