一体化摄像机变焦控制系统的设计*
2010-06-25程永强
张 博,张 刚,程永强
(太原理工大学 信息工程学院,山西 太原 030024)
1 引言
一体化摄像机内置光学镜头,具有变倍、自动聚焦功能,其结构小巧、使用方便、监控范围广,已广泛应用于教学视频展台、视频监控等领域。变焦控制可实现图像的变倍跟踪、自动聚焦,是一体化摄像机设计中的关键技术之一。步进电机可将电脉冲信号转换成角位移[1-2],每接收一个脉冲信号就可驱动步进电机转动一个固定角度,实现物体的准确定位,通过控制脉冲的频率可控制电机转动的速度,步进电机已广泛应用于高精度控制系统中。一体化摄像机光学镜头中包含变倍步进电机与聚焦步进电机,变倍电机转动时,为使图像聚焦清晰,聚焦电机也应随之转动,具体转动步数与物距有关,具体参数可由镜头生产厂家提供的变焦跟踪曲线获得。为了适应不同物距的清晰成像,变倍跟踪结束后,还应进行自动聚焦,以显示清晰的图像。
图像聚焦程度与其高频分量有关,图像聚焦时,其包含的高频分量最大,图像最清晰,通常采用聚焦评价函数来描述图像的清晰程度。常用的聚焦评价函数主要有高频分量法、平滑法、阈值积分法、灰度差分法、拉普拉斯像能函数等[3-5]。为了提高聚焦速度,本文采用改进的灰度差分法实时计算每场图像的聚焦函数值,判断当前图像清晰与否,采用爬山搜索策略,实现图像的快速自动聚焦。快速自动聚焦的实现与变倍跟踪曲线的精度、自动聚焦算法的优劣、搜索策略、电机驱动速度等因素有关。
由于FPGA器件的可并行处理能力及其在系统编程中的灵活性,其应用越来越广泛,同时随着微处理器、专用逻辑器件以及DSP算法以IP Core的形式嵌入到FPGA中[6],FPGA实现的功能越来越强。笔者设计的变焦控制系统采用VHDL语言描述,在Xilinx Virtex-5 FPGA开发板上验证。
2 步进电机工作原理
本文选用的光学镜头具有变倍和聚焦两个步进电机,光学变焦22倍,步距角18°,每步位移量0.02 mm,脉冲输入速度(即转速)为 600~800 pulse/s(脉冲/秒),采用2-2相驱动励磁方式,驱动脉冲变化如表1所示。
表1 步进电机驱动脉冲
由于每次系统掉电时,步进电机的停止位置不固定,所以每次系统工作时,首先要进行步进电机位置的判断并驱动步进电机转到某一固定位置,如一倍放大位置。步进电机中用电机位置检测器来判断电机的位置,位置检测器电路如图1所示。其工作原理为:当电机驱动的检测器运动到发光二极管与光敏三极管之间时,阻挡二极管发出的光线,则三极管处于截止状态,输出信号为高电平;当检测器离开中间位置时,发光二极管使三极管导通,则输出信号为低电平。由于二极管和三极管位置固定,所以输出信号电平跳变位置是固定的。
变倍电机向靠近传感器方向转动时,图像放大,同时聚焦电机也应转动一定步数以得到清晰图像,变倍电机与聚焦电机对应的步数坐标称为变倍跟踪曲线,不同物距对应不同的变倍跟踪曲线。由于机械误差,同一型号的电机的变倍跟踪曲线稍有差异,为了适应不同电机需求,变倍放大后,聚焦电机根据变倍跟踪曲线对应转动一定步数后,再进行一次自动聚焦,便可得到清晰图像,同时也可适应不同物距需求。
图1 电机位置检测电路
3 系统设计
3.1 系统结构及工作原理
系统结构如图2所示,图像传感器将采集到的视频图像输入到FPGA,FPGA输出变倍电机和聚焦电机驱动信号,并经H桥放大后输出到光学镜头,同时,光学镜头将变倍电机和聚焦电机的位置检测信号反馈输出到FPGA中,用以检测当前电机位置。
系统上电后,FPGA判断光学镜头返回的变倍电机位置检测信号和聚焦电机返回的检测信号,若检测信号为低电平则驱动电机向靠近图像传感器方向转动,直至检测信号为高电平,在电平跳变处停止。同理,若检测信号为高电平,则驱动电机向远离传感器方向转动,直至检测信号为低电平在电平跳变处停止,以上则完成对电机的初始化。初始化结束后,驱动电机转动到一个固定放大倍数位置。电机变倍时,变倍电机转动一定步数,同时驱动聚焦电机转动对应步数,具体步数可根据变倍跟踪曲线获得。变倍结束后,FPGA计算当前场图像的高频分量,判断当前图像的清晰度,并采用爬山搜索策略驱动聚焦电机,以实现图像的自动聚焦,从而可保证每次变倍结束后得到清晰的图像。
图2 系统结构图
3.2 FPGA内部功能实现
根据现代EDA设计采用的“自顶向下”的设计方法,系统功能分为以下功能模块:电机初始化,变倍跟踪,搜索,自动聚焦算法,系统控制,电机驱动等。FPGA内部功能模块如图3所示。下面将详细介绍各模块的实现方法。
图3 FPGA内部功能模块
3.2.1 电机初始化
该模块功能是实现电机初始位置的判断,并驱动电机转动到某一固定位置。系统上电后,根据电机位置检测器返回的状态信号判断当前电机的运动位置,若返回低电平,则驱动电机向图像传感器方向移动,直至检测信号为高电平,在检测信号跳变时,停止电机转动。若检测信号为高电平,则驱动电机向远离传感器方向移动,直至检测信号为低电平,在检测信号跳变时,停止电机转动。由于检测信号跳变位置是固定的,所以系统上电后可驱动电机转动到预设置的固定位置。
3.2.2 变倍跟踪
该模块实现变倍电机的驱动,并根据变倍跟踪曲线确定聚焦电机对应的转动步数。根据变倍跟踪曲线,将变倍电机转动范围平均分成40段,由计数器1~40表示当前电机位置,当变倍电机由i转动到(i+1)时,则变倍电机朝传感器方向转动 zi+1-zi步长,若 fi+1≥fi,则聚焦电机朝传感器方向转动 fi+1-fi步长,若 fi+1<fi,则聚焦电机向远离传感器方向转动fi-fi-1步长,其中,zi,fi分别表示i点对应的变倍电机和聚焦电机在变倍跟踪曲线上的坐标;当变倍电机由i转动到 i-1时,则变倍电机朝远离传感器方向转动zi-zi-1步长,若fi-1<fi,则聚焦电机朝远离传感器方向转动fi-fi-1步长,若 fi-1≥fi,则聚焦电机朝传感器方向转动fi-1-fi步长。
通过以上分析,建构主义文化给我们展现了人类社会发展过程中的文化影响下的社会状态,使我们了解到了现代世界的稳定性,同时也向人类指明了光明的前景,虽然存在一定的主体性,但我依然相信在未来世界体系的发展过程中会诞生出新的更为合理的国际关系理论。
3.2.3 自动聚集算法实现
本文采用一种改进的灰度差分法计算图像的聚焦评价函数,公式为
式中:f(x,y)表示第x行、第y列像素的亮度值。 像素间位置关系如图4所示。
图4 像素对应位置
该算法实现时,利用FPGA内的BlockRAM作为行缓存[7],缓存4行数据,实现内部功能模块,如图5所示。
读写控制模块控制4个行缓存中数据的读写,每场图像第1行数据写入到行缓存1,第2行数据写入到行缓存2,第3行数据写入到行缓存3,第4行数据写入到行缓存4,同时,将行缓存1,2,3中数据读出到算法实现模块,第5行数据写入到行缓存1,同时,将行缓存2,3,4中数据读出到算法实现模块,按此读写规律进行直至一场图像结束。算法实现模块接收从行缓存中读出的数据,并将每个行缓存读出的数据赋值给内部相连的3个寄存器,则第2行中间寄存器对应算法中的f(x,y)像素,根据聚焦评价函数值公式即可求出当前场的聚焦函数值,并将当前场图像的聚焦函数值与前一场图像的聚焦函数值相比较,如当前场图像的聚焦函数值大于前一场图像聚焦函数值,则输出比较信号为高电平,表示当前场比前一场图像清晰,反之输出低电平,表示当前场图像比前一场图像模糊。
3.2.4 搜索实现
该模块根据自动聚焦算法模块输出的相邻两场图像聚焦函数值的比较结果,来控制聚焦电机的转动方向,当输出图像的聚焦函数值最大时停止转动,实现图像的自动聚焦。
图5 自动聚焦算法实现内部模块
该模块具体实现过程为:变倍结束后,在图像场同步信号的消隐期间,使聚焦电机朝预定义的固定方向转动一步,在下一场图像场同步的下降沿采集自动聚焦算法模块输出的聚焦函数值比较结果信号,若该信号为高电平,则表示当前图像比前一场图像清晰,电机转动方向正确,继续向该方向转动一步。同理,在下一场图像的场同步下降沿采集聚焦函数值比较结果信号,若为高电平,则继续向该方向转动,若为低电平,则向相反方向转动一步后停止电机转动,自动聚焦结束。若第一次采集的聚焦函数值比较结果信号为低电平,则表明首次设定的转动方向错误,则向相反方向转动两步后,在下一场图像的场同步下降沿判断聚焦函数值比较结果信号,若为高电平,则继续沿该方向转动,若为低电平,则向相反方向转动一步后停止电机转动,则自动聚焦结束。
3.2.5 系统控制模块
该模块主要对初始化模块、变倍跟踪模块、搜索模块输出的变倍电机和聚焦电机的驱动信号(包括转动方向、步数)进行选择输出。系统上电后,首先是初始化模块产生的驱动信号有效,初始化结束后,其他模块才可正常工作。图像变倍时,变倍跟踪模块输出的电机驱动信号有效。变倍结束后,搜索模块产生的电机驱动信号有效。
3.2.6 电机驱动模块
该模块根据系统控制模块输出的电机驱动信号(转向,步长)来产生对应的 A+,A-,B+,B-电机驱动脉冲。该模块内部为模值为4的计数器,输入转向控制信号为高电平时,该计数器加法计数,转向为低电平时,计数器减法计数,根据输入的步长控制输出驱动脉冲的持续时间长度,计数器值对应不同的驱动脉冲信号,则可产生不同方向、不同步长的电机驱动脉冲。
4 小结
由于FPGA的并行处理特性,笔者设计的变焦控制系统可同时控制变倍电机和聚焦电机,提高了变倍跟踪速度。提出并实现一种改进灰度差分算法,对每场图像计算高频分量,可适应不同环境,能较好的反映图像的离焦极性,提高自动聚焦准的确性。本文使用的图像传感器套片采用Sony公司的ICX229AK CCD传感器和CXD4103R图像处理芯片,该套片可同时输出复合视频信号与数字YUV视频信号。该设计在Xilinx Virtex-5开发板上实现。本文设计的变焦控制系统可应用于一体化摄像机的研发,具有很高的商业价值。
[1]刘星辰,刘东斌,杜鹏.步进电机控制系统的设计与实现[J].微计算机信息,2009,25(8):25-27.
[2]潘涛,程耕国.步进电机控制器的FPGA实现[J].现代电子技术,2009,(1):148-150.
[3]白立芬,徐毓娴,于水,等.基于图像处理的显微镜自动调焦方法研究[J].仪器仪表学报,1999,12(6):612-614.
[4]SUBBARAOM,NIKZADA.Focusingtechniques[J].OpticalEngineering,1993,32(11):2824-2836.
[5]任四刚,李见为,谢利利.基于灰度差分法的自动调焦技术[J].光电工程,2003,30(2):53-55.
[6]徐欣,于红旗,易凡,等.基于FPGA的嵌入式系统设计[M].北京:机械工业出版社,2005.
[7]王宇新,贺圆圆,郭禾,等.基于FPGA的快速中值滤波算法[J].计算机应用研究,2009,26(1):224-226.