一种基于阈值法和局部最大值的自动对焦爬山搜索算法制造技术

技术编号:24946462 阅读:25 留言:0更新日期:2020-07-17 23:01
本发明专利技术公开了一种基于阈值法和局部最大值的自动对焦爬山搜索算法,可提高对焦系统的稳定性和减少对焦时间;通过设定阈值Value,可以直接忽略由于噪声、亮度变化等因素导致的局部极值,提高对焦的成功率;判断评价函数处于“上坡”、“下坡”、“平地”区域的判断条件,随着上一幅图像评价函数值Sm的变化而变化,面对不同对比度的图像,能够自适应改变判断条件;通过引入局部评价函数最大值,减少对焦循环和对焦时间;通过设定电机的固定移动步长,并采用|S‑Sm1|<Value*Sm1或S>Sm1作为对焦结束的条件,解决传统自动对焦爬山搜索算法中“即使步长缩小为零,镜头仍没有走到最佳对焦点”的问题,并提高对焦的精确性。

【技术实现步骤摘要】
一种基于阈值法和局部最大值的自动对焦爬山搜索算法
本专利技术涉及相机自动对焦以及图像处理领域,尤其涉及的是一种基于阈值法和局部最大值的自动对焦爬山搜索算法。
技术介绍
在传统的数字自动对焦方法中,对硬件条件需求最小的就是对比度法CDAF(contrastdetectionautofocus)。对比度法简单来说就是计算图像对焦区域的对比度(评价函数值),通过比较前后两幅图像对焦区域对比度(评价函数值)的大小,控制电机带动镜头前进或后退,直到找到对比度(评价函数值)最大的位置(合焦点)。广泛采用的搜索算法为爬山算法,其原理为从起始位置开始,以等步长驱动电机带动镜头移动,每移动一次计算一次本幅图像的评价函数值,并与上幅图像的评价函数值作比较,若比上幅图像评价函数值大,说明电机驱动方向正确,继续驱动电机往该方向移动即可逐步对焦。当本幅图像评价函数值第一次小于上幅图像评价函数值时,说明镜头已经越过最佳对焦点,驱动电机反转并缩小步长,往回搜索最佳对焦点。同理,当本幅图像评价函数值再次小于上幅图像评价函数值时,驱动电机反转并缩小步长,往回搜索最佳对焦点。如此循环往复,直到电机步长减小到设定值,对焦结束。然而,这种爬山搜索算法对评价函数和电机驱动的要求非常高,需要评价函数具有绝对的单峰性和极高的灵敏度,否则,算法容易将评价函数的局部极值当作最佳对焦点导致对焦失败,或者在离焦区域评价函数趋于平坦,导致电机迟迟得不到反转信号,最终进入死循环。而且,在多数情况下,电机驱动并不理想,在多次反转和缩小步长后,电机位移和设置步长并不匹配,容易产生即使步长缩小为零,镜头仍没有走到最佳对焦点的情况,并且大大增加了对焦时间。因此,自动对焦爬山算法在对焦稳定性和速度方面还有待于改进和发展。
技术实现思路
本专利技术的目的在于提供一种基于阈值法和局部最大值的自动对焦爬山搜索算法,旨在解决现有的自动对焦爬山算法的对焦稳定性差和速度慢的问题。本专利技术的技术方案如下:一种基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,具体包括以下步骤:S1:参数初始化;S2:确定电机移动方向;S3:确定最大评价函数值:根据电机的移动方向,驱动电机沿图像评价函数值递增的方向前进,直至图像评价函数值首次递减,确定图像评价函数值递减前的图像评价函数值为最大评价函数值;S4:将镜头移动到最佳对焦点处:根据得到的最大评价函数值,将镜头移动到最佳对焦点处,完成对焦。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述S1具体包括以下步骤:s11:设置电机的移动步长;s12:获取第一帧图像,并计算第一帧图像的评价函数值;s13:设置初始局部评价函数最大值。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述S2具体包括以下步骤:s21:获取当前位置的图像,计算该图像的评价函数值;s22:判断电机运行在“平地”部分的次数是否大于等于设定次数,否,执行s23;是,重置局部评价函数最大值,驱动电机反转并使电机根据当前运行在“平地”部分的次数移动对应的步长,并执行S3;s23:将计算得到的当前图像的评价函数值与上一幅图像的评价函数值作比较,若镜头处于“上坡”部分,执行s24;若镜头处于“下坡”部分,执行s25;若镜头处于“平地”部分,执行s26;s24:更新局部评价函数最大值,驱动电机前进1步长,执行S3;s25:重置局部评价函数最大值,驱动电机反转并移动1步长,执行S3;s26:更新局部评价函数最大值,驱动电机前进1步长,并记录电机当前运行在“平地”部分的次数,重复执行s21。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述s23至s26具有包括以下过程:判断是否满足(S-Sm)≧(Value*Sm),若是,说明镜头位置处于评价函数“上坡”部分,电机运动方向正确,判断是否满足S>Sm2,若是,令Sm2=S,若否,不改变当前局部评价函数最大值;令Sm=S,驱动电机运动1步长St后,进入S3确定最大评价函数值Sm1;若否,进入镜头位置是否处于评价函数“下坡”部分的判断;判断是否满足(S-Sm)≦(-Value*Sm)或(S-Sm2)≦(-Value*Sm2),若是,说明镜头位置处于评价函数“下坡”部分,电机运动方向错误,令d=~d,Sm=S,Sm2=S,驱动电机运动1步长St,进入S3;若否,进入镜头位置是否处于评价函数“平地”部分的判断;判断是否满足(-Value*Sm)<(S-Sm)<(Value*Sm),若是,说明镜头位置处于评价函数“平地”部分,判断是否满足S>Sm2,若是,令Sm2=S,若否,不改变当前局部评价函数最大值;令Sm=S,h=h+1,驱动电机运动1步长St后,进入s21;若否,进入s21;其中,S为计算得到的当前图像的评价函数值,Sm为上一幅图像的评价函数值,Value为预设的阈值,St为电机步长,h为镜头在“平地”部分运动的次数,d为电机运动方向,Sm2为局部评价函数最大值。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述S3具体包括以下步骤:s31:获取当前位置的图像,计算该图像的评价函数值;s32:将计算得到的当前图像的评价函数值与上一幅图像的评价函数值作比较,若镜头处于“上坡”或“平地”部分,执行s33;若镜头处于“下坡”部分,执行s34;s33:更新局部评价函数最大值,驱动电机前进1步长,重复执行S3;s34:记录最大评价函数值,重置局部评价函数最大值,驱动电机反转并移动1步长,执行S4。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述s32至s34具有包括以下过程:判断是否满足(S-Sm)≦(-Value*Sm)或(S-Sm2)≦(-Value*Sm2),若是,说明镜头位置处于评价函数“下坡”部分,电机运动方向错误,令d=~d,Sm=S,Sm1=Sm2,Sm2=S,驱动电机运动1步长St,进入S4;若否,进入镜头位置是否处于评价函数“上坡”或“平地”部分的判断;判断是否满足(S-Sm)>(-Value*Sm),若是,说明镜头位置处于评价函数“上坡”或“平地”部分;判断是否满足S>Sm2,若是,令Sm2=S,若否,不改变当前局部评价函数最大值;令Sm=S,驱动电机运动1步长St,返回步骤s31;其中,S为计算得到的当前图像的评价函数值,Sm为上一幅图像的评价函数值,Value为预设的阈值,St为电机步长,h为镜头在“平地”部分运动的次数,d为电机运动方向,Sm2为局部评价函数最大值,Sm1为最大评价函数值。所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其中,所述S4具体包括以下步骤:s41:获取当前位置的图像,计算该图像的评价函数值;s42:判断当前图像的评价函数值是否大于最大评价函数值,是则对焦结束,否则执本文档来自技高网
...

