找回密码
 注册
搜索
查看: 9514|回复: 36

[讨论] 关于数字图象自动调焦的一个深奥的问题?

[复制链接]
发表于 2006-12-28 22:05:19 | 显示全部楼层 |阅读模式
大家深知,CCD成像自动调焦算法由清晰度计算和正焦搜索两个步骤组成,我的问题是,有没有一种特别又特别的算法,可以在计算清晰度的同时,也能把调焦电机运动的方向也一并确定下来了,以避免用诸如爬山搜索、优选法搜索等搜索算法那样时间,当然最理想的情况是,在调焦命令发出后,能够根据采集到的第一幅图象,就能计算出调焦电机应该运动到的位置,而无需在整个调焦过程中,让调焦电机走走停停,浪费时间,并且影响成像效果。本人最近找到了一个类似于Radon变换的东西,经过初步验证,估计只通过一次图象处理计算就可以得到成像系统是正离焦还是负离焦的结论,至于调焦电机该运动多少距离,有可能必须通过插值等手段来确定,整个调焦过程中,调焦电机最多运动3次就能实现较好的调焦应该是不成问题的,当然这也肯定节省了不少宝贵的成像时间。[em15]
发表于 2006-12-28 23:41:50 | 显示全部楼层
楼主高见,比较值得期待,请问具体怎么实现?

我的一点理解:
第一步之后确定是正离焦还是负离焦,然后指引下一步将要运动的方向。
第二步之后确定目前清晰度与之前清晰度之差,然后推算出最清晰的位置相距目前有多远,应该要再往前走多少步。
第三步直接达到目的地!

