趙 凡,張 葆
(1.中國(guó)科學(xué)院長(zhǎng)春光學(xué)精密機(jī)械與物理研究所
中國(guó)科學(xué)院航空光學(xué)成像與測(cè)量重點(diǎn)實(shí)驗(yàn)室,吉林 長(zhǎng)春 130033;2.中國(guó)科學(xué)院大學(xué),北京 100049)
圖像增強(qiáng)主要是將圖像轉(zhuǎn)換為更適合人眼觀察或者機(jī)器分析、識(shí)別的形式,改善圖像的質(zhì)量和視覺(jué)效果,以便獲得更清楚、明晰的富含大量有用信息的可使用圖像[1-4]。對(duì)于航拍圖像,由于惡劣的天氣條件和拍攝距離遠(yuǎn)會(huì)使圖像的對(duì)比度低、圖像的紋理細(xì)節(jié)模糊[5-6]。因此,改善圖像的對(duì)比度、增強(qiáng)圖像的細(xì)節(jié)紋理信息是航拍圖像增強(qiáng)中的重要部分。
直方圖均衡化是增強(qiáng)圖像對(duì)比度的一種常見(jiàn)方法[7-8],該方法將圖像的直方圖變?yōu)榫鶆蚍植嫉男问剑瑏?lái)增大灰度值的動(dòng)態(tài)范圍。單一形式的全局均衡化會(huì)造成一些灰度級(jí)的合并,使得一些細(xì)節(jié)信息缺失。對(duì)圖像進(jìn)行分段拉伸也是一種常見(jiàn)算法[9-10],但是分段拉伸算法的關(guān)鍵點(diǎn)在于分段點(diǎn)的選擇,分段點(diǎn)的選擇稍有不慎便影響了整幅圖像的增強(qiáng)效果。本文提出了一種能夠提高圖像對(duì)比度、增強(qiáng)圖像紋理細(xì)節(jié)的算法。首先將原始直方圖進(jìn)行子層分割,根據(jù)子層灰度概率密度之和的大小將灰度概率密度較大的灰度值動(dòng)態(tài)范圍進(jìn)行擴(kuò)展。通過(guò)對(duì)分割后子層灰度范圍的重新定義,完成灰度范圍拉伸,從而提高圖像的整體對(duì)比度。
在圖像增強(qiáng)的硬件實(shí)現(xiàn)上,現(xiàn)場(chǎng)可編程門陣列(FPGA)在結(jié)構(gòu)上的并行處理優(yōu)勢(shì)使得其更適合完成高速的運(yùn)算能力[11-13]。該系統(tǒng)采用cyclone3系列的EP3C16FPGA為處理器,具有實(shí)現(xiàn)簡(jiǎn)單、集成度高、功耗低的特點(diǎn),同時(shí)系統(tǒng)結(jié)構(gòu)性強(qiáng),具有很大的靈活性。流水線操作設(shè)計(jì)是FPGA中常用的設(shè)計(jì)思想與技術(shù)之一,利用它可以提高時(shí)鐘頻率,降低功耗。流水線系統(tǒng)為級(jí)聯(lián)結(jié)構(gòu),各級(jí)通過(guò)存貯元件分開(kāi)[14-15]。流水線最大特點(diǎn)是數(shù)據(jù)流在各步驟在時(shí)間上是連續(xù)的,并且每步運(yùn)算都是在時(shí)鐘的控制下進(jìn)行的,如果每步執(zhí)行時(shí)間并不相等,流水線就會(huì)產(chǎn)生“瓶頸”,降低了數(shù)據(jù)處理效率。而組合邏輯引起的時(shí)序事件,沒(méi)有時(shí)鐘的控制,采用組合邏輯對(duì)本文算法進(jìn)行建模,則能夠快速高效地進(jìn)行運(yùn)算。
為了更好地對(duì)圖像中的目標(biāo)增強(qiáng),突出其信息,通常我們會(huì)用直方圖分割。通過(guò)將直方圖分割成幾個(gè)子區(qū)域,然后根據(jù)子層直方圖的特征,在每個(gè)子區(qū)域中完成該區(qū)域灰度范圍的拓展或壓縮。增大灰度概率密度較大子層的動(dòng)態(tài)范圍,壓縮概率密度較小子層的灰度值范圍。通過(guò)直方圖灰度范圍的重新映射,能有效擴(kuò)大對(duì)比度,提高視覺(jué)效果。
將原始直方圖按其灰度級(jí)范圍平均分割為n個(gè)區(qū)域,即SR0,SR1,...SRn-1。為了增大處理后圖像的對(duì)比度,在這幾個(gè)區(qū)域中對(duì)灰度級(jí)進(jìn)行拉伸。我們采取以下方法對(duì)灰度范圍進(jìn)行拉伸或壓縮:
其中:h(Xi)是圖像中灰度級(jí)為Xi的像素個(gè)數(shù),SSHk則表示在分割的后的SRk與SRk+1區(qū)間內(nèi)所有灰度級(jí)的像素個(gè)數(shù)和,反映到直方圖上也就是SRk與SRk+1區(qū)間的面積。該子層區(qū)域占全局直方圖的比例為:
其中:n為圖像中所有像素?cái)?shù)和。該子層區(qū)域反映到表示灰度值的橫坐標(biāo)上為:
其中:L為灰度最大值,SSRk為區(qū)域SRk重新定義后的區(qū)域。從上述公式可以看出,重新定義后的區(qū)域SSRk與原始區(qū)域SRk的面積成正比。
圖1 子層分割Fig.1 Sub-layer segmentation
考慮到圖像的增強(qiáng)后效果以及計(jì)算量,本文中將直方圖分為4個(gè)子層,每個(gè)子層經(jīng)拉伸或壓縮后如圖1所示。可以看出灰度密度概率和較大的區(qū)域如SR0,經(jīng)過(guò)映射后其灰度范圍SSR0較廣。灰度級(jí)拉伸后,圖像的對(duì)比度得到了提高。
為了避免子層直方圖灰度范圍被過(guò)分拉伸或者壓縮,我們對(duì)子層灰度區(qū)域的重新映射過(guò)程加以約束:
其中:L為灰度最大值,k為所劃分子層區(qū)域的個(gè)數(shù)。我們將重新拉伸或者壓縮后的子層灰度區(qū)域范圍約束為:
其中:α為子層灰度范圍約束參數(shù),ASSRk為子層SSRk經(jīng)過(guò)約束后的灰度值區(qū)域。從該公式可以看出,當(dāng)SSRk小于r時(shí),則經(jīng)過(guò)約束后子層k的灰度值范圍ASSRk大于經(jīng)過(guò)壓縮后子層k的灰度值范圍SSRk,也就意味著經(jīng)過(guò)約束后,避免了概率密度之和較小區(qū)域被過(guò)分壓縮的缺點(diǎn)。當(dāng)參數(shù)α取值0.5時(shí),ASSRk與SSRk之間的關(guān)系反映到視覺(jué)上,可以用圖2表示。
圖2 子層范圍約束Fig.2 Sublayer range constraints
由圖2可以看出,原本灰度值范圍較大的SSR0經(jīng)過(guò)此約束后范圍變?yōu)锳SSR0,明顯變小,而與r相等的區(qū)域SSR1、SSR2經(jīng)過(guò)此變換后保持不變,小于r的區(qū)域SSR3約束為范圍ASSR3,范圍變大,也就防止了累積概率密度之和較小的區(qū)域被過(guò)分壓縮。
子層灰度級(jí)經(jīng)過(guò)拉伸或者壓縮后,輸入灰度值所對(duì)應(yīng)的輸出灰度值為:
其中:I(n)為輸入圖像的灰度值,O(n)為該輸入灰度值對(duì)應(yīng)輸出灰度值。
該系統(tǒng)以EP3C系列FPGA為主處理器,完成圖像的增強(qiáng)處理,系統(tǒng)的結(jié)構(gòu)框圖如圖3所示。
圖3 系統(tǒng)結(jié)構(gòu)框圖Fig.3 System block diagram
系統(tǒng)工作流程為:在FPGA相機(jī)控制模塊的控制下采集來(lái)自相機(jī)的圖像,經(jīng)過(guò)本文算法處理后,顯示在VGA上。具體實(shí)現(xiàn)過(guò)程如下。由于圖像具有實(shí)時(shí)性的特點(diǎn),在連續(xù)兩幀圖像變化不大的假設(shè)下,根據(jù)前一幀直方圖統(tǒng)計(jì)結(jié)果對(duì)后一幀進(jìn)行處理。在相機(jī)控制信號(hào)的控制下,在幀有效,行有效和數(shù)據(jù)有效的前提下,一個(gè)像素時(shí)鐘FPGA接收一個(gè)有效數(shù)據(jù),將灰度值作為RAM地址,不同地址中的數(shù)值表示該亮度的像素?cái)?shù),進(jìn)行直方圖統(tǒng)計(jì),并在統(tǒng)計(jì)過(guò)程中求得最小與最大值灰度值Vmin和Vmax。算法的實(shí)現(xiàn)具體步驟為:
步驟1:根據(jù)直方圖統(tǒng)計(jì)結(jié)果,在最大值與最小值間平分成4個(gè)區(qū)域。
步驟2:分別求出每個(gè)區(qū)域的面積。
步驟3:每個(gè)區(qū)域歸一化處理,得到每個(gè)區(qū)域灰度級(jí)范圍的重新映射。
步驟4:根據(jù)每個(gè)灰度值范圍的大小,加約束條件,求得最終每個(gè)區(qū)域的灰度級(jí)范圍。最終根據(jù)步驟1~4所求得的結(jié)果帶入公式(6)中。這樣在下一幀圖像的每個(gè)像素灰度值輸入的同時(shí)可以求得對(duì)應(yīng)的輸出灰度值。
由于本文系統(tǒng)圖像的采集是實(shí)時(shí)性的,所以系統(tǒng)處理具有實(shí)時(shí)性的要求。流水線處理是高速設(shè)計(jì)中一個(gè)比較常用的設(shè)計(jì)步驟,流水操作是在時(shí)鐘CLK的控制下按照步驟進(jìn)行的,且整個(gè)數(shù)據(jù)流的處理是單流向的,它是將某個(gè)設(shè)計(jì)處理流程分為若干步驟(串聯(lián)起來(lái))。如果本文算法按照流水操作,則可以按照如圖4的步驟流程進(jìn)行。
圖4 流水線操作Fig.4 Pipelining operation
流水線操作的最大特點(diǎn)是,數(shù)據(jù)流在各個(gè)步驟的處理從時(shí)間上看是連續(xù)的,每個(gè)步驟是在時(shí)鐘的控制下進(jìn)行的,且前一個(gè)步驟的輸出是后一個(gè)步驟的輸入。本文處理過(guò)程中,步驟1(Vmax-Vmin)/4完成需要1個(gè)時(shí)鐘周期,步驟2中從RAM地址Vmin與Vmax之間將對(duì)應(yīng)地址中數(shù)值相加,得到每個(gè)區(qū)域面積,需要Vmax-Vmin個(gè)時(shí)鐘周期,步驟三需要1個(gè)時(shí)鐘周期,步驟4需要1個(gè)時(shí)鐘周期。由于步驟2所需時(shí)間較長(zhǎng),在步驟2處理過(guò)程中,步驟3需要等待很長(zhǎng)時(shí)間。流水線各段執(zhí)行時(shí)間不相等,流水線就會(huì)產(chǎn)生堵塞,按照上述計(jì)算,本文算法完成一條線性流水線需要Vmax-Vmin+3個(gè)時(shí)鐘周期。
用流水線加速比(Tp)來(lái)衡量流水線的有效性,流水線加速比是指在完成同樣n個(gè)任務(wù)的情況下,非流水線所需的順序執(zhí)行時(shí)間與流水線所需的執(zhí)行時(shí)間的比值。
其中:n為任務(wù)數(shù),K為一條流水線上的段數(shù),Dt表示每段完成需要的時(shí)鐘周期。本文中每秒需要處理圖像數(shù)為50幀,即任務(wù)數(shù)為50,每條流水線需要分為4步完成,所以k取值4,所以Tp=50[1+1+ (Vmax-Vmin)+1]/[(1+1+ (Vmax-Vmin)+1)+49(Vmax-Vmin)]趨近于1,所以該流水線的性能并不好,處理速度比較慢,在對(duì)實(shí)時(shí)性要求較高時(shí),流水線操作并不能滿足要求。
組合邏輯沒(méi)有時(shí)鐘的控制。利用FPGA可以并行執(zhí)行程序的特點(diǎn),采用組合邏輯對(duì)本文算法進(jìn)行建模,使之能夠快速高效地進(jìn)行運(yùn)算。本文將由組合邏輯引起的事件稱為即使事件,特征是不受時(shí)鐘沿的控制。如圖5所示。
圖5 組合邏輯的即使事件Fig.5 Immediate action of combinational logic
我們把算法的每一個(gè)步驟當(dāng)作一個(gè)即時(shí)事件,根據(jù)組合邏輯的特點(diǎn),每個(gè)即時(shí)事件可在一個(gè)時(shí)鐘周期內(nèi)完成,4個(gè)即時(shí)事件可并行執(zhí)行,全部總合起來(lái)也是引起一個(gè)即時(shí)事件,所以可以在一個(gè)時(shí)鐘周期內(nèi)完成。本文算法的建模圖如圖6所示。
圖6 本文算法即時(shí)式的建模圖Fig.6 Modeling of instant style of proposed algorithm
即時(shí)事件1是執(zhí)行增強(qiáng)算法運(yùn)算的任務(wù)模塊,它的輸入是由直方圖統(tǒng)計(jì)得到的灰度最大值和灰度最小值。它根據(jù)輸入最大和最小灰度值運(yùn)算以后,將區(qū)域劃分結(jié)果輸出給下一個(gè)任務(wù)模塊即即時(shí)事件2,依次進(jìn)行,等第四任務(wù)模塊完成時(shí),完成一幀圖像的處理。采用組合邏輯對(duì)本文算法進(jìn)行建模,使之能夠快速高效地進(jìn)行運(yùn)算,整個(gè)算法在一個(gè)時(shí)鐘周期內(nèi)即可完成,相對(duì)于流水線操作處理速度明顯提高。
圖7(a)圖像大小為256×256。本文通過(guò)對(duì)原始圖像觀察,可以發(fā)現(xiàn),灰度值比較集中,反映到圖像中就是細(xì)節(jié)不明顯,對(duì)比度低。同時(shí)原始圖像主要的輪廓不明顯。
圖7 不同算法圖像增強(qiáng)后效果Fig.7 Performance comparison of different algorithms
區(qū)域多直方圖紅外圖像增強(qiáng)方法(RHE)是通過(guò)對(duì)直方圖分層,在每個(gè)子層進(jìn)行直方圖均衡化來(lái)達(dá)到對(duì)圖像增強(qiáng)的目的。這種基于分層的直方圖均衡化相對(duì)于直方圖均衡化(HE)有了一定改進(jìn),由于該方法都是基于直方圖分割的,在每個(gè)子層做直方圖均衡化處理,經(jīng)過(guò)處理后直方圖的灰度范圍得到了拓展,從(b)可以看出經(jīng)過(guò)RHE算法處理后圖像的對(duì)比度得到了很好的提高,但是由于這類方法是基于直方圖均衡化的,不可避免地會(huì)導(dǎo)致灰度級(jí)合并,通過(guò)直方圖均衡化后圖像,灰度值較小區(qū)域更暗,不能顯現(xiàn)出水紋的細(xì)節(jié)信息,且灰度值較大區(qū)域過(guò)亮,失去原有紋理信息。本文算法α=0時(shí)增強(qiáng)后的圖像較RHE算法處理后圖像相比,圖像效果有了明顯改進(jìn),可以看到圖中的水紋細(xì)節(jié)信息。但是α=0該算法對(duì)子層區(qū)域灰度值范圍的拉伸或壓縮時(shí),存在過(guò)度拉伸或壓縮的缺點(diǎn),灰度值較小的像素點(diǎn)經(jīng)過(guò)范圍拓展后灰度值更小,圖7(c)所示,部分區(qū)域過(guò)暗,水紋的細(xì)節(jié)信息不明顯,同時(shí)灰度值較大區(qū)域的灰度值經(jīng)拉伸后灰度值更大。圖7(d)為當(dāng)α=0.5時(shí),經(jīng)過(guò)處理后圖像。該灰度范圍較原圖明顯增大,但是在α的約束下,灰度值范圍沒(méi)有被過(guò)分拉伸,所以明顯看出整幅圖像的細(xì)節(jié)信息,視覺(jué)效果很好。
本文采用灰度平均梯度值(GMG)以及信息熵來(lái)判斷增強(qiáng)算法的效果和有效性?;叶绕骄荻戎凳欠謩e將圖像長(zhǎng)度和寬度方向上的相鄰像素灰度值做差后求平方和再求均方根值,它能較好地反映圖像的對(duì)比度和紋理變化特征,其值越大表示圖像越清晰,圖像質(zhì)量越好。公式為:
而信息熵代表圖像中所有信息狀態(tài)所具有的平均信息量,作為圖像質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn),信息熵越大意味著圖像中細(xì)節(jié)信息越多,視覺(jué)效果越好[16],定義為:
其中:p(i)表示灰度值為i的概率密度。
圖8 不同算法處理后圖像信息熵以及GMGFig.8 Image information entropy and GMG of enhanced image after different algorithms
由圖8可以看出經(jīng)過(guò)本文算法處理后圖像的GMG以及信息熵最大。
為了驗(yàn)證采用即時(shí)操作實(shí)現(xiàn)該算法的有效性,本文采用即時(shí)操作對(duì)圖7(a)進(jìn)行了處理與普通實(shí)現(xiàn)方法、流水線操作方式進(jìn)行了比較。圖7(a)圖像大小為256×256。
表1 三種操作性能比較Tab.1 Performance evaluation of three performances
表1給出了3種操作的性能評(píng)價(jià),可以看出,完成圖7(a)的增強(qiáng)處理,采用即時(shí)操作相比于流水線操作時(shí)間減少了5×103ns,比普通操作時(shí)間減少5.2×103ns。運(yùn)行速度明顯提高。
為了提高圖像對(duì)比度、增強(qiáng)圖像紋理細(xì)節(jié),提出了一種子層分割灰度拉伸算法,根據(jù)子層灰度概率密度之和的大小將灰度概率密度較大的灰度值動(dòng)態(tài)范圍進(jìn)行擴(kuò)展或壓縮,為了防止區(qū)間被過(guò)分拓展或壓縮,運(yùn)用系數(shù)α加以約束,完成灰度范圍拉伸,從而提高圖像的整體對(duì)比度。本文方法處理后的圖像,細(xì)節(jié)豐富,灰度動(dòng)態(tài)范圍寬,該算法很大程度上改善圖像了的清晰度和視覺(jué)質(zhì)量。該增強(qiáng)系統(tǒng)采用FPGA作為整個(gè)算法的中央處理器,根據(jù)FPGA并行執(zhí)行的特點(diǎn),采用組合邏輯對(duì)本文算法進(jìn)行建模,算法可在一個(gè)時(shí)鐘周期內(nèi)完成,相比于流水線操作時(shí)間提高5×103ns。該系統(tǒng)具有集成度高、圖像處理速度快和實(shí)時(shí)性強(qiáng)等特點(diǎn)。結(jié)果表明,該算法在硬件實(shí)現(xiàn)上,能夠有效地實(shí)現(xiàn)預(yù)期目標(biāo),基本可以實(shí)現(xiàn)工程應(yīng)用。
[1]Rui L.A quantitative measure based infrared image enhancement algorithm using plateau histogram [J].Optics Communications,2010,283:4283-4288.
[2]賀柏根,劉劍.基于 DSP+FPGA的實(shí)時(shí)圖像去霧增強(qiáng)系統(tǒng)設(shè)計(jì)[J].液晶與顯示,2013,6(28):968-972.He B G,Liu J.Real-time image defogging and enhanced system designed based on DSP+FPGA [J].Chinese Journal of Liquid Crystal and Displays,2013,6(28):968-972.(in Chinese)
[3]Xiang Z B.Image enhancement using multi scale image features extracted by top-h(huán)at transform [J].Optics & Laser Technology,2012,44:328-336.
[4]尹傳歷,王嘯哲.機(jī)載嵌入式圖像增強(qiáng)系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[J].液晶與顯示,2013,28(4):604-607.Yin C L,Wang X Z.Design and realization of airborne embedded image enhancement system [J].Chinese Journal of Liquid Crystal and Displays,2013,28(4):604-607.(in Chinese)
[5]孫偉,李大健.基于大氣散射模型的單幅圖像快速去霧[J].光學(xué)精密工程,2013,21(4):1040-1046.Sun W,Li D J.Fast single image fog removal based on atmospheric scattering model[J].Optics and Precision Engineering,2013,21(4):1040-1046.(in Chinese)
[6]易盟,郭寶龍.結(jié)合優(yōu)化梯度濾波與投影不變的航拍視頻配準(zhǔn)[J].光學(xué)精密工程,2012,20(3):651-660.Yi M,Guo B L.Aerial video registration combining optimal gradient filters and projective invariant[J].Optics and Precision Engineering,2012,20(3):651-660.(in Chinese)
[7]Turgay C.Two-dimensional histogram equalization and contrast enhancement[J].Pattern Recognition,2012,45:3810-3824.
[8]Lee Chulwoo,Lee Chul.Power-constrained contrast enhancement for emissive displays based on histogram equalization [J].IEEE Transactions on Image Processing,2012,21(1):80-93.
[9]牛英宇.圖像自適應(yīng)分段線性拉伸算法的FPGA設(shè)計(jì)[J].現(xiàn)代電子技術(shù),2010,10:78-80.Niu Y Y.Implementation of adaptive-piecewise linear stretching algorithm based on FPGA [J].Modern Electronics Technique,2010,10:78-80.(in Chinese)
[10]武治國(guó),王延杰.一種基于直方圖非線性變換的圖像對(duì)比度增強(qiáng)方法 [J].光子學(xué)報(bào),2010,39(4):755-758.Wu Z G,Wang Y J.An image enhancement algorithm based on histogram nonlinear transform [J].Acta Photon Ica Sin ica,2010,39(4):755-758.
[11]Hamouda M.An efficient dsp-fpga-based real-time implementation method of SVM algorithms for an indirect matrix converter[J].IEEE Transactions On Industrial Electronics,2011,58(11):5024-5031.
[12]熊文彬,蔣泉.基于FPGA實(shí)現(xiàn)的視頻顯示系統(tǒng)[J].液晶與顯示,2011,26(1):92-95.Xiong W B,Jiang Q.Video display system based on FPGA [J].Chinese Journal of Liquid Crystal and Displays,2011,26(1):92-95.(in Chinese)
[13]劉春香,郭永飛.星上多通道遙感圖像的實(shí)時(shí)合成壓縮[J].光學(xué)精密工程,2013,21(2):445-453.Liu C X,Guo Y F.Composition and compression of satellite multi-channel remote sensing images[J].Optics and Precision Engineering,2013,2(21):445-453.(in Chinese)
[14]Porikli F.Constant time O (1)bilateral filtering[C].IEEE Conference on Computer Vision and Pattern Recognition,2008.
[15]Paris S,Durand F.A fast approximation of the bilateral filter using a signal processing approach [C].ECCV,2006:568-580.(in Chinese)
[16]韓希珍.結(jié)合偏微分方程增強(qiáng)圖像紋理及對(duì)比度[J].光學(xué)精密工程,2012,20(6):1382-1388.Han X Z .Enhencement of image texture and contrast combined with partial differential equation[J].Optics and Precision Engineering,2012,20(6):1382-1388.(in Chinese)