李 華,朱 波
(1.商洛學(xué)院,陜西 商洛726000;2.中國(guó)科學(xué)院 西安光學(xué)精密機(jī)械研究所,陜西 西安710119;3.西安交通大學(xué)-西安光學(xué)精密機(jī)械研究所 空間視覺聯(lián)合實(shí)驗(yàn)室,陜西 西安710049)
為了讓CCD/CMOS圖像探測(cè)器采集到景物的全彩色圖像,通常的方法是使用3片探測(cè)器結(jié)合分光棱鏡的方法。但是,出于系統(tǒng)體積、重量和維護(hù)難易程度等因素的考慮,實(shí)際應(yīng)用往往使用一片圖像探測(cè)器,但是在探測(cè)器前覆一層膜(CFA),例如應(yīng)用最為廣泛的Bayer格式[1]。再結(jié)合去馬賽克算法就可以得到全彩色圖像,顯然,算法的優(yōu)劣對(duì)彩色圖像的質(zhì)量將起到舉足輕重的作用。目前去馬賽克算法的研究現(xiàn)狀可歸納為兩點(diǎn),易于FPGA 等硬件實(shí)現(xiàn)的各種線性算法基本上插值效果都不能令人滿意[2-4];而插值性能優(yōu)良的非線性算法,其實(shí)現(xiàn)難度卻都比較復(fù)雜,大部分還停留在理論研究或計(jì)算機(jī)仿真的層面[5-9],不能或不易FPGA 硬件實(shí)現(xiàn)。而另一方面,隨著探測(cè)器分辨率越來越高、幀頻越來越快,圖像的傳輸已經(jīng)成為了制約圖像應(yīng)用的瓶頸,特別是遠(yuǎn)程傳輸應(yīng)用,因此,基于GigE 的圖像傳輸已經(jīng)成為未來數(shù)字相機(jī)系統(tǒng)的趨勢(shì)。好的算法與設(shè)計(jì)只有運(yùn)行在合適的硬件平臺(tái)才能發(fā)揮其長(zhǎng)處,F(xiàn)PGA 憑借其并行運(yùn)算優(yōu)勢(shì),有較多高等級(jí)的產(chǎn)品(比如宇航級(jí)芯片)可供選擇,使其在圖像處理領(lǐng)域[10-11],特別是空天應(yīng)用的圖像處理領(lǐng)域受到越來越多的重視。本文正是在這種大背景下,依托某預(yù)研課題研究并設(shè)計(jì)了一套基于FPGA 的全彩色實(shí)時(shí)圖像采集系統(tǒng),取得了較好的效果。
本文彩色圖像采集系統(tǒng)的原理框圖如圖1所示。采用的CMOS 圖像探測(cè)器是美光公司的MT9M011,F(xiàn)PGA 使 用 的 是Xilinx 公 司 的Virtex-4,型號(hào)為XC4VSX55,PHY 芯片則是MARVELL公司的MX88E1111。
圖1 基于FPGA 的系統(tǒng)原理框圖Fig.1 Block diagram of FPGA-based system
系統(tǒng)的工作過程為:當(dāng)系統(tǒng)上電穩(wěn)定后,首先通過FPGA 對(duì)MT9M011 圖像探測(cè)器的寄存器進(jìn)行配置,使其正常工作并輸出Bayer格式圖像,然后將Bayer格式圖像順序送入FPGA,先對(duì)其進(jìn)行8bit量化,然后進(jìn)行去馬賽克等彩色相關(guān)處理,最后經(jīng)過GigE 接口將彩色圖像輸出,整個(gè)處理過程以流水線的形式進(jìn)行,做到了圖像的實(shí)時(shí)處理與輸出。下面將結(jié)合圖1詳細(xì)介紹各個(gè)功能模塊的設(shè)計(jì)原理與硬件實(shí)現(xiàn)過程。
MT9M011是美光公司的一款基于Bayer格式的彩色CMOS圖像探測(cè)器,其設(shè)計(jì)簡(jiǎn)單、性能穩(wěn)定,因此,被廣泛用于需要彩色成像的系統(tǒng)。
與其他公司的CMOS探測(cè)器相比,該探測(cè)器時(shí)序相對(duì)比較簡(jiǎn)單,僅僅通過類似于I2C 傳輸協(xié)議的串行線完成對(duì)特定寄存器的配置,就可使其正常工作[12],需要配置的主要寄存器包括:改變輸出圖像分辨率的R03與R04,調(diào)節(jié)幀頻的R05及改變曝光時(shí)間的R09 等。本文根據(jù)實(shí)際應(yīng)用需要,將探測(cè)器工作狀態(tài)設(shè)置在分辨率為1 280×1 024、幀頻為15f/s的模式下,其中,曝光時(shí)間通過RS422 總線,根據(jù)外部成像條件實(shí)時(shí)進(jìn)行修改。圖2所示為寫05號(hào)寄存器為0x110,設(shè)置幀頻為15f/s的Modelsim 仿真波形,其他寄存器設(shè)置與此類似。當(dāng)設(shè)置完寄存器,探測(cè)器就開始輸出圖像了。需要指出的是,為了保證探測(cè)器的輸出穩(wěn)定性與可靠性,本設(shè)計(jì)還在每幀圖像的幀逆程期間都對(duì)相應(yīng)的寄存器進(jìn)行一次配置。
圖2 寫寄存器仿真波形Fig.2 Simulation of register writing timing
通常,自然界圖像的能量譜主要集中在低頻區(qū)域[6],即沿著給定像素的水平和垂直軸線分布,因此,本文去馬賽克算法的插值過程主要是基于水平和垂直方向進(jìn)行。文獻(xiàn)[13]算法結(jié)合以上特點(diǎn),取得了較好的彩色恢復(fù)效果。因此,本文在文獻(xiàn)[13]的基礎(chǔ)上對(duì)算法進(jìn)行了進(jìn)一步的簡(jiǎn)化和改進(jìn),在基本不降低彩色恢復(fù)效果的前提下大大節(jié)約了硬件資源。下面將結(jié)合圖3所示的Bayer格式圖像對(duì)算法進(jìn)行詳細(xì)說明。
圖3 Bayer格式圖像Fig.3 Bayer image
2.2.1 綠色分量恢復(fù)過程
紅色通道和藍(lán)色通道均存在缺失綠色分量,考慮到Bayer格式的對(duì)稱性,此處僅以計(jì)算紅色通道缺失的綠色分量為例進(jìn)行介紹。首先,應(yīng)用二階拉普拉斯修正網(wǎng)絡(luò)如圖3所示。以R0為中心的5×5Bayer格式圖像,插值得到處水平方向綠色分量和垂直方向綠色分量,如式(1)和式(2)所示:
將整幅Bayer圖像的紅色通道應(yīng)用式(1)和式(2),得到圖像中所有紅色通道缺失的水平和垂直綠色分量。
這時(shí),我們依據(jù)色差梯度來選擇綠色分量,因?yàn)樘荻却蟮姆较蛏钪底兓瘎×遥灰坠烙?jì),因此,我們?nèi)√荻戎敌〉淖鳛椴逯到Y(jié)果。首先構(gòu)造式(3)和式(4)所示的色差表達(dá)式:
其中:i,j表示每個(gè)像素的行列號(hào),假設(shè)圖像的分辨率為M×N,則1≤i≤M,1≤j≤N。再構(gòu)造色差的梯度表達(dá)式如式(5)所示:
得到色差梯度以后,我們構(gòu)造一個(gè)5×5的窗口來統(tǒng)計(jì)窗口內(nèi)的梯度值,取SH(i,j)和SV(i,j)為窗口內(nèi)水平和垂直方向梯度值之和。通過比較計(jì)算,當(dāng)SV(i,j)<SH(i,j)時(shí),=,反 之,=,完成整幅圖像中綠色分量的估計(jì)。
2.2.2 紅色(藍(lán)色)通道的藍(lán)色(紅色)恢復(fù)
當(dāng)整幅圖像的綠色分量得到后,我們?nèi)匀挥蒙钐荻确▉砉烙?jì)缺失的紅、藍(lán)分量。對(duì)紅色通道處缺失藍(lán)色分量的估計(jì),以圖3中的R0為例,其四周的藍(lán)綠色差共有4個(gè),分別為:
式(7)即紅色通道處缺失的藍(lán)色分量。根據(jù)Bayer格式圖像對(duì)稱的特點(diǎn),同樣的方法可求得藍(lán)色通道處丟失的紅色分量。
2.2.3 綠色通道的藍(lán)色(紅色)恢復(fù)
綠色通道缺失的藍(lán)色分量和紅色分量的計(jì)算方法和2.2.2節(jié)的計(jì)算類似,只是Bayer格式圖像中綠色分量是紅、藍(lán)分量的兩倍,因此要進(jìn)行兩次計(jì)算。
2.2.4 后續(xù)處理
經(jīng)過2.2.1~2.2.3節(jié)的計(jì)算,得到了整幅圖像中每個(gè)像素處的R,G,B 分量。但是,為了進(jìn)一步降低偽彩色,我們構(gòu)造了低通濾波器來保留低頻成份。本文從恢復(fù)效果和硬件資源占用角度出發(fā),構(gòu)造了3×3的二維低通濾波器用于后續(xù)改善處理[13-14],如式(8)所示:
分別應(yīng)用式(8)對(duì)每個(gè)通道缺失的另外兩種分量進(jìn)行改善[13],從而完成整幅圖像最終的彩色恢復(fù)。
2.2.5 算法效果評(píng)價(jià)
選取了比較典型的3種彩色恢復(fù)算法和本文算法進(jìn)行去馬賽克效果的比較,樣本選擇Kodak標(biāo)準(zhǔn)圖像庫(kù)里的8幅經(jīng)典圖像,如圖4所示。首先對(duì)圖4的8幅圖像進(jìn)行Bayer格式退化,然后應(yīng)用算法進(jìn)行彩色恢復(fù)。為了便于對(duì)算法的效果進(jìn)行說明,采用了PSNR 和目視兩個(gè)指標(biāo)對(duì)彩色恢復(fù)效果進(jìn)行評(píng)價(jià)。
圖4 從Kodak圖庫(kù)中提取的試驗(yàn)圖像Fig.4 Test images from Kodak
圖5所示為本文算法和其他幾種算法恢復(fù)結(jié)果的目視效果,表1所示為幾種算法恢復(fù)結(jié)果的PSNR 統(tǒng)計(jì)。很顯然,本文算法的整體性能大大優(yōu)于其他幾種算法。但是,因?yàn)楸疚乃惴ㄊ菍?duì)文獻(xiàn)[13]算法簡(jiǎn)化改進(jìn)得到的,所以彩色恢復(fù)效果稍差于文獻(xiàn)[13],以圖4(e)為例,PSNR 僅相差0.1dB,基本上性能一致,但是,硬件資源卻比文獻(xiàn)[13]算法節(jié)約了20%。
圖5 幾種算法對(duì)圖5(b)的恢復(fù)效果比較.(a)原圖;(b)Bayer格式圖像;(c)雙線性插值結(jié)果;(d)文獻(xiàn)[3]恢復(fù)結(jié)果;(e)文獻(xiàn)[7]恢復(fù)結(jié)果;(f)本文算法恢復(fù)結(jié)果Fig.5 Interpolation results of different demosaicking methods.(a)Origin image;(b)Bayer image;(c)BI;(d)Reference[3];(e)Reference[7];(f)Proposed
表1 幾種算法恢復(fù)結(jié)果的PSNR 數(shù)值統(tǒng)計(jì)Tab.1 PSNR performance comparison of different demosaicking methods (dB)
2.2.6 算法FPGA 硬件實(shí)現(xiàn)
分析本文算法可知,計(jì)算方面僅由加法、移位和比較等操作構(gòu)成,和線性圖像處理方法在硬件實(shí)現(xiàn),特別是FPGA 實(shí)現(xiàn)上難度相當(dāng),能夠做到硬件實(shí)時(shí)處理。
由于算法各主要步驟都是在數(shù)據(jù)窗口進(jìn)行,所以,本文在FPGA 內(nèi)部通過BlockRAM 構(gòu)造了圖6形式的圖像行緩存,每個(gè)行緩存的深度為圖像的一行,Rxx為D 觸發(fā)器,構(gòu)成像素緩存。這樣,就構(gòu)成圖像流水線窗口,同時(shí)對(duì)5行圖像數(shù)據(jù)進(jìn)行各種計(jì)算與處理。
圖6 彩色插值算法硬件實(shí)現(xiàn)過程Fig.6 Process of FPGA implemented demosaicking method
從Bayer格式圖像進(jìn)入FPGA 到彩色圖像輸出,本文算法共需要緩存約12行圖像,因?yàn)橄袼貢r(shí)鐘是25MHz,所以,延時(shí)僅有(1 280+396)×12×40ns≈0.8ms(其中,396是圖像行逆程占用的像元數(shù)),基本滿足實(shí)時(shí)處理的需要。
GigE因其傳輸速率快、誤碼率小且成本低廉,已經(jīng)廣泛應(yīng)用于各大公司數(shù)字相機(jī)的數(shù)據(jù)傳輸,因此,本系統(tǒng)設(shè)計(jì)了基于FPGA 的GigE 數(shù)據(jù)傳輸機(jī)制。
2.3.1 GigE傳輸方案的可行性分析
由于本文系統(tǒng)采集的是全彩色圖像,即每一像素的色深是24bits,而探測(cè)器輸出圖像的分辨率為1 280×1 024,幀頻為15f/s,這樣,1s內(nèi)傳輸?shù)膱D像數(shù)據(jù)為:
相應(yīng)的圖像傳輸帶寬就是0.472Gbit/s,由于本課題對(duì)圖像質(zhì)量的苛刻要求,所以,不能對(duì)圖像進(jìn)行壓縮,這就給傳輸帶來了較大的挑戰(zhàn)。
根據(jù)應(yīng)用需要,本系統(tǒng)GigE 要同時(shí)給數(shù)個(gè)子系統(tǒng)輸出彩色圖像,即一對(duì)多的廣播方式,因此只能采用UDP協(xié)議,這也是目前大部分GigE 相機(jī)使用的協(xié)議,傳輸機(jī)制則使用單工通訊。按照UDP協(xié)議規(guī)定,一包數(shù)據(jù)的結(jié)構(gòu)分為包頭+數(shù)據(jù)+幀間隙,其中,包頭由源MAC、目標(biāo)MAC、源IP、目標(biāo)IP 等42Bytes固定數(shù)據(jù)組成。有效數(shù)據(jù)的長(zhǎng)度為46Bytes~1 500Bytes,由于系統(tǒng)傳輸?shù)氖侨噬珗D像,每個(gè)像素由3Bytes組成,因此,本文將一包數(shù)據(jù)的長(zhǎng)度設(shè)定為320個(gè)像元,剛好是一行圖像長(zhǎng)度的1/4,轉(zhuǎn)化到UDP包格式數(shù)據(jù)的長(zhǎng)度即320×3=960Bytes,滿足UDP 數(shù)據(jù)格式要求。除了包頭和數(shù)據(jù),數(shù)據(jù)幀之間的間隙也是有嚴(yán)格要求的,IEEE802.3標(biāo)準(zhǔn)規(guī)定最少要保證12Bytes,這樣,本文千兆以太網(wǎng)的理想傳輸效率為:
相應(yīng)的理想帶寬為0.947Gbit/s,對(duì)比式(9)可知完全滿足本文全彩色圖像傳輸?shù)男枰?,不?huì)造成數(shù)據(jù)的丟失。
2.3.2 GigE傳輸方案的具體設(shè)計(jì)
我們知道,為了方便采集,圖像探測(cè)器是以固定格式輸出的,幀有效結(jié)合行有效作為圖像有效的標(biāo)志,圖像數(shù)據(jù)以行為單位,連續(xù)輸出。而基于千兆以太網(wǎng)的數(shù)據(jù)傳輸則僅以數(shù)據(jù)包為單位進(jìn)行傳輸,每包的有效數(shù)據(jù)長(zhǎng)度為320個(gè)彩色像元,這樣,圖像的接收者就無法辨識(shí)圖像的開始與結(jié)束,這給實(shí)際應(yīng)用將帶來很大麻煩,為了解決這個(gè)問題,本文在設(shè)計(jì)上采取了添加幀頭的方式,具體做法是,當(dāng)圖像的幀有效來臨時(shí),首先將圖像在FPGA 內(nèi)部進(jìn)行緩存,同時(shí)FPGA 內(nèi)部生成一個(gè)數(shù)據(jù)長(zhǎng)度為100Bytes的幀頭包,用于存儲(chǔ)拍攝時(shí)間、曝光時(shí)間等圖像信息,同時(shí),也起到了區(qū)別兩幀圖像的目的。
由于圖像的像元時(shí)鐘為25 MHz,而GigE 使用的是125 MHz的時(shí)鐘,所以,怎么安排圖像組包也是基于GigE 傳輸要重點(diǎn)考慮的問題,本文設(shè)計(jì)采用了如下策略:系統(tǒng)首先發(fā)送100Bytes的幀頭包,當(dāng)發(fā)現(xiàn)圖像行有效的下降沿時(shí)開始從緩存FIFO 中讀取數(shù)據(jù)組成GigE數(shù)據(jù)包,而且連續(xù)發(fā)送4包,剛好完成一行圖像的發(fā)送,然后再等待下一個(gè)行有效的下降沿,如此反復(fù)就完成了圖像連續(xù)、無誤的傳輸,傳輸一行圖像GigE 消耗的時(shí)間為:
而圖像探測(cè)器輸出一行圖像的總時(shí)間為:
所以,一行圖像時(shí)間內(nèi)可以完成4包數(shù)據(jù)的發(fā)送。值得一提的是,42Bytes包頭數(shù)據(jù)里面第19和20 兩Bytes用于設(shè)置包標(biāo)識(shí),本設(shè)計(jì)通過FPGA 發(fā)送連續(xù)的計(jì)數(shù)達(dá)到統(tǒng)計(jì)丟包數(shù)的目的,防止誤碼的發(fā)生。
由于以太網(wǎng)只對(duì)應(yīng)網(wǎng)絡(luò)體系的數(shù)據(jù)鏈路層和物理層,所以本文FPGA 完成的是MAC層開發(fā),控制幀的生成,數(shù)據(jù)在FPGA 內(nèi)按照GigE格式輸出給PHY芯片MX88E1111,將MAC層數(shù)據(jù)轉(zhuǎn)換為可以在物理鏈路上傳播的格式連接到RJ-45接口,輸出給遠(yuǎn)端存儲(chǔ)與顯示單元,用于后端應(yīng)用。
按照第2節(jié)的設(shè)計(jì)思路,對(duì)相機(jī)系統(tǒng)進(jìn)行了詳細(xì)設(shè)計(jì),并結(jié)合光機(jī)系統(tǒng)進(jìn)行了實(shí)際成像試驗(yàn)。在分辨率為1 280×1 024,幀頻為15f/s,20 ms曝光時(shí)的成像效果如圖7所示,其中,圖7(a)為Sniffer軟件捕獲的100Bytes長(zhǎng)度圖像幀頭包信息,圖7(b)為實(shí)際得到的全彩色圖像,可以看出,圖像色彩逼真、細(xì)節(jié)豐富,偽彩色得到了有效抑制,和理論成像結(jié)論一致,充分證明了設(shè)計(jì)的可行性。
由于UDP只是一個(gè)簡(jiǎn)單的面向數(shù)據(jù)色的運(yùn)輸層協(xié)議,和所有使用UDP 協(xié)議作為傳輸機(jī)制的系統(tǒng)一樣,本文系統(tǒng)也存在丟包與誤碼的問題,經(jīng)過詳細(xì)試驗(yàn)測(cè)試,丟包率在1%以內(nèi),可以滿足用戶的實(shí)際要求,下一步,將嘗試點(diǎn)對(duì)點(diǎn)的TCP/IP協(xié)議,以盡量杜絕丟包現(xiàn)象。
圖7 實(shí)際成像效果Fig.7 Real imaging
根據(jù)彩色圖像采集系統(tǒng)的發(fā)展趨勢(shì),結(jié)合實(shí)際預(yù)研課題,研究并設(shè)計(jì)了一套基于FPGA 硬件實(shí)現(xiàn)的彩色圖像實(shí)時(shí)采集系統(tǒng)。巧妙地運(yùn)用梯度和色差關(guān)系改進(jìn)了Bayer格式圖像的插值效果,降低了插值算法硬件實(shí)現(xiàn)的難度,并結(jié)合GigE數(shù)據(jù)傳輸接口,大大提高了數(shù)據(jù)傳輸能力。實(shí)驗(yàn)結(jié)果表明,相比其他彩色圖像采集系統(tǒng),本系統(tǒng)獲取的彩色圖像在PSNR 和目視方面,性能均有大幅度的提升,而整個(gè)系統(tǒng)的開發(fā)難度卻僅和線性算法相當(dāng)。目前,該系統(tǒng)工作正常,其優(yōu)良的性能得到了用戶的好評(píng)。值得一提的是,該系統(tǒng)可擴(kuò)展性強(qiáng),只要根據(jù)需要更換不同型號(hào)的彩色圖像探測(cè)器,稍微修改一下FPGA 管腳分配等參數(shù)就可以用于其他成像系統(tǒng),因此,具有廣闊的應(yīng)用空間。
[1] Bayer B E.Color imaging array:US Patent,3 971 065[P].1975-03-05.
[2] 王暕來,楊春玲.基于最大類間方差法的圖像分割系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[EB/OL].http:∥www.altera.com.cn/education/univ/local/events/articles/july08-3.pdf.Wang J L,Yang C L.Implementation of image segmentation system based on Otsu method[EB/OL].http:∥www.altera.com.cn/education/univ/local/events/articles/july08-3.pdf.
[3] Henrique S M,He L W,Ross C.High-quality linear interpolation for demosaicing of bayer-patterned color images[C].IEEE International Conference on Acoustics,Quebec,Canada:Speech and Signal Processing:2004:485-488.
[4] Adams J E,Hamilton J F.Adaptive color plane interpolation in single color electronic camera:US Patent,5 506 619[P].1996-04-14.
[5] Zhang L,Wu X L.Color demosaicking via directional linear minimum mean square-error estimation[J].IEEE Transactions on Image Processing,2005,14(12):2167-2178.
[6] Zhang L,Wu X L,Antoni B,et al.Color demosaicking by local directional interpolation and nonlocal adaptive thresholding[J].Journal of Electronic Imaging,2011,20(2):203016(1-16).
[7] Daniele M,Stefano A,Giancarlo C.Demosaicing with directional filtering and a posteriori decision[J].IEEE Transactions on Image Processing,2007,16(1):132-141.
[8] Zhang L,Dong W S,Wu X L,et al.Spatial-temporal color video reconstruction from noisy CFA sequence[J].IEEE Transactions on Circuits and Systems for Video Technology,2010,20(6):838-847.
[9] 朱波,汶德勝,王飛,等.應(yīng)用字典學(xué)習(xí)算法改善Bayer格式圖像彩色恢復(fù)效果[J].電子與信息學(xué)報(bào),2013,35(4):8-16.Zhu B,Wen D S,Wang F,et al.Improvement of Bayer-pattern demosaicking with dictionary learning algorithm[J].Jounal of Electronics &Information Technology,2013,35(4):8-16.(in Chinese)
[10] 張傳勝.基于SOPC的通用液晶屏人機(jī)交互系統(tǒng)GUI的設(shè)計(jì)[J].液晶與顯示,2013,28(2):250-254.Zhang C S.Design of man-machine interaction systems based on LCD screen of SOPC [J].Chinese Journal of Liquid Crystals and Displays,2013,28(2):250-254.(in Chinese)
[11] 王靜軒,尹傳歷.基于DSP和FPGA 的嵌入式實(shí)時(shí)圖像增強(qiáng)系統(tǒng)[J].液晶與顯示,2013,28(3):459-463.Wang J X,Yin C L.Embedded color image enhancement system based on DSP and FPGA[J].Chinese Journal of Liquid Crystals and Displays,2013,28(3):459-463.(in Chinese)
[12] Micron Inc.MT9M011datasheet[OL].[2004-01-05].http:∥www.ic5.cn/p_M(jìn)T9M011_nzw.html.
[13] 朱波,汶德勝,王飛.改進(jìn)的Bayer插值算法及其硬件實(shí)現(xiàn)[J].光電子激光,2013,24(6):1211-1218.Zhu B,Wen D S,Wang F.Improved bayer-pattern demosaicking and its hardware design[J].Journal of Optoelectronics·Laser,2012,24(6):1211-1218.(in Chinese)
[14] Kolta R W B,Aly H A,F(xiàn)akhr W.A hybrid demosaicking algorithm using frequency domain and wavelet methods[C]∥International Conference on Image Information Processing,2011:1-6.