26.学习Camera之——PDAF(相位对焦)的基本原理

26.学习Camera之——PDAF(相位对焦)的基本原理在自动对焦的时候总是有一个困惑,知道图像是不清楚的,但是lens应该向前还是向后移动呢?总是要前后移动lens一下才知道,普通的反差法对焦就是这么做的,爬山嘛。PDAF的出现就是为了解决这个lens移动的问题,可以根据图像,预判lens运动的方向。PDAF最早运用在单反上,已经是非常成熟的技术了,原理如下图。左图为CCD在焦后的情况,右图为焦前。当CCD在焦后时,在线阵CCD1和CCD2上会发现聚焦点CCD1的在左,反之,则聚焦点CCD2的在左(图中红色标记的光线)。这种方法需要加.

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

在自动对焦的时候总是有一个困惑,知道图像是不清楚的,但是lens应该向前还是向后移动呢?
总是要前后移动lens一下才知道,普通的反差法对焦就是这么做的,爬山嘛。PDAF的出现就是为了
解决这个lens移动的问题,可以根据图像,预判lens运动的方向。

PDAF最早运用在单反上,已经是非常成熟的技术了,原理如下图。

左图为CCD在焦后的情况,右图为焦前。当CCD在焦后时,在线阵CCD1和CCD2上会发现聚焦点CCD1的
在左,反之,则聚焦点CCD2的在左(图中红色标记的光线)。

26.学习Camera之——PDAF(相位对焦)的基本原理

这种方法需要加额外的一个半透半反镜,还需要加两个透镜,两个线阵CCD,结构复杂,不适用于
手机等便携式设备中。所以pdaf sensor应运而生。

PDAF sensor的原理和单反中的略有不同。

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

26.学习Camera之——PDAF(相位对焦)的基本原理

 PDAF sensor的一种实现如下图所示,在CMOS上面一半的位置加了金属遮盖,这样,被遮住左边
一半的像素点就只能接受左边来的光,同理,pair的被遮住右边一般的像素点就只能接受右边来的
光。一般在CMOS中,遮住左边和遮住右边的像素点是在相邻位置会成对出现。

26.学习Camera之——PDAF(相位对焦)的基本原理

按照这种原理,我们就可以知道,上图的轴上点发出的光在位于焦前的CCD上所成像应如下图所示。
横坐标为pixel的x轴坐标,以光轴中心为0,纵坐标是像素接收到的光强。可以看到,左边遮挡的
像素(L)和右边遮挡的像素(R)所得到的图像是关于光轴对称的。所以,我们可以通过求自相关
得到两个图像的shift,进而求得sensor需要移动的距离(当然要通过tunning获得这样的对应关系)。

26.学习Camera之——PDAF(相位对焦)的基本原理

讲到这里,应该是没毛病的,对于轴上一点,pdaf是可以有效的得到相位信息的。

那么对于轴外一点呢?如下图所示,当然也是可以的。

26.学习Camera之——PDAF(相位对焦)的基本原理

细心的可能会发现这里有个问题,轴上点和轴外点在CCD上面的成像会彼此交叠,这样,应该会
对pdaf的效果产生影响的。好在我们平常的场景中,一般都有一些中低频物体,那么对这些物体
的话应该是影响很小的。

 PDAF的最终效果还和什么有关系呢?

1. 相机的F数,F数越小,PDAF的效果越精确。F数越小,景深越小,那么在物体离焦时,得到的
弥散斑越大,L和R的shift越大

2. 相机的曝光时间理论上不影响PDAF的效果,但是如果曝光时间过短,图像噪点过大,是会造成
pdaf的L和R shift不准确的

3. 物体距离相机越近,pdaf的效果越精确。物体距离相机越近,物体移动相同距离的shift比在
物距远时要大,这个跟景深是吻合的

4. 物体的pattern,当物体的pattern呈某种特定形状,会使得pdaf的像素检测不到shift,比如
纯色或重复的pattern

5. 轴外点的精度低于轴上点。同样的离焦情况下,轴上点的shift比轴外点要大。

6.物体本身的颜色。当pdaf的像素都是G时,如果物体本身的颜色为R或者B,则会导致pdaf接收到
的光能过小,从而影响pdaf的准确性

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/196570.html原文链接:https://javaforall.net

(0)
上一篇 2025年9月24日 下午12:43
下一篇 2025年9月24日 下午1:15


相关推荐

  • java源文件扩展名_java源文件名的后缀是什么?

    java源文件扩展名_java源文件名的后缀是什么?java源文件名的后缀是:“.java”。java编译后的文件扩展名是:“.class”;“class”文件全名称为“Javaclass”文件,主要在平台无关性和网络移动性方面使Java更适合网络。java源文件扩展名是.java。java编译后的文件扩展名是.class。我们编好的Java源程序保存为.java后缀,然后再用javac(Java语言的编译器)进行编译,生成后缀名为.class的…

    2022年7月7日
    33
  • vbs代码之“电脑系统崩溃”「建议收藏」

    vbs代码之“电脑系统崩溃”「建议收藏」熟练掌握vbs脚本,可以让你…我也不知道。具体操作:新建文本文档,将本段代码复制进入文本,保存;将后缀.txt改为.vbs即可。codeCreateObject(“SAPI.SpVoice”).Speak”你的电脑受到ddos木马攻击,系统严重瘫痪,电脑系统将在三秒后崩溃”setWshShell=WScript.CreateObject(“WScript.Shell”)WScript.Sleep2000CreateObject(“SAPI.SpVoice”).Speak”电脑系统已

    2022年5月27日
    34
  • 指令周期,机器周期,时钟周期的概念及三者之间的关系图_总线周期和时钟周期

    指令周期,机器周期,时钟周期的概念及三者之间的关系图_总线周期和时钟周期指令周期:CPU每取出一条指令并执行这条指令,都要完成一系列的操作,这一系列操作所需要的时间通常叫做一个指令周期。换言之指令周期是取出一条指令并执行这条指令的时间。由于各条指令的操作功能不同,因此各种指令的指令周期是不尽相同的。例如一条加法指令的指令周期同一条乘法指令的指令周期是不相同的。机器周期:机器周期也称为CPU周期。在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段(如取指、译码、执行等),每一阶段完成一个基本操作。完成一个基本操作……

    2022年10月13日
    5
  • Android CompoundButton[通俗易懂]

    Android CompoundButton[通俗易懂]为什么80%的码农都做不了架构师?>>>…

    2022年5月2日
    48
  • DTW和DBA_电台文本

    DTW和DBA_电台文本DTW(动态时间调整)动态时间调整算法是大多用于检测两条语音的相似程度,由于每次发言,每个字母发音的长短不同,会导致两条语音不会完全的吻合,动态时间调整算法,会对语音进行拉伸或者压缩,使得它们竟可能

    2022年8月3日
    9
  • Java面向对象(知识点整理)

    Java面向对象(知识点整理)文章目录面向对象类与对象匿名对象创建对象的内存分析栈 stack 堆 heap 方法区 PC 寄存器本地方法栈内部类成员内部类局部内部类匿名内部类静态内部类包装类拆箱和装箱操作字符串转换基本数据类型和包装类型的区别 Integer 类型的重点抽象类抽象方法不能被实例化常见问题抽象类和普通类的区别接口面向接口编程思想全局常量和抽象方法的简写接口的实现 implements 接口的继承 extends 接口与抽象类的区别多态多态的体现多态的使用 对象的类型转换 InstanceofOb 类 Object 的多态 toStri

    2026年3月19日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号