【技术保护点】
1.一种基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,具体包括以下步骤:/nS1:参数初始化;/nS2:确定电机移动方向;/nS3:确定最大评价函数值:根据电机的移动方向,驱动电机沿图像评价函数值递增的方向前进,直至图像评价函数值首次递减,确定图像评价函数值递减前的图像评价函数值为最大评价函数值;/nS4:将镜头移动到最佳对焦点处:根据得到的最大评价函数值,将镜头移动到最佳对焦点处,完成对焦。/n

【技术特征摘要】
1.一种基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,具体包括以下步骤:
S1:参数初始化;
S2:确定电机移动方向;
S3:确定最大评价函数值:根据电机的移动方向,驱动电机沿图像评价函数值递增的方向前进,直至图像评价函数值首次递减,确定图像评价函数值递减前的图像评价函数值为最大评价函数值;
S4:将镜头移动到最佳对焦点处:根据得到的最大评价函数值,将镜头移动到最佳对焦点处,完成对焦。


2.根据权利要求1所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,所述S1具体包括以下步骤:
s11:设置电机的移动步长;
s12:获取第一帧图像,并计算第一帧图像的评价函数值;
s13:设置初始局部评价函数最大值。


3.根据权利要求1所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,所述S2具体包括以下步骤:
s21:获取当前位置的图像,计算该图像的评价函数值;
s22:判断电机运行在“平地”部分的次数是否大于等于设定次数,否,执行s23;是,重置局部评价函数最大值,驱动电机反转并使电机根据当前运行在“平地”部分的次数移动对应的步长,并执行S3;
s23:将计算得到的当前图像的评价函数值与上一幅图像的评价函数值作比较,若镜头处于“上坡”部分,执行s24;若镜头处于“下坡”部分,执行s25;若镜头处于“平地”部分,执行s26;
s24:更新局部评价函数最大值,驱动电机前进1步长,执行S3;
s25:重置局部评价函数最大值,驱动电机反转并移动1步长,执行S3;
s26:更新局部评价函数最大值,驱动电机前进1步长,并记录电机当前运行在“平地”部分的次数,重复执行s21。


