[ISP 3A ] AE的常用算法分析

📌 自動曝光(AE, Auto Exposure)解析

自動曝光(AE)是相機通過調節 曝光參數(增益、快門時間、光圈等)來確保拍攝出的圖像亮度適宜的算法。AE 需要根據環境光線變化自動調整曝光,以避免過曝(圖像太亮)或欠曝(圖像太暗)。

📌 曝光模型

曝光值的計算可以用以下公式表示:
Exposure = Gain × Irradiance × Time \text{Exposure} = \text{Gain} \times \text{Irradiance} \times \text{Time} Exposure=Gain×Irradiance×Time
其中:

  • Gain(增益):放大傳感器信號,增加亮度,但會引入噪聲,和ISO(International Organization for Standardization,國際標準化組織)感光度有關
  • Irradiance(入射光照強度):與場景光線直接相關,和光圈有關
  • Time(曝光時間):即快門時間,越長進光量越多,但可能導致運動模糊。

目標是通過 動態調整 Gain 和 Time 來補償 Irradiance 變化,以使曝光保持在合適的水平。


📌 AE 的基本過程

AE 算法的核心目標是讓圖像亮度(通常用 平均像素亮度直方圖均衡性 衡量)保持在合理范圍,主要流程如下:

  1. 計算當前圖像亮度

    • 計算全局 平均亮度
    • 計算某些重要區域(ROI)的亮度。
    • 統計 直方圖分布,分析亮部、暗部區域占比。
  2. 調整曝光參數

    • 如果亮度低,則增加曝光時間或增益。
    • 如果亮度過高,則減少曝光時間或降低增益。
  3. 權衡增益和快門時間

    • 優先調整快門時間,避免太高增益導致噪聲。
    • 遇到快速運動物體時,減少快門時間,避免拖影。
  4. 循環優化

    • 逐步調整參數,防止閃爍或劇烈變化。
    • 結合歷史幀信息,使曝光變化平滑過渡。

📌 AE 常見算法

1?? 直方圖法(Histogram-based AE)

  • 計算 圖像亮度直方圖,找出高亮和低亮區域比例。
  • 設定一個目標亮度范圍(如 18% 灰階),根據直方圖調整曝光。
  • 優點:對亮度變化敏感,可適應復雜場景。
  • 缺點:在高反差場景(如強光源)下可能失效。

2?? 平均亮度法(Mean Luminance AE)

  • 計算 整幅圖像的平均像素亮度 L mean L_{\text{mean}} Lmean?,與目標亮度 L target L_{\text{target}} Ltarget? 對比:
    Adjustment?Factor = L target L mean \text{Adjustment Factor} = \frac{L_{\text{target}}}{L_{\text{mean}}} Adjustment?Factor=Lmean?Ltarget??
  • 根據這個比例調整曝光時間和增益。
  • 優點:計算簡單,適用于均勻光照場景。
  • 缺點:在局部強光/陰影場景下易失效。

3?? 亮度分區法(Region-based AE)

  • 把圖像劃分為多個區域,分別計算亮度。
  • 給予不同區域不同的權重,比如:
    • 中心區域權重大(人臉檢測場景)。
    • 邊緣區域權重低(減少背景影響)。
  • 適用于: 人臉識別、車載攝像頭等。

4?? 基于 PID 控制的 AE(PID-based AE)

  • 采用 PID(比例-積分-微分)控制,根據誤差調整曝光:
    Δ Exposure = K p ? e + K i ∑ e + K d ? d e d t \Delta \text{Exposure} = K_p \cdot e + K_i \sum e + K_d \cdot \frac{d e}{dt} ΔExposure=Kp??e+Ki?e+Kd??dtde?
    其中 e e e 是亮度誤差。
  • 適用于 視頻場景,可平滑調整,避免閃爍。

5?? 機器學習/深度學習 AE

  • 訓練 CNN、LSTM 網絡學習最佳曝光調整策略。
  • 結合 光流(Optical Flow) 分析運動情況,動態調整曝光。
  • 優點
    • 可適應不同場景(白天/夜晚)。
    • 結合對象檢測,提高 ROI(如人臉、車牌)曝光準確性。
  • 缺點
    • 計算量大,實時性要求高。

📌 AE 方案選擇

