3A算法—自动对焦(AF)

news/2025/1/7 21:29:06/

3A算法—自动对焦(AF)

目录

3A算法—自动对焦(AF)

1、定义

2、图像清晰度评价方法

3、对焦算法

致谢


关于这方面知识,自己所能接触到的东西较少,目前属于学习阶段。

1、定义

自动对焦是利用物体光反射原理,将反射的光被相机上的传感器CCD所接受,通过计算机处理,带动电动对焦设备进行对焦的方式叫做自动对焦。

下面简单介绍几个专业名字

  • 物距:物距是指物体到透镜中心的距离,一般用表示u表示。
  • 像距:像距是像(CCD传感器)到平面镜(或透镜的光心)之间的距离,一般用v表示。
  • 焦距:镜头的焦距基本上是从镜头的中心点,到形成清晰影像镜头胶片或数码CCD之间的距离。
  • 凸透镜:凸透镜是跟据光的这声原理制成的。凸透镜是中央较厚,边缘较薄的透镜。凸透镜分为双凸、平凸和凹凸(或正弯月形)等形式,凸透镜有会聚光线的作用故又称会聚透镜,较厚的凸透镜则有望远、会聚等作用,这与透镜的厚度有关。远视眼镜是凸透镜。
  • 景深:当你拍摄一个照片,照片当中最近的物体和最远的物体之间,能清晰成像的部分,就是景深。

凸透镜成像原理

出处博客:手机是如何实现自动对焦的?

最简单的人眼模型至少是一个焦距可变的凸透镜(晶状体等)+光屏(视网膜)

人脑会对视网膜所成的像进行翻转,所以看到的是倒立的像,根据惠更斯原理,凸透镜所成像上各点均可看作光源,所以即使在像的位置放上光屏,对光进行散射,也不影响人眼再次成像;如果把人眼看出CCD光屏,对人眼考虑成像公式,1/u+1/v=1/f;

2、图像清晰度评价方法

我们可以通过不同的图像清晰度评价方法来评价图像是否聚焦清楚。

其中自动聚焦评价函数主要有:

评价函数算法详细可参考https://blog.csdn.net/charlene_bo/article/details/72673490

聚焦的准确位置对应于锐度评价函数的最大峰值,也只有找到最大峰值才能知道准确聚焦的位置如何确定最大峰值 ,也就是采用什么样的方法来搜索聚焦峰值, 是基于对比度被动自动聚焦的另外需要考虑 的问题意义上讲,锐度评价函数决定了聚焦的精度,而聚焦峰值搜索方法决定了自动聚焦的速度。

3、对焦算法

自动对焦基本原理是:对焦过程中图像仍在一直不断产生,把镜头在某个位置时的那帧图像送到图像处理器(ISP)处理,得出该图像的统计信息,再把这信息送到对焦算法库(也许是在isp硬件上执行,也许是在驱动程序软件执行),对焦算法库根据硬件规范和上述统计信息算出下一步镜头该往哪个方向移动多少距离,并驱动镜头到达那个位置;接着在此位置得到新图像,又计算统计信息,计算再下一步的镜头位置…图像清晰度渐渐变化,如此经过几个循环收敛,图像到一定程度,就认为对焦成功。

上述图像统计信息必然是和对焦算法一一对应的,用什么样的算法就需要ISP计算相应的统计信息。

围绕不同的对焦算法,就形成了各种自动对焦方式,不同的对焦方式有不同的对焦速度和硬件需求及设计(主要针对摄像头传感器)。

对焦算法设计的目标就是快狠准地完成对焦。各种常见算法各路大神已经说得非常全面,在此只做简单小结,(也不作精确分类,因为认识不全面,也分不太清):
第一类,测距法。摄像头发出红外光或超声波(现在也有激光的)并接收返回光线,实现测距,然后借此距离计算物距实现对焦,此方法精度略差,高端机上已较少使用,或作为其他方法的补充。
第二类,图像分析法。又分为反差式和相位检测两种。
反差式就是通过前文所述不断迭代过程,找到画面对比度最大时的镜头位置。
相位检测是较新的技术,多用于单反相机,现渐渐开始用于手机,比如iphone6。主要原理是通过一个分离镜头(或是通过集成在主图像传感器上的一些线性传感器)产生两个光路,当对焦准确时,通过两个光路分别形成的画面之间的偏移应该等于两个光路固有相位差。相位差方法速度快,精度也较高,但需要硬件的支持。

摘自:https://www.zhihu.com/question/23636965/answer/45393596

一般通用的自动聚焦算法都要考虑聚焦函数和最佳焦平面算法。也有一些自动聚焦方法,通过添加一些额外的装置,能够计算出最佳焦平面的位置,从而实现快速自动聚焦。

锐度评价函数决定了自动聚焦所能达到的精度,而聚焦峰值搜索则决定了自动聚焦的速度。因 此,只有研究或采用适应性强、抗噪声能力强的锐度评价函数,以及设计稳定而高效 的峰值搜索方法,才能够满足自动聚焦迅速、精确的要求。

关于具体算法,之后也会不断学习进行更新。

致谢

https://www.zhihu.com/question/23636965

 


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

相关文章

自动对焦搜索算法(未完)

自动对焦搜索算法 先黄金搜索再爬山搜索 1、爬山搜索法 2、黄金搜索法 3、代码 // AutoFocus.cpp : 定义控制台应用程序的入口点。 //#include "stdafx.h" #include <iostream> #include <vector> #include <math.h> #include <halconc…

摄像头自动对焦

聚焦评价函数 实现自动对焦的关键

Camera自动对焦

private MyAutoFocus mAutoFocus new MyAutoFocus(); //自动对焦方法class MyAutoFocus implements AutoFocusCallback{SuppressLint("NewApi")public void onAutoFocus(boolean success, Camera camera) {if(mCamera.getParameters().getFocusAreas() ! null)for(A…

单次自动对焦(ONE SHOT)、人工智能自动对焦(AI FOCUS)、人工智能伺服自动对焦(AI SERVO)的区别

单次自动对焦&#xff08;one shot&#xff09;是最为常用的。这种模式的工作过程通过半按快门来启动&#xff0c;在焦点未对准确前&#xff0c;对焦过程一直在继续。一旦处理器认为焦点准确以后&#xff0c;只要将快门完全按下就完成了一次拍摄过程&#xff0c;同时自动对焦系…

camera 自动对焦手动对焦

基础内容可参考 自动对焦系统概述|Camera https://jingyan.baidu.com/article/22a299b5c882a29e19376aad.html 对焦框坐标基本概念&#xff1a; Android Camera2之 手动点击区域对焦 - 简书 Camera2点击对焦实现 - mydddfly - 博客园 本文主要总结自己开发过程中遇到的各…

网络编程3——TCP Socket实现的客户端服务器通信完整代码(详细注释帮你快速理解)

文章目录 前言一、理论准备Socket套接字是什么TCP协议的特点 二、TCP 流套接字提供的APIServerSocket APISocket API 三、代码实现请求响应式 客户端服务器服务器客户端疑惑解答为什么服务器进程需要手动指定端口号而客户端进程不需要为什么客户端中的服务器IP与端口号是"…

Android:安卓开发采用Volley网络框架+MySQL数据库,实现从服务器获取数据并展示完成记单词APP

一、功能与要求 实现功能&#xff1a;设计一个记单词APP。服务器采用Tomcat&#xff0c;数据库采用Mysql。实现用户的注册登录功能以及单词的增删改查。 指标要求&#xff1a;实现UI布局&#xff1b;将系统数据保存到Mysql数据库中&#xff0c;并采用Volley网络框架实现从服务…

技嘉 H310M S2 i3-8100电脑 Hackintosh 黑苹果efi引导文件

原文来源于黑果魏叔官网&#xff0c;转载需注明出处。&#xff08;下载请直接百度黑果魏叔&#xff09; 硬件型号驱动情况 主板技嘉 H310M S2 台式电脑 处理器英特尔 Core i3-8100 3.60GHz 四核已驱动 内存16 GB ( KLEVV DDR4 2400MHz / 金士顿 DDR4 2400MHz )已驱动 硬盘…