一种自动对焦算法的优化

时间:2022-10-05 01:30:40

一种自动对焦算法的优化

摘要: 随着数码相机的飞速发展,在实际应用中对数码相机的易用性和智能化要求越来越高。为了提高图像采集的准确性和简便性,开展了自动对焦技术和算法的研究。通过对对焦平台的搭建,在评价函数一定的情况下,对爬山法驱动寻址算法步长减半进行了优化,在保证准确性的情况下,更快地实现了自动对焦,减少对硬件的要求,节省资源。结果表明,该优化算法有一定的优越性。

关键词: 自动对焦; 对焦评价函数; 图像处理; 爬山法; 清晰度; 即时对焦系统

中图分类号: TP 272文献标识码: Adoi: 10.3969/j.issn.10055630.2013.02.006

引言自动对焦技术是现代成像系统[1]中的关键技术之一,它最早起源于军事领域的应用,现在广泛应用于日常生活和科学研究。自动对焦技术就是用现代电子技术和机械控制方法,代替人眼来判断目标场景的聚焦是否清晰,并以自动控制的方法来调节焦点,最终能清晰成像的一种技术。自动对焦一方面可以减少劳动强度,减少或避免使用者因反复调焦造成的主观误差;另一方面,它省去了复杂的调焦动作,大大方便了使用者。随着生活、生产需求的不断提高,自动对焦技术的应用层面越来越广,对自动对焦系统在精度、速度和稳定性方面的要求也越来越高。近年来自动对焦技术理论的研究层面很广,发展也十分迅速,学者们提出了多种对焦方法,DSP芯片技术、计算机控制技术等相继被应用于自动对焦系统中,并得到了快速发展,如在数码相机[2]中的自动对焦应用尤为广泛与成熟。最近,佳能推出了一款性能更高的即时对焦系统的相机,就是在对以前自动对焦算法和寻址系统的优化基础上,通过多种方式的基于图像被动对焦和基于测距的主动对焦方式的相互配合共同完成高速准确的自动对焦。图1对焦系统

Fig.1Focusing system1对焦系统介绍对焦系统是基于计算机处理的多模块集成的开发环境。主要有三个部分:对焦系统如图1所示。

1.1图像采集部分实验采用的是日本的一款USB接口的基于VC开发的工业摄像机。通过厂家的集成开发包可以直接在VC中得到图像的数据并进行操作。

1.2中间数据采集处理和控制部分该部分是在VS2005环境下完成的。主要通过计算机的标准接口来完成对数据的采集和处理,并在处理结果的基础上对电机进行驱动,实现精确、快速的对焦。

1.3电机驱动电机驱动的控制是通过串口发送脉冲实现电机的转动。其采用的是北光世纪仪器公司SC系列步进电机和与其配套的步进电机控制器。它可以实现行程和速度的精确控制,当输入为1个脉冲,直线台位移为0.001 mm。其可以实现精度补偿,在开环状态下实现高精度的运动,能够使实验到达比较理想的结果。光学仪器第35卷

第2期马鹏川,等:一种自动对焦算法的优化

图2对焦函数

Fig.2Focus function2自动对焦评价函数自动对焦评价函数是通过对数字图像的分析及对图像数据的操作,按照一定的要求筛选出来的。到目前为止,为适应各种不同的条件和要求出现了许多种评价函数,为了便于自动对焦的实现,对焦函数[34]都要满足以下条件(见图2):

2.1单峰性单峰性就是有一个极值,在正确对焦时对应于这个极值。

2.2单调性单调性就是在极值两侧,呈现单调增加或单调减小。