AE 方法適用場景優點缺點
直方圖 AE一般場景適應高動態范圍易受極端光源影響
平均亮度 AE均勻光照場景簡單高效不能處理復雜光照
亮度分區 AE人臉、車載ROI 曝光更穩定計算量增加
PID 控制 AE視頻拍攝平滑調整曝光需精調參數
機器學習 AE自動駕駛、AI 攝像頭適應復雜場景計算開銷大

📌 結論

  • 簡單應用:可以使用 平均亮度 AE直方圖 AE
  • 運動場景:可以采用 PID 控制 AE 以保證平滑調整。
  • 高級應用(如自動駕駛、人臉識別):可以結合 深度學習 AE

AE 算法的核心是 動態調整曝光參數,使圖像亮度合適且噪聲最小,選擇適合的 AE 算法能提升圖像質量。

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

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

相關文章

大模型學習二:DeepSeek R1+蒸餾模型組本地部署與調用

一、說明 DeepSeek R1蒸餾模型組是基于DeepSeek-R1模型體系,通過知識蒸餾技術優化形成的系列模型,旨在平衡性能與效率。 1、技術路徑與核心能力 基礎架構與訓練方法? ?DeepSeek-R1-Zero?:通過強化學習(RL)訓練&…

STM32入門學習筆記(持續更新)

b站江協科技資料 通過網盤分享的文件:STM32入門教程資料 鏈接: https://pan.baidu.com/s/1-rOi83sUK8CqUNsHQuvxew?pwd8krh 提取碼: 8krh LED燈閃爍0402 #include "stm32f10x.h" // Device header #include "Delay.h"int m…

企業安全——FIPs

0x00 前言 先來看一道題目。這道題目涉及到的就是道德規范和互聯網相關內容,本文會對相關內容進行描述和整理。 正確答案是:D 注意FIPs的主要目的是為了限制,也就是針對數據的守則。 0x01 RFC 1087 1989年1月 互聯網架構委員會 IAB 發布了…

【Linux系統編程】進程概念,進程狀態

目錄 一,操作系統(Operator System) 1-1概念 1-2設計操作系統的目的 1-3核心功能 1-4系統調用和庫函數概念 二,進程(Process) 2-1進程概念與基本操作 2-2task_struct結構體內容 2-3查看進程 2-4通…

基于TradingView和CTPBee的自動化期貨交易系統實現

引言 在量化交易領域,TradingView因其強大的技術分析工具和豐富的指標庫而廣受歡迎,但是其不支持國內期貨自動化交易,CTPBee則是一個優秀的國產Python期貨交易接口。本文將介紹如何將兩者結合,實現一個完整的自動化交易系統。 本…

初始ARM

ARM最基礎的組成單元。 最小系統:能系統能夠正常工作的最少器件構成的系統 。 一、CPU基礎定義 ALU(運算單元): 負責執行算術和邏輯運算,是處理器的核心部分。 寄存器(R0, R1, R12)&#xff…

通信數據記錄儀-產品概念ID

總結: 1、支持高速CAN、支持容錯CAN、支持單線CAN(理解是支持不同的協議,CANFD、CAN2.0和LIN?) 2、 通過上位機設計時間

Qt QTableView QAbstractTableModel實現復選框+代理實現單元格編輯

話不多說&#xff0c;直接看代碼 一、Model 1、QTableModel_Test.h #pragma once#include <QAbstractTableModel> #include <QObject> #include <QModelIndex>class QTableModel_Test : public QAbstractTableModel {Q_OBJECT public:QTableModel_Test(Q…

JavaWeb學習--MyBatis-Plus整合SpringBoot的ServiceImpl方法(增加,修改與刪除部分)

接下來是常用的增加&#xff0c;修改以及刪除部分 首先是增加部分&#xff0c;增加一個新的數據 Testpublic void testInsert() {// 添加一個新用戶記錄Student s new Student();s.setName("NewStudent");s.setAge(25);boolean saved studentService.save(s);//可以…

明清兩朝全方位對比

目錄 一、政治制度二、民族與社會三、經濟與對外四、文化與思想五、軍事與邊疆六、滅亡原因總結 明清兩朝是中國歷史上最后兩個封建王朝&#xff0c;在政治、經濟、文化等方面存在顯著差異&#xff0c;以下為主要區別&#xff1a; 一、政治制度 皇權集中程度 明朝&#xff1a;…

Linux系統時間

