圖像算法---自動對焦AF

一,CDAF反差對焦原理

CDAF,全稱Contrast Detection Auto Focus,即反差式對焦或對比度檢測自動對焦,是一種廣泛應用于入門級數碼相機和相機模塊化智能手機上的自動對焦技術。以下是關于CDAF反差對焦的詳細介紹:
工作原理

1,對比度檢測:CDAF通過計算成像中相鄰像素之間的對比度來確定焦點位置。具體來說,AF算法從圖像信號處理器(ISP)獲取統計信息FV(Focus Value),并計算出鏡頭下一次要移動的距離和方向。

2, 迭代過程:CDAF是一個反復迭代逐漸收斂的過程,類似于手動調焦的過程,即模糊-清晰-模糊,然后逐漸平衡到一個最清晰的位置。這一過程中,系統首先計算反差度,然后根據計算結果移動鏡頭、比較反差度,直到找到反差度最大的位置。

特點

1,廣泛適用性:CDAF對各種類型的鏡頭和成像情況都有較好的適應性,是目前普及率最高、使用最廣泛的自動對焦技術之一。
2,成本相對較低:由于其原理相對簡單且易于實現,CDAF在成本上具有優勢,使得它在入門級數碼相機和智能手機等設備上得到了廣泛應用。
3,光線和對比度敏感性:然而,CDAF對光線和對比度的敏感度較高。在低光環境下,由于圖像對比度降低,對焦速度可能會受到影響,變得較慢。

聚焦過程

1,聚焦點的選擇:CDAF的聚焦點是算法任意指定的,并不對應sensor上的一些特別物理構造,因此沒有數量上的限制。這使得系統可以根據圖像的特征和需要靈活選擇聚焦點。
2,近端和遠端遍歷:在聚焦過程中,CDAF算法會遍歷完近端(Near End)和遠端(Far End),即鏡頭的整個可對焦范圍,以找到最佳的焦點位置。

在這里插入圖片描述右上圖中的白色方框代表對焦點,此處反射出的紅色光線在經過鏡頭,到達傳感器前就匯聚在一點,隨后又散開,此時圖像的對比度是很低的。

將這個對焦點與相鄰像素的對比度作分析得出右下角的曲線,失焦狀態下對比度低,在聚焦過程中,曲線變得逐漸變得傾斜,但是不能判斷什么時候是最高點,只有經過了對焦點后曲線下降再往回移動,反復移動后可以得到一個局部梯度最大值,就認為是對焦成功。

優點:光學設計簡單。

缺點:
a. 速度較慢,在出現失焦圖像時,機器無法判斷該移動多少,甚至往哪個方向移動鏡頭才能聚焦,甚至到了峰值也不知道,必須移動過了以后再往回移動,來回幾次后才能找到對焦點;
b. 在物體對比度較低時會對焦失敗,比如雪景,無云的藍天以及各種純色的圖像。

對比度:
對比度對視覺效果的影響非常關鍵,一般來說對比度越大,圖像越清晰醒目,色彩也越鮮明艷麗;而對比度小,則會讓整個畫面都灰蒙蒙的。
在這里插入圖片描述
二,爬山算法原理

自動對焦爬山算法原理可以歸納為以下幾個關鍵步驟:

1,初始化:
爬山算法從一個隨機或預設的初始位置開始,這個位置代表了鏡頭的初始焦距。

2,清晰度評價:
算法首先在當前焦距下捕獲一幀圖像,并計算其清晰度評價值(Focus Value)。這個評價值通常基于圖像的對比度、邊緣清晰度等特征來計算。

3, 搜索方向確定:
算法然后以一個預定的步長沿某一方向(通常是向清晰度更高的方向)移動鏡頭,并捕獲另一幀圖像計算其清晰度評價值。
通過比較兩幀圖像的清晰度評價值,算法確定下一步的移動方向。如果新的評價值更高,說明移動方向正確,繼續沿該方向移動;否則,反轉移動方向。

4,步長調整:
隨著鏡頭逐漸接近最佳焦距(即清晰度評價值的峰值點),算法會逐步減小步長,以提高對焦精度。

5,循環迭代:
算法重復以上步驟(清晰度評價、搜索方向確定、步長調整),直到滿足聚焦精度要求或達到預設的最大迭代次數。

