日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

好色之圖 | 玩轉(zhuǎn)圖形信號(hào)處理,最復(fù)雜的細(xì)節(jié)問(wèn)題要如何入手?

 海鯀 2017-01-23

前言:

這篇文章是我從事ISP研究數(shù)年來(lái)的一些經(jīng)驗(yàn)總結(jié),沒(méi)有用到深?yuàn)W的理論知識(shí),有的只是根據(jù)實(shí)際狀況來(lái)處理的一些常規(guī)方法,以及曾經(jīng)犯過(guò)的錯(cuò)誤總結(jié)。我想把ISP function的原理用簡(jiǎn)單淺顯的語(yǔ)言描述出來(lái),希望對(duì)初學(xué)者有所幫助。這里的ISP主要是指從CMOS  sensor輸出的bayer pattern,到轉(zhuǎn)換成通用的YUV或者YCbCr格式的過(guò)程,通常用于USB攝像頭/監(jiān)控?cái)z像頭/手機(jī)/平板等芯片設(shè)計(jì)中。

 

4.細(xì)節(jié)

細(xì)節(jié)部分會(huì)介紹去噪denoise,Bayer pattern 轉(zhuǎn) RGB(即interpolation),Edge enhance(即Sharp)以及邊緣偽彩色false color。這部分內(nèi)容是ISP中最復(fù)雜的,需要較龐大的計(jì)算量和Memory。任何一個(gè)function都可以在網(wǎng)上找到不少的論文,這里我只說(shuō)明一些基本原理和關(guān)鍵因素,不討論詳細(xì)的實(shí)現(xiàn)算法。


4.1 去噪Denoise

首先我們把Noise 分成三類,分別是高斯白噪聲,壞點(diǎn),受傷點(diǎn)。這三類分別有不同的處理方法。


壞點(diǎn)Dead pixel是指有些像素不受拍攝景物影響,始終為固定的一個(gè)數(shù)值,通常為最大值或者最小值,也就是常說(shuō)的亮點(diǎn)和黑點(diǎn)。檢測(cè)壞點(diǎn)的算法比較容易,因?yàn)閴狞c(diǎn)和周圍的像素差異非常大,檢測(cè)出來(lái)之后,可以用附近點(diǎn)均值替換即可。


受傷點(diǎn)wound pixel是指有些點(diǎn)在低照度下,sensor gain很大的時(shí)候,會(huì)出現(xiàn)一定的偏差,能夠被人眼明顯察覺(jué)。這些受傷點(diǎn)輸出的值不固定,同時(shí)也受拍攝景物影響,例如比周圍正常像素的數(shù)值大一些,形成不太明顯的亮點(diǎn),有時(shí)候還會(huì)隨著時(shí)間改變,一閃一閃的。對(duì)于受傷點(diǎn),不是很容易被檢測(cè)輸出來(lái),好在它一般只出現(xiàn)在暗光條件下,如果受傷點(diǎn)處在平坦區(qū)域,那么可以用最大值(最小值)替換,或者中值濾波等方法消除,如果正好處在邊緣上,那么就較難辨別出來(lái),中值濾波等處理方法會(huì)使得圖像模糊。壞點(diǎn)和受傷點(diǎn)對(duì)應(yīng)到課本中就是椒鹽噪聲。


一般我們說(shuō)的噪聲都是指高斯白噪聲,噪聲的大小和sensor的增益大小成比例關(guān)系,同時(shí)ISP中的很多運(yùn)算(例如Gamma,LSC,AWB,CCM等)都會(huì)放大Noise幅度。從頻域來(lái)看,噪聲遍布整個(gè)頻域。對(duì)于高頻噪聲,比較容易消除,但是高頻噪聲和實(shí)際景物容易混淆,消除噪聲的時(shí)候也會(huì)使得圖像模糊。對(duì)于低頻噪聲,就需要花代價(jià)來(lái)消除,在任何二維空間域的去噪算法中,都需要一個(gè)以當(dāng)前像素為中心的窗口,這個(gè)窗口越大,就越能檢測(cè)出低頻的Noise,同時(shí)也意味著越多的Memory和計(jì)算量。從空間域來(lái)看,落在平坦區(qū)域的Noise比較容易消除,落在景物邊緣的Noise則真假難辨,必須在清晰度和Noise之間做一個(gè)折中的選擇。
 

