張 濤,王成龍,趙新宇
(中國(guó)科學(xué)院 長(zhǎng)春光學(xué)精密機(jī)械與物理研究所,吉林 長(zhǎng)春 130033)
光電經(jīng)緯儀[1]在現(xiàn)代靶場(chǎng)光學(xué)測(cè)量中得到了廣泛應(yīng)用,隨著被測(cè)目標(biāo)向高速、小型化、低可探測(cè)性方向發(fā)展,光電經(jīng)緯儀所搭載的傳感器也開始向高分辨率、多光譜、彩色成像方向發(fā)展。為了更好的測(cè)量目標(biāo)特性和取得更真實(shí)、鮮艷的目標(biāo)圖像,靶場(chǎng)對(duì)彩色圖像的需求日益增加。
以往為了取得彩色圖像,一般采用3CCD彩色相機(jī),這種相機(jī)具有色彩真實(shí)鮮艷、對(duì)比度高、動(dòng)態(tài)范圍大等優(yōu)點(diǎn),但同時(shí)也有光學(xué)系統(tǒng)復(fù)雜、裝調(diào)維護(hù)困難、幀頻低(廣播級(jí)3CCD相機(jī)一般為24Hz或25Hz)、總像素有限、數(shù)據(jù)處理困難等缺點(diǎn)[2],所以用于實(shí)況記錄更多而用于跟蹤與測(cè)量較少。而普通的CCD和CMOS相機(jī)光學(xué)系統(tǒng)簡(jiǎn)單、幀頻高、總像素?cái)?shù)高,適用于跟蹤和測(cè)量而不適合作為實(shí)況記錄。因此研究出一種能兼顧跟蹤測(cè)量和實(shí)況記錄的色彩還原系統(tǒng)就有了非常重要的意義。
如果在黑白CCD或CMOS成像器件表面覆蓋一層微小的光學(xué)濾鏡,使器件的每個(gè)像素僅能對(duì)RGB三色中的一個(gè)分量感光,這樣整個(gè)成像器件產(chǎn)生的圖像有類似馬賽克的效果,在針對(duì)單個(gè)像素計(jì)算其真正的顏色時(shí),需要獲取其鄰接像素的感光信息,然后進(jìn)行白平衡計(jì)算再進(jìn)行色彩還原。這種方法被稱為彩色濾波陣列[3-4](Color Filter Array,CFA)。CFA算法可用于黑白成像器件,如果算法合適,則既能利用CCD和CMOS器件的高幀頻高像素?cái)?shù),又可獲取彩色圖像。
在CFA算法中,Bayer濾波[5-7]應(yīng)用廣泛且效果良好,其基本結(jié)構(gòu)如圖1所示。其中R、G、B分別代表紅、綠、藍(lán)三色分量。
圖1 Bayer濾波結(jié)構(gòu)Fig.1 Construction of Bayer filter
從圖1可看出,在Bayer濾波中,R、G、B三個(gè)分量總數(shù)不同??紤]到人眼視覺對(duì)綠色更敏感,分辨能力更強(qiáng),而且綠色在可見光中占據(jù)了更寬的光譜范圍,所以G分量占了總數(shù)的一半。因此對(duì)R和B分量進(jìn)行計(jì)算時(shí),可以G分量為基準(zhǔn)。
在Bayer濾波的色彩還原中,雙線性插值算法[5]是對(duì)單個(gè)分量進(jìn)行獨(dú)立插值的經(jīng)典算法,以圖1的CFA為例,取坐標(biāo)(3,2)點(diǎn),對(duì)R分量感光,則計(jì)算其G和B分量的公式為:
由式(1)易知,雙線性插值法的優(yōu)點(diǎn)是算法簡(jiǎn)單,濾波器設(shè)計(jì)容易,計(jì)算量小,非常適用于實(shí)時(shí)處理。但缺點(diǎn)也很明顯,首先是濾波器大小始終為3×3,忽略了圖像細(xì)節(jié),更重要的是這種算法在單個(gè)顏色分量間獨(dú)立插值,忽略了3個(gè)顏色分量之間的相關(guān)性。
可以預(yù)見該算法在圖像中的平滑區(qū)域內(nèi)效果較好,但在圖像的邊緣處,由于像素取值具有方向性,如果顏色反差大,則用雙線性插值會(huì)產(chǎn)生很大誤差,在圖像邊緣呈現(xiàn)鋸齒狀效果,稱為拉鏈效應(yīng)[8-9]。由上所述G 分量在圖像中總數(shù)更多,則拉鏈效應(yīng)更明顯,所以在插值運(yùn)算中應(yīng)更精確地恢復(fù)G分量,改善色彩還原效果。
基于雙線性插值法的缺點(diǎn)和G分量的重要性,考慮在恢復(fù)G分量時(shí)使用梯度算法[7],即通過(guò)計(jì)算梯度來(lái)檢測(cè)邊緣的方向,進(jìn)而選擇合適的插值方向,使計(jì)算過(guò)程不跨越邊緣,從而減少拉鏈效應(yīng)。
仍以圖1為例,假設(shè)Δh和Δv分別是該像素在水平方向和垂直方向的梯度,則有:
若Δh<Δv,即認(rèn)為水平方向有邊緣的概率大于垂直方向,則插值在水平方向進(jìn)行,反之若Δh<Δv,則在垂直方向進(jìn)行,若Δh=Δv,則該像素仍在平滑區(qū)域,在兩個(gè)方向都進(jìn)行插值??蓪⑹剑?)中計(jì)算G分量的算式優(yōu)化為:
而對(duì)于B分量,對(duì)于坐標(biāo)(3,2)因?yàn)椴⒉皇撬胶痛怪编徑拥南袼?,則計(jì)算時(shí)無(wú)法直接判斷邊緣是否在兩個(gè)方向,需要對(duì)(2,1)、(2,3)、(4,1)、(4,3)4個(gè)對(duì)B分量感光的像素進(jìn)行判斷。則有如下判據(jù),設(shè)
而對(duì)R分量其值保持不變。
式(2)、(3)、(4)、(5)聯(lián)立求解同樣可以得到還原參數(shù),這種方法和式(1)對(duì)比可以看出兩種算法可以的算法復(fù)雜度和計(jì)算量并沒有顯著的增加。
CMOS相機(jī)采用Dalsa公司的1M120,使用的工作模式為1024(H)×1024(V),幀頻100 Hz,數(shù)據(jù)位寬8bit,該相機(jī)靈敏度高、動(dòng)態(tài)范圍寬,像元大小適中,可兼顧捕獲和測(cè)量功能。
在以往的光測(cè)設(shè)備中,為了滿足實(shí)時(shí)跟蹤的要求,圖像處理硬件平臺(tái)多選用DSP+FPGA的模式,但隨著PC硬件處理能力的快速發(fā)展,使用PC平臺(tái)+工業(yè)級(jí)數(shù)字圖像采集卡的模式也可以滿足實(shí)時(shí)性的要求。
數(shù)字圖像采集卡使用Dalsa公司出品的X64-Xcelera-full,該卡支持 Camera-Link full標(biāo)準(zhǔn),接口為PCI-E×4,硬件的結(jié)構(gòu)和數(shù)據(jù)流圖如圖2所示,處理軟件從采集卡緩存讀入圖像,進(jìn)行處理后得到目標(biāo)脫靶量和還原的彩色圖像,將脫靶量輸出至串行通信卡,將彩色圖像輸出至顯卡,顯卡有數(shù)字和模擬接口,再分別輸出給相應(yīng)的傳輸和顯示設(shè)備。
圖2 硬件數(shù)據(jù)流圖Fig.2 Flow chart of hardware
采用 VC++進(jìn)行軟件設(shè)計(jì)[10-11],同時(shí)利用采集卡提供的Sapera開發(fā)庫(kù)簡(jiǎn)化一些如接收、發(fā)送、控制相機(jī)等底層操作。同時(shí)考慮到一幀數(shù)據(jù)量比較大,采用乒乓算法,在軟件中為圖像處理開辟兩個(gè)緩存區(qū),首先寫滿第一個(gè)緩存區(qū),然后進(jìn)行計(jì)算,讀入的數(shù)據(jù)寫入第二個(gè)緩存區(qū)以備使用,第一個(gè)緩存區(qū)的數(shù)據(jù)計(jì)算完畢后清空,計(jì)算第二個(gè)緩存區(qū)中數(shù)據(jù),同時(shí)將讀到的數(shù)據(jù)再寫入第二個(gè)緩存,如此往復(fù),以提高軟件運(yùn)行效率。軟件的關(guān)鍵流程圖如圖3所示。
圖3 軟件流程圖Fig.3 Flow chart of software
在圖像處理中評(píng)價(jià)重構(gòu)圖像質(zhì)量常用兩種方法:均方根誤差(Mean Square Error,MSE)和最高峰值比[12](Peak Signal-to -noise Ratio,PSNR)。這兩種計(jì)算方法分別如下:
式中:M和N 分別代表圖像尺寸的行列數(shù),f0(i,j)和fr(i,j)分別代表原始圖像和恢復(fù)后圖像的第(i,j)個(gè)像素的強(qiáng)度分量。在式(7)中,PSNR是某個(gè)分量的值,即真彩色圖像可以分成R、G、B三個(gè)分量獨(dú)立的比較,反映了原始圖像和恢復(fù)后的圖像相似的程度,PSNR越大,則越相似。表1給出了本文所論述方法和雙線性插值算法對(duì)實(shí)驗(yàn)圖像進(jìn)行處理后的PSNR值以進(jìn)行定量對(duì)比。
表1 算法PSNR比較Tab.1 Comparison of algorithms
從表1中可以看出,檢測(cè)邊緣而后插值的算法PSNR比雙線性插值法更高,平均提高了14%左右,性能有較大幅度提升。
考慮到靶場(chǎng)光測(cè)的實(shí)時(shí)性需求,需要對(duì)處理算法的時(shí)間性能進(jìn)行定量測(cè)量。同樣在相機(jī)的典型使用條件下進(jìn)行測(cè)量。對(duì)100Hz,1024×1024的圖像進(jìn)行還原,對(duì)快速運(yùn)動(dòng)和慢速運(yùn)動(dòng)圖像進(jìn)行計(jì)算,每次計(jì)算10s數(shù)據(jù),計(jì)算所有圖像的平均處理時(shí)間和最長(zhǎng)一次的處理時(shí)間,結(jié)果如表2所示。
表2 算法時(shí)間性能比較Tab.2 Comparison of time performance of algorithms
由表2可以看出:
(a)相機(jī)工作于100Hz時(shí),最長(zhǎng)的一幀處理時(shí)間也小于9ms,可見兩種方法的處理時(shí)間均滿足實(shí)時(shí)性要求;
(b)在都滿足實(shí)時(shí)性要求的前提下,處理快速運(yùn)動(dòng)圖像時(shí),檢測(cè)邊緣插值算法的平均處理時(shí)間比雙線性插值算法的處理時(shí)間長(zhǎng)大約8%,處理慢速運(yùn)動(dòng)圖像時(shí)處理時(shí)間長(zhǎng)大約2%左右,性能差距不是特別大,而考慮到PSNR提高了14%左右,在時(shí)間性能上的損失是值得的。
根據(jù)Bayer格式CFA的原理提出了一種改進(jìn)的彩色圖像恢復(fù)算法,利用圖像的梯度信息進(jìn)行邊緣檢測(cè)而后再進(jìn)行插值,算法復(fù)雜度低的同時(shí)性能提高14%左右,可以用于100Hz,1024×1024的圖像實(shí)時(shí)彩色還原處理,達(dá)到了預(yù)期目的。如果增大邊緣檢測(cè)的鄰域范圍和使用卡爾曼濾波等算法,效果會(huì)更好,但同時(shí)算法復(fù)雜度會(huì)提高,時(shí)間性能會(huì)降低,如何在提高還原效果的同時(shí)保證實(shí)時(shí)處理所需要的時(shí)間性能則是下一步研究的重點(diǎn)。
[1]賈濤,吳能偉,陳濤.光電經(jīng)緯儀組網(wǎng)測(cè)量位置估計(jì)的Cramer_Rao限[J].光電工程,2005,32(7):4-6.Jia T,Wu N W,Chen T.Cramer-Rao lower bounds of position estimation in a photoelectric theodolite-based network[J].Opto-Electronic Engineering,2005,32(7):4-6.(in Chinese)
[2]甘波,魏延存,鄭然.CMOS圖像傳感器芯片的自動(dòng)白平衡[J].液晶與顯示,2011,26(2):224-228.Gan B,Wei Y C,Zheng R.Auto white balance algoritm for CMOS image sensor chip [J].Chinese Journal of Liquid Crystal and Displays,2011,26(2):224-228.(in Chinese)
[3]Funt B,Cardei V.Learning color constancy[C]//Proc of the 4th Int,l conf on Color Imaging and Applications,[S.I]:IEEE Press,1996:58-60.
[4]孫立新.LCD顯示器的白平衡調(diào)整[J].液晶與顯示,2011,26(2):220-2223.Sun L X.LCD white balance adjustment[J].Chinese Journal of Liquid Crystal and Displays,2011,26(2):220-2223.(in Chinese)
[5]趙興梅,劉建偉,李孝強(qiáng).數(shù)字相機(jī)色差空間雙線性插值算法的實(shí)現(xiàn)[J].電子科技,2009,2(4):57-59.Zhao X M,Liu J W,Li X Q.Realization of bilinear interpolation method in color difference space for digital camera[J].Electronic Science and Technology,2009,2(4):57-59.(in Chinese)
[6]Pei S C,Tam I K.Effective color interpolation in CCD color filter array using signal correlation[J].IEEE Trans.Circuit and System for Video Technology,2003,13(6):503-513.
[7]尹勇,胡磊.一種改進(jìn)的Bayer圖像彩色恢復(fù)差值算法[J].計(jì)算機(jī)科學(xué),2010,37(4):278-280.Yin Y,Hu L.Improved Interpolation algorithm for demosacing Bayer pattern images[J].Computer Science,2010,37(4):278-280.(in Chinese)
[8]楊永明,李清軍,李文明,等.基于Bayer濾波的彩色面陣 CCD調(diào)制函數(shù)[J].光學(xué)精密工程,2012,20(7):1611-1618.Yang Y M,Li Q J,Li W M,et al.Modulation transfer function for color area CCD based on Bayer filter[J].Optics and Precision Engineering,2012,20(7):1611-1618.(in Chinese)
[9]Kimmel R.Image reconstruction from CCD samples[J].IEEE Trans,Image Processing,1999,8(9):1221-1228.
[10]冉峰,楊輝,黃舒平,等.面陣CCD彩色視頻圖像實(shí)時(shí)采集系統(tǒng)的設(shè)計(jì)[J].光學(xué)精密工程,2010,18(1):273-280.Ran F,Yang H,Huang S P,et al.Design of real-time color video capture system for area array CCD [J].Optics and Precision Engineering,2010,18(1):273-280.(in Chinese)
[11]俢吉宏,黃浦,李軍,等.大面陣彩色CCD航測(cè)相機(jī)的輻射定標(biāo)[J].光學(xué)精密工程,2012,20(6):1365-1373.Xiu J H,Huang P,Li J,et al.Radiometric calibration of large area array color CCD aerial mapping camera[J].Optics and Precision Engineering,2012,20(6):1365-1373.(in Chinese)
[12]羅瀟,孫海江,陳秋萍,等.Bayer格式圖像的實(shí)時(shí)彩色復(fù)原[J].中國(guó)光學(xué)與應(yīng)用光學(xué),2010,3(2):182-187.Luo X,Sun H J,Chen Q P,et al.Real-time demosaicing of Bayer pattern images[J].Chinese Journal of Optics and Applied Optics,2010,3(2):182-187.(in Chinese)