本文大致介绍自动对焦的基本原理,以及调试AF模块时需要注意的点。
之所以AF在前,是在调试AF过程中发现了许多问题,因此在这里进行一些记录,后续打算将图像调试的大部分模块都进行一个梳理。
对焦基本概念说明
通过调整镜头位置使得影像清晰的过程,对焦不准会极大影响成像的清晰度。
可以分成自动对焦(AF)和手动对焦(MF),其中AF是相机自动进行对焦,而MF需要手动调整来对焦。
对焦基本原理
我们使用FV(Focus Value)来衡量图像对焦的清晰度,如图所示,当相机对准固定场景时,随着对焦位置的变化,FV的变化跟过山车一样,在某一对焦位置时,FV最大,即此时画面对焦最清晰。对焦的过程就是要找到这个最佳对焦位置并设置的过程。
这是一个相机的典型结构示意图,当找到最佳对焦位置后,需要将该值设置到对焦马达(VCM)中生效。
对焦方式
根据原理的不同,常见的对焦方式分为反差对焦、相位对焦和激光对焦。
相位对焦
相位对焦也被称为相位检测对焦(Phase Detection Auto Focus,PDAF),主要实现是基于将进入镜头的光学投射到相位检测传感器上,传感器对镜头径向两方的光线进行对比。PDAF的优点是对焦速度快,但是为了能够检测相位,需要在Sensor表面的部分像素加了遮挡,因此Sensor结构复杂,且低照效果不佳。
激光对焦
激光对焦是通过记录红外激光从装置发射,经过表面反射,最后再被测距仪接收到的时间差,来计算目标到测试仪器的距离从而实现对焦的。这种方式对焦速度中等,适用于弱光环境。
反差对焦
反差对焦也被称为对比度检测对焦(Contrast Detection Auto Focus,CDAF),主要是通过在图像中对焦主体对比度信息的调整过程中,检出最高对比度所在,然后进行对焦。反差对焦是最通用的且对硬件无任何额外要求的,但是对焦速度慢,这里也着重分析反差对焦的方式。
那如何找到这个最佳对焦位置呢?
反差对焦的算法也是通过在一定范围内推动对焦马达成像在多个位置程序,统计每个位置的FV值,并找出最大FV值对应的马达位置的过程。听起来似乎与上面说的对焦基本原理一样,但是理论和实际还是有区别的。
首先,在实际反差对焦算法工作时,不可能在每个马达位置都统计FV值,那样AF会慢得让人无法忍受,因此对焦过程必然是通过离散的几个点拟合出FV值的变化趋势:
如图所示,蓝色虚线表示当前场景下实际FV的走势,而红色实线是通过5个对焦位置的FV值拟合得到的变化趋势,可以看到最终计算得到的最佳对焦位置(红色粗虚线)与实际最佳对焦位置(蓝色虚线)并不重合,这就可能会导致对焦不准。
AF效果调整时需要注意的点
AF position与马达位置的对应
一般来说,在AF算法计算对焦位置是根据算法中的位置进行设定的,而实际最终对焦位置是根据马达位置决定的,而我们一般使用的音圈马达(VCM)的位置其实是电流大小决定的,因此这里存在一个AF pos与马达电流大小的对应关系,在实际调试中要以实际生效电流为准,因为可能多个AF pos对应的是相同的马达位置。
搜索范围
如五次对焦拟合FV变化趋势图所示,这5次的对焦范围就是从位置1到位置5,对焦范围比较大就会导致每次搜索时比较宽,从而最终拟合得到的最佳对焦位置不太准;当然,如果搜索范围太小可能会将真正的最佳对焦位置排除之外,因此选择搜索范围时,需要先根据镜头的景深范围先确定实际会用到的对焦范围,然后再适当扩大一些(如果不扩大,可能AF算法无法判断FV的峰值位置)。
同时,搜索范围大的另一明显表现是在AF对焦过程中画面会存在明显清晰到模糊的变化过程,在预览和录像过程中影响用户体验,因此搜索范围需要保证对焦精确度的情况下尽可能小。
搜索次数
如五次对焦拟合FV变化趋势图所示,5次就是指搜索次数,搜索次数大可以得到与实际更贴合的FV趋势,但是会让AF对焦速度变慢;而搜索次数小虽然会使得对焦速度快,但得到的FV趋势可能与实际有较大差异导致AF对焦不准;因此AF搜索次数需要根据搜索范围和对焦速度共同评判。
触发重新对焦机制
并不是画面发生了一点点变化就会触发重新对焦,一般需要画面变化达到一定阈值才会重新对焦,该指标需要评估两点,一是相机在运动过程中频繁对焦程度,二是相机不动而对焦物体在运动时触发对焦的准确性,因此触发重新对焦的阈值不能太大也不能太小。
高通的平台触发重新对焦有3种机制:FV值、亮度绝对误差和陀螺仪运动值,当着3个值中的任意一个变化大于其阈值时就会触发重新对焦。