本發(fā)明涉及超分辨力圖像復(fù)原技術(shù),具體涉及一種基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原技術(shù)。
背景技術(shù):
目前,各類成像器件正在廣泛的應(yīng)用于各大領(lǐng)域,但是由于各種條件的限制,成像質(zhì)量往往不盡人意,因此人們迫切希望找到一種方法能夠完善圖像質(zhì)量。由于光學(xué)系統(tǒng)受到光學(xué)系統(tǒng)衍射的影響,因此無法獲取傳遞函數(shù)截止頻率以外的圖像信息。如何能觀測到截止頻率以外的圖像信息成為了研究熱潮。
目前,超分辨力圖像復(fù)原方法主要有:頻譜外推法、pocs法、神經(jīng)網(wǎng)絡(luò)復(fù)原法和bayes分析法等。其中具有較強超分辨力復(fù)原能力的算法是基于bayes分析的poisson-ml圖像復(fù)原方法,簡稱pml算法。但是該算法對噪聲較大的圖像不能取得良好的復(fù)原效果。有學(xué)者在pml算法的基礎(chǔ)上提出基于poisson-markov場的超分辨力圖像復(fù)原算法。該算法不僅具有較強的圖像復(fù)原能力,又具有較好的去噪效果。但該方法涉及卷積運算、相關(guān)運算以及一些乘除運算,計算量較大,且想要獲得質(zhì)量較高的復(fù)原圖像必須迭代多次,因此用軟件實現(xiàn)該算法并不適用于需要實時處理的成像系統(tǒng)。要在實時性要求高的成像系統(tǒng)中使用該方法進行圖像復(fù)原,則必須用硬件實現(xiàn)。但是由于多次迭代過程中需要存儲大量的中間運算值,對硬件的存儲資源又是一大考驗。
本發(fā)明提出的圖像復(fù)原方法是在硬件平臺上實現(xiàn)的基于poisson-markov場的超分辨力圖像復(fù)原算法,利用并行處理的思想,對部分運算以及運算結(jié)果的存儲做了并行處理,不僅可以提高算法的執(zhí)行效率,還大大降低了迭代過程中對硬件存儲資源的消耗。有利于設(shè)備的低功耗、小型化、低成本的研究。
技術(shù)實現(xiàn)要素:
本發(fā)明的目的在于提供一種基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法,能夠復(fù)原圖像截止頻率以外的信息,使圖像獲得更高的分辨率,提高圖像的質(zhì)量。本發(fā)明是基于zynq硬件平臺實現(xiàn)的,由zynq芯片的pl部分完成圖像復(fù)原算法,采用并行處理的方式,對算法中的計算步驟做并行處理,同時用pl內(nèi)部的存儲資源對計算中間值進行緩存。
實現(xiàn)本發(fā)明目的的技術(shù)解決方案為:基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法,用數(shù)學(xué)模型描述如公式(1),其中運算符*為卷積運算符,運算符
由公式(1)可知,每輪迭代包括圖像拓展、卷積運算和相關(guān)運算步驟,本發(fā)明的基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法,將圖像拓展、卷積運算和相關(guān)運算步驟并行執(zhí)行;其中,
圖像拓展步驟包括:根據(jù)卷積核函數(shù)模版大小對原始圖像邊緣進行拓展;將拓展后的圖像數(shù)據(jù)流緩存進圖像緩存空間;
卷積運算步驟包括:
(a1)從迭代結(jié)果緩存空間讀取上一次迭代結(jié)果,將上一次迭代結(jié)果與卷積核函數(shù)進行卷積運算;對于第一次迭代,上一次的迭代結(jié)果為拓展圖像;
(a2)將原始圖像與步驟(a1)中所得到的結(jié)果相除得到本輪次的卷積運算結(jié)果,并緩存至卷積結(jié)果緩存空間;
相關(guān)運算步驟包括:
(b1)從卷積結(jié)果緩存空間讀取當(dāng)前迭代次對應(yīng)的卷積運算結(jié)果,將卷積運算結(jié)果與卷積核函數(shù)進行相關(guān)運算;
(b2)從迭代結(jié)果緩存空間讀取上一次迭代結(jié)果,將上一次迭代結(jié)果與步驟(b1)中所得到的結(jié)果相乘得到本輪次的迭代結(jié)果,并緩存至迭代結(jié)果緩存空間;對于第一次迭代,上一次的迭代結(jié)果為拓展圖像。
作為優(yōu)選,所述圖像拓展步驟中,對于m×m大小的卷積核函數(shù)模版,將原始圖像四邊緣各拓展m-1個像素。
作為優(yōu)選,所述圖像緩存空間大小為((n-1)×(m+1)+2)×(w+m-1),所述卷積結(jié)果緩存空間大小為n×(m+1)×(w+m-1),所述迭代結(jié)果緩存空間大小為n×(m+2)×(w+m-1),其中,w為拓展后圖像的寬度,n為設(shè)定的總迭代次數(shù)。
本發(fā)明與現(xiàn)有技術(shù)相比,其顯著優(yōu)點為:1.提高了算法的運行效率,可用于紅外視頻圖像實時處理。2.大大縮減了硬件消耗的存儲資源,使得zynq芯片pl部分的內(nèi)部存儲資源可以滿足算法的存儲需求,有利于設(shè)備的低功耗、小型化、低成本的設(shè)計。3.zynq芯片的pl部分本質(zhì)上是fpga,因此本發(fā)明不僅適用于zynq硬件平臺,同樣適用于fpga硬件平臺。
附圖說明
圖1本發(fā)明的圖像拓展示意圖。
圖2本發(fā)明的緩存buff_g示意圖,用來緩存拓展圖像。
圖3本發(fā)明的緩存buff_b(n-1)示意圖,用來緩存第(n-1)次迭代的卷積結(jié)果。
圖4本發(fā)明的緩存buff_b(n)示意圖,用來緩存第n次迭代的卷積結(jié)果。
圖5本發(fā)明的緩存buff_a(n-1)示意圖,用來緩存第(n-1)次迭代結(jié)果。
圖6本發(fā)明的緩存buff_a(n)示意圖,用來緩存第n次迭代結(jié)果。
圖7本發(fā)明的方法流程示意圖。
具體實施方式
下面結(jié)合附圖及具體實施實例,對本發(fā)明做進一步詳細說明。
本發(fā)明是一種基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法,其原理為:在視頻圖像獲取的過程中,由于受到各種因素的影響,圖像質(zhì)量不能滿足人的觀察需求。超分辨率圖像復(fù)原算法,可以復(fù)原圖像截止頻率以外的信息,以此獲得更高的圖像分辨率,增強了圖像的細節(jié)。算法數(shù)學(xué)模型如公式(1):
n為迭代次數(shù),n的值越大,迭代次數(shù)越多,則獲得的復(fù)原圖像質(zhì)量越好,但是n的值越大,計算量也越大,在對算法用matlab進行復(fù)原效果驗證時可發(fā)現(xiàn),一幅分辨率為320×240的紅外圖像迭代20次可獲得較高的圖像質(zhì)量。為了滿足視頻圖像的實時處理的要求,需要在硬件平臺上實現(xiàn)該復(fù)原算法,如果對一整幅圖像做完卷積運算后再進行相關(guān)運算,那么迭代20次需要消耗大量的硬件資源,硬件的內(nèi)部存儲資源無法滿足迭代過程中計算中間值的存儲要求。因此本發(fā)明利用并行執(zhí)行的思想,并行處理每一次迭代中的卷積運算和相關(guān)運算,并只對一部分計算中間值進行緩存,提高了運算效率,大大降低了硬件存儲資源的消耗。
本發(fā)明一種基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法其硬件實現(xiàn)流程圖如圖7所示,其主要模塊包括:圖像拓展模塊、卷積運算模塊、相關(guān)運算模塊。圖像拓展模塊用于原始圖像拓展;卷積運算模塊用于迭代過程中卷積運算以及相應(yīng)的乘除運算;相關(guān)運算模塊用于迭代過程中相關(guān)運算以及相應(yīng)的乘除運算。三大模塊為并行處理。
如圖7所示,本發(fā)明實施例公開的一種基于硬件平臺實現(xiàn)的超分辨力圖像復(fù)原方法,包括以下步驟:
步驟1:圖像拓展。具體實施方法如圖(1),黑色邊框內(nèi)的是分辨率為320×240的原始圖像,核函數(shù)模板大小11×11,原始圖像需要拓展的大小為(11-1)×2=20,即原始圖像邊緣需各拓展10個像素點,圖1中黑框內(nèi)abcd部分為原始圖像邊緣,黑框外abcd是用相應(yīng)的原始圖像邊緣拓展的10各像素。拓展后的圖像數(shù)據(jù)流緩存進緩存空間buff_g,buff_g的空間大小為350×230。
步驟2:第n-1次的迭代結(jié)果進行卷積運算,計算公式為公式(2),其中fn-1(i,j)為第n-1次的迭代結(jié)果,h為卷積核函數(shù)。
在第一次迭代運算中,fn-1(i,j)為拓展圖像g(i,j),因此在拓展圖像數(shù)據(jù)緩存進buff_g的同時,卷積核函數(shù)h同時與buff_g中的數(shù)據(jù)進行第一次迭代的卷積運算,獲得卷積運算結(jié)果后執(zhí)行步驟3。
在第n次迭代運算中,fn-1(i,j)為第n-1次迭代運算結(jié)果,存在buff_a(n-1)中,當(dāng)?shù)趎-1次迭代結(jié)果緩存進buff_a(n-1)的同時,卷積核函數(shù)h同時與buff_a(n-1)中的數(shù)據(jù)進行第n次卷積運算,獲得卷積運算結(jié)果后執(zhí)行步驟3。
fn-1(i,j)*(h×214)公式(2)
步驟3:原始圖像與第n次卷積結(jié)果相除,計算公式為公式(3),計算所得的結(jié)果緩存進buff_b(n),其中g(shù)(i,j)為拓展后的圖像。
步驟4:在步驟3中所得的結(jié)果緩存進buff_b(n)的同時,buff_b(n)中的數(shù)據(jù)與卷積核函數(shù)h進行相關(guān)運算,計算公式為公式(4)。
步驟5:第n-1次迭代結(jié)果與步驟4所得結(jié)果相乘,計算公式為公式(5),計算所得的結(jié)果緩存進buff_a(n),即第n次迭代結(jié)果。
步驟1屬于圖像拓展模塊,步驟2和步驟3屬于卷積運算模塊,步驟4和步驟5屬于相關(guān)運算模塊。三大模塊并行執(zhí)行。
本發(fā)明使用zynq芯片pl部分的內(nèi)部存儲資源來作為緩存空間,稱為buff空間。圖2-6分別示意了上述步驟中所涉及的buff。圖2中的buff_g,用來緩存拓展圖像的緩存buff,黃色部分為核函數(shù)h,同時也是一個11×11的核函數(shù)模板。圖3中的buff_b(n-1),用來緩存一幀圖像第(n-1)次迭代中的卷積運算結(jié)果。圖4中的buff_b(n),用來緩存一幀圖像第n次迭代中的卷積運算結(jié)果。圖5中的buff_a(n-1),用來緩存一幀圖像第(n-1)次迭代結(jié)果。圖6中的buff_a(n),用來緩存一幀圖像的第n次迭代結(jié)果。
一幀圖像進行第一次迭代的具體實施步驟如下:
s1:當(dāng)拓展圖像數(shù)據(jù)流存入buff_g的同時,核函數(shù)h從左往右與buff_g中的數(shù)據(jù)進行第一次迭代的卷積運算,執(zhí)行公式(6),獲得的卷積運算結(jié)果執(zhí)行公式(7),運算結(jié)果同時存入buff_b(1)中。
fn(i,j)*(h×214)公式(6)
s2:在進行卷積運算的同時,核函數(shù)h從左往右與buff_b(1)中的數(shù)據(jù)進行相關(guān)運算,執(zhí)行公式(8),獲得的相關(guān)運算結(jié)果執(zhí)行公式(9),運算結(jié)果同時存入buff_a(1)中。在第一次迭代運算時,公式中的fn(i,j)為拓展圖像g(i,j)。
一幀圖像進行第(n)次迭代的具體實施步驟如下:
s1:當(dāng)?shù)?n-1)次迭代結(jié)果存入buff_a(n-1)時,核函數(shù)h從左往右與buff_a(n-1)進行第(n)次迭代的卷積運算結(jié)果,執(zhí)行公式(10)
fn-1(i,j)*(h×214)公式(10)
獲得的卷積運算結(jié)果執(zhí)行公式(11)
運算結(jié)果用line_buff緩存,并且同時存入buff_b(n)中。
s2:在進行卷積運算的同時,核函數(shù)h從左往右與buff_b(n)中的數(shù)據(jù)進行相關(guān)運算,執(zhí)行公式(12),獲得的相關(guān)運算結(jié)果執(zhí)行公式(13),運算結(jié)果同時存入buff_a(n)中。
緩存buff_g所需大小為230×350。緩存buff_a(n-1)、緩存buff_a(n)分別為buff_a中第(n-1)次、第n次迭代對應(yīng)的緩存,buff_a所需大小為20×12×350,緩存buff_b(n-1)、緩存buff_b(n)分別為buff_b中第(n-1)次、第n次迭代對應(yīng)的緩存,buff_b所需大小為20×13×350。