3A算法—自动对焦(AF)
3A算法—自动对焦(AF)关于这方面知识,自己所能接触到的东西较少,目前属于学习阶段。1、定义自动对焦是利用物体光反射原理,将反射的光被相机上的传感器CCD所接受,通过计算机处理,带动电动对焦设备进行对焦的方式叫做自动对焦。下面简单介绍几个专业名字物距:物距是指物体到透镜中心的距离,一般用表示u表示。像距:像距是像(CCD传感器)到平面镜(或透镜的光心)之间的距离,一般用v表示。焦距:镜头的焦距基
3A算法—自动对焦(AF)
目录
关于这方面知识,自己所能接触到的东西较少,目前属于学习阶段。
1、定义
自动对焦是利用物体光反射原理,将反射的光被相机上的传感器CCD所接受,通过计算机处理,带动电动对焦设备进行对焦的方式叫做自动对焦。
下面简单介绍几个专业名字
- 物距:物距是指物体到透镜中心的距离,一般用表示u表示。
- 像距:像距是像(CCD传感器)到平面镜(或透镜的光心)之间的距离,一般用v表示。
- 焦距:镜头的焦距基本上是从镜头的中心点,到形成清晰影像镜头胶片或数码CCD之间的距离。
- 凸透镜:凸透镜是跟据光的这声原理制成的。凸透镜是中央较厚,边缘较薄的透镜。凸透镜分为双凸、平凸和凹凸(或正弯月形)等形式,凸透镜有会聚光线的作用故又称会聚透镜,较厚的凸透镜则有望远、会聚等作用,这与透镜的厚度有关。远视眼镜是凸透镜。
- 景深:当你拍摄一个照片,照片当中最近的物体和最远的物体之间,能清晰成像的部分,就是景深。
凸透镜成像原理
出处博客:手机是如何实现自动对焦的?
最简单的人眼模型至少是一个焦距可变的凸透镜(晶状体等)+光屏(视网膜)。
人脑会对视网膜所成的像进行翻转,所以看到的是倒立的像,根据惠更斯原理,凸透镜所成像上各点均可看作光源,所以即使在像的位置放上光屏,对光进行散射,也不影响人眼再次成像;如果把人眼看出CCD光屏,对人眼考虑成像公式,1/u+1/v=1/f;
2、图像清晰度评价方法
我们可以通过不同的图像清晰度评价方法来评价图像是否聚焦清楚。
其中自动聚焦评价函数主要有:
评价函数算法详细可参考https://blog.csdn.net/charlene_bo/article/details/72673490
聚焦的准确位置对应于锐度评价函数的最大峰值,也只有找到最大峰值才能知道准确聚焦的位置如何确定最大峰值 ,也就是采用什么样的方法来搜索聚焦峰值, 是基于对比度被动自动聚焦的另外需要考虑 的问题意义上讲,锐度评价函数决定了聚焦的精度,而聚焦峰值搜索方法决定了自动聚焦的速度。
3、对焦算法
自动对焦基本原理是:对焦过程中图像仍在一直不断产生,把镜头在某个位置时的那帧图像送到图像处理器(ISP)处理,得出该图像的统计信息,再把这信息送到对焦算法库(也许是在isp硬件上执行,也许是在驱动程序软件执行),对焦算法库根据硬件规范和上述统计信息算出下一步镜头该往哪个方向移动多少距离,并驱动镜头到达那个位置;接着在此位置得到新图像,又计算统计信息,计算再下一步的镜头位置…图像清晰度渐渐变化,如此经过几个循环收敛,图像到一定程度,就认为对焦成功。
上述图像统计信息必然是和对焦算法一一对应的,用什么样的算法就需要ISP计算相应的统计信息。
围绕不同的对焦算法,就形成了各种自动对焦方式,不同的对焦方式有不同的对焦速度和硬件需求及设计(主要针对摄像头传感器)。
对焦算法设计的目标就是快狠准地完成对焦。各种常见算法各路大神已经说得非常全面,在此只做简单小结,(也不作精确分类,因为认识不全面,也分不太清):
第一类,测距法。摄像头发出红外光或超声波(现在也有激光的)并接收返回光线,实现测距,然后借此距离计算物距实现对焦,此方法精度略差,高端机上已较少使用,或作为其他方法的补充。
第二类,图像分析法。又分为反差式和相位检测两种。
反差式就是通过前文所述不断迭代过程,找到画面对比度最大时的镜头位置。
相位检测是较新的技术,多用于单反相机,现渐渐开始用于手机,比如iphone6。主要原理是通过一个分离镜头(或是通过集成在主图像传感器上的一些线性传感器)产生两个光路,当对焦准确时,通过两个光路分别形成的画面之间的偏移应该等于两个光路固有相位差。相位差方法速度快,精度也较高,但需要硬件的支持。
摘自:https://www.zhihu.com/question/23636965/answer/45393596
一般通用的自动聚焦算法都要考虑聚焦函数和最佳焦平面算法。也有一些自动聚焦方法,通过添加一些额外的装置,能够计算出最佳焦平面的位置,从而实现快速自动聚焦。
关于具体算法,之后也会不断学习进行更新。
致谢
https://www.zhihu.com/question/23636965
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)