1. Linux系統時間 jiffies是linux內核中的一個全局變量&#xff0c;用來記錄以內核的節拍時間為單位時間長度的一個數值。 jiffies變量開機時有一個基準值&#xff0c;然后內核每過一個節拍時間jiffies就會加1。 一個時間節拍的時間取決于操作系統的配置&#xff0c;Linux系統一…

高并發系統架構設計的深度解析與實施指南【大模型總結】

以下是對高并發系統架構設計的深度解析與實施指南&#xff0c;通過技術分層拆解和場景化案例說明&#xff0c;呈現完整的系統設計方法論&#xff1a; 一、容錯優先思維的系統級實現 1. 混沌工程落地框架 # 混沌實驗設計模板 class ChaosExperiment:def __init__(self, scope,…

leetcode-代碼隨想錄-鏈表-翻轉鏈表

題目 鏈接&#xff1a;206. 反轉鏈表 - 力扣&#xff08;LeetCode&#xff09; 給你單鏈表的頭節點 head &#xff0c;請你反轉鏈表&#xff0c;并返回反轉后的鏈表。 輸入&#xff1a;head [1,2,3,4,5] 輸出&#xff1a;[5,4,3,2,1]class Solution { public:ListNode* rev…

spring boot 集成redis 中RedisTemplate 、SessionCallback和RedisCallback使用對比詳解,最后表格總結

對比詳解 1. RedisTemplate 功能&#xff1a;Spring Data Redis的核心模板類&#xff0c;提供對Redis的通用操作&#xff08;如字符串、哈希、列表、集合等&#xff09;。使用場景&#xff1a;常規的Redis增刪改查操作。特點&#xff1a; 支持序列化配置&#xff08;如String…

Linux紅帽:RHCSA認證知識講解(九)標準輸入輸出、重定向、過濾器與管道

Linux紅帽&#xff1a;RHCSA認證知識講解&#xff08;九&#xff09;標準輸入輸出、重定向、過濾器與管道 前言一、標準輸入與輸出、重定向&#xff0c;使用過濾器篩選文件信息1.1 Linux 的標準輸入與輸出1.2 什么是輸入重定向1.3 輸出重定向1.4 標準錯誤輸出重定向1.5 使用過濾…

搭建完全分布式系統時,為何必須同步服務器時間?

在構建完全分布式系統時&#xff0c;時間同步是保障系統一致性和可靠性的基石。本文將從完全分布式系統的核心特點、時間同步的必要性、不同步可能引發的災難性后果、主流時間同步協議對比及最佳實踐方案五個角度展開分析&#xff0c;幫助開發者深入理解時間同步的關鍵作用。 一…

MonkeyDev 如何創建一個root級級別的app,并執行root命令獲取iphone設備序列號serialNumber(ios15.8)

前提條件:有越獄的手機,XCode中已經安裝了Monkeydev 1. 和普通應用一個創建一個ios的工程 2. 在App的TARGETS>build setting> 中設置Apple Development 3. 設置User-Defined的配置 CODE_SIGNING_ALLOWED = NO MonkeyDevBuildPackageOnAnyBuild = NO MonkeyDevClearUi…

每日一題(小白)模擬娛樂篇13

今天題目比較簡單&#xff0c;直接分析。小藍想知道2024這個數字中有幾個1&#xff0c;計算機組成學習好的同學肯定可以直接長除法或者瞪眼法得出答案&#xff1a; 202411111101000&#xff08;B&#xff09;也就是說2024中有一共有六個1 接下來用代碼實現 &#xff0c;我們也…

【藍橋杯】算法筆記2

這篇文章主要記錄動態規劃方面的學習。 動態規劃的核心思想: 把大問題分解成小問題,記住小問題的解,避免重復計算。 動態規劃(DP)的三大特點: ①最優子結構:大問題的最優解可以由小問題的最優解推導出來 ②重疊子問題:在求解過程中會反復遇到相同的小問題 ③無后效…

MINIQMT學習課程Day9

獲取qmt賬號的持倉情況后&#xff0c;我們進入下一步&#xff0c;如何獲得當前賬號的委托狀況 還是之前的步驟&#xff0c;打開qmt&#xff0c;選擇獨立交易&#xff0c; 之后使用pycharm&#xff0c;編寫py文件 導入包&#xff1a; from xtquant import xtdata from xtqua…