本發(fā)明屬于視頻圖像處理技術(shù)領(lǐng)域,特別是涉及一種基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法。
背景技術(shù):
隨著數(shù)碼產(chǎn)品的普及,圖像作為人類獲取信息的主要來(lái)源,得到了越來(lái)越廣泛的應(yīng)用。同時(shí),數(shù)字圖像處理技術(shù)也得到了迅速發(fā)展。而視頻圖像的采集是數(shù)字圖像處理系統(tǒng)中一個(gè)關(guān)鍵的步驟。在數(shù)字化采集過程中,受以下幾個(gè)因素的影響,圖像分辨率和圖像質(zhì)量會(huì)下降:采樣頻率——欠采樣使得圖像的頻譜混疊,因變形效應(yīng)而發(fā)生降質(zhì);大氣擾動(dòng)、脫焦、傳感器尺寸以及圖像采集設(shè)備和被拍攝物體之間的相對(duì)運(yùn)動(dòng),會(huì)造成圖像的模糊;而在圖像的獲取、傳輸和存儲(chǔ)過程中,也會(huì)引入噪聲,如高斯噪聲,也會(huì)使圖像發(fā)生降質(zhì)。
因此,如何提高圖像的分辨率和質(zhì)量,使其盡可能的接近原始的圖像成為近年來(lái)國(guó)際上圖像處理領(lǐng)域的研究熱點(diǎn)之一。而隨著圖像處理技術(shù)的發(fā)展和計(jì)算機(jī)計(jì)算能力的不斷提升,視頻圖像的超分辨率重建技術(shù)為低分辨率圖像的重建提供了很好的解決方案。它可以將一系列低分辨率的圖像按一定的比例放大,最終產(chǎn)生一幅或者多幅高分辨率的圖像,并且很好的保持原圖的結(jié)構(gòu)。
現(xiàn)有的超分辨率重建方法主要分為三大類:第一類是基于插值的超分辨率技術(shù),第二類是基于重建的超分辨率技術(shù),第三類是基于學(xué)習(xí)的超分辨率技術(shù)。
簡(jiǎn)單的線性插值技術(shù),比如雙線性和雙三次插值,計(jì)算簡(jiǎn)單但是會(huì)產(chǎn)生鋸齒效應(yīng),同時(shí)也會(huì)模糊邊緣。為了更好的保持邊緣的銳度,很多基于邊緣指導(dǎo)的插值方法被相繼提出。有研究者在2001年提出在低分辨率圖像上估計(jì)高分辨率圖像的協(xié)方差,然后用該協(xié)方差來(lái)進(jìn)行插值。有研究者在2008年提出一種基于分塊的自回歸模型,一次估計(jì)整塊像素。有研究者在2012年提出一種魯棒的軟決策插值技術(shù),在參數(shù)和像素的估計(jì)中,都采用加權(quán)最小二乘法。然而,這些方法都只考慮了邊緣部分的重建,沒有考慮紋理部分的重建。
基于重建的超分辨率技術(shù),是模擬圖像降質(zhì)的反過程,去解一個(gè)優(yōu)化方程。圖像降質(zhì)過程是,一幅高分辨率圖像,經(jīng)過模糊之后,降采樣得到低分辨率圖像。有研究者在2005年提出的基于圖像總變差分的方法是該類方法中很有代表性的一個(gè)。在該方法中,圖像的總變差分作為約束項(xiàng),加到優(yōu)化方程中,從而約束問題的解。它在保持邊緣銳度的同時(shí)可以極大的抑制人造效應(yīng)。有研究者在2011年提出通過低分辨率圖像的梯度來(lái)估計(jì)高分辨率圖像邊緣的梯度,然后把估計(jì)得到的梯度作為約束項(xiàng),加入到優(yōu)化方程中。
近年來(lái),一些基于學(xué)習(xí)的超分辨率重建方法也不斷被提出。有研究者在2010年提出一種基于稀疏表示的超分辨率重建方法。該方法提出,圖像塊可以被一個(gè)超完備的字典中的元素通過線性組合的方式表示,其中,非零系數(shù)的個(gè)數(shù)會(huì)盡可能的少。所以,首先產(chǎn)生兩個(gè)超完備的字典集合,這兩個(gè)集合中的圖像塊是一一對(duì)應(yīng)的,分別是低分辨率圖像和高分辨率圖像。對(duì)于輸入的任意低分辨率圖像塊,在低分辨率字典中尋找一種稀疏表示,然后用這一組稀疏在高分辨率字典中生成高分辨率圖像塊。有研究者在2016年提出使用深度學(xué)習(xí)的方法來(lái)重建高分辨率圖像?;痉椒ㄊ?,生成多組低分辨率和高分辨率圖像對(duì),然后把低分辨率圖像作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,把高分辨率圖像作為卷積神經(jīng)網(wǎng)絡(luò)的輸出,訓(xùn)練網(wǎng)絡(luò)。對(duì)于訓(xùn)練好的網(wǎng)絡(luò),把任意低分辨率圖像作為輸入,產(chǎn)生高分辨率圖像作為重建結(jié)果。
現(xiàn)有的幾種重建方法分別存在一下缺陷:基于插值的方法,計(jì)算量低,但是重建的效果差;基于重建的方法,不能同時(shí)將邊緣和紋理兩個(gè)部分都很好的重建;基于學(xué)習(xí)的方法計(jì)算機(jī)復(fù)雜度高,而且對(duì)于訓(xùn)練庫(kù)的選擇也有很強(qiáng)的依賴性。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明的目的是實(shí)現(xiàn)圖像超分辨率重建,同時(shí)保持圖像的邊緣和紋理結(jié)構(gòu),并降低運(yùn)算復(fù)雜度,滿足實(shí)時(shí)性的要求。
為了實(shí)現(xiàn)上述目的,本發(fā)明提出了一種基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,結(jié)合基于重建和學(xué)習(xí)的超分辨率技術(shù),可以很好的對(duì)圖像的邊緣結(jié)構(gòu)和紋理結(jié)構(gòu)進(jìn)行重建。
本發(fā)明的技術(shù)方案如下:
一種基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,包括如下步驟:
圖像分解步驟,采取基于總變差分的方法將原始低分辨率的圖像分解成結(jié)構(gòu)部分和紋理部分;
結(jié)構(gòu)部分圖像放大步驟,先用線性插值對(duì)所述結(jié)構(gòu)部分進(jìn)行放大得到初始放大圖像,然后用銳化濾波器對(duì)邊緣進(jìn)行銳化,最后進(jìn)行結(jié)果修正;
紋理部分圖像重建步驟,用線性插值針對(duì)所述紋理部分進(jìn)行放大,將放大后的圖像輸入卷積神經(jīng)網(wǎng)絡(luò),經(jīng)運(yùn)算后得到重建后的紋理圖像;以及
圖像結(jié)合步驟,將所述放大后的結(jié)構(gòu)部分圖像和所述重建后的紋理圖像組合,生成最終的超分辨率圖像
總變差分,是指信號(hào)的變化程度之和,對(duì)于二維圖像,總變差分就是圖像的梯度之和。圖像分解步驟中,基于總變差分的方法是解以下最小化方程:
其中,f代表所述圖像分解步驟中所述原始低分辨率的圖像,u代表所述圖像分解步驟中所述結(jié)構(gòu)部分,是結(jié)構(gòu)部分u的梯度,λ是拉格朗日乘子,其最優(yōu)取值為0.85。
結(jié)構(gòu)部分圖像放大步驟中進(jìn)行線性插值放大時(shí)采用雙三次線性插值技術(shù)。
結(jié)構(gòu)部分圖像放大步驟中,銳化濾波器對(duì)邊緣進(jìn)行銳化是通過對(duì)像素進(jìn)行迭代操作實(shí)現(xiàn),具體如下:
其中,Iun表示第n次迭代操作得到的圖像,n=1時(shí)Iu代表結(jié)構(gòu)圖像進(jìn)行線性插值放大后的初始圖像;t是迭代步長(zhǎng),ΔIun和通過以下方式進(jìn)行計(jì)算,
其中,Iux和Iuy分別是圖像Iu水平和垂直方向的一階導(dǎo)數(shù)。
迭代總次數(shù)n的最優(yōu)取值為50,迭代步長(zhǎng)t的最優(yōu)值為0.1。
結(jié)構(gòu)部分圖像放大步驟中結(jié)果修正的方法是對(duì)每個(gè)像素點(diǎn)使用其周邊S×S窗口內(nèi)像素點(diǎn)進(jìn)行加權(quán)平均來(lái)得到修正后的灰度值。
其中,權(quán)值使用基于灰度強(qiáng)度和灰度分布的像素點(diǎn)的相似性進(jìn)行估計(jì),所述基于灰度強(qiáng)度和灰度分布的像素點(diǎn)的相似性通過像素點(diǎn)周邊N×N相應(yīng)圖像塊的灰度強(qiáng)度和灰度分布的相似性來(lái)估計(jì),依據(jù)如下方程:
其中,ω(m,n)表示賦予SxS窗口內(nèi)像素點(diǎn)y(m,n)的權(quán)值;Z(i,j)是歸一化常量,代表所有權(quán)值的總和;參數(shù)σ1和σ2控制指數(shù)方程的衰減速度,d(m,n)為像素點(diǎn)y(i,j)周邊N×N的像素點(diǎn)組成的圖像塊N(i,j)和像素點(diǎn)y(m,n)周邊N×N的像素點(diǎn)組成的圖像塊N(m,n)之間的灰度強(qiáng)度差異,h(m,n)為圖像塊N(i,j)和N(m,n)之間的灰度分布差異。
紋理部分圖像重建步驟中進(jìn)行線性插值放大時(shí)采用雙三次線性插值技術(shù)。
紋理部分圖像重建步驟中的卷積神經(jīng)網(wǎng)絡(luò)包括輸入層、隱含層和輸出層;紋理部分圖像重建步驟中的運(yùn)算是依據(jù)卷積神經(jīng)網(wǎng)絡(luò)模型對(duì)所述放大后的圖像進(jìn)行重建,卷積神經(jīng)網(wǎng)絡(luò)模型通過訓(xùn)練建立,訓(xùn)練方法如下:
選取若干幅紋理圖像作為訓(xùn)練集,對(duì)每一幅圖像,將原圖按一定的比例采用雙三次插值的方法進(jìn)行降采樣,將降采樣之后的圖像作為低分辨率圖像,將原圖作為目標(biāo)圖像,將低分辨率圖像通過雙三次插值,放大到和原圖一致大小,將放大后的圖像劃分成多個(gè)固定大小的圖像塊,相應(yīng)的原圖也按相同方式劃分,從而構(gòu)成輸入和輸出圖像對(duì),最后進(jìn)行配對(duì)訓(xùn)練。
本發(fā)明具有如下有益效果:
本發(fā)明的一種基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,將圖像分解成結(jié)構(gòu)圖像和紋理圖像,并且根據(jù)這兩種圖像的特點(diǎn)分別按不同的方法進(jìn)行重建。其中,對(duì)于結(jié)構(gòu)圖像的重建,先使用簡(jiǎn)單的線性插值技術(shù),放大到和目標(biāo)大小一致,然后采用一個(gè)銳化濾波器,迭代的對(duì)圖像進(jìn)行銳化,之后,進(jìn)行插值修正,使最終放大之后的結(jié)構(gòu)圖像既能有銳利的邊緣,也能抑制鋸齒效應(yīng)的產(chǎn)生。對(duì)于紋理結(jié)構(gòu)的重建,充分利用卷積神經(jīng)網(wǎng)絡(luò)對(duì)高頻信息重建的能力,同時(shí),只對(duì)紋理圖像進(jìn)行處理,大大簡(jiǎn)化了運(yùn)算復(fù)雜度。本方法可以同時(shí)對(duì)圖像的邊緣和紋理進(jìn)行很好的重建,為后續(xù)的應(yīng)用奠定了基礎(chǔ),同時(shí),只有較低的運(yùn)算量,可以滿足實(shí)時(shí)性的要求。
附圖說(shuō)明
圖1是本發(fā)明的基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法流程圖;
圖2是本發(fā)明實(shí)施例的圖像分解示意圖,其中,(a)是原始圖像,(b)是結(jié)構(gòu)部分,(c)是紋理部分;
圖3是本發(fā)明實(shí)施例中對(duì)結(jié)構(gòu)部分進(jìn)行放大的子流程示意圖;
圖4是本發(fā)明實(shí)施例的結(jié)構(gòu)圖像進(jìn)行結(jié)果修正前后對(duì)比圖,其中,(a)是修正前的效果圖,(b)是修正后的效果圖;
圖5是本發(fā)明實(shí)施例中紋理部分的圖像重建的子流程示意圖;
圖6是本發(fā)明實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練方法流程圖;
圖7是本發(fā)明實(shí)施例的卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練過程示意圖。
具體實(shí)施方式
以下結(jié)合附圖對(duì)本發(fā)明做進(jìn)一步詳細(xì)闡述。
如圖1所示,一種基于總變差分和卷積神經(jīng)網(wǎng)絡(luò)的超分辨率重建方法,包括如下步驟:
在步驟S1中進(jìn)行圖像分解,將一幅圖像f分解成結(jié)構(gòu)部分u和紋理部分v,f=u+v。其中結(jié)構(gòu)部分相對(duì)平滑,并且具有銳利的邊緣,而紋理部分包含圖像的紋理和細(xì)節(jié)。分解采用基于總變差分的方法??傋儾罘?,是指信號(hào)的變化程度之和,對(duì)于二維圖像,總變差分就是圖像的梯度之和。圖像分解的問題通過解以下最小化方程來(lái)求解:
其中是圖像u的梯度,梯度越小,說(shuō)明圖像越平滑,λ是拉格朗日乘子,用來(lái)平衡這兩部分的權(quán)重。λ越大,說(shuō)明u越接近f,因此就沒有那么平滑;λ越小,總變差分項(xiàng)的權(quán)重就越大,說(shuō)明u越平滑。通過實(shí)驗(yàn)發(fā)現(xiàn),當(dāng)λ取0.85時(shí),分解效果較好。分解結(jié)果如圖2所示。其中,上方圖像為原始圖像f,下方左側(cè)圖為結(jié)構(gòu)部分u,下方右側(cè)圖為紋理部分v。
在步驟S2中,對(duì)結(jié)構(gòu)部分進(jìn)行放大,主要是要保持原圖邊緣的銳度。結(jié)構(gòu)圖像包含圖像的邊緣和平滑部分,對(duì)結(jié)構(gòu)部分的放大流程圖如圖2所示,包括以下三個(gè)步驟:
在步驟S21中進(jìn)行線性插值放大。首先,采用傳統(tǒng)的雙三次插值處理輸入的結(jié)構(gòu)圖像,獲得初始放大后的結(jié)構(gòu)圖像Iu。
雙三次插值又叫雙立方插值,是用于在圖像中“插值”(Interpolating)或增加“像素”(Pixel)數(shù)量/密度的一種方法,是能創(chuàng)造出比雙線性插值更平滑的圖像邊緣。
在步驟S22中進(jìn)行基于沖擊濾波的結(jié)構(gòu)圖像銳化。采用沖擊濾波器對(duì)邊緣進(jìn)行銳化操作。沖擊濾波器對(duì)像素的迭代操作如下:
其中,t是迭代步長(zhǎng),ΔIun和通過以下方式進(jìn)行計(jì)算:
其中,Iux和Iuy是圖像在水平和垂直方向的一階導(dǎo)數(shù)。實(shí)驗(yàn)結(jié)果表明,當(dāng)?shù)偞螖?shù)為50,迭代步長(zhǎng)為0.1的時(shí)候能取得較好的銳化效果。
以上銳化操作在保持邊緣銳度的同時(shí)也會(huì)引入一些鋸齒,所以,在步驟S23中,對(duì)插值的結(jié)果進(jìn)行修正。修正采用非局部均值濾波的方式,對(duì)于每個(gè)像素點(diǎn),使用周邊21×21窗口內(nèi)像素點(diǎn)進(jìn)行加權(quán)平均來(lái)得到修正后的灰度值。權(quán)值使用像素點(diǎn)之間的相似性進(jìn)行估計(jì),像素點(diǎn)的相似性通過圖像塊的相似性來(lái)定義,這樣更加精確也更具魯棒性。
假設(shè)當(dāng)前像素點(diǎn)為y(i,j),其周邊NxN的像素點(diǎn)組成的圖像塊為N(i,j)。假設(shè)圖像中另一像素點(diǎn)為y(m,n),其周邊NxN的像素點(diǎn)組成的圖像塊為N(m,n)。像素點(diǎn)y(i,j)和y(m,n)之間的相似性通過相應(yīng)圖像塊的灰度強(qiáng)度和灰度分布的相似性來(lái)估計(jì)。因?yàn)榻Y(jié)構(gòu)圖像主要以平滑區(qū)域和邊緣區(qū)域?yàn)橹?,因此,加入灰度?qiáng)度分布這一項(xiàng),能更加準(zhǔn)確的估計(jì)兩個(gè)圖像塊之間的相似性。兩個(gè)圖像塊之間的灰度強(qiáng)度差異通過以下公式定義:
其中,是第二范式操作符。
對(duì)于圖像塊的灰度分布,使用感知哈希的方法進(jìn)行度量。假設(shè)二進(jìn)制圖像塊H(i,j)和H(m,n)分別為圖像塊N(i,j)和N(m,n)的哈希值。對(duì)于圖像塊N(i,j),首先計(jì)算它的灰度平均值。然后對(duì)于N(i,j)中的每個(gè)像素點(diǎn),如果其灰度值大于平均灰度值則在H(i,j)相應(yīng)位置賦值為1,否則賦值為0。同理計(jì)算圖像塊N(m,n)的哈希值。兩個(gè)圖像塊之間的灰度分布差異通過以下公式定義:
其中,是第一范式操作符。根據(jù)d(m,n)和h(m,n)定義的兩類相似性,給像素點(diǎn)y(m,n)賦予一個(gè)權(quán)值ω(m,n),用來(lái)度量相似度,如以下公式所示:
其中,Z(i,j)是歸一化常量,代表所有權(quán)值的總和,參數(shù)σ1和σ2控制指數(shù)方程的衰減速度。圖像塊之間的差異越大,賦予相應(yīng)像素點(diǎn)的權(quán)值越小,反之,則權(quán)值越大。在此,將窗口塊大小N×N設(shè)置為7×7,σ1大小取7×7圖像塊的方差,σ2取0.1。
修正前和修正后結(jié)果對(duì)比圖如圖3所示,其中左側(cè)圖為未經(jīng)修正的圖,右側(cè)圖為修正后的圖??梢钥闯觯拚蟮慕Y(jié)構(gòu)圖像既能有銳利的邊緣,也能抑制鋸齒效應(yīng)的產(chǎn)生。
在步驟S3中對(duì)紋理圖像進(jìn)行重建。采用基于卷積神經(jīng)網(wǎng)絡(luò)的方法。圖5是紋理部分的圖像重建的流程圖,具體步驟包括:
在步驟S31中進(jìn)行線性插值放大,采用傳統(tǒng)的雙三次插值處理輸入的紋理圖像,獲得初始放大后的紋理圖像。
在步驟S32中進(jìn)行基于卷積神經(jīng)網(wǎng)絡(luò)的紋理圖像重建。放大后的圖像輸入卷積神經(jīng)網(wǎng)絡(luò),輸出得到重建后的紋理圖像。
傳統(tǒng)基于卷積神經(jīng)網(wǎng)絡(luò)的方法是,以低分辨率圖像作為輸入,高分辨率圖像作為輸出,由于是對(duì)圖像的全部?jī)?nèi)容進(jìn)行重建,因此,網(wǎng)絡(luò)的結(jié)構(gòu)相對(duì)復(fù)雜,而且重建效果依賴圖像庫(kù)的大小。這將帶了極大的運(yùn)算復(fù)雜度。本發(fā)明中的采用的卷積神經(jīng)網(wǎng)絡(luò),將分解之后的紋理圖像作為輸入,重建之后的紋理圖像作為輸出。同時(shí),卷積神經(jīng)網(wǎng)絡(luò)只包含三層,分別是輸入層,隱含層,輸出層。因?yàn)橹恍枰獙?duì)紋理結(jié)構(gòu)進(jìn)行重建。
重建需要建立卷積神經(jīng)網(wǎng)絡(luò)模型,具體做法是:
選取MBT數(shù)據(jù)庫(kù)中154幅紋理圖像作為訓(xùn)練集。訓(xùn)練方法如圖6所示,步驟S321中,將原圖按一定的比例采用雙三次插值的方法進(jìn)行降采樣,然后將降采樣之后的圖像為低分辨率圖像,原圖為目標(biāo)圖像;步驟S322中,將低分辨率圖像通過雙三次插值放大到和原圖一致大??;步驟S323中,將放大后的圖像劃分成多個(gè)固定大小的圖像塊,相應(yīng)的原圖也按相同方式劃分;步驟S323中,進(jìn)行圖像配對(duì)訓(xùn)練。
以下以圖7為例具體說(shuō)明訓(xùn)練過程。取圖像中一個(gè)大小為M×M的圖像塊作為輸入。然后通過由n1個(gè)卷積核分別在圖像塊上進(jìn)行卷積運(yùn)算。以其中一個(gè)卷積核為例,假設(shè)卷積核的大小為c×f1×f1,其中c是輸入圖像的通道數(shù),f1×f1是卷積核的空間大小。然后圖像塊中任意一個(gè)像素點(diǎn),取其周邊f(xié)1×f1大小的子塊,f1×f1核為權(quán)值,進(jìn)行加權(quán)平均,得到新的像素值,作為該卷積核在該像素點(diǎn)位置的特征值。因此,總共有n1個(gè)卷積核,會(huì)產(chǎn)生n1幅特征圖。通過公式表達(dá)如下:
F1(Y)=max(0,W1*Y+B1),
其中,W1代表卷積核,B1代表偏差。*代表卷積運(yùn)算。
然后,在重建階段,依舊是采用卷積,此時(shí),卷積核的大小n1×f2×f2,其中n1是第一個(gè)卷積層的輸出特征圖個(gè)數(shù),f2×f2是卷積核的空間大小。總共有c個(gè)卷積核,因?yàn)檩敵鰣D像是c通道。卷積運(yùn)算過程和第一層的卷積運(yùn)算過程一致。該層的輸出即為重建的結(jié)果。通過公式表達(dá)如下:
F2(Y)=max(0,W2*F1(Y)+B2),
其中,本例中是將彩色圖像從RGB空間轉(zhuǎn)換到Y(jié)CbCr空間,而且只對(duì)亮度Y進(jìn)行處理,因此,通道數(shù)c為1,M×M取33×33,f1×f1取9×9,n1取96,f2×f2取5×5。卷積神經(jīng)網(wǎng)絡(luò)采用caffe框架。
得到訓(xùn)練好的卷積神經(jīng)網(wǎng)絡(luò)模型之后,將通過雙三次插值進(jìn)行放大后的紋理圖像,作為卷積神經(jīng)網(wǎng)絡(luò)的輸入,輸出就是重建好的高分辨率紋理圖像。
在步驟S4中,將放大后的結(jié)構(gòu)圖像和紋理圖像組合,生成最終的超分辨率圖像。
為了驗(yàn)證本發(fā)明的優(yōu)越性,與現(xiàn)有的超分辨率重建算法進(jìn)行了對(duì)比,其中包括傳統(tǒng)的雙三次插值算法,梯度指導(dǎo)插值算法,偏移場(chǎng)圖像放大算法,以及基于稀疏表示超分辨率算法,評(píng)價(jià)是在圖像集Set14中14幅圖像上進(jìn)行,通過對(duì)各個(gè)算法來(lái)重建圖像計(jì)算客觀評(píng)價(jià)值,包括14幅圖像的平均峰值信噪比(PSNR)和結(jié)構(gòu)相似性指數(shù)(SSIM),可以從客觀上證明本發(fā)明的效果最好,如表1所示。
表1 PSNR及SSIM評(píng)價(jià)結(jié)果