对焦模式

常用的模式:CAF、TOUCH focus、auto focus。


CAF:
1、判断条件:环境亮度变化、陀螺仪之类传感器数据变化
2、检测到环境亮度或者传感器数据变化超过一定阀值
3、继续检测到环境亮度或者传感器数据变化已经稳定
4、触发CAF
   Touch focus
      1、点击预览界面时候触发
      2、点击位置坐标为对焦点,传入对焦算法中。
   auto focus:
      1、点击拍照时候触发
      2、对焦点为预览界面中心。

对焦算法结构

1、获得当前帧图像
2、图像清晰度计算
3、下一步马达位置计算
4、马达驱动
  驱动马达之后,从新获得新的帧图像,继续清晰度计算,获得信息对焦位置,不断循环,直到找到最高清晰度的马达位置,对焦完成。


常用的清晰度评价算法有:
   频域函数 :对焦越好、高频部分越多,细节越多,图像越清晰。
   灰度函数 :对焦越好,和周围相邻灰度点差值越大,边缘越清晰,图像越清晰。
   信息熵函数:对焦越好,图像包含的信息熵越大,包含信息量更大,图像越清晰。
   统计学函数:对焦越好,直方图多样性越好,图像越清晰。


常用的搜索算法有:
   1、函数逼近法
   2、Fibbonacci搜索法
   3、爬山搜索算法


对焦算法中,基本都是在不停的做状态机查询,常用的状态有:
   1、等待对焦触发
   2、对焦参数更新(如图像分辨率变化或者对焦ROI坐标变化)
   3、对焦工作中
   4、对焦状态返回(对焦成功或者失败)

驱动马达

开环马达:以当前主流手机为例,驱动马达移动之后,自测需要50ms左右才能稳定。
闭环马达:以当前主流手机为例,驱动马达移动之后,自测需要15ms左右才能稳定。  
 
闭环马达对比开环马达优势:稳定速度更快,功耗更小。

时间消耗

1、等待图像稳定
2、马达推动   
3、状态机查询、搜索算法、清晰度评价算法等程序运行。


只要时间消耗在:等待图像稳定。
  以当前主流手机为例:
   1、30fps帧率为例,一帧图像为33ms左右。若为开环马达,等待帧数需要为3、4帧。在这上面,每推动一次马达,消耗时间为100ms-133ms左右。若为闭环马达,需要等待2、3帧,每推动一次马达,消耗时间为66ms-100ms左右。
   2、马达推动稳定时间(15ms左右 或者 50ms左右)
   注意:因为马达推动稳定时间和图像帧收集等待时间为并行,所以这两者时间不用叠加。
   3、程序运行时间(15ms以下)
   这些程序中,主要是清晰度计算花费时间,但是也不多,自测在几毫秒就。这部分时间和马达驱动时间为串行,需要叠加。
和图像帧收集等待时间并行。
   4、自测普通对焦一次时间消耗大致在600ms-1000ms左右,随着帧率降低,对焦消耗时间越多。
以上,对焦时间消耗主要为图像帧稳定上。

快速对焦

常见快速对焦
   1、激光对焦   
   2、双摄视差对焦   
   3、PdAF对焦
   这些对焦方式,通过激光、视差、相位差之类方式,直接计算出大致的对焦点,然后再微调,实现对焦。
   很大程度上减少了对焦搜索范围,大致上可以将对焦时间优化到300ms–500ms左右。
   另外在快速对焦中,有些算法是直接计算出大致对焦点,没有继续微调对焦,这样对焦时间时间可以在100ms以内或左右。不过对焦效果
和对焦结果一致性会差一些。

注意

1、马达推动之后,需要等待图像稳定之后,才能计算清晰度
2、图像清晰度计算算法选择,需要对噪点之类不太敏感
3、对焦区域ROI的选择不能太小或者太大,1280X960的区域,可以选择160X160区域
4、如果有快速对焦功能,需要判断是否快速对焦成功,如果失败,则需要算法切换回普通对焦模式上,从新对焦。