2.3极性极性能反映离焦的性质,当前评价对焦位置是在焦前还是焦后。在自动对焦技术发展的这几十年中,产生了各种各样的自动对焦评价函数[58],大致可分为以下几种:(1)灰度变化率和函数:F(x0,y0)=∑x∑yg(x,y)-g(x0,y0)g(x0,y0)(1)(2)均方差公式:F(x0,y0)=∑x∑y[g(x,y)-u]2(2)其中,u为参考值。(3)差模平方和公式:F(x0,y0)=∑x∑yg(x+1,y)-g(x,y)2+g(x,y+1)-g(x,y)2(3)式(1)~式(3)其理论依据是:清晰的图像比模糊的图像包含更多的信息,人们能更好地分辨其中的细节(细节意味着图像有清晰可辨的边缘,在局部中有很强的灰级变化,灰级的跃变更加剧烈)。(4)墒函数熵函数是基于这样一个前提――对焦良好的图像的熵大于没有对焦清晰的图像,因此可以作为一种评价标准。对于一幅图像,图像的熵函数可以表示为:F(x0,y0)=-∑x∑yf(x,y)logf(x,y)(4)(5)频域FFT函数F(x0,y0)=-∑x∑y[g(x,y)-φ]ifg(x,y)-φ≥0(5)其中,φ为参考值。上述公式都是基于信息学,统计学的。在数字图像的数字阵列中,对焦比较好的图像数据的细节部分就比较多,统计的差分和值就比较大,从频谱图分析就是图像经过快速傅里叶变换后的统计高频部分的含量比较多。从图5和图6的比较可以看出:图5的高频特征明显,图6的高频部分较少。实验中所采用的评价函数是:F(k)=∑x∑y[g(x+2,y)-g(x,y)]g(x+2,y)-g(x,y)≥40(6)其中,x∈[0,1200],y∈[0,1600],k为采集号。

式(6)是根据CCD采集的图像格式和后台的数据分析后得到的评价公式,实验数据的处理都是在电脑上完成的,对实验数据全部采用从而保证评价函数能够直接准确地反应图像质量和清晰度。3步进电机搜索算法[911]目前已经有许多适应于各种环境和条件的自动对焦算法,他们大致可以分为以下四种:

3.1Fibonacci算法这种算法是根据斐波那契函数来确定电机运动步长的一种电机搜索算法,斐波那契函数可以表示如下:f(n)=1n=0;1

f(n-1)+f(n-2)n>1(7)斐波那契算法的步长是由所取的n值决定的,当n的值越大,所取的步长值就越大,当n越小,所取的步长值就越精确。

3.2函数逼近法这种方法是通过函数拟合的办法来实现最佳寻址对焦点的确定。首先,电机带着镜头在焦点前后取得图像数据,然后根据图像数据用评价函数得到评价值,用这些评价值进行曲线的拟合来得到最佳的峰值,这点就是最佳的对焦点。然后驱动电机到达最佳的对焦点,这是根据评价函数的单峰性而采用的一种寻址方法。

图7爬山法

Fig.7Climbing method3.3爬山法[12]这种方法是根据评价函数的单调性来设计的一种搜索方法。在爬山法中,搜索的起始位置定位于正离焦点或者负离焦点,根据评价函数的单调性,在正离焦点时,距离正焦点的位置越近评价函数的值会越大。所以根据这一特性,在正离焦区域内,先通过镜头获取图像数据,由对焦评价函数得到图像的评价值,这时再驱动电机移动镜头,再次获得图像数据,得到第二幅图像的评价值,然后和第一幅图像的评价值进行比较做出判断,是向前移动还是向后移动。如果大于第一幅的评价值就向前移动,否则向后移动。把这些数据绘成图形,这个过程就好像爬山,向高处走,当过峰时则返回,寻找最高点,直到找到最高峰,这点就是最佳的对焦点。整个对焦过程如图7所示。

