搜索

一体化摄像机变焦控制系统的设计

2010-10-15 10:57| 发布者: 浪涛| 查看: 7384| 评论: 1|原作者: 视觉印象


3  系统设计
3.1  系统结构及工作原理
    系统结构如图2 所示,图像传感器将采集到的视频图像输入到FPGA,FPGA输出变倍电机和聚焦电机驱动信号,并经H 桥放大后输出到光学镜头,同时,光学镜头将变倍电机和聚焦电机的位置检测信号反馈输出到FPGA中,用以检测当前电机位置。
    系统上电后,FPGA判断光学镜头返回的变倍电机位置检测信号和聚焦电机返回的检测信号,若检测信号为低电平则驱动电机向靠近图像传感器方向转动,直至检测信号为高电平,在电平跳变处停止。同理,若检测信号为高电平,则驱动电机向远离传感器方向转动,直至检测信号为低电平在电平跳变处停止,以上则完成对电机的初始化。初始化结束后,驱动电机转动到一个固定放大倍数位置。电机变倍时,变倍电机转动一定步数,同时驱动聚焦电机转动对应步数,具体步数可根据变倍跟踪曲线获得。变倍结束后,FPGA计算当前场图像的高频分量,判断当前图像的清晰度,并采用爬山搜索策略驱动聚焦电机,以实现图像的自动聚焦,从而可保证每次变倍结束后得到清晰的图像。
3.2  FPGA内部功能实现
    根据现代EDA 设计采用的“自顶向下”的设计方法,系统功能分为以下功能模块:电机初始化,变倍跟踪,搜索,自动聚焦算法,系统控制,电机驱动等。FPGA内部功能模块如图3 所示。下面将详细介绍各模块的实现方法。
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=ΣΣ(f(x,y)-f(x,y-1)+f(x,y)-f(x-1,y)+f(x,y)-f(x+1,y-1)+f(x,y)-f(x-1,y-1))
    式中:f(x,y)表示第x 行、第y列像素的亮度值。
    该算法实现时,利用FPGA内的BlockRAM作为行缓存[7],缓存4行数据,实现内部功能模块。
    读写控制模块控制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  搜索实现
    该模块根据自动聚焦算法模块输出的相邻两场图像聚焦函数值的比较结果,来控制聚焦电机的转动方向,当输出图像的聚焦函数值最大时停止转动,实现图像的自动聚焦。
    该模块具体实现过程为:变倍结束后,在图像场同步信号的消隐期间,使聚焦电机朝预定义的固定方向转动一步,在下一场图像场同步的下降沿采集自动聚焦算法模块输出的聚焦函数值比较结果信号,若该信号为高电平,则表示当前图像比前一场图像清晰,电机转动方向正确,继续向该方向转动一步。同理,在下一场图像的场同步下降沿采集聚焦函数值比较结果信号,若为高电平,则继续向该方向转动,若为低电平,则向相反方向转动一步后停止电机转动,自动聚焦结束。若第一次采集的聚焦函数值比较结果信号为低电平,则表明首次设定的转动方向错误,则向相反方向转动两步后,在下一场图像的场同步下降沿判断聚焦函数值比较结果信号,若为高电平,则继续沿该方向转动,若为低电平,则向相反方向转动一步后停止电机转动,则自动聚焦结束。
3.2.5  系统控制模块
    该模块主要对初始化模块、变倍跟踪模块、搜索模块输出的变倍电机和聚焦电机的驱动信号(包括转动方向、步数)进行选择输出。系统上电后,首先是初始化模块产生的驱动信号有效,初始化结束后,其他模块才可正常工作。图像变倍时,变倍跟踪模块输出的电机驱动信号有效。变倍结束后,搜索模块产生的电机驱动信号有效。
3.2.6  电机驱动模块
    该模块根据系统控制模块输出的电机驱动信号(转向,步长)来产生对应的A+,A-,B+,B-电机驱动脉冲。该模块内部为模值为4 的计数器,输入转向控制信号为高电平时,该计数器加法计数,转向为低电平时,计数器减法计数,根据输入的步长控制输出驱动脉冲的持续时间长度,计数器值对应不同的驱动脉冲信号,则可产生不同方向、不同步长的电机驱动脉冲。

发表评论

最新评论

引用  wangqiong45    2012-7-28 18:22
老师有点高级了,我看不懂呀,但几个月后我会再来研究的!!!

查看全部评论(1)