1. 常用的AF算法框架

  • module

由module分别输出两个通道给到AP, 分别传输PDBuffer与RawBuffer;然后由算法针对拿到的Buffer进行计算,输出对应的CAF与PD结果; TOF同样如此,由TOFsensor输出depthBuffer给到平台来解析distance和confidence数据

  • AP

AP和AF相关的主要是两个部分,一个是ISP, 另外一个是外置ISP,常用来做PD计算。现如今的平台慢慢不局限与ISP来做PD计算,追求独立的PD计算模块,来提升性能。

  • HybridAF

AF算法逻辑, 通过AF算法逻辑部分分别来选择ContrastAF, PhaseDetectionAF, TOF等

  • DriveIC

最后从算法逻辑中选择马达需要移动位置,给到driveIC,然后写入寄存器中控制马达移动

  1. PDAF算法

相位对焦算法, 基本原理是利用同一个miscoLens下的左右两个Pixel所接受的光线相位差的不同,得到相位值, 然后使用相位值来映射镜头位置的过程

如上图,焦点在画面前后时,左右PDpixel所呈现的曲线存在相位差的; 只有在2中,准焦点上相位差才会为0

常用的相位计算逻辑,如上图,将整个PDPixel中的LR像素抽离出来,然后形成LR两张buffer数据; 再将LR的buffer分别按列取值,得到LR的灰度曲线(类似于双目测距)。从曲线即可得到对应的相位差。PD对焦在对焦速度上相比于其他算法比较有优势,同时也能检测出一张图片不同景深位置,具备测距功能

  1. ContrastAF

反差式对焦,通过不断的统计马达在每个位置的对比度数据,得到对比度最大的位置,然后将这个位置最为最终的清晰点。

如上图,在每个位置都能计算出算法对应的对比度数据,然后使用最常见的爬山算法来选择清晰点。相对与其他算法,这是最笨,也是最准确的方式。缺点就是速度慢,在夜景噪点多的情况稳定性相对更差。不具备反映景深特点

  1. TOF

激光测距分为两种 DTOF(直接 TOF) 和 ITOF(间接TOF); DTOF计算从发射脉冲光到传感器接收到的时间; ITOF测量发射的正弦波/脉冲信号与接收的正弦波/脉冲信号之间的相位差的方法计算出时间

DTOF: 直接测量法,运用单光子雪崩二极管对单个光子探测有非常好的灵敏度特性,只要有光子击中二极管就会输出一个脉冲,输出这个脉冲后,可以很快复位,准备接收下一个光子

ITOF: 按发射光波的调制方式分成连续波调制和脉冲调制;

脉冲调制,一般都是使用方波作为调制信号;

连续波调制使用正弦波作为调制信号

然后在接收端进行信号读取,确认接收到的信号和发射信号的相位偏移

  • DTOF

利用飞行时间来计算测距结果

光子发射经过目标物之后反射到接收端,通过计算发射与接收的时间来测距。如今用的比较多的距离统计方法是通过连续发射多束光线,然后统计每束光线的测距结果。统计其中出现距离最多的作为最终的distance。

上面是单点TOF,随着这两年成本的降低,多点TOF慢慢使用上来了。 通过使用多个SPAD作为接收端,形成SPAD阵列,最常见的就是8*8和4*4, 使得DTOF具备了显示景深的特性,具备分区域测距的效果。 在对焦过程也慢慢从只能用于景物的TOF,扩展到了手动对焦和人脸对焦,甚至是追焦

  • ITOF

四个方波分别为发射信号,接收信号,一个传感器A以和发射信号同样频率的波形进行工作,和发射光光波同步进行光信号读取积分。一个传感器B以和发射信号同样频率的波形进行工作,但是在时域上有π的相位偏差,进行光信号读取积分。可以看到传感器A和传感器B在交替开关对接收信号进行积分,他们分别接收到了返回信号的一部分。输出的强度信号B/(A+B) * π既是发射信号和接收信号的相位差ϕ

  1. 算法对比

CAF算法, 优势在于准确性,当然在获得准确性的同时丢失的对焦速度,对焦时间花费至少是其他算法的两倍以上

PDAF算法, 优势在于对焦速度快,对比度高的场景能做到CAF的准确性。缺点也明显,在暗环境和低对比情况下效果就很差了。需要算法调试过程中自主选择了

TOF算法, 优势在于对焦速度快与暗环境对焦准确性好。 相对而言TOF的准确性比不上CAF和PDAF, 毕竟TOF得到的距离,距离转换到电流时实际对焦会存在一定误差,很多时候都是以TOF+CAF来混合对焦。直接转换的话就要考虑如何将这个误差缩小到可接收范围内

现如今使用的最多的还是PDAF+TOF+CAF三者混合,在三者之间CAF一般是作为底线,在无法使用PDAF和TOF情况下才会考虑到。 PDAF和TOF优先级每家手机都会有自己的策略,PDAF优先和TOF优先都存在,这个要看自己选择了。

