基于FPGA的数字相机自动曝光技术研究
2015-10-10仵宗钦
仵宗钦,刘 鹏
(1.长春理工大学 电子信息工程学院, 吉林 长春 130022;2.长春理工大学 空地激光通信技术国防重点学科实验室,吉林 长春 130022)
基于FPGA的数字相机自动曝光技术研究
仵宗钦1,刘 鹏2
(1.长春理工大学 电子信息工程学院, 吉林 长春 130022;2.长春理工大学 空地激光通信技术国防重点学科实验室,吉林 长春 130022)
针对传统的自动曝光算法不能满足特殊光照条件的场合,在研究数字相机的工作原理及特点的基础上,实现一种以现场可编程逻辑器件(FPGA)为控制核心的数字相机自动曝光系统,提出了基于图像熵的一种新的自动曝光算法。工作在外触发下的数字相机通过CameraLink接口作为图像数据的输入,利用FPGA的高速并行性完成了数字图像数据的采集、数据流的缓存控制,并且综合分析了基于图像熵的图像分区自动曝光算法的原理和过程,给出了该算法具体的实现方法,最后将得出的曝光参数输出给相机以达到合适的曝光。经实验验证:该算法的曝光效果不但适用于普通光照,而且在特殊光照条件下同样能很好的曝光,不受光照条件的影响,提高了相机系统输出图像的动态范围。
图像熵;自动曝光; FPGA;CCD;外触发方式
CommunicationTechnologyLaboratory,Changchun130022,China)
现代图像技术的发展,尤其是CCD[1-2](Charge Coupled Device)水平的不断提高,使得它在军事、工业等领域有重要的应用,但并不是所有的相机都有自动曝光功能,对于动态范围大且相机品质优良,但却不能保证图像质量的情况下,利用CCD的自动曝光能力来改善图像无疑是一个最好的方法和手段,目前通常的数字相机带有自动曝光功能的有很多,但是这种自动曝光是通用化的,这种通用化的自动曝光算法有时候对一些特殊的军事需求并不合适,另外对一些特殊的相机,由于它们的通用性不高,往往不带自动曝光算法,如相机RA-1000。因此,有必要对自动曝光技术进行研究。
另外,在一些复杂的环境下,如当目标处于特殊背景光时,图像中背景的亮度与主体的亮度相差较大,图像整体亮度偏暗或偏亮,显示效果较差。同样对于海上的目标,由于海水的反射作用使得图像中背景与主体有较大亮度的对比度,影响图像的显示效果,严重的情况下图像中的目标可能丢失,也需要相机的自动曝光来改善图像的质量。
1 系统总体设计
系统的总体框图如图1所示。系统的基本硬件主要包括以下部分:图像采集、主控单元、数据缓存、图像传输以及电源模块。
图1 系统总体框图
系统中,数字相机选用CMCB-140MCL,相机采集的图像信号经CameraLink电平转换电路,输出LVTTL电平信号送给FPGA接收,FPGA把接收到的图像信息移交给算法处理,算法计算出下次图像的曝光时间,此曝光时间就是CCD的积分时间,快门在下降沿触发采集一帧图像,低电平的宽度大小代表曝光时间的长短,也即CCD的积分时间。每次图像的曝光时间都是由上幅图像计算而得来,这样就能够实时地对目标进行适当的曝光,使图像达到最佳。乒乓数据缓存电路是为视频流能无缝隙地输出而设计的,保证了每幅图像的实时处理并给显示系统。
2 系统主要功能模块设计与实现
2.1 Camera Link接口转换电路设计
Camera Link信号主要包括图像数据信号、相机控制信号和串行通信信号3个部分[3-4]。其中图像数据信号是主要部分,包括1对差分时钟信号(Xclk-~Xclk+)和4对差分数据信号(X0-~X0+、X1-~X1+、X2-~X2+、X3-~X3+)。系统工作流程为:相机输出的信号经过Camera Link电缆传输到板上的26芯接插件,由DS90CR288芯片将LVDS信号转换为FPGA能识别的LVTTL电平,并分离出图像数据和3个视频控制信号LVAL,DVAL,FVAL;FPGA通过DS90LV47A芯片对相机的工作模式进行控制,本系统使其工作在外触发模式,通过FPGA产生外触发信号,驱动相机抓拍一副图像;相机可以和FPGA进行串行通信,相机的初始化以及内外触发等配置是通过串行完成的,DS90LV019芯片将相机输出的LVDS电平转换为LVTTL电平后直接和FPGA通过2根信号线(一发一收)相连,FPGA内部的串口模块按照一定的通信格式和相机通信。Camera Link接口驱动电路如图2所示。
图2 Camera Link接口驱动电路
28位的图像数据包括4位控制信号和24位图像数据信号,其中4位控制信号包括:
1)FVAL(帧同步信号),为高则帧数据有效。
2)LVAL(行同步信号),在FVAL为高时,为高则行数据有效。
3)DVAL(数据有效信号),在FVAL和LVAL都为高时,为高则数据有效。
4)XCLK(图像像素时钟信号),行有效时,在时钟上升沿数据稳定。
2.2 乒乓缓存电路设计
FPGA自身的存储能力有限,但采集到的相机数据量非常大,故必须对数据流进行缓存,防止因处理数据时无法连续接收而丢失部分数据。系统选择乒乓操作来缓冲图像数据,以2片动态随机存储器SDRAM(Synchronous Dynamic Random Access Memory)作为缓冲体,SDRAM具有价格低廉、存储容量大、高速等特点[5],符合系统高速大容量缓冲数据的要求。乒乓缓冲电路设计如图3所示。
图3 乒乓缓冲电路设计
从整体来看,数据的输入与输出都是连续的,无任何停顿。乒乓操作实现数据缓冲的实质是:通过SDRAM这种缓存单元,实现了数据流的串并转换。
3 数字相机自动曝光的基本原理
自动曝光是通过系统对所拍摄物体进行自动曝光的。自动曝光原理主要包含自动曝光的实现方式和自动曝光依据。
3.1 两种自动曝光方法
自动曝光大多采用光学或电子学方式[6-7]。光学方式采用两个传感器,一个用来测光照度,另一个传感器用来测图像,成像与测光单独处理。而电子学用一个传感器同时测光照度与图像。
光学方法分为内测光与外测光。外测光是将测光传感器放于图像传感器上方或斜上方,如图4a所示,这种测光方式由于测光传感器与图像传感器存在视角的不同,会造成一定的误差,测量精度小,要求不高的场合可用此方式;内测光是将测光传感器放于镜头之后,如图4b所示,这种测光不存在视角的误差,测量精度高,但这种方式结构复杂,成本较高,不宜选用。电子学测光方式无需增加测光传感器,首先预设一个自动曝光参数,获得第一幅图像后,算法对其进行亮度分析,计算出下一幅自动曝光参数,按此方法,以后每幅图像的曝光参数都是经过分析上幅图像的亮度信息计算而来。电子学方式成本低,结构简单,测量精度高,且能满足实时性的要求,故本系统选用电子学方式。
图4 光学方式
3.2 自动曝光依据
3.2.1 “中间亮度”标准
物体在18%的反射率下亮度显示最佳。这种标准对于普通光照条件下拍摄的图像具有较好的效果,然而对于特殊光照条件下时,虽然整幅图像达到了中间亮度,但目标和背景的对比度比较大,图像中目标区域可能曝光过度或曝光不足,会造成目标的不清晰。
3.2.2 “中间亮度”标准
一幅图像中,图像的灰度分布情况可以反映不同的图像质量,灰度直方图在各个灰度值上分布越均匀,图像对应的动态范围就越宽,图像自然就越清晰。在这里用图像熵来定义灰度直方图的均匀性[8]。
(1)
科学研究表明:同样条件下,图像熵值越大,图像的灰度直方图分布越均匀,图像越清晰。如对一个8 bit的图像信息,当灰度0~255每个值出现的概率相当时,直方图分布最均匀,图像熵最大(为8),图像处于理想清晰。图像熵不同于“中间亮度”,它在不同光照条件下(包括前述特殊光照条件)均适用。无论是强正面光还是强背景光都能很好的曝光,清晰地显示出目标图像。
4 基于图像熵的图像分区自动曝光算法研究
4.1 图像熵值大小决定目标区域及权重
依据视觉特性,人们力图获得最大量的信息。图像中灰度级越均匀的为感兴趣区域即主体,相反,灰度级越不均匀的为不感兴趣区域。基于“中间灰度”标准的算法是对整幅图像的灰度求其平均,自动曝光的结果是对整幅图像而言的,对于普通光照条件结果比较理想。而对于特殊光照条件,会造成曝光不理想。如果知道图像中感兴趣区域[9-10],依据该区域的值进行曝光设置,则能对数字相机更好地自动曝光。
本文就图像熵开发了基于图像熵的图像分区自动曝光算法。对图像首先分成各个区域,比较各个区域熵值大小把这些区域分为两类,一类为感兴趣区域,另一类为非感兴趣区域,同时,对这些区域根据熵值大小对照权重曲线进行分配权重,进而对数字相机准确曝光,这是本文的创新点。该方法不但适用于普通光照,而且对于特殊光照(强光和逆光)和场景中有多个目标的情况仍然能正确地自动曝光,使主体区域或目标清晰地呈现在图像上。
4.2 依据图像熵获得加权亮度
图像熵表示不确定性,值越大,所含信息量就越多,自然就是感兴趣区域。为了更好地获知感兴趣区域,将图像平均分成m×n份,所分区域不是越多越好,如果太多,所分区域就越小,这时噪声可能占据主要成分,不能够更好地反映图像信息。分好区域后由前述图像熵计算公式算出每个区域图像熵Eij,求出平均图像熵
(2)
如果某一区域的图像熵Eij大于整体平均值Eavg,该区域可能是图像中的目标区域;如果某一区域的图像熵Eij小于整体平均值Eavg,该区域可能是图像中的背景区域。对大于平均值的区域在计算该区域亮度时分配高的权重,小于平均值的区域在计算该区域亮度时分配低的权重,熵越大,亮度分配的权重越高,依照图5权重分配曲线进行分配权重,横坐标代表最大图像熵与最小图像熵的差,纵坐标代表权重。
图5 权重分配曲线
加权后的图像亮度为
(3)
式中:Bij为各区域亮度;WRONI为相应区域的权重;分母为总权重。同样的曝光值可以由不同的光圈和快门得到,图像亮度的表达式为
B=k×L×G×T×(F/d)-2
(4)
式中:k为一系数;L为环境亮度;G为增益;T为曝光时间;F/d为光圈。由此可知参考亮度Bopt和当前亮度Bcur表达式为
Bopt=k×L×G×Topt×(F/d)-2
(5)
Bcur=k×L×G×Tcur×(F/d)-2
(6)
式中:Topt为下次曝光时间;Tcur为当前曝光时间;Bopt参考亮度为128,由以上公式得到
Topt=Tcur×Bopt/Bcur
(7)
这样便可以计算出下次的曝光时间,此时间参数由FPGA通过Camera Link传输给相机,相机以此参数作为曝光的积分时间,来达到自动曝光的效果。总的算法流程如图6所示(Eth为平均熵)。
图6 算法流程图
5 实验结果与分析
本文采用Altera公司的CYCLONE IV系列芯片EP4CE55F23I7作为系统的主控和处理核心[11],同时使用Altera公司的FPGA集成开发环境QuartusII作为本系统开发环境,该开发环境自带仿真功能,它可以完全模拟实体芯片的功能和运行特性,帮助设计人员判断所设计模块的功能正确与否。
按照前述算法通过用硬件描述语言Verilog HDL编写代码,连接好电路后,把程序通过JTAG下载到FPGA中,对环境中的景物分别做自动曝光前和自动曝光后拍摄,并通过MATLAB对图像进行灰度直方图统计及图像熵计算,结果如图7和图8所示。
图7为强背景光下自动曝光图,可以看出经过自动曝光算法后的图像能够清晰地显示出目标图像,灰度直方图分布也相对均匀,图像熵与理想值相差不多;图8为弱背景光下自动曝光图,同样可以看出经过自动算法后的图像也能够清晰地显示出目标图像,灰度直方图相对均匀,图像熵与理想值接近。理论和结果正面该算法不仅适用于普通光照,对于特殊光照(强背景光和弱背景光)也能够很好的曝光,提高目标在图像中的对比度,更加清晰地显示出目标。
图7 强背景光下自动曝光前后图像及灰度直方图
图8 弱背景光下自动曝光前后图像及灰度直方图
6 结束语
本系统通过数字相机采集图像,在研究了自动曝光的原理及图像熵的基础上,提出了一种自动曝光的新算法,该算法不仅适用于普通光照条件,还能很好地适用于特殊光照条件。系统详细介绍了CameraLink接口驱动电路、乒乓缓存电路及自动曝光算法的流程,并通过实验验证了该方法的可行性。实验结果表明,采用基于图像熵的图像分区自动曝光算法可准确地对不同光照条件下的目标进行曝光,可用在不同的应用领域。
[1] 王涛.线阵CCD传感器实验场几何定标的理论与方法研究[D]. 郑州:解放军信息工程大学,2012.
[2] 华磊. 基于CCD的图像采集系统设计与实现[D]. 西安:西安电子科技大学,2012.
[3] 韩红霞,钟子晶. 基于FPGA的CameraLink视频信号分配系统设计[J].微计算机信息,2010,26(17):8-9.
[4] 吴振锋.基于FPGA的CameraLink相机图像采集及处理技术研究[D].哈尔滨:哈尔滨工业大学,2013.[5] 仵宗钦,王晓曼,刘鹏,等. 基于FPGA的SDRAM控制器设计与实现[J].电子与封装,2014,14(10):20-24.
[6] AAMPAT N.System implications of implementing auto-exposure on consumer digital cameras[C]//Proc. SPIE Conference on Sensors,Cameras,and Applicatios for Digital Photography. [S.l.]:SPIE,2009:100-107.
[7] 梁佳毅.高性能数码相机自动曝光算法研究与实现[D]. 上海:复旦大学,2008.
[8] 行长印,毛亚杰,杨立宏.基于图像熵的自动曝光设计[J]. 长春理工大学学报:自然科学版,2009,32(1):28-30.
[9] JIN E W,LIN S,DHARUMALINGAM D. Face detection assisted auto exposure: supporting evidence from a psychophysical study [J]. Digital Photography VI,2010,7537:1-12.
[10] 周杰.基于多分区分割及模糊逻辑的自动曝光算法[D]. 上海:上海交通大学,2007.
[11] ALTERA. Cyclone device handbook [EB/OL].[2013-03-15]. HYPERLINK http://www.altera.com/.
仵宗钦(1989— ),硕士生,主研光电传感与光电探测技术;
刘 鹏(1982— ),博士生,主研信息检测与处理技术。
责任编辑:闫雯雯
Study on Technology of Digital Camera Automatic Exposure Based on FPGA
WU Zongqin1, LIU Peng2
(1.ChangchunUniversityofScienceandTechnologyCollegeofElectricalandInformationEngineering,Changchun130022,China;2.ChangchunUniversityofScienceandTechnologyFundammontalScienceonSpace-GroundLaser
Due to the need of the special illumination condition can not be met by the traditional automatic exposure algorithm, a digital camera automatic exposure system is designed using FPGA as the control core in research of the basic work principle and characteristic of digital camera, and a new automatic exposure algorithm for image based on entropy is presented. The digital camera which works in the external trigger mode transmits image data through camera link interface. FPGA completes high frame rate digital image acquisition, data cache control by high speed parallel characteristics and comprehensively analysis of the principle and process of image partition automatic exposure algorithm based on image entropy. It gives the realization method of the specific algorithm and finally draws to appropriate exposure parameter. Experiments prove that the exposure result of the proposed algorithm is not only suitable for general illumination, but also in the special illumination condition. The system is not affected by light conditions, and even improves the dynamic range of the camera system of the output image.
image entropy;automatic exposure; FPGA; CCD; external trigger mode
【本文献信息】仵宗钦,刘鹏.基于FPGA的数字相机自动曝光技术研究[J].电视技术,2015,39(11).
总装备部靶场测试基金项目(KYC-XZ-XM-2014-015)
TN98
A
10.16280/j.videoe.2015.11.027
2015-03-17