我們在本文介紹的算法闡述了如何使用運行在嵌入式處理器(諸如Zynq處理平臺采用的ARM9核)上的軟件,控制執(zhí)行像素級色彩校正的定制圖像和視頻處理算法。
圖像視頻傳感器廣泛用于手機、視頻監(jiān)視產(chǎn)品、汽車以及導彈系統(tǒng)等各種應用。幾乎所有這些應用都要求白平衡校正(也稱為色彩校正),以便生成無論是在日光、白熾燈、熒光燈還是其它光照條件下都會產(chǎn)生與人眼視覺相一致的圖像色彩。
對以前使用ASIC或ASSP器件的眾多開發(fā)人員來說,現(xiàn)在用賽靈思FPGA或Zynq-7000 All Programmable SoC這樣的可編程邏輯器件來實現(xiàn)自動白平衡校正可能會是一個全新的挑戰(zhàn)。首先讓我們看一下運行在嵌入式處理器上的軟件(如運行在Zynq-7000 All Programmable SoC上的ARM9處理系統(tǒng))是如何控制定制圖像/視頻處理邏輯來執(zhí)行實時像素級色彩/白平衡校正的。
要了解是如何實現(xiàn)這一功能,首先需要了解色彩知覺和相機校準這些基本概念。
相機校準
要測量一個自身不發(fā)光或不透光的小型均勻表面物體反射光的色彩和強度,取決于三大函數(shù):光源的光譜功率分布(I(λ))、表面材質(zhì)的光譜反射特性(R(λ))、成像系統(tǒng)的光譜敏感性(S(λ))。
檢測器測量到的信號功率可表達為:
要得到有彩色圖像,攝影與攝像設備與人眼一樣,均使用有不同光譜響應的相鄰傳感器。人的視覺依賴三類光敏視椎細胞來形成色彩知覺。在開發(fā)基于人類感知的色彩模型時,國際照明委員會(CIE)定義了三個色彩匹配函數(shù)
。這三個函數(shù)可視為三個線性光檢測器的光譜敏感度曲線。三個線性光檢測器可產(chǎn)生CIE XYZ三色激勵值Px、Py和Pz,這三個值也被統(tǒng)稱為CIE標準觀察者。
數(shù)字圖像傳感器主要采用兩種方法測量三色刺激值。一種方法是在固有的單色光敏二極管上加一組濾色片陣列;另一種方法是使用堆疊光敏二極管測量光子吸收深度,這個深度與波長λ成正比。
但這兩種方法都不能產(chǎn)生與人眼相似的響應。因此,不同的光檢測和復制設備的色彩測量值存在差異,即在拍攝具有相同(Iλ)和(Rλ)的相同場景,圖像傳感器的測量值與觀測者的目測值之間也存在差異。
因此,相機校準的目的是轉(zhuǎn)換和校正相機或圖像傳感器測得的三色刺激值,實現(xiàn)與CIE標準觀察者相符的光譜響應。
白平衡
您可觀察自然光以及火焰、白織燈或熒光燈等不同光照條件下的任何物體,發(fā)現(xiàn)人的視覺都會認為物體有相同的顏色。這種現(xiàn)象被稱為“顏色適應”或者“色彩恒常性”。但是,如果相機不具備針對不同光源進行調(diào)整或自動補償?shù)墓δ?,獲得的色彩就會發(fā)生變化。而相機對這種情況進行校正的行為,就稱為白平衡校正。
圖1右側(cè)的等式分別用于描述光源的光譜、場景中各種物質(zhì)的反射特性以及檢測器的光譜敏感度。這三者共同決定最終的色彩測量。因此即便是采用相同的檢測器,測量結(jié)果還是會把物體固有的色彩與光源的光譜混合在一起。只要滿足下列條件,就有可能實現(xiàn)白平衡,或者說將固有的反射特性R(λ)與光源的光譜I(λ)分離。
● 采用啟發(fā)法,比如光源上的空間頻率限制,或者先驗性地知道物體的色彩。例如,在日光下拍攝場景時,可以預計光源的光譜特性將在整個圖像上保持恒定。與此相反,如果將圖像投影到白屏幕上,光源的光譜特性會隨像素發(fā)生顯著的變化,但場景(幕布)的反射特性保持恒定。如果光源的特性和發(fā)射特性均有顯著的變化,就難以將場景中的物體和光源區(qū)分開來。
● 檢測器的敏感度S(λ)和光源光譜I(λ)在觀測的光譜范圍內(nèi)不會為零。觀測者無法獲得光源光譜范圍外物體的任何反射特性信息。例如,如果場景中用單色紅光源照明,藍色物體和綠色物體都會是黑色。
早期方法
在數(shù)字成像系統(tǒng)中,已知光源的相機校準問題可以表達為一個離散三維向量函數(shù):
其中F(x)為映射向量函數(shù),為R、G、B主要色彩分量的離散向量(一般為8位、10位或12位)。根據(jù)是否要進行線性映射以及是否要獨立校正色彩分量,該映射函數(shù)可按照表1分類。