摄像头 - 对焦算法实现总结相关推荐

  1. 常用AF对焦算法详解

    常用的AF算法框架 module 由module分别输出两个通道给到AP, 分别传输PDBuffer与RawBuffer:然后由算法针对拿到的Buffer进行计算,输出对应的CAF与PD结果: TOF ...

  2. 整理智能车中使用到的摄像头图像处理算法

    整理智能车中使用到的摄像头图像处理算法 19年的智能车竞赛给我留下了很深远的影响,不管是算法思路还是解决问题的方法对我来说都受益匪浅.今天整理资料时又翻出这些代码,回忆起做车时不分日夜地在赛道上调试, ...

  3. 3D结构光摄像头深度算法

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 光学和算法是3D结构光的核心能力,性能优越的3D结构光摄像头必须是光学系统和深度算法的完美融合,两者高 ...

  4. 3D结构光摄像头深度算法 转载

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 光学和算法是3D结构光的核心能力,性能优越的3D结构光摄像头必须是光学系统和深度算法的完美融合,两者高 ...

  5. 3D深度体感摄像头 自有算法的深度立体视觉传感器

    rgbdsense基于结构光结合自有算法的深度立体视觉传感器,通过USB将深度数据与RGB数据传输至PC的免驱动设备.通过此次众筹为大家提供开放易用的3D深度摄像头,开发人员可借助PC用于3D成像,图 ...

  6. java对焦_Android camera摄像头对焦,zoom的通知事件回调,告诉java应用层已经对焦完成...

    在vendor/sec/sec_proprietary/smdkc110/libcamera/SecCameraHWInterface.cpp中,当对硬件设置完毕后,通知packages/apps/C ...

  7. ADAS视觉方案盘点上篇:摄像头、芯片和算法

    摄像头是ADAS核心传感器,相比毫米波雷达和激光雷达,最大优势在于识别(物体是车还是人.标志牌是什么颜色).汽车行业价格敏感,摄像头硬件成本相对低廉,因为近几年计算机视觉发展迅速,从摄像头角度切入AD ...

  8. 自动驾驶激光雷达、摄像头、毫米波雷达融合算法

    无人驾驶汽车多传感器冗余下的数据融合算法研究 [论文]详见知网链接.ELSEVIER链接.IEEE链接,[开源项目]详见github链接 [编译运行]详见DWD_sensor_fusion编译运行 目 ...

  9. Android 摄像头调用(不含拍照),kotlin开源

    mCurrentCamIndex = camIdx; //设置前置摄像头id }catch (RuntimeException e){ Log.e(TAG,"相机打开失败:" + ...

最新文章

  1. 互联网圈都是什么人年薪百万?这份报告有真相
  2. java中的Executors简介与多线程在网站上逐步优化的运用案例
  3. python中列表如何比较大小_如何比较python中的列表/列表?
  4. Java并发编程之synchronized关键字解析
  5. 年轻人选择创业时,最好避开门槛低的行业
  6. delphi 获取当前路径
  7. this与static
  8. 【教你Win7下如何激活快速启动栏】
  9. 常见的相机输出接口CVBS、VGA、DVI、HDMI、SDI、Camera Link、HS-LINK、CoaXPress
  10. EOF到底是什么意思?
  11. 关于AlertDialog的小坑
  12. Android 使用讯飞语音SDK
  13. 171025_matlab_imag函数
  14. Redis-14Redis超时命令
  15. python之selenium和xpath简单知晓国服魔兽世界正式服人口普查
  16. Anaconda3+python3.7成功安装dlib-19.19.0库(稀里糊涂)
  17. 【Matlab语音分析】语音信号分析【含GUI源码 1718期】
  18. 协作图(Collaboration diagram)——UML之图七
  19. CHIL-ORACLE-伪列
  20. 换位思考:大学教育我之见

热门文章

  1. 两个小Tips: 解决Matlab初始化时间过长Office使用(KMS工具无效时)
  2. twisted的简单介绍
  3. s5p6818PWM驱动蜂鸣器实验
  4. 关于Mongodb的全面总结,学习mongodb的人,可以从这里开始!
  5. 详细及易读懂的 大津法(OTSU)原理 和 算法实现
  6. 插值与拟合 (二) : 曲线拟合的线性最小二乘法
  7. 数据库三大范式、BC范式、第四范式
  8. Python--变量
  9. 使用NanoHTTPD在Android上建立本地服务器
  10. 数据化管理 - 洞悉零售及电商运营【初始】