3.4对焦搜索算法实验所采用的对焦搜索算法是在爬山法的基础上进行了优化和改进。这些改进主要有两个方面:(1)步长:在整个搜索过程中,搜索步长是变化的。开始的时候由于离焦点的距离比较大,设置的步长初始值比较大,在搜索过程中改变步长的值。从是否过峰值来改变步长,当过峰值的时候,步长变为原来的k倍(0

上述通过循环叠加的算法算出整幅图像的灰度差和,对于计算机来说,这些数据的计算几乎不耗时间。整个计算是在步进电机停止后由计算完成的。每一步获得一个评价值,在实验中,采样镜头是不晃动的,这也避免了镜头抖动所带来的误差。爬山法的实现是在大量的实验数据基础上完成的。这既要满足优化算法所带来的精度提高的要求,又要考虑到对焦系统本身的精度的不足。主要几个参数需要通过实验设定。(1)过峰的判定:涉及到步长的改变和速度的改变,是系统能否快速准确对焦的关键;(2)对焦成功的判定:任何系统都要追求精度和速度的平衡,在精度满足要求的情况下,适当地提高速度是由这个参数来决定的。爬山法是通过一个大范围的单步移动,来确定搜索的大范围,然后通过一个循环来实现搜索。在爬山法搜索中改变步长和速度,并判断图像的清晰度,从而判断图像是否精确对焦。程序实现如下

;其中bili参数是来判断当前图像的评价值与最佳图像评价值的比例。比例越高,说明对焦的精度越大,guofeng参数是来判断是否应该改变方向来寻址。通过实验这两个参数取上述值能达到实验效果。与SC步进电机控制器的通信是通过串口来实现的。通过VC所提供的一个串口控制控件MSComm。并且直接对步进电机进行设置和控制。在此主要用到步长的设置、速度的设置和行程的设置。5实验结果与总结实验数据如表1所示:表中评价函数具有优良的单调性,单峰性和极性,从图8可以看出函数的这些特性。在实验中,通过上述的优化爬山搜索法可以找到最佳的对焦点:评价值在区间[389 115,452 663]内,

通过自动对焦系统的搭建,对爬山法的优化进行了实验的验证。在同等条件下,优化的爬山法算法要比爬山法原型有较好的对焦结果和较快的对焦速度。限于实验条件,还有许多其它的工作需要改进,例如:如果是用独立的驱动和控制系统,就要考虑到采样窗口的选取和优化,尽可能地降低实验的计算量。实验的步进电机和镜头设备都比较笨重,如果采用较小的镜头和更加快速的步进电机,对焦速度会是一个更大的提高。参考文献:

[1]段欣涛,汪岳峰,张强,等.数码相机整机成像均匀度的自动检测方法[J].光学仪器,2010,32(5):15-18.

[2]OOI K,IZUMI K,NOZAKI M,et al.An advanced autofocus system for video camera using quasi condition reasoning[J].Consumer Electronics,IEEE Transactions,1990,36(3):526-530.

[3]姜威,高赞,朱孔凤,等.一种改进的自动聚焦算法[J].山东大学学报(理学版),2006,41(5):119-123.

[4]苗立刚,轩波,彭思龙,等.显微镜的快速自动对焦算法[J].光电子 激光,2007,18(1):9-12.

[5]王任华,沈忙作.自动对焦算法研究[J].光电工程,2000,27(4):11-13.

[6]刘义鹏,裴锡宇,冯华君,等.一种基于DFD的自动对焦算法[J].光学仪器,2005,27(4):39-44.

[7]朱铮涛,黎绍发,陈华平.基于图像嫡的自动聚焦函数研究[J].光学 精密工程,2004,12(5):537-542.

[8]方以,郑崇勋,门相国,等.显微镜自动聚焦算法的研究[J].仪器仪表学报,2005,26(12):1275-1277.

[9]陈国金.数字图像自动聚焦技术研究及系统实现[D].西安:西安电子科技大学,2007.

[10]李奇,冯华君,徐之海.面向自动对焦的图像预处理技术[J].光电工程,2004,31(9):66-68.

[11]张建民,程红涛.用于CCD数码成像的自动对焦技术[J].天津工程师范学院学报,2007,17(2):11-15.

[12]郑玉珍.自动对焦中的优化爬山搜索算法[J].浙江科技学院学报,2005,17(3):171-174.

[13]HORTON I.Visual C++2005 入门经典[M].北京:清华大学出版社,2007.

[14]宋坤,刘晓宁,李伟明.MFC程序开发参考大全[M].北京:人民邮电出版社,2007.

[15]张筠莉,刘书智.Visual C++实践与提高―串口通信与工程应用篇[M].北京:中国铁道出版社,2006.

上一篇:论音乐在舞蹈表演中的作用 下一篇:高松华:中国编译打谱软件第一人