我所知道的可用于ISP中去除Noise的方法大概有以下一些分類(沒(méi)有廣泛研究過(guò),肯定有疏漏,請(qǐng)包涵)。

1.首先是空間域和時(shí)間域的劃分。圖像是二維的,空間域是指僅對(duì)一幅圖像中的二維數(shù)據(jù)處理,一般照片的去噪都是在二維空間域。時(shí)間域是指多幀圖像之間的去噪,在視頻中,前后Frame有著較大的相關(guān)性,對(duì)于靜態(tài)場(chǎng)景來(lái)說(shuō)就更加明顯??臻g域去噪算法需要考慮的是Noise和圖像清晰度之間的權(quán)衡,而時(shí)間域去噪算法需要考慮的是Noise和移動(dòng)物體的拖尾殘影現(xiàn)象的權(quán)衡。
 

2.其次是基于位置和基于數(shù)值的劃分。要消除Noise,一般人第一個(gè)想到的方法就是低通濾波器,以當(dāng)前像素為中心,選擇一個(gè)一定范圍的中心對(duì)稱的低通濾波器,到中心距離越近,對(duì)應(yīng)位置像素的weighting越高,越遠(yuǎn)則越小,這就是基于位置的方法。另外一種是基于數(shù)值的方法,先同樣選擇以當(dāng)前像素為中心的一個(gè)范圍,把這個(gè)范圍內(nèi)的像素按照數(shù)值大小來(lái)排成一個(gè)序列,然后再做處理,處理的方法可以是直接選擇某些點(diǎn)(例如最大值/最小值替換,中值濾波),也可以對(duì)這個(gè)序列再做低通濾波計(jì)算。鼎鼎有名的雙邊濾波就是結(jié)合了位置和數(shù)值兩種思想合二為一的算法,不過(guò)其公式計(jì)算太過(guò)復(fù)雜,不適合數(shù)字電路設(shè)計(jì)實(shí)現(xiàn),但是其思想是完全可以借用的。
 

3.各種變換域的處理方法。例如傅立葉變換,離散余弦變換,最有名的就是小波變換。這些域變換的基本原理都差不多,基于人眼對(duì)高頻分量較不敏感的特性,對(duì)轉(zhuǎn)換域中的部分?jǐn)?shù)據(jù)進(jìn)行歸0或者縮小,以達(dá)到消除Noise(或者圖像壓縮)的目的。小波變換效果較好,不過(guò)由于計(jì)算量很大,在ISP中實(shí)現(xiàn)有很大的難度。
 

在實(shí)際應(yīng)用中,變換域的方法太過(guò)復(fù)雜,不適合實(shí)時(shí)視頻處理,所以常用的還是上面兩大類方法。一般來(lái)說(shuō)Noise的幅度總是有限度的,和實(shí)際景物邊緣的變化程度有較大差距,所以通常會(huì)在平坦區(qū)域盡可能的多消除noise, 而在物體邊緣則盡量保護(hù)景物細(xì)節(jié),少做denoise處理,根據(jù)景物內(nèi)容動(dòng)態(tài)調(diào)整去噪算法是必須的。在另一方面,Noise的幅度大小和sensor的增益相關(guān),當(dāng)環(huán)境變換導(dǎo)致AE gain變化的時(shí)候,Noise的幅度變化非常大,有些sensor在低光照條件下會(huì)有64倍的AE gain,Noise滿屏跳躍,幾乎掩蓋實(shí)際景物。有時(shí)候常會(huì)說(shuō)“評(píng)價(jià)ISP好壞,就是看暗光情況下的Noise大小”,不同的Noise 幅度意味著不同的ISP算法(或者算法中的參數(shù)),所以還需要SW根據(jù)實(shí)際情況來(lái)動(dòng)態(tài)調(diào)整去噪算法。因此,在真實(shí)的ISP電路設(shè)計(jì)中,去噪算法的多樣性和可調(diào)整性是非常必要的。

 