4.根据权利要求3所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,所述s23至s26具有包括以下过程:
判断是否满足(S-Sm)≧(Value*Sm),若是,说明镜头位置处于评价函数“上坡”部分,电机运动方向正确,判断是否满足S>Sm2,若是,令Sm2=S,若否,不改变当前局部评价函数最大值;令Sm=S,驱动电机运动1步长St后,进入S3确定最大评价函数值Sm1;若否,进入镜头位置是否处于评价函数“下坡”部分的判断;
判断是否满足(S-Sm)≦(-Value*Sm)或(S-Sm2)≦(-Value*Sm2),若是,说明镜头位置处于评价函数“下坡”部分,电机运动方向错误,令d=~d,Sm=S,Sm2=S,驱动电机运动1步长St,进入S3;若否,进入镜头位置是否处于评价函数“平地”部分的判断;
判断是否满足(-Value*Sm)<(S-Sm)<(Value*Sm),若是,说明镜头位置处于评价函数“平地”部分,判断是否满足S>Sm2,若是,令Sm2=S,若否,不改变当前局部评价函数最大值;令Sm=S,h=h+1,驱动电机运动1步长St后,进入s21;若否,进入s21;
其中,S为计算得到的当前图像的评价函数值,Sm为上一幅图像的评价函数值,Value为预设的阈值,St为电机步长,h为镜头在“平地”部分运动的次数,d为电机运动方向,Sm2为局部评价函数最大值。


5.根据权利要求1所述的基于阈值法和局部最大值的自动对焦爬山搜索算法,其特征在于,所述S3具体包括以下步骤:
s31:获取当前位置的图像,计算该图像的评价函数值;
s32:将计算得到的当前图像的评价函数值与上一幅图像的评价函数值作比较,若镜头处于“上坡”或“平地”部分,执行s33;若镜头处于“下坡”部分,执行s34;
s33:更新局部...

【专利技术属性】
技术研发人员:伍思樾顾兆泰安昕张浠
申请(专利权)人:广东欧谱曼迪科技有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1