相机变焦与对焦方法及原理

news/2025/1/15 11:19:17/

变焦和对焦是camera工作中重要的一部分,对于其工作原理的理解是重要且必要的。下图整理出了变焦和对焦的分类以及实现过程。

 对于常用的三种对焦方式反差对焦(CAF)、相位对焦(PDAF)、激光对焦(LDAF)通过图像生动仔细的理解可参考以下几个博客内容:

PDAF(相位对焦)的基本原理_qq_41581769的博客-CSDN博客_相位对焦

介绍几种常见的对焦基本原理_Winston_Jory的博客-CSDN博客_对焦原理

zgolee的博客_CSDN博客-android,linux OS,linux驱动领域博主

CAF(contrast auto focus)对焦原理

其过程类似于“爬山算法”,即马达从近焦到远焦搜索一遍,对该过程中所有的差值进行计算,得到最大的差值,再让马达返回至最大差值的地方即为合焦点。该对焦方法认为图像最清晰的点也是对比度最大的点。相机会驱动镜头,沿着指向被摄物的轴线改变对焦点,并在每个对焦点上获取影像,得到像素亮度值并求得所有像素的亮度之和,与下一个对焦点上获得的图像的各像素亮度值之和做差即可得两个焦点间的反差值。对比筛选出反差最大的,驱动镜头,将焦点放置于反差值最大的焦点上,即得到正确的焦点,并根据反差量最大的值确定是否合焦,即对焦完成。所以反映在用户手机屏幕上时,则是由模糊到清晰再到模糊,最终清晰的“拉风箱”式的过程。这种判断能获得非常高的对焦精度,实际使用也是如此。这种对焦技术被称为反差式对焦。
高通平台的反差 AF (CAF) 通过监测陀螺仪传感器的运动值和亮度值的绝对误差和 (SAD) 来检测场景变化并触发搜索。如果变化符合稳定性和可信度标准,则 CAF 会触发搜索,搜寻获得最高 FV 的镜头位置。

PDAF(phase different auto focus)对焦原理

左图为CCD在焦前的情况,右图为焦后。当CCD在焦后时,在线阵CCD1和CCD2上会发现聚焦点CCD1的在左,反之,则聚焦点CCD2的在左(图中红色标记的光线)。以轴上点为例,紫色光线代表经过上半部分透镜的光线,而蓝色代表经过下半部分透镜的光线,可以看到,当CCD在焦前的时候,上半部分的CCD接收到的是上半部分的光线,而下半部分的CCD则接收到的是下半部分的光线,反之,在焦后的时候恰好相反。那么如果我们可以区分光线是来自透镜的上半部分还是下半部分,我们就可以知道是焦前还是焦后了。不难发现,CCD越接近理想成像面,两色光线在CCD上所成像越接近,当恰好成像清晰时,两色光线是重合成一点的。

PDAF sensor的一种实现如下图所示,在CMOS上面一半的位置加了金属遮盖,这样,被遮住左边一半的像素点就只能接受左边来的光,同理,pair的被遮住右边一般的像素点就只能接受右边来的光。一般在CMOS中,遮住左边和遮住右边的像素点是在相邻位置会成对出现。以下三种为不同结构的shield方式,第一种为两个pixel分别被遮住左边和右边;第二种为相邻两个pixel分别被遮住左边和右边但是共用一个macro lens;第三种为同一个pixel被分为两半

PDAF算法在获得PD数据后进行一步重要的操作,由于镜头马达受重力等影响,合焦点的PD值会出现偏差,这样容易使得算法出现误判,因此需要标定,即求相位差与镜头移动距离之间的关系系数,该系数近似直线的斜率,并将该系数烧录进OPT,对所有镜头进行标准。这样可以通过相位差就可以判断镜头需要移动的距离,马达驱动可以根据相位差判断马达该前进或后退几圈才能到达对焦点。

下图为自动对焦过程,嵌入PD pixel的sensor读出的数据被分成两部分,一部分是图像流,图像经过isp处理得到亮度数据为反差对焦提供数据,另一部分是PD数据,通过相位统计进入Hybrid AF(模式管控模块,就是选择用哪种对焦算法,比如用反差对焦、相位检测对焦或者二者同时使用等模式),最后给AF驱动下发指令,马达根据指令进行对焦。


http://www.ppmy.cn/news/468063.html

相关文章

焦距与对焦的区别

焦距是透镜的一个物理参数,指的是平行光束通过透镜后汇聚的那一点至透镜中心的距离(以简单透镜为例),这个参数决定了这个透镜的屈光程度,这个参数对于定焦镜头是固定不可改变的,而对变焦镜头,这…

ShowMeBug与极狐(GitLab)战略合作,推动DevOps人才高效甄选

近日,ShowMeBug与领先的开放式一体化安全DevOps平台提供商极狐(GitLab)达成深度合作协议,双方将致力于共同打造具有行业强认可度以及高实用性的DevOps岗位题型,助力企业通过更为专业、标准的技术笔试题型,提升DevOps岗位人才筛选效…

【换脸详细教程】手把手教你进行AI换脸:换脸流程及源码详解

目录 1. 换脸基本原理2 人脸检测及可视化3. 人脸轮廓点检测及可视化4. 人脸图像变换--仿射变换5. 生成遮罩并直接替换人脸6. 人脸颜色校正 最近AI换脸貌似比较火爆,就稍微研究了一下相关了内容。AI换脸是一个娱乐性比较强的应用,这种错位感让人觉得非常有…

据说这是最细滴,Python接口自动化测试数据驱动DDT使用实战,有这一篇就完全足够了

目录 前言 一、数据驱动 二、传递基础数据类型 三、传递一个复杂的数据结构 四、传递json文件 五、传递Yaml文件 前言 环境准备 首先,需要安装ddt模块 pip install ddt调用时标准格式 在类下面如下写上:ddt.ddt 在调用的方法下面需要写上&#x…

ros自己创建的包依赖package1,编译总是得来两遍的解决方法

一、问题描述 在自己创建的一个功能包,需要引用package1中的msg或srv头文件时,第一次编译,总是报错,找不到package1的头文件,再次编译,才可以通过而不报错。 二、原因分析 主要还是包编译时序的问题&…

python 操作配置文件。

一:配置文件 1. 什么是配置文件 配置文件是为程序配置参数和初始设置的文件。一般为文本文件,以ini,conf,cnf,cfg,yaml等作为后缀名。 例如mysql的配置文件my.cnf内容如下: [mysqld] # Only allow connections from localhost bind-addre…

C++调用已训练好的pytorch模型

使用C调用pytorch模型,即将模型部署到生产环境中,这里先提供一个pytorch的官方教程 首先需要下载并配置好torch script环境,网上已有相关教程。然后在python中将模型转换为torch script,我使用了annotation的方式。 net Net().…

前端学习——HTML

C/S架构和B/S架构 1.C/S架构:需要安装,偶尔更新,不跨平台 2.B/S架构:无需安装,无需更新,可跨平台 大型专业应用、安全性要求较高的应用,需要采用C/S架构 前端工程师主要研发B/S架构的应用——写…