Figure4.1.1 空間域去噪效果

 

除了去噪算法以外,抑制Noise根源也是去噪的一個(gè)重要手段。Noise本身無(wú)處不在,問(wèn)題根源在于Noise被不斷放大,也就是各種增益Gain(或者說(shuō)乘法)把Noise放大了許多倍。為了達(dá)到一定的亮度,Sensor的AE gain通常沒(méi)有辦法改變,能改變的只有ISP自身。常用的抑制Noise手段包括:

  • 降低Lens shading correction曲線的幅度,讓周邊稍微暗一些,減少周邊Noise。
  • 降低Gamma curve在暗處的斜率,減少暗處Noise。
  • 降低CCM系數(shù)絕對(duì)值,減少彩色噪聲。
  • 降低edge enhance幅度,減少景物邊緣Noise。
     

去噪方法可以說(shuō)是ISP中牽涉最廣,實(shí)現(xiàn)難度最大的一個(gè)功能,它滲透進(jìn)AE,LSC,Gamma,AWB,interpolation,edge enhance等多個(gè)function,是一個(gè)系統(tǒng)工程。

 

4.2 Interpolation

這里說(shuō)的interpolation是指把Bayer pattern data 轉(zhuǎn)化為RGB data的過(guò)程,每個(gè)像素都要有完整的[R G B]三個(gè)分量。先看一下最簡(jiǎn)單的雙線性插值算法。

 

Figure4.2.1 雙線性插值

 

這是最簡(jiǎn)單原始的方法,確實(shí)可以得到一幅RGB圖像,不過(guò)存在一些問(wèn)題,例如拉鏈現(xiàn)象,有些模糊,分辨率不高,邊緣有些彩色(false color)等。評(píng)價(jià)插值算法的好壞,通常用ISO12233測(cè)試紙,如下圖。

 

Figure4.2.2 ISO12233測(cè)試紙
 

觀察細(xì)節(jié)算法的好壞,必須把圖像放大到像素級(jí)別,直接研究數(shù)值大小,下面以拉鏈現(xiàn)象為例。拉鏈現(xiàn)象出現(xiàn)在水平或者垂直的邊緣上,是由于G分量計(jì)算不當(dāng)所致。以一條水平邊為例,如下圖,用雙線性插值的話,在水平邊緣上就會(huì)出現(xiàn)[90, 82.5, 90, 82.5…]這樣的循環(huán)重復(fù)規(guī)律。

 

Figure4.2.3
 

從圖像效果來(lái)看就是類似拉鏈狀。

 

Figure4.2.4 拉鏈現(xiàn)象(雙線性插值和沿著edge方向插值)

 

要解決拉鏈現(xiàn)象,保持邊緣的光滑,很直觀的想法就是對(duì)G分量采取沿著邊緣方向去插值,在上圖中,就讓G5 =(G4 + G6)/2。這樣就意味著要做邊緣方向性的判斷,如果是垂直邊,那么就會(huì)是G=(G2+G8)/2,還有各種其他方向,則可以對(duì)周邊四個(gè)G分量采用不同的加權(quán)平均算法得到中心點(diǎn)G分量數(shù)值。邊緣方向判斷是interpolation算法中最重要的一個(gè)環(huán)節(jié),是各家ISP算法的核心之一,有興趣的同學(xué)可以查看這個(gè)方面的論文。評(píng)價(jià)圖像分辨率(清晰度)的一個(gè)指標(biāo),是看ISO12233中對(duì)細(xì)密紋理的識(shí)別程度。一個(gè)好的算法可以判斷出只有一個(gè)像素寬度的細(xì)條紋。

 

Figure4.2.5 interpolation識(shí)別細(xì)密紋理
 

在Bayer pattern中,一半像素是G,R和B都只占1/4,R和B信息缺失比較嚴(yán)重。在雙線性插值算法中,R分量的計(jì)算只和周圍的R相關(guān),如果用G分量的信息去修正缺失的R分量,那么清晰度會(huì)有不小的提升。以水平方向的邊緣為例:

 

