使用Zynq-7000 All Programmable SoC實現(xiàn)圖像傳感器色彩校正
我們設置的誤差函數(shù)用于計算下列參數(shù)之一:
本文引用地址:http://www.ex-cimer.com/article/143329.htm ● RGB色域中預期三元色和轉(zhuǎn)換后三元色之間的方差和:
● RGB色域中預期三元色和轉(zhuǎn)換后三元色之間的絕對差和:
● YUV色域中預期三元色和轉(zhuǎn)換后三元色之間的方差和:
● YUV色域中預期三元色和轉(zhuǎn)換后三元色之間的絕對差和:
其中U’和V’對應的是R’G’B’值轉(zhuǎn)換到YUV色域的值。與此類似,誤差函數(shù)也可設置用于L*u*v*或是 L*a*b*色域。用戶可將任何上述誤差函數(shù)用于仿真退火求最小值。
白平衡
使用上面介紹的相機校準方法,我們建立了4個色彩校正系數(shù)和偏移量(CCMk,k={1,2,3,4})。如果能夠正確地識別光源,這4個系數(shù)和偏移量就可實現(xiàn)理想的色彩表達。采用運行在嵌入式處理器上的軟件實現(xiàn)的白平衡算法需要逐幀完成下列運算。首先根據(jù)統(tǒng)計信息估算光源權重(Wk)。權重經(jīng)低通濾波后,用于補償場景突變,得到光源概率(pk)。根據(jù)權重pk,使用CCMk值對色彩校正矩陣模塊進行編程。
這種方法的優(yōu)勢在于,即便場景色彩和光源色彩沒有適當分離,校準CCMk值的線性組合也能限制色彩偽影形成。比如在水下攝影時會面臨嚴重的藍色調(diào),如果采用灰度世界法等簡單的白平衡算法,在補償時會去除所有的藍色,導致場景的原生色彩嚴重失真。
對燈箱中不同場景設置下的所有光源k={1,2,3,4},我們通過根據(jù)色度對像素值進行分檔并根據(jù)亮度值對每個像素加權,還得到二維的場景YUV直方圖(亮度加權色度直方圖)。這種方法可以去掉黑色像素,或者那些R、G、B值存在少量差異就會在色度域中形成巨大噪聲的像素。
我們使用掩碼,去除可能造成典型光源照明條件下中性(灰色或白色)物體不可能產(chǎn)生的鮮艷顏色對應的直方圖分檔(圖6)。典型的掩碼包含的是僅圍繞中性(白色)點周圍的非零值,這里是大多數(shù)光源所處的位置。我們將有掩碼的二維直方圖值Hk(X,y)和CCMk值硬件編碼到運行在嵌入式處理器上的白平衡應用中。
在實時運算過程中,白平衡應用負責采集相似的二維亮度加權色度直方圖。然后給測得的二維直方圖加掩碼。最后計算四個存儲的直方圖和測得的直方圖之間的絕對差和或方差和:
其中Hk(X,Y)是與已知光源{k=1,2,3,4}有關的預先計算出的基準二維直方圖,H(x,y)是實時測量的直方圖。
根據(jù)測量的直方圖偏差Dk,用下式計算標準化相似值:
為避免逐幀色調(diào)陡變,我們將標準化相似值按時間進行平滑處理。我們采用簡單的低通IIR濾波器,實現(xiàn)方法為:
其中0
最后,我們將預先計算出的色彩校正系數(shù)和偏移量(CCMk)線性合并,完成ISP的色彩校正模塊的編程(圖3):
圖7是自然光和熒光燈照明條件下,場景采用實時白平衡算法實現(xiàn)的結果,可以看出感知的圖像質(zhì)量和色彩表達的明顯改善?! ?/p>
Zynq視頻與成像套件,加上賽靈思提供的MATLAB腳本,為我們提供的算法提供了補充和實現(xiàn)范例。
隨著工業(yè)、消費和汽車視頻應用分辨率和幀率的提高,實時色彩平衡算法的難度正在不斷增大。我們在本文介紹的算法闡述了如何使用運行在嵌入式處理器(諸如Zynq處理平臺采用的ARM9核)上的軟件,控制執(zhí)行像素級色彩校正的定制圖像和視頻處理算法。
參考文獻:
[1]Chong H Y, Gortler S J和Zickler T.馮 克里斯假設和色彩恒定的基礎.IEEE計算機視覺國際大會會議紀要,2007
[2] Bianco S,Gasparini F和Schettini R.白平衡綜合策略.2007年國際光學工程學會(SPIE)紀要, 39卷: 65020D-65020D-9
評論