一种基于液态镜头的快速自动聚焦算法的制作方法

文档序号:14071177阅读:353来源:国知局

本发明专利涉及光学成像领域,具体涉及一种基于液态镜头的自动聚焦方法。



背景技术:

传统的马达镜头自动聚焦完成时间长,使用寿命短。美国加利福尼亚大学的科学家发明了液体镜头,它通过改变厚度仅为8mm的两种不同的液体交接处月牙形表面的形状,实现焦距的变化。这种液体镜头相对于传统的变焦系统而言,兼顾了紧凑的结构和低成本两方面的优势。

传统的变焦镜头是通过调整两个固定焦距的镜头之间的距离来实现变焦。液体镜头则通过改变液体的压力来调整焦距。这样设备可以在一个很小的固定距离范围内实现变焦系统。根据加利福尼亚大学的科学家的试验,这种液体镜头非常容易批量生产,而且成本将大幅度下降。液态镜头的输入为电压值,无须使用马达旋转镜头

无独有偶,法国的varioptic公司在2004年年底发布了一项用于手机的采用了电子技术的液体镜头专利。使用这种镜头的手机,只要在镜头中加入几滴油或者水,就可以让镜头实现自动变焦,并且准确地把焦点放在需要拍照的物体上。

但是,现有的液态镜头一般都是基于清晰度评价函数来进行的液态镜头聚焦,现有的清晰度评价函数,可以分为灰度变化函数、频域分析法和图像灰度熵函数等。

频域分析法,高频信息代表噪声、边缘和跳跃,低频分量代表背景区域和慢变区域,该算法会受到噪声的影响;灰度变化函数,聚焦图像比离焦图像图像包含更多的灰度变化,图像灰度值的变化可以作为评价函数,如图像方差函数;图像灰度熵函数,图像的灰度熵反映的是图像的信息丰富程度,图像灰度熵也可以作为评价函数。

但是,图像清晰度评价函数需要具有较强的单峰性、较好的无偏性和较高的灵敏度。而在实际实现中,计算量的大小也是一个重要的指标。

因此,现有的用于液态镜头的聚焦方法都需要通过复杂的算法来进行聚焦,需要配备高性能的控制芯片,此外,现有的聚焦方法在焦点搜索时的响应速度也难以满足需求。



技术实现要素:

针对上述问题,本发明设计了一种针对于液态镜头的自动聚焦方法。本发明的方法对系统要求低、聚焦速度快、成本低,适合于工业应用。

针对现有技术中存在的问题,本申请的发明人考虑到不同的清晰程度图像的表现大相径庭,因此将搜索算法分成了两个阶段,为了减少计算量和提高对噪声坏点的影响,在两个搜索阶段采用了不同清晰度计算方法。提高了聚焦速度灵敏度和抗噪性、减少了计算量。

具体而言,本发明提供一种基于液态镜头的快速自动聚焦方法,其特征在于,所述快速自动聚焦方法包括:

s1:对聚焦范围进行粗调:基于液态镜头的调节范围,将该调节范围分为n等份,通过计算每等份分割点的清晰度的趋势来缩小调节范围;

s2:对聚焦范围进行细调:采用黄金搜索算法对粗调后的范围进行细调。

优选地,进行粗调的步骤s1包括:对调节范围进行归一化表示,并对归一化表示后的调节范围进行n等分。

优选地,进行粗调的步骤s1还包括:以单位等份的长度为步长,对所等分的每个范围内的图像清晰度进行遍历搜索,每次遍历的范围记为ai(1≤i≤n)如果第i步的时候清晰度出现了下降或相等,缩小清晰度搜索范围至ai-2ai-1ai。

优选地,进行粗调的步骤s1还包括:如果i=1,则缩小清晰度搜索范围至a0a1;如果整个调节范围均未出现下降,则确定a100为合焦点。

优选地,进行细调的步骤s2包括:以粗调结束后的搜索范围作为初始搜索范围,设定细调初始搜索范围[vmin,vmax],按照下式设定第一搜索点vstart=(vmin+((vmax-vmin)×618+1000))vmaxpoint=vstart,将该值初始化为最大清晰度处的电压值,vmax=vstart。

优选地,进行细调的步骤s2还包括基于下述公式确定第二搜索点:vsencod=(vmin+((vmax-vmin)×382+1000))。

优选地,对于第n个搜索点,n>2,基于清晰度和电压值进行下一次搜索的判定。

优选地,所述方法还包括边缘检测步骤,所检测的边缘点作为清晰度计算的输入。

在一种优选实现方式中,在细调步骤中,采用边缘像素的平均差异值来表征清晰度

其中garymax是边缘处最大值,garymin为边缘处的最小值。

另一方面,本发明提供一种液态镜头,其特征在于,所述液态镜头包括电压控制器和被控镜头,所述电压控制器采用所述的方法对所述被控镜头的电压进行控制。

有益效果:

本发明的方法在粗调阶段采用灰度直方图的差异表征清晰度,计算量很小。并去除了高亮和暗部像素的影响。(这些像素在清晰度的统计算法中的影响很大,高亮和暗部像素的在聚焦中的变化差异很小,这些像素的引入为清晰度评价有负面作用)

在微调阶段,选取较少的像素进入计算,每次迭代进一步减少计算量。利用边缘的灰度差异均值表征清晰度将边缘的宽度和亮度均考虑在内,提高了稳定性。截取边缘的10%到90%作为边缘的宽度,防止了噪点和坏点的影响。

附图说明

图1为本发明的自动聚焦算法的示意性流程图;

图2为本发明的自动聚焦算法在进行细调时确定第二搜索点的示意图;

图3为特殊情况的处理方式;

图4为当前点清晰度比清晰度最大值清晰度大,电压比清晰度最大值的电压小的情况下,确定下一搜索范围的方式;

图5为当前点清晰度比清晰度最大值清晰度大,电压比清晰度最大值的电压大的情况下,确定下一搜索范围的方式;

图6为当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压小的情况下,确定下一搜索范围的方式;

图7为当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压大的情况下,确定下一搜索范围的方式;

图8为边缘点检测示意图(只选取10%-90%灰度值的像素);

图9为边缘检测的示意图。

具体实施方式

以下结合附图及其实施例对本发明进行详细说明,但并不因此将本发明的保护范围限制在实施例描述的范围之中。

下面结合附图对本发明的基于梯度的自动聚焦方法进行详细说明。

如图1所示,本实施例中,自动对焦的过程主要分成两步:粗调阶段和细调阶段。粗调阶段的过程包括获取当前帧图像、大步长遍历电压值并测量遍历点的图像清晰度,将遍历的图像清晰度与最大清晰度进行对比,并用所获得的新的最大清晰度替换原有最大清晰度,利用直方图图像清晰度差异的均值缩小缩缩范围。细调阶段包括:确定细调搜索范围、获取当前帧图像、进行边缘检测、确定边缘的灰度差异均值、利用黄金搜索算法缩小搜索范围,找到最佳聚焦点。

搜索算法简要来说就是比较当前点的清晰度和最大的清晰度,当前电压和最大清晰度处的电压,通过这两个比较的结果计算去将要搜索的电压。第一个搜索点相等于初始化一个最大清晰度和电压,第二个初始化为第一个当前点。以此类推,不断计算出下一个电压,并更新最大清晰度和搜索范围。

下面对各个步骤的详细过程进行说明。

1、粗调阶段

1.1粗调搜索算法

为减少对焦搜寻步骤,在聚焦开始时使用大步长进行粗调。

假设液态镜头的电压调节范围为[0,100],这里仅仅是示意性的举例(或者也可以对电压调节范围归一化),将调节范围定为n等份,这里以n取10为例。由于调节范围为100,分成10等份,所以步长为10。采用10为步长调节搜索范围,即,调节用于聚焦的电压值,对相应电压值时所获得的图像进行清晰度对比,每次遍历的范围记为ai(1≤i≤10)。因为通常情况下,从边缘向中间聚焦时,清晰度应该逐渐上升,如果第i步的时候清晰度出现了下降或相等,缩小清晰度搜索范围至at-2at-1at,粗调阶段结束。

边界条件处理:

如果i=1,则缩小清晰度搜索范围至a0a1。

如果整个调节范围均未出现下降,则确定a100为合焦点。

此外,为了减少的高亮和暗部区域对计算的影响,在计算时滤除小于20大于240灰度值的像素。

1.2粗调阶段的清晰度计算方式

为减少计算量,采用计算灰度直方图的差异表征清晰度。具体计算过程如下:

在粗调阶段即采用diff_sum作为清晰度值,在1.1所述的方案下进行粗调。相对于sobel算子进行清晰度分析,可以减少大约90%的计算量。(sobel算子每个像素点需要11次计算,本文只需要一次计算,最后在进行一次直方图差异和的计算。因为大步长调整时,清晰度变化很明显因此选用计算量较少的方法)

2.1细调搜索算法

在细调阶段采用黄金搜索法进行合焦点搜索。

搜索算法采用黄金搜索法,搜索范围为粗调结束后缩小的搜索范围[a,b]。该算法步骤如下:

1)初始化搜索范围,电压值为[a,b],b-a为电压搜索范围。

vmin=aivmax=b

即搜索范围为[vmin,vmax]

2)第一个搜索点为

vstart=(vmin+((vmax-vmin)×618+1000))

vmaxpoint=vstart;细调开始时,以此值为初始化最大清晰度处的电压值

vmax=vstart

3)第二个搜索点为

vsencod=(vmin+((vmax-vmin)×382+1000))

搜索过程如图2所示。

4)以此类推,可以确定第n个搜索点(n>2)

5)第n个搜索点的图像确定后,需要进行如下判断,共有四种情况,两种等于属于特殊情况,特殊情况的处理方式见算法停止情况,如图3所示。每次处理,都要比较清晰度和电压值。互相组合共有6种情况。(因为只要出现一个相等,即进入特殊情况的处理)。搜索算法示意图,共分为四种情况

情况1:当前点清晰度比清晰度最大值清晰度大,电压比清晰度最大值的电压小

如图4所示,最右侧点为原来的最大值点,中点的点为当前点,左侧点则为计算出的下一个电压值。当前点清晰度比最大值清晰度大,电压比最大值小,则搜索范围减小为电压最小值到清晰度最大值处的电压值。

缩小搜索范围,此时搜索范围为[vmin,vmaxpoint]:

vmax=vmaxpoint;

下一次调节的电压如下:

vnewt=(vmin+((vmax-vmin)×382+1000))

情况2:当前点清晰度比清晰度最大值清晰度大,电压比清晰度最大值的电压大

如图5所示,左侧点为原来的最大值点,中间点为当前点,右侧点则为计算出的下一个电压值。当前点清晰度比清晰度最大值清晰度大,电压比清晰度最大值的电压大,则搜索范围减小为清晰度最大值的电压到最大值处的电压值。

缩小搜索范围,此时搜索范围为[vmin,vmaxpoint]:

vmax=vmaxpoint;

下一次调节的电压如下:

vmax=(vmin+((vmax-vmin)×618+1000))

情况3:当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压小

如图6所示中间点为原来的最大值点,左侧点为当前点,右侧点则为计算出的下一个电压值。当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压小,则搜索范围减小为当前清晰度的电压到最大值处的电压值。

缩小搜索范围,此时搜索范围为[当前电压,vmaxpoint]:

vmin=当前电压;

下一次调节的电压如下:

vnewt=(vmin+((vmax-vmin)×382÷1000))

情况4:当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压大。

如图7所示,中间点为原来的最大值点,右侧点为当前点,左侧点则为计算出的下一个电压值。当前点清晰度比清晰度最大值清晰度小,电压比清晰度最大值的电压大,则搜索范围减小为电压最小值到当前清晰度的电压值。

缩小搜索范围,此时搜索范围为[当前电压,vmaxpoint]:

vmin=当前电压;

下一次调节的电压如下:

vnewt=(vmin+((vmax-vmin)×618+1000))

6)算法停止情况

停止情况1:搜索范围缩小至1,这里的“1”指的是将电压范围归一化到100之后的1,如果不进行归一化,根据电压的取值范围,可以为最小搜索范围设定阈值,比如,当收缩范围小于0.1v时。

处理方法:将最大值对应的电压作为合焦点输出。

停止情况2:当前清晰度等于最大清晰度。

处理方法:遍历当前搜索范围,对比清晰度,更新最大值。将最大值对应的电压作为合焦点输出。

停止情况3:当前电压等于最大清晰度处的电压。

处理方法:遍历当前搜索范围,对比清晰度,更新最大值将最大值对应的电压作为合焦点输出。

2.2细调阶段的清晰度计算方式

(1)清晰度的计算方式

由于在细调阶段,直方图数据已经不能够稳定的表征清晰度,为保证效果的同时兼顾减少计算量,采用计算边缘像素的平均差异值进行清晰度比较。具体原理是图像边缘的像素值是渐变的,同时随着清晰度提高,图像边缘的数量也在减小,而灰度值的差异却在逐渐增大。因此采用边缘像素的平均差异值来表征清晰度。

其中garymax是边缘处最大值,garymin为边缘处的最小值。

num为边缘处像素值在10%到90%的像素数量。(为了减少边缘噪声和坏点的影响,因为边缘检测在首尾两端会出现误判的情况),如图8所示。

(2)边缘的点的选择

细调的第一步为选择边缘点作为清晰度计算的输入。为减少边缘检测的计算量,在聚焦区域选择图像的横竖中心的行列最为边缘检测区域。

如图9所示:

边缘检测函数采用sobel算子。

竖线采用的模板如下:

横线采用的模板如下:

连续三个点大于阈值则判定为边缘(阈值为当前像素值的5%)。边缘长度和灰度差异最大的作为为边缘点,每次进行清晰度计算只选取边缘点作为搜索函数的输入。

采用这种边缘检测方法的优点是减少噪声的影响,在soblel检测算法的基础上优化边缘判断,提高清晰度算法的单峰性。

以上所述仅为本发明的较佳实施例,并非对本发明做任何形式上的限制,凡在本发明的精神和原则之内,依据本发明的技术实质对以上实施例所做的任何简单修改、等同变化与修饰,均仍属于本发明的保护范围之内。

虽然上面结合本发明的优选实施例对本发明的原理进行了详细的描述,本领域技术人员应该理解,上述实施例仅仅是对本发明的示意性实现方式的解释,并非对本发明包含范围的限定。实施例中的细节并不构成对本发明范围的限制,在不背离本发明的精神和范围的情况下,任何基于本发明技术方案的等效变换、简单替换等显而易见的改变,均落在本发明保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1