Figure4.2.6 水平edge上利用G分量修正R或B
 

上圖中a1和a2是修正系數(shù),范圍在0~1之間。這種常用的計(jì)算方法不僅提高了清晰度,也可以緩解false color現(xiàn)象。不過(guò)從另一方面來(lái)看,這種修正會(huì)增加Noise幅度,原本R分量自身有一定的Noise分布概率,現(xiàn)在疊加了G分量的Noise,那么最大Noise幅度會(huì)提高。因此系數(shù)a1和a2需要根據(jù)場(chǎng)景,Noise幅度等因素權(quán)衡選擇。

 

整體來(lái)說(shuō),Interpolation算法大致過(guò)程就是先邊緣方向檢測(cè),然后沿著方向去做插值,兼顧Noise和清晰度的平衡,順便還可以做一些false color的處理。

 

4.3 Edge enhance

邊緣增強(qiáng)Edge enhance和一般所說(shuō)的sharp是一個(gè)近似的概念。我這樣區(qū)分二者:sharp是對(duì)圖像所有內(nèi)容增加銳利度,包括Noise也會(huì)被放大;而edge enhance是要讓真正的edge變得銳利,Noise則盡量不被放大顯現(xiàn)出來(lái)。從算法上來(lái)說(shuō)Sharp很好實(shí)現(xiàn),任何課本中都會(huì)提到sharp算子,而edge enhance則要有效區(qū)分出edge和Noise,并且判斷edge方向來(lái)做增強(qiáng),增強(qiáng)的方法也很有難度,既要達(dá)到一定的銳利度MTF,又要解決邊緣粗糙roughness,overshot和undershot等問(wèn)題。
 

邊緣增強(qiáng)一般在YCbCr空間進(jìn)行,并且只對(duì)Y分量處理,Cb和Cr保持不變,其原理如下:

 

Figure4.3.1 edge enhance 原理

 

淺藍(lán)色為原值,深藍(lán)色為enhance之后的數(shù)值。從波形上看,edge enhance就是要讓線條的斜率更陡一些,甚至允許出現(xiàn)小幅度的過(guò)沖。從數(shù)值上來(lái)看,就是讓數(shù)據(jù)朝著遠(yuǎn)離鄰近點(diǎn)均值的方向走,而且和鄰近點(diǎn)均值的差越大,走過(guò)的距離也越大,把當(dāng)前像素值和鄰近點(diǎn)均值的差記為d;另外,edge enhance的幅度還和整個(gè)edge的變化范圍有關(guān),可以認(rèn)為上圖中最大值和最小值的差,記為g;最后是用戶設(shè)定的銳利度s,這三者可以得出像素的edge enhance函數(shù)H(x)。

 

H(x) = x + f(d, g, s)

 

f(d, g, s)是一個(gè)和d,g,s三者都正相關(guān)的函數(shù),但并非線性關(guān)系。這里沒(méi)有統(tǒng)一的數(shù)學(xué)模型可以給出答案,只有仔細(xì)研究規(guī)律,多做實(shí)驗(yàn),可以說(shuō)的是想要得到較好的視覺(jué)效果,這個(gè)模型非常復(fù)雜,參數(shù)眾多。通過(guò)不斷的對(duì)參數(shù)調(diào)試練習(xí),慢慢建立起數(shù)學(xué)計(jì)算模型和實(shí)際圖像效果之間的映射關(guān)系,才能較好的平衡銳利度MTF和roughness,overshort,undershort等因素。
 

為了避免把Noise enhance出來(lái),edge enhance在實(shí)現(xiàn)中還需要判斷當(dāng)前像素處于光滑區(qū)域還是物體邊緣。當(dāng)處于光滑區(qū)域的時(shí)候,則不要做edge enhance運(yùn)算,或者做的幅度很?。恢挥性谳^明顯的邊緣上才做處理,這樣避免不了邊緣上的noise的影響,所以在銳利度s設(shè)定較大的時(shí)候,可以發(fā)現(xiàn)邊緣上會(huì)有Noise閃動(dòng)跳躍的情況。為了緩解這種Noise的跳躍,通常會(huì)對(duì)f(d, g, s)做最大值和最小值限制保護(hù),并且沿著edge 方向做低通濾波來(lái)緩解Noise。

 

