網(wǎng)絡(luò)上關(guān)于3A算法有若干,但是有算法的很少,有算法和文檔的更少,zhuyunchuan的工程就是最后一種,謝謝他將工程開源光大,在此我在這里筆記下我的點(diǎn)滴思考。
--------------------------------------------------
模塊的設(shè)計(jì)目標(biāo)是,基于TI達(dá)芬奇平臺的H3A(Hardware 3A,自動白平衡,自動曝光再加上自動聚焦)模塊,研究2A算法的一系列特性,取得一種普適性比較好的模型,找出各種模型參數(shù),并在達(dá)芬奇平臺上具體實(shí)現(xiàn)該算法程序。
筆記:這是利用好現(xiàn)成的平臺,尋找最優(yōu)燦發(fā),其實(shí)專業(yè)說法就是 圖像調(diào)優(yōu),圖像質(zhì)量調(diào)節(jié)
如前所述,軟件結(jié)合的實(shí)現(xiàn)方法既可以取得高性能的硬件加速,又可以通過軟件實(shí)現(xiàn)新的算法,而且TI的達(dá)芬奇平臺本身就包括H3A模塊,不需要額外的芯片實(shí)現(xiàn),所以成本上也非常具有優(yōu)勢。本項(xiàng)目就是采用軟硬件結(jié)合的方法,首先通過驅(qū)動從H3A硬件模塊獲取中間數(shù)據(jù),然后使用軟件算法對中間數(shù)據(jù)進(jìn)一步分析,獲取控制參數(shù)來設(shè)置前端的顏色參數(shù)和曝光參數(shù)。實(shí)際上,本項(xiàng)目本身研究的算法模型是各種實(shí)現(xiàn)方式都可以使用的,并不局限于軟硬件結(jié)合的實(shí)現(xiàn)方式。
筆記:據(jù)我認(rèn)識的曝光算法,其實(shí)也是硬軟結(jié)合,以自動曝光算法來說,硬件提供設(shè)置曝光和增益的寄存器,軟件實(shí)現(xiàn)算法最后來設(shè)置這些寄存器。
達(dá)芬奇平臺的H3A模塊中對于自動曝光和自動白平衡使用的是同一個(gè)引擎,稱之為AE/AWB Engine。該引擎首先將整個(gè)視頻圖像在水平和垂直方向上劃分為多個(gè)子采樣,每個(gè)子采樣被稱為一個(gè)窗口,然后以窗口為單位為對視頻數(shù)據(jù)中的子采樣的RGB顏色值進(jìn)行累加,累加后的值做一個(gè)移位運(yùn)算后輸出中間數(shù)據(jù)(1.如何做窗口劃分 2.如何做累加)。可見H3A本身的處理是比較簡單的,當(dāng)然此模塊也有一些選項(xiàng)可以配置,比如輸出窗口中顏色值最大或者最小的值等等,我們只使用它的基本累加結(jié)果。累加值體現(xiàn)了該窗口各顏色值的平均值,這些值可以作為2A算法中色溫評估和曝光電平評估的依據(jù)。對色溫進(jìn)行準(zhǔn)確評估后,就可以進(jìn)行響應(yīng)控制了:如果色溫偏紅,就降低紅色增益,提高藍(lán)色和綠色增益,對其他顏色同理可推,這就是自動白平衡的基本原理;如果電平偏低(這個(gè)應(yīng)該是亮度電平?),就增大曝光時(shí)間和增益,反之降低曝光時(shí)間和增益,這就是自動曝光控制的基本原理。
筆記:一句話,這里談到了核心。一個(gè)是統(tǒng)計(jì),AE需要統(tǒng)計(jì)畫面中 每個(gè)窗口中的平均亮度,AWB需要統(tǒng)計(jì)三個(gè)通道的亮度值。
另外就是簡易說到白平衡和自動曝光的原理。(待補(bǔ)充)
原理雖然簡單,但是整個(gè)環(huán)節(jié)中會有很多重要的細(xì)節(jié),這些細(xì)節(jié)把握不好,得到的結(jié)果就會偏差很多或者不穩(wěn)定。下面是對本項(xiàng)目算法的基本思想的簡單描述。
對于自動白平衡算法,主要難題是準(zhǔn)確的找到評價(jià)區(qū)域,也就是原來是白色,被環(huán)境光照射后偏色的區(qū)域,而到底是偏色還是本來就是這種顏色是無法區(qū)分的,通用的做法是找到接近白色的區(qū)域,計(jì)算其色溫,校正的結(jié)果就是將改區(qū)域的平均顏色校正為白色,評價(jià)是否接近白色的標(biāo)準(zhǔn)就非常重要了。本項(xiàng)目參考了基于YUV空間的Nakano,Lee等人提出的根據(jù)紅色和藍(lán)色色差進(jìn)行評估的方法,提出了基于HSI空間的基于飽和度的進(jìn)行評估的方法,前提是先將RGB空間轉(zhuǎn)換為HIS空間。這種方法規(guī)避了紅色和藍(lán)色分量之間的關(guān)系難以處理的問題,飽和度是一個(gè)單獨(dú)的參數(shù),反映了顏色的純度,一般來說飽和度很低的區(qū)域,應(yīng)該就是原來是白色的區(qū)域。這些區(qū)域因?yàn)楸蝗旧耍詴€不至于達(dá)到很飽和的程度。
筆記:所謂白平衡,就是各種色溫環(huán)境還原白色,這里提到基于HSI空間的基于飽和度的進(jìn)行評估白色的方法,待研究
對于自動曝光算法,主要難題就是處理曝光控制的穩(wěn)定性和速度的矛盾。當(dāng)場景變化時(shí),比如由明轉(zhuǎn)暗或者由暗轉(zhuǎn)明,就要對曝光參數(shù)做調(diào)節(jié),也維持總體的亮度水平。如果調(diào)節(jié)的過快,由于反饋的作用,可能會引起亮度的振蕩,如果調(diào)節(jié)的過慢,則會由于不能很快適應(yīng)新的場景而丟失場景信息。本項(xiàng)目要找到一種基于精確的線性化曝光模型的自適應(yīng)控制方法,在避免振蕩的同時(shí),能很快達(dá)到期望的亮度水平。同時(shí),這個(gè)模型還考慮到交流市電頻率下的日光燈,熒光燈,交通紅綠燈的暗場亮場問題,通過對曝光時(shí)間與市電頻率進(jìn)行同步,并對同步引起曝光時(shí)間出現(xiàn)的階躍進(jìn)行補(bǔ)償,最終達(dá)到線性狀態(tài)。
筆記:畫面產(chǎn)生震蕩,從能量角度上看,其實(shí)就是相鄰曝光周期內(nèi)接受能量不均造成的。為了避免震蕩,曝光的設(shè)置就有學(xué)問,后面詳細(xì)解釋。
我的筆記一句話匯總:
這里的背景解釋,說到了使用的硬件平臺,同時(shí)概要的說明了awb/ae算法的特點(diǎn)和難點(diǎn),后文值得期待。
新聞熱點(diǎn)
疑難解答