以上是个人理解,如有问题,欢迎讨论

常用AF对焦算法详解相关推荐

  1. 机器学习、深度学习中常用的优化算法详解——梯度下降法、牛顿法、共轭梯度法

    一.梯度下降法 1.总述: 在机器学习中,基于基本的梯度下降法发展了三种梯度下降方法,分别为随机梯度下降法,批量梯度下降法以及小批量梯度下降法. (1)批量梯度下降法(Batch Gradient D ...

  2. python牛顿法计算平方根_常用的平方根算法详解与实现

    本文从属于笔者的数据结构与算法系列文章. SquareRoot 平方根计算一直是计算系统的常用算法,本文列举出几张简单易懂的平方根算法讲解与实现.其中Java版本的代码参考这里 Reference B ...

  3. 常用的平方根算法详解与实现

    本文从属于笔者的数据结构与算法系列文章. SquareRoot 平方根计算一直是计算系统的常用算法,本文列举出几张简单易懂的平方根算法讲解与实现.其中Java版本的代码参考这里 Reference 计 ...

  4. html5 游戏 算法,JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解【圆形情况】...

    JS/HTML5游戏常用算法之碰撞检测 包围盒检测算法详解[圆形情况] 发布时间:2020-10-10 13:42:43 来源:脚本之家 阅读:95 作者:krapnik 本文实例讲述了JS/HTML ...

  5. C++中的STL算法详解

    1.STL算法详解 STL提供能在各种容器中通用的算法(大约有70种),如插入.删除.查找.排序等.算法就是函数模板,算法通过迭代器来操纵容器中的元素.许多算法操作的是容器上的一个区间(也可以是整个容 ...

  6. Twitter-Snowflake,64位自增ID算法详解

    Twitter-Snowflake,64位自增ID算法详解 from: http://www.lanindex.com/twitter-snowflake%EF%BC%8C64%E4%BD%8D%E8 ...

  7. FloodFill算法详解及应用

    FloodFill算法详解及应用 啥是 FloodFill 算法呢, 最直接的一个应用就是「颜色填充」,就是 Windows 绘画本中那个小油漆桶的标志,可以把一块被圈起来的区域全部染色. 这种算法思 ...

  8. YOLOv5算法详解

    目录 1.需求解读 2.YOLOv5算法简介 3.YOLOv5算法详解 3.1 YOLOv5网络架构 3.2 YOLOv5实现细节详解 3.2.1 YOLOv5基础组件 3.2.2 输入端细节详解 3 ...

  9. SoftPool算法详解

    Refining activation downsampling with SoftPool-论文链接-代码链接 目录 1.需求解读 2.SoftPool算法简介 3.SoftPool算法详解 3.1 ...

最新文章

  1. 数字图像处理8:图像增强之空域滤波
  2. Javascript的闭包及其使用技巧实例
  3. mysql报错3534_win7下安装MYSQL报错:MYSQL 服务无法启动的3534问题
  4. 动态规划之硬币表示问题
  5. BAT-批量改文件后缀名
  6. cvi中c语言只保留两位小数,CVI编程常见问题与错误-2012.9
  7. Windows下Android开发环境 搭建
  8. Docker 快速安装 Mysql
  9. java并发编程(10)-- 线程池 底层原理
  10. Atitit 眼科医学之道 attilax总结
  11. POM文件配置Maven仓库地址
  12. 从物理到软件工程,中山大学转专业2017纪实
  13. 计算机金山打字基础,金山打字通电脑版
  14. linux终端的中国象棋,在Ubuntu 17.10上玩国际象棋等游戏
  15. 一个人的职业生涯之旅 —— 应届生求职、面试、Offer、跳槽(发展瓶颈、薪资倒挂、职业倦怠、骑驴找马、简历优化)问题分享
  16. springboot农机装备生产车间物料配送车辆调度管理系统毕业设计源码181710
  17. .net的web开发前后端传值系列(二)
  18. Git: Cannot update paths and switch to branch 'feature' at the same time.
  19. 尔宾团队角色(Belbin Team Roles),亦被称为贝尔宾团队角色表(Belbin Team Inventory)
  20. 十进制小数转为二进制小数

热门文章

  1. C#学习笔记之匿名方法
  2. 电脑ftp服务器信息,电脑上的ftp信息服务器地址
  3. FileSystemWatcher 基础用法
  4. matlab语法介绍——fft()、ifft()、fftshift()
  5. 网络工程师必备学习内容!深度理解OSPF——OSPF是什么?为什么要用OSPF?
  6. 正数负数的原码,反码,补码
  7. 2021年江苏省淮安高考成绩查询,2021年江苏淮安高考时间:6月7日至9日
  8. 两个简单方法--shift()和unshift();
  9. MATLAB可以使用但是使用help函数报错问题的解决
  10. 淘宝/天猫API:item_videolist-按分类搜索淘宝直播接口