Figure 4.3.2 egde enhance 前后效果比對(duì)
 

整個(gè)Edge enhance的大致流程為先判斷平坦區(qū)域還是邊緣,對(duì)平坦區(qū)域可以不做或者少做edge enhance(甚至做smooth處理),對(duì)邊緣要判斷幅度大小,邊緣方向,選則相對(duì)應(yīng)的高通濾波器處理,最后對(duì)enhance的幅度做一定程度的保護(hù)處理。

 

4.4 False color

False color一般出現(xiàn)在物體邊緣上,特別是白紙黑字。如下,白紙上的黑色線條,一側(cè)偏黃,一側(cè)偏藍(lán)。

 

Figure 4.4.1 放大后的false color現(xiàn)象


False color的原因有兩個(gè),一是bayer pattern中R和B信息丟失比較嚴(yán)重,插值出來(lái)的R和B分量帶有誤差;二是鏡頭對(duì)不同波長(zhǎng)的光的折射率不一樣。前者比較容易理解,后者則可以通過(guò)觀察發(fā)現(xiàn)規(guī)律。對(duì)ISO12233測(cè)試紙拍攝圖片,我分別截取四周的局部圖片,放大比較來(lái)看。

 

 

左上角              右上角

 

 

左下角            右下角

Figure 4.3.2 flase color呈現(xiàn)中心對(duì)稱的特點(diǎn)


從上圖中可以發(fā)現(xiàn),黑色方塊靠近圖像中心的邊緣有點(diǎn)橙色,背離中心的邊緣呈現(xiàn)藍(lán)色。以左上角的黑色方塊為例,三種顏色分量的數(shù)值曲線有位移,如果其位移的規(guī)律按照f(shuō)igure4.3.3的形狀,那么剛好可以解釋邊緣偏色的情況。

 

Figure4.3.3 RGB曲線位移


如果可以糾正這種位移,那么false color就可以明顯消除。從原理上分析,解決方法比較簡(jiǎn)單,只要把B分量向著中心位置收縮,收縮的距離和像素到鏡頭中心的距離有關(guān),這可以通過(guò)數(shù)學(xué)建模得到(例如拋物線)。同樣R分量則要向外擴(kuò)張,擴(kuò)張的方式也一樣用數(shù)學(xué)建模得到。實(shí)現(xiàn)起來(lái)則有不小難度,畢竟像素是按照矩陣方式排列的,而收縮或者擴(kuò)張是360度的,需要復(fù)雜的三角函數(shù)和數(shù)據(jù)流控制機(jī)制。


對(duì)位移較小的false color處理起來(lái)相對(duì)容易,畢竟我們已知其規(guī)律,并且有周邊像素作為參考。對(duì)于較大范圍的false color(上圖中位移較大的情況)則難有很好的解決方法,因?yàn)樵诋?dāng)前像素的一個(gè)小范圍內(nèi)都是異常的色彩,無(wú)法分辨到底是true or false。


4.5小結(jié)

細(xì)節(jié)相關(guān)的function都比較復(fù)雜,較難像色彩和亮度那樣直觀的理解。我自己感覺(jué)細(xì)節(jié)設(shè)計(jì)其實(shí)就是數(shù)學(xué)和信號(hào)處理,需要細(xì)致的思考和探究,種種現(xiàn)象都可以從數(shù)學(xué)上找到對(duì)應(yīng)的關(guān)系。另外像自動(dòng)對(duì)焦Auto focus和縮放Zoom也和細(xì)節(jié)設(shè)計(jì)相關(guān),前者需要邊緣檢測(cè),后者需要多采樣濾波。

 

 

 

    本站是提供個(gè)人知識(shí)管理的網(wǎng)絡(luò)存儲(chǔ)空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請(qǐng)注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購(gòu)買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評(píng)論

    發(fā)表

    請(qǐng)遵守用戶 評(píng)論公約

    類似文章 更多