第二步中的算法应该是最复杂的,可能没有理论值,只有经验值。
还有就是这样跳跃式的步进,没有逐步比较,实际的情况可能会有一些误差,即最终运动的终点可能不是最清晰点。[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-12-29 08:42:54 | 显示全部楼层
关注中......
点评回复

使用道具 举报

发表于 2006-12-29 09:55:57 | 显示全部楼层
楼主想法不错,有更详细的介绍吗?个人觉得算法有点复杂,需要很强的运算能力才能保证。
点评回复

使用道具 举报

 楼主| 发表于 2006-12-29 12:14:23 | 显示全部楼层
既然Radon变换是一束平行光照射图象想某个平面或直线上的投影,那么在成像系统光学系统严格定位的情况下,试想是不是可以改变光束形状、光源特性以及投影面的形状,通过在两个相反的方向来处理同一幅采集的图象获得相应的正负离焦值,那么方向就可以一步判定了,当然这个变换如果能够与光源的距离有关系,则更是可以从另一侧面来计算调焦电机需要运动到的位置;当然为了提高处理上的快速性,我们通过只采集整幅图象的一个具有某个特性形状的部分,比如弦正对着的两个半圆或四个半圆,总之,这个形状的选择旨在使正负离焦值体现得更加充分,从而对正负离焦作出相应的判断,当然,本人总是假定各位朋友对自己的成像系统原理上是了解的。[/COLOR][em14][br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

发表于 2006-12-30 23:36:11 | 显示全部楼层
呵呵,暂时还没研究这么深入,对按照光学理论研究Camera的成像系统还真有点吃力啊,楼主还是炒点白菜给大家吃吃啊,需要补一补了
点评回复

使用道具 举报

发表于 2006-12-31 00:22:37 | 显示全部楼层
目前只有相位检测AF对焦方式才能做到正负离焦的判断,对焦速度可以达到0.3s左右,但这个要在光路里加入专门的光学检测系统,这个系统在拍照时进行机械切换,系统相当复杂且成本很高,目前仅在专业的单发相机中有应用,其它AF方式还做不到这这样的检测速度.[br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2006-12-31 12:54:26 | 显示全部楼层
这里我简要描述一下本人最近研究得到的一个清晰度函数S的特性:饱和线性带死区特性。获得这个函数,不如说是算法吧,做了大量的研究工作,由于涉及到一些细节的关键性问题,不便多说,只是提醒大家一下,对于同一幅图象,从左边看与从右边看,视觉上是不一样的,顺着这样的思路走下去,大伙一定会有很大的惊喜。不要不思考,不要不相信,本人的研究结果表明,S所具备的特性是任何一种理想的或近似理想的自动调焦方案的清晰度计算中应该具备的特性,饱和性用来判断离焦极性和粗调,线性用来细调,而死区为调焦运动提供了结束条件。[/COLOR][em14][br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2007-1-4 13:29:47 | 显示全部楼层
最近通过对比一幅图象的左右灰度分布,并同时对同一行图象做Fourier变换,发现了一个奇怪的现象,理论上可以证明的,一个奇函数的Fourier变换应该是一个纯虚函数,也就是,变换的实部应该是零,因此其和也应该是零,但用Matlab的FFT函数进行计算的到的结果却大出我的意料,竟然是一个纯实数。然而,根据离焦量的不同,计算了几十幅图象,最后获得一组和值,其相对于离焦量的分布,居然和上面描述到的线性饱和带死区的特性完全一致,又是奇了。难道这里边有什么内在的联系不成?经过多翻思考,可以理论上证明,对于扫描型红外成像系统来说,这个特性是存在的,至于其他的成像系统,希望大家验证一下,兴许对各位的自动调焦方案研究有些帮助。[/COLOR][em14][br]<p align=right><font color=red>+3 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2007-1-29 22:06:51 | 显示全部楼层
[QUOTE]建议大家对采集的图像做积累和,Fourier 变换,差分,逆F变换,求和,取相角等操作得到一个数值S,就在下研究的一类图像,得到的关系是,S与离焦量成线性关系,只不过这条直线不过原点,并且线性性非常的好,希望有志于基于图像处理的自动调焦算法的同志一起来研究,把这条直线“挪”到原点去,这样将为自动调焦方面的研究起到推动作用,因为线性的关系避免了以往近似抛物线的调焦函数所需要的搜索过程,可以使调焦过程2步到位,第一步,求出过原点直线的斜率;第二步,直接驱动透镜到准焦位置。当然,如果没有方法是直线过原点,我们也可以用另外的搜索方法来调焦,这是,透镜的运动形式将相对来讲复杂一些,但其最多4步的运动将比现有的任何一种基于图像的调焦算法来得快,因为线性的东西是非常理想的,因此,在下一直致力于找到这样一个关系,希望有兴趣的朋友于在下联系,交流。[/COLOR]
[/QUOTE][em14]
点评回复

使用道具 举报

 楼主| 发表于 2007-2-3 00:41:33 | 显示全部楼层
最近想到一个方法,用搜索算法来挪动准线性直线,首先让调焦马达朝一个方向运动1步,然后倒退2步,计算出3个位置的S值,用3组值来拟合直线,这样做的目的是使方法更可靠;然后根据得到的斜率和截距,通过优化某个目标函数来微调斜率,同时得到直线该上下挪动和左右挪动的距离,最后根据当前位置,以及挪动后的过原点的直线就可以确定调焦马达的运动方向和运动步数了。[/COLOR][em14]
点评回复

使用道具 举报

 楼主| 发表于 2007-2-3 00:47:29 | 显示全部楼层
总的来讲,相对于其他的自动调焦方法需要对一整幅图像的一个大小可观的一部分进行多次平方和乘法运算,上面在下描述的方法只需对一行图像(但为了保证计算的可靠性,可以计算3到5行,再取平均)进行计算,大大减少了用在计算上的时间,同时减少了采集图像时的存储容量,加上搜索算法中提到的在一些准备工作就绪的情况下,调焦马达可以一步到位地实现自动调焦,也是节省了不少时间和计算能力的。[em14][/COLOR]
点评回复

使用道具 举报

发表于 2007-2-5 17:57:30 | 显示全部楼层
I don't how many advantange can be obtained if the algorithm can provide the direction.
If you adopt mount climbing method then
1. First time you get the focus value and keep the motor at the original position.
2. Second time you get the focus value then compare the value to preview one. And you
   can know the position.
It only need two times.

My poor method is as the following ..
1. Calculate the focus depth by the lens specification and the motor specification.
    It usually needs at most 9 points. (9 focus depth can cover for most cases).
    If you need near shooting, you may need another table for focus depth.
2. Use mount climbing method to seach the 9 points and find the best focus point.

This method can find the focus position at average 4 times. Even you use the global
search method, you can find the focus position at 10 steps. If this method can meet yourrequirement??
+5 RD币
I add some thought about the algorithm on calculating the focus value.
My concern on the algorithm are:
1. If the algorithm is simply ? I don't want a lot of comuptation power.
2. If the algorithm can generate the peak from 0~infinite. If you want to evaluate the
    algorithm, you need to check a lot of scene (one object, two object ,and ...etc). To
    check if the algorithm can generate the peak from 0~infinite. If the algorithm can't
    generate the obviously peak value, then this algorithm is not good enough. There
    are many algorithm is focus on this field.
3. How the algorithm handle the focus depth. If there are two objects, one is in the front,
    how the algorithm gernerate this two peak ?.
4. How the algorithm handle the noise ? The noise is high frequence signal. It will affect
    the algorithm if the algorithm don't hand the noise very well.
Above are my poor idea for your reference.
[此贴子已经被作者于2007-2-6 15:06:42编辑过]
点评回复

使用道具 举报

 楼主| 发表于 2007-1-29 22:06:51 | 显示全部楼层
[QUOTE]建议大家对采集的图像做积累和,Fourier 变换,差分,逆F变换,求和,取相角等操作得到一个数值S,就在下研究的一类图像,得到的关系是,S与离焦量成线性关系,只不过这条直线不过原点,并且线性性非常的好,希望有志于基于图像处理的自动调焦算法的同志一起来研究,把这条直线“挪”到原点去,这样将为自动调焦方面的研究起到推动作用,因为线性的关系避免了以往近似抛物线的调焦函数所需要的搜索过程,可以使调焦过程2步到位,第一步,求出过原点直线的斜率;第二步,直接驱动透镜到准焦位置。当然,如果没有方法是直线过原点,我们也可以用另外的搜索方法来调焦,这是,透镜的运动形式将相对来讲复杂一些,但其最多4步的运动将比现有的任何一种基于图像的调焦算法来得快,因为线性的东西是非常理想的,因此,在下一直致力于找到这样一个关系,希望有兴趣的朋友于在下联系,交流。[/COLOR]
[/QUOTE][em14]
点评回复

使用道具 举报

 楼主| 发表于 2007-2-3 00:41:33 | 显示全部楼层
最近想到一个方法,用搜索算法来挪动准线性直线,首先让调焦马达朝一个方向运动1步,然后倒退2步,计算出3个位置的S值,用3组值来拟合直线,这样做的目的是使方法更可靠;然后根据得到的斜率和截距,通过优化某个目标函数来微调斜率,同时得到直线该上下挪动和左右挪动的距离,最后根据当前位置,以及挪动后的过原点的直线就可以确定调焦马达的运动方向和运动步数了。[/COLOR][em14]
点评回复

使用道具 举报

 楼主| 发表于 2007-2-3 00:47:29 | 显示全部楼层
总的来讲,相对于其他的自动调焦方法需要对一整幅图像的一个大小可观的一部分进行多次平方和乘法运算,上面在下描述的方法只需对一行图像(但为了保证计算的可靠性,可以计算3到5行,再取平均)进行计算,大大减少了用在计算上的时间,同时减少了采集图像时的存储容量,加上搜索算法中提到的在一些准备工作就绪的情况下,调焦马达可以一步到位地实现自动调焦,也是节省了不少时间和计算能力的。[em14][/COLOR]
点评回复

使用道具 举报

发表于 2007-2-5 17:57:30 | 显示全部楼层
I don't how many advantange can be obtained if the algorithm can provide the direction.
If you adopt mount climbing method then
1. First time you get the focus value and keep the motor at the original position.
2. Second time you get the focus value then compare the value to preview one. And you
   can know the position.
It only need two times.

My poor method is as the following ..
1. Calculate the focus depth by the lens specification and the motor specification.
    It usually needs at most 9 points. (9 focus depth can cover for most cases).
    If you need near shooting, you may need another table for focus depth.
2. Use mount climbing method to seach the 9 points and find the best focus point.

This method can find the focus position at average 4 times. Even you use the global
search method, you can find the focus position at 10 steps. If this method can meet yourrequirement??
+5 RD币
I add some thought about the algorithm on calculating the focus value.
My concern on the algorithm are:
1. If the algorithm is simply ? I don't want a lot of comuptation power.
2. If the algorithm can generate the peak from 0~infinite. If you want to evaluate the
    algorithm, you need to check a lot of scene (one object, two object ,and ...etc). To
    check if the algorithm can generate the peak from 0~infinite. If the algorithm can't
    generate the obviously peak value, then this algorithm is not good enough. There
    are many algorithm is focus on this field.
3. How the algorithm handle the focus depth. If there are two objects, one is in the front,
    how the algorithm gernerate this two peak ?.
4. How the algorithm handle the noise ? The noise is high frequence signal. It will affect
    the algorithm if the algorithm don't hand the noise very well.
Above are my poor idea for your reference.
[此贴子已经被作者于2007-2-6 15:06:42编辑过]
点评回复

使用道具 举报

发表于 2007-2-9 23:05:40 | 显示全部楼层
期待中....理解有点难[em06][em08][em08]
点评回复

使用道具 举报

 楼主| 发表于 2007-2-10 11:42:59 | 显示全部楼层
通过对上述算法的进一步研究,在下发现,这个算法具有一个比较明显的几何意义,将一行图像进行某种正交分解,我用的分解方法是序分解,即将一行图像分解为偶序和奇序,分别称为偶向量和奇向量,然后将这两个量即原行图像向量向一个具有诸如高斯函数性质的参考方向(需要精心选取,当然也可以优化方法选取)进行投影,求其正割,最后比较2段线段个长度的差值,这个差值就是上面谈到的S函数。[/COLOR][em14][br]<p align=right><font color=red>+5 RD币</font></p>
点评回复

使用道具 举报

 楼主| 发表于 2007-2-12 19:34:08 | 显示全部楼层
许多偶函数可以作为参考方向比如加窗余弦函数,采样函数,高斯函数,我对高斯函数用的比较多,因为其采样后的奇向量和偶向量能够对在下研究的一类图像的奇偶向量起到的分离作用最大;同时,我们也可以基于原图像给出一个与每一幅图像自身有关的参考方向,这实际上取决于将一个图像行向量进行何种正交分解,在这个正交分解下,奇偶向量能够最大限度的分离,从而为进一步确定离焦极性提供方便。[/COLOR][em14]
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-5-2 01:15 , Processed in 0.051724 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表