6,優化與改進:
傳統的爬山搜索算法分為“粗搜索”和“細搜索”兩個步驟。粗搜索采用較大步長快速搜索整個對焦區間內的清晰度評價值峰值;細搜索則是在找到峰值后,采用較小步長在峰值附近進行更精確的搜索。
爬山算法在實際應用中可能存在一些問題,如耗時較長、容易陷入局部最大值和峰值點附近震蕩等。為了解決這些問題,研究者們提出了各種優化和改進方法,如采用擬合曲線的方式預測最佳峰值點,以減少搜索時間和提高對焦精度。

總結:
自動對焦爬山算法是一種通過迭代搜索方式實現自動對焦的算法。它基于圖像的清晰度評價值來確定鏡頭的移動方向和步長,通過不斷迭代逐漸逼近最佳焦距。雖然爬山算法在自動對焦領域得到了廣泛應用,但仍存在一些挑戰和限制,需要進一步的研究和改進來提高其性能和適用性。

三,PDAF相位對焦原理

PDAF相位對焦原理可以清晰地分為以下幾個步驟進行解釋:

1,像素布局與相位差檢測:
PDAF技術是在成像傳感器的感光元件上預留出一些特殊的遮蔽像素點,這些像素點被專門設計用于相位檢測。
遮蔽像素點的設計類似于人類的雙眼,它們分別遮蓋像素點的左半邊和右半邊,從而模擬雙眼看到物體的角度差異。
這些特殊的像素對被組織成一對一的小區域,每對都包含一個用于對焦的普通像素和一個用于相位差檢測的像素。

2,相位差計算:
當光線通過鏡頭折射后,會在成像傳感器上形成干涉圖案。這些干涉圖案的相位差(PD值)可以用來計算焦點的位置。
通過比較每對像素中的光強差異,系統可以計算出相位差。相位差的大小反映了焦點與當前位置的距離:相位差越大,焦點越遠離當前位置;相位差越小,焦點越接近當前位置。

3,對焦位置確定:
利用計算出的相位差信息,系統可以確定當前鏡頭的對焦位置是否準確。
如果焦點位置不準確,系統會根據相位差的大小和方向,調整鏡頭的位置,使其向正確的方向移動。

4,算法優化:
相位差的計算和對焦位置的確定通常基于一些數學模型和算法,如互相關方法或銳度檢測方法。
這些算法可以幫助系統更準確地計算相位差,并更快速地確定對焦位置。

5, 對焦調整:
一旦系統確定了對焦位置的不準確性及其調整方向,就會控制相機鏡頭進行微調。
微調的過程會不斷重復,直到系統確定鏡頭已經移動到正確的對焦位置。

在這里插入圖片描述
紫色光線代表經過上半部分透鏡的光線,藍色代表經過下半部分透鏡的光線,可以看到,CCD在焦前的時候上半部分的CCD接收到的是上半部分的光線,下半部分接收的是下半部分的光線,在焦后的時候,是相反的,上半部分接收的是下半部分的光線,下半部分接收的是上半部分的光線。這樣就可以通過區分光線是來自透鏡的上半部分還是下半部分,就可以知道是在焦前或者焦后了。當亮色光線重合時,圖像最清晰。

在這里插入圖片描述
PDAF sensor的一種實現如上圖所示,在CMOS上面一半的位置加了金屬遮蓋,這樣,被遮住左邊一半的像素點就只能接受右邊來的光,同理,pair的被遮住右邊一般的像素點就只能接受左邊來的光。一般在CMOS中,遮住左邊和遮住右邊的像素點是在相鄰位置會成對出現。
遮蔽因子遮住圖像傳感器左右的兩個像素點得到他們的相位差,再通過算法結算,得到焦點位置,最后通過音圈馬達移動鏡頭的位置,完成對焦。
驗證方法
1、 將抓取PDAF log開關打開
2、 抓取log,按照mtk文檔排查,讀取confidence數據,confidence數據是一組數據,我們需要排查這組數據變化是否較大。
3、 PD線性度測試(在log里查找pdvalue與af位置,看他們是否是呈線性關系)
4、 肉眼看是否是一次性對焦到位,如果是相位對焦。如果不是反差對焦。
Type1、Type2、Type3的區別
1、 Type1:PD像素通過傳感器校正,PD值通過傳感器計算
2、 Type2:PD像素通過傳感器校正,PD像素通過vc輸出到isp
3、 Type3:PD像素通過ISP校正,PD像素通過isp從原始圖像中提取PD像素由ISP3.0上的PDAF算法提取。
Vc是傳輸raw和pd像素的兩個通道。

總結:
PDAF相位對焦技術通過利用成像傳感器上的特殊遮蔽像素點來檢測相位差,從而快速、準確地確定焦點的位置。這種技術不僅提高了對焦的速度,還提高了對焦的精度,使得數碼相機和攝像機等設備能夠更好地捕捉清晰、銳利的圖像。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/23658.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/23658.shtml
英文地址,請注明出處:http://en.pswp.cn/web/23658.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

測繪航空攝影乙級資質升級為甲級的過渡期規劃

升級測繪航空攝影乙級資質為甲級通常需要一個詳細的過渡期規劃,這個過程涉及提升技術力量、積累業績、完善管理體系等多個方面。以下是一個概括性的過渡期規劃框架,具體實施時需結合實際情況和最新的資質標準進行調整: 1. 了解最新資質標準 …

每日AI資訊-20240606

智普AI推出全新開源大模型GLM-4-9B 智譜AI日前推出全新開源模型GLM-4-9B,該尺寸模型首次具備多模態能力。據了解,GLM-4-9B,最高支持1M/約兩百萬字上下文輸入,相當于2本《紅樓夢》或125篇論文的長度。性能上,GLM-4-9B函…

《手把手教你》系列練習篇之13-python+ selenium自動化測試 -壓軸篇(詳細教程)

1. 簡介 “壓軸”原本是戲曲名詞,指一場折子戲演出的倒數第二個劇目。在現代社會中有很多應用,比如“壓軸戲”,但壓軸也是人們知識的一個盲區。“壓軸”本意是指倒數第二個節目,而不是人們常說的倒數第一個,倒數第一個…

苗情生態自動監測站

TH-MQ1在現代農業發展中,苗情生態自動監測站的應用已經變得日益重要。這種技術不僅為農業生產提供了實時的數據支持,還通過精準監測和科學決策,提高了農業生產的效率和質量。 首先,苗情生態自動監測站的優勢在于其能夠實現精準監…

Java并發編程:線程與并發工具

Java并發編程:線程與并發工具 引言 在現代計算機程序中,并發編程是一個不可避免的主題。無論是提升應用程序性能,還是處理多個任務并發執行,Java為開發者提供了豐富的并發編程工具。在本篇文章中,我們將深入探討Java的并發編程,包括線程的基礎知識、線程池的使用以及常…

全流程透明雙語大語言模型MAP-Neo,4.5T 高質量數據訓練

前言 近年來,大語言模型 (LLM) 已經成為人工智能領域最熱門的研究方向之一,并在各種任務中展現出前所未有的性能。然而,由于商業利益的驅動,許多最具競爭力的模型,例如 GPT、Gemini 和 Claude,其訓練細節和…

讀書筆記-《軟件定義安全》之一:SDN和NFV:下一代網絡的變革

第1章 SDN和NFV:下一代網絡的變革 1.什么是SDN和NFV 1.1 SDN/NFV的體系結構 SDN SDN的體系結構可以分為3層: 基礎設施層由經過資源抽象的網絡設備組成,僅實現網絡轉發等數據平面的功能,不包含或僅包含有限的控制平面的功能。…

Unity Magica Cloth2 使用教程

視頻教程 參考文章 前提: 找到角色的模型 模之屋,我這里準備了轉好FBX格式的吟霖模型點擊自取【源自 模之屋】 角色舞蹈動畫 點擊下載【源自 Mixamo】 導入Unity【如何將原神的角色導入Unity】 三渲二 (必須是2022.3LTS和URP項目) Magica Cloth2 頭…

深入探索Stage #13:CSS層疊樣式表的IE特性偽協議注入

在網絡安全領域,跨站腳本攻擊(XSS)是一種常見的攻擊手段。隨著Web技術的不斷發展,攻擊者也在不斷探索新的攻擊途徑。本文將詳細介紹如何利用IE瀏覽器的特性,通過CSS層疊樣式表進行XSS攻擊。 實驗環境搭建 為了模擬IE…

spring boot 白盒測試實戰

假設項目中存在以下代碼: 常量類:public final static String NUMBER_REGEX "\\d"; service:return ReUtil.getGroup0(Constants.NUMBER_REGEX, waybill); 代碼解析 解釋: return ReUtil.getGroup0(Constants.NUMB…

python學習 - 使用OpenCV庫(cv2)和imutils庫實現輔助答題卡判別

測試數據見文章頂部位置資源!!! 使用了OpenCV庫(cv2)和imutils庫。代碼的主要目的是處理圖像中的問題,如識別圖像中的文字,并對其進行分析和排序。 輔助答題卡判別 # -*- coding:utf-8 -*- fr…

python實現郵箱轟炸機

最近在學計算機網絡看到套接字的練習 于是應用SMTP協議寫了個發送郵箱的玩玩 可以發一大堆垃圾郵件給對方 其中參考了 關于發郵件報錯535 Error:authentication failed解決方法http://t.csdnimg.cn/Bc0Dq 已經查詢如何獲取網易郵箱客戶端授權碼 base64編碼 i…

Mybatis05-一對多和多對一處理

多對一和一對多 多對一 多對一的理解: 多個學生對應一個老師 如果對于學生這邊,就是一個多對一的現象,即從學生這邊關聯一個老師! 結果映射(resultMap): association 一個復雜類型的關聯&…

在線Logo背景去除:pixian.ai

文章目錄 簡介特色 簡介 pixian.ai是一款智能圖片背景去除工具,進入網頁后,會非常醒目地提示你準備【Free】還是【Paid】,這點就非常好,不向有一些網站,主打免費使用,但時不時彈出“免費注冊”&#xff0c…

【微信小程序】連接藍牙設備

1、檢查小程序是否授權藍牙功能 initBluetooth() {const that thiswx.getSetting({success: (res) > {if (res.authSetting.hasOwnProperty(scope.bluetooth)) {//scope.bluetooth屬性存在,且為falseif (!res.authSetting[scope.bluetooth]) {wx.showModal({tit…

Python 連接 MySQL 及 SQL增刪改查(主要使用sqlalchemy)

目錄 一、環境 二、MySQL的連接和使用 2.1方式一:sql為主 2.1.1創建連接 2.1.2 表結構 2.1.3 新增數據 ?編輯 2.1.4 查看數據 ?編輯 2.1.5 修改數據 2.1.6 刪除數據 2.2方式二:orm對象關系映射 2.2.1 mysql連接 2.2.2 創建表 2.2.3 新增…

windows 安裝pnpm

安裝Node.js: 確保系統上已安裝Node.js。pnpm需要Node.js來運行。如果尚未安裝Node.js,請從其官方網站下載并安裝適用于Windows的最新版本。 安裝pnpm: 打開命令行工具(如CMD、PowerShell或Git Bash)。使用npm&…

解鎖機器學習的無限可能:深入探究scikit-learn的強大功能

解鎖機器學習的無限可能:深入探究scikit-learn的強大功能 第一部分:背景和功能介紹 在數據科學和機器學習領域,scikit-learn(簡稱sklearn)是一個廣泛使用的Python庫。它提供了簡單高效的工具用于數據挖掘和數據分析&a…

【Python短期內快速掌握學習人工智能知識能力】:從零到入門的NLP學習秘籍

??我叫憶_恒心,一名喜歡書寫博客的研究生👨?🎓。 如果覺得本文能幫到您,麻煩點個贊👍唄! 近期會不斷在專欄里進行更新講解博客~~~ 有什么問題的小伙伴 歡迎留言提問歐,喜歡的小伙伴給個三連支…

Echarts 在折線圖的指定位置繪制一個圖標展示

文章目錄 需求分析需求 在線段交匯處用一個六邊形圖標展示 分析 可以使用 markPoint 和 symbol 屬性來實現。這是一個更簡單和更標準的方法來添加標記點在運行下述代碼后,你將在瀏覽器中看到一個折線圖,其中在 [3, 35] (即圖表中第四個數據點 Thu 的 y 值為 35 的位置)處…