本發(fā)明屬于計(jì)算機(jī)圖像處理領(lǐng)域,涉及一種單幅圖像SR重建方法。
背景技術(shù):
視頻超分辨率(Super-Resolution,SR)技術(shù)是這幾年才發(fā)展起來(lái)的新技術(shù),主要作用是對(duì)低分辨率(Low-Resolution,LR)視頻序列SR重建得到高分辨率(High-Resolution,HR)視頻序列。通過(guò)SR重建技術(shù)來(lái)提高現(xiàn)有監(jiān)控設(shè)備的分辨率,對(duì)于優(yōu)化現(xiàn)有的監(jiān)控系統(tǒng)具有重大的實(shí)際意義。
現(xiàn)有的基于學(xué)習(xí)外部圖像庫(kù)的SR重建存在著以下幾個(gè)缺陷:(1)由于其HR圖像塊來(lái)源于外部圖像庫(kù),并非是真實(shí)的圖像細(xì)節(jié),在很大程度上算是一種“圖像幻想”。(2)當(dāng)外部圖像庫(kù)和當(dāng)前待處理圖像不屬于同一類(lèi)型圖像時(shí)就會(huì)很容易出現(xiàn)錯(cuò)誤的高頻細(xì)節(jié)。(3)一般需要龐大的外部訓(xùn)練庫(kù)而且訓(xùn)練耗時(shí)也比較長(zhǎng)。比如研究者發(fā)現(xiàn)利用大約100幅外部圖像來(lái)訓(xùn)練字典,其訓(xùn)練耗時(shí)竟達(dá)32個(gè)小時(shí),除此之外還因?yàn)橥獠繄D像庫(kù)和當(dāng)前降質(zhì)圖像在紋理、顏色特征等方面上可能存在的一定的差異,就很容易出現(xiàn)虛假的高頻細(xì)節(jié)。在2006年提出的壓縮感知理論是一種全新的信號(hào)采樣理論,其優(yōu)點(diǎn)在于它突破了Nyquist采樣定理的限制,充分利用了信號(hào)的稀疏性。支持向量回歸(SVR)是支持向量機(jī)的推廣,具有良好的預(yù)測(cè)未知數(shù)據(jù)的能力。有研究人員提出的基于SVR的圖像SR方法,在訓(xùn)練階段分類(lèi)并稀疏編碼輸入的圖像塊,再用SVR學(xué)習(xí),最后在預(yù)測(cè)階段用學(xué)習(xí)好的模型預(yù)測(cè)高頻圖像塊。在這過(guò)程中他們分割圖像是采用Mean Shift算法。但相關(guān)文獻(xiàn)表明,Mean Shift算法在確定初始密度中心時(shí),如果特征空間的初始位置是隨機(jī)選取的,就可能得不到的較好的聚類(lèi)結(jié)果,最終導(dǎo)致分割后的圖像的不一致。另外,過(guò)分割圖像是指對(duì)圖像的過(guò)度分割,即把原本屬于一個(gè)整體的目標(biāo)分成了多個(gè)。經(jīng)過(guò)過(guò)分割處理后的,可能原先是背景的像素被當(dāng)作某個(gè)物體的邊緣,這樣就可能會(huì)導(dǎo)致在后面的圖像塊分類(lèi)處理中,原本應(yīng)該屬于背景集合的圖像塊會(huì)被歸類(lèi)到了邊緣的集合中,從而使得之后訓(xùn)練得到的SVR模型不準(zhǔn)確,重建圖像的邊緣也會(huì)在一定程度地出現(xiàn)模糊。
技術(shù)實(shí)現(xiàn)要素:
為了克服已有基于外部圖像庫(kù)的SR重建方法的訓(xùn)練耗時(shí)長(zhǎng),容易出現(xiàn)錯(cuò)誤的高頻細(xì)節(jié)問(wèn)題的不足,本發(fā)明提供一種訓(xùn)練耗時(shí)較短、解決利用外部圖像訓(xùn)練產(chǎn)生虛假細(xì)節(jié)的問(wèn)題、重建細(xì)節(jié)更加真實(shí)的基于壓縮感知和SVR的單幅圖像SR重建方法。
本發(fā)明解決其技術(shù)問(wèn)題所采用的技術(shù)方案是:
一種基于壓縮感知和SVR的單幅圖像SR重建方法,所述重建方法包括以下步驟:
步驟1:圖像塊分類(lèi),根據(jù)圖像當(dāng)前像素點(diǎn)是屬于邊緣還是背景來(lái)分類(lèi)保存其周?chē)脑O(shè)定尺寸圖像塊;
步驟2:圖像塊稀疏表示,使用training_instance來(lái)訓(xùn)練字典D,再使用得到的D和training_instance來(lái)稀疏編碼得到稀疏向量alpha;
步驟3:SVR學(xué)習(xí)和預(yù)測(cè),把所述重建問(wèn)題看成是一個(gè)回歸問(wèn)題,SVR用于解決如下最優(yōu)化問(wèn)題:
其中,0≤ν≤1,對(duì)于回歸問(wèn)題,用ν來(lái)代替ε,而對(duì)于分類(lèi)問(wèn)題,用ν來(lái)代替C;
使用圖像塊的稀疏系數(shù)αi來(lái)代替上述φ(xi)中的輸入屬性向量xi,yi表示該稀疏系數(shù)αi對(duì)應(yīng)的圖像塊的正中間像素的標(biāo)簽,把正中間像素灰度與當(dāng)前圖像塊灰度均值的差值作為像素的標(biāo)簽;使用ν-SVR模型來(lái)找到LR圖像塊和HR圖像塊中心像素標(biāo)簽之間的映射函數(shù);
(3.1)在訓(xùn)練階段,學(xué)習(xí)SVR模型的訓(xùn)練集的屬性是以得到的稀疏系數(shù)αh和αl為準(zhǔn),把塊分類(lèi)后得到的高頻標(biāo)簽向量training_label和低頻標(biāo)簽向量training_label_low作為學(xué)習(xí)SVR模型的訓(xùn)練集的標(biāo)簽,SVR模型學(xué)習(xí)這些輸入的特征和HR圖像中對(duì)應(yīng)的像素標(biāo)簽之間的映射函數(shù),并得到一個(gè)模型文件;
(3.2)在測(cè)試階段,對(duì)測(cè)試圖像稀疏編碼得到稀疏系數(shù)αh和αl,再使用上述訓(xùn)練階段得到的模型文件來(lái)預(yù)測(cè)測(cè)試圖像的像素標(biāo)簽。
進(jìn)一步,所述重建方法還包括以下步驟:
步驟4:保持邊緣的后處理,根據(jù)圖像邊緣不連續(xù)性的圖像先驗(yàn)知識(shí),對(duì)重建后的圖像進(jìn)行后處理,該先驗(yàn)知識(shí)由自然圖像先驗(yàn)和重建約束兩部分組成,其表達(dá)形式如下:
其中{y}表示LR圖像,{x}表示HR圖像,自然圖像先驗(yàn)約束是等號(hào)右邊第一項(xiàng),第二項(xiàng)是重建約束,目標(biāo)是使得該條件概率達(dá)到最大值,再把(2)式轉(zhuǎn)化為一個(gè)因子圖的表示形式,并使用max-product置信度傳播算法來(lái)計(jì)算隨機(jī)變量的最大后驗(yàn)概率MAP的估計(jì)。
再進(jìn)一步,所述步驟1中,圖像塊分類(lèi)的過(guò)程如下:
(1.1)首先在訓(xùn)練SVR模型階段采用雙三次插值對(duì)輸入的訓(xùn)練圖像truthImg縮小4倍,得到的圖像記為inputImg,同時(shí)也記為HRImg,然后對(duì)inputImg用雙三次插值縮小2倍記為L(zhǎng)RImg,再對(duì)LRImg采用雙三次插值放大2倍得到插值圖像interpImg。
(1.2)用高斯拉普拉斯算子對(duì)插值圖像interpImg邊緣檢測(cè),得二值圖像記為HRBndyImg;
(1.3)對(duì)圖像HRImg塊分類(lèi),從HRBndyImg的左上角像素點(diǎn)開(kāi)始遍歷,即第一個(gè)像素的位置為第3行,第3列,第二個(gè)像素的位置為第4行,第3列,最后的像素的位置為第(imageSizeY-2)行,第(imageSizeX-2)列,其中imageSizeX表示HRBndyImg的寬度,imageSizeY表示HRBndyImg的高度;取水平和垂直的采樣間隔為1,如果HRBndyImg第j行,第i列的灰度值為255,則當(dāng)前像素點(diǎn)是邊緣的一部分,為了歸一化到0-1的大小范圍把HRImg第j行,第i列處的像素的灰度值除以255,再將該灰度值記錄到一個(gè)標(biāo)簽向量training_label中保存起來(lái),該標(biāo)簽向量training_label就保存著HRImg中所有屬于圖像邊緣的那些像素的灰度值;同時(shí),在interpImg中取出以第j行,第i列位置處的像素為中心位置的大小為5×5的圖像塊,再對(duì)圖像塊內(nèi)的每個(gè)像素的灰度都除以255以歸一化到0-1,并轉(zhuǎn)換為行向量保存到矩陣training_instance中,矩陣training_instance的每一行都保存的是interpImg中以歸類(lèi)為邊緣點(diǎn)的像素為中心的5×5大小的圖像塊;若圖像HRBndyImg第j行,第i列的像素灰度為0,則當(dāng)前像素點(diǎn)是背景的一部分,同樣對(duì)其進(jìn)行歸一化處理并將該灰度記錄到另一個(gè)標(biāo)簽向量training_label_low中。在interpImg中取出以第j行,第i列的像素為中心的大小為5×5的圖像塊,歸一化處理并轉(zhuǎn)換為行向量后保存到矩陣training_instance_low中;training_instance_low的每一行都保存的是interpImg中已歸類(lèi)為背景點(diǎn)的像素為中心的5×5大小的圖像塊,列向量training_label的行數(shù)和矩陣training_instance的行數(shù)相同,同理training_label_low的行數(shù)和矩陣training_instance_low的行數(shù)也相同;
在測(cè)試學(xué)習(xí)好的SVR模型階段,先對(duì)輸入的測(cè)試圖像用雙三次插值縮小2倍記為L(zhǎng)RImg,再把LRImg用雙三次插值放大2倍記為HRImg和interpImg,并像訓(xùn)練階段一樣對(duì)interpImg進(jìn)行圖像邊緣檢測(cè)和圖像塊分類(lèi);對(duì)分類(lèi)后的每一個(gè)圖像塊都計(jì)算其圖像塊內(nèi)的灰度均值,對(duì)于分類(lèi)后屬于圖像邊緣的圖像塊,把列向量training_label中的每一個(gè)值都減去該均值,同理也把矩陣training_instance中該行的每一個(gè)值都減去該均值。
更進(jìn)一步,所述步驟2中,所述圖像塊稀疏表示的過(guò)程如下:
(2.1)使用在線字典學(xué)習(xí)算法對(duì)圖像信號(hào)集合training_instance和training_instance_low訓(xùn)練字典得到高頻字典Dh和低頻字典Dl;
(2.2)采用高效的LARS-Lasso算法對(duì)高頻和低頻的圖像信號(hào)集合來(lái)進(jìn)行稀疏編碼,分別得到稀疏系數(shù)向量αh和αl。
本發(fā)明的技術(shù)構(gòu)思是:在達(dá)到較好的路徑規(guī)劃效果的前提下提高路徑規(guī)劃效率,在傳統(tǒng)A*算法的基礎(chǔ)上,采用“由粗到細(xì)”的搜索策略和基于層次包圍盒法的碰撞檢測(cè)算法,進(jìn)行碰撞預(yù)檢測(cè)和碰撞精細(xì)檢測(cè),從而確定未碰撞區(qū)域拓展點(diǎn),最后進(jìn)行代價(jià)值評(píng)估。
本發(fā)明的有益效果主要表現(xiàn)在:
(1)訓(xùn)練耗時(shí)少。相比于訓(xùn)練數(shù)百?gòu)埻獠繄D像的方法,本文方法只需訓(xùn)練當(dāng)前降質(zhì)圖像,前者訓(xùn)練耗時(shí)長(zhǎng)達(dá)三十幾個(gè)小時(shí),后者只需要三四分鐘即可。
(2)重建細(xì)節(jié)更加真實(shí)。本方法充分利用降質(zhì)圖像本身的自相似性,不會(huì)像基于學(xué)習(xí)外部圖像庫(kù)那樣得到虛假的高頻細(xì)節(jié),視覺(jué)效果也更加接近原圖。
(3)消除了邊緣的振鈴效應(yīng),邊緣保持的更加清晰、鋒利。
附圖說(shuō)明
圖1是基于壓縮感知和SVR的單幅圖像SR重建方法的流程圖。
具體實(shí)施方式
下面結(jié)合附圖對(duì)本發(fā)明作進(jìn)一步描述。
參照?qǐng)D1,一種基于壓縮感知和SVR的單幅圖像SR重建方法,包括以下步驟:
步驟1:圖像塊分類(lèi),即根據(jù)圖像當(dāng)前像素點(diǎn)是屬于邊緣還是背景來(lái)分類(lèi)保存其周?chē)囊欢ǔ叽绲膱D像塊。
(1.1)在訓(xùn)練SVR模型階段,首先對(duì)輸入的訓(xùn)練圖像truthImg用雙三次插值縮小4倍以降低之后的訓(xùn)練時(shí)間,得到的圖像記為inputImg(同時(shí)也記為HRImg),再對(duì)inputImg用雙三次插值縮小2倍記為L(zhǎng)RImg,再對(duì)LRImg采用雙三次插值放大2倍得到插值圖像interpImg。
(1.2)用高斯拉普拉斯算子對(duì)插值圖像interpImg邊緣檢測(cè),得二值圖像記為HRBndyImg。高斯拉普拉斯算子可以平滑噪聲,同時(shí)對(duì)細(xì)節(jié)相應(yīng)更強(qiáng),而不會(huì)出現(xiàn)寬邊緣。
(1.3)對(duì)圖像HRImg塊分類(lèi)。從HRBndyImg的左上角像素點(diǎn)開(kāi)始遍歷,即第一個(gè)像素的位置為第3行,第3列。第二個(gè)像素的位置為第4行,第3列。最后的像素的位置為第(imageSizeY-2)行,第(imageSizeX-2)列。其中imageSizeX表示HRBndyImg的寬度,imageSizeY表示HRBndyImg的高度。我們?nèi)∷胶痛怪钡牟蓸娱g隔為1。根據(jù)HRBndyImg第j行,第i列的灰度,若其值為255,則當(dāng)前像素點(diǎn)是邊緣的一部分,我們把HRImg第j行,第i列處的像素的灰度值除以255以歸一化到0-1的大小范圍。再將該灰度值記錄到一個(gè)標(biāo)簽向量training_label中保存起來(lái)。該標(biāo)簽向量training_label就保存著HRImg中所有歸類(lèi)為圖像邊緣的那些像素的灰度值。同時(shí),我們?cè)趇nterpImg中取出以第j行,第i列位置處的像素為中心位置的大小為5×5的圖像塊,再對(duì)圖像塊內(nèi)的每個(gè)像素的灰度都除以255以歸一化到0-1,并轉(zhuǎn)換為行向量保存到矩陣training_instance中。矩陣training_instance的每一行都保存的是interpImg中以歸類(lèi)為邊緣點(diǎn)的像素為中心的5×5大小的圖像塊。類(lèi)似的,若圖像HRBndyImg第j行,第i列的像素灰度為0,則當(dāng)前像素點(diǎn)是背景的一部分,我們同樣對(duì)其進(jìn)行歸一化處理并將該灰度記錄到另一個(gè)標(biāo)簽向量training_label_low中。在interpImg中取出以第j行,第i列的像素為中心的大小為5×5的圖像塊,歸一化處理并轉(zhuǎn)換為行向量后保存到矩陣training_instance_low中。對(duì)應(yīng)的,training_instance_low的每一行都保存的是interpImg中已歸類(lèi)為背景點(diǎn)的像素為中心的5×5大小的圖像塊。列向量training_label的行數(shù)和矩陣training_instance的行數(shù)相同,同理training_label_low的行數(shù)和矩陣training_instance_low的行數(shù)也相同。在測(cè)試學(xué)習(xí)好的SVR模型階段,我們先對(duì)輸入的測(cè)試圖像用雙三次插值縮小2倍記為L(zhǎng)RImg,再把LRImg用雙三次插值放大2倍記為HRImg和interpImg,并像訓(xùn)練階段一樣對(duì)interpImg進(jìn)行圖像邊緣檢測(cè)和圖像塊分類(lèi)。為了加快后續(xù)稀疏編碼步驟的運(yùn)算速度,我們對(duì)分類(lèi)后的每一個(gè)圖像塊都計(jì)算其圖像塊內(nèi)的灰度均值,對(duì)于分類(lèi)為圖像邊緣的圖像塊,我們把列向量training_label中的每一個(gè)值都減去該均值,同理也把矩陣training_instance中該行的每一個(gè)值都減去該均值。
步驟2:圖像塊稀疏表示。使用training_instance來(lái)訓(xùn)練字典D,再使用得到的D和training_instance來(lái)稀疏編碼得到稀疏向量alpha。
(2.1)對(duì)圖像信號(hào)集合training_instance和training_instance_low使用Julien Mairal等人的在線字典學(xué)習(xí)算法訓(xùn)練字典得到高頻字典Dh和低頻字典Dl。K-SVD等傳統(tǒng)的字典構(gòu)造算法是迭代批處理的,它們?cè)诿看蔚鷷r(shí)都存取整個(gè)訓(xùn)練樣本集。所以無(wú)法高效率地應(yīng)對(duì)大型的訓(xùn)練樣本集或視頻序列數(shù)據(jù)。而該在線字典學(xué)習(xí)算法每次只處理一個(gè)信號(hào),運(yùn)行效率更高,更省內(nèi)存。
(2.2)采用高效的LARS-Lasso算法對(duì)高頻和低頻的圖像信號(hào)集合來(lái)進(jìn)行稀疏編碼,分別得到稀疏系數(shù)向量αh和αl。
步驟3:SVR學(xué)習(xí)和預(yù)測(cè)。支持向量回歸Support Vector Regression(SVR)是支持向量機(jī)Support Vector Machine(SVM)的推廣。很早以前研究人員就把SVR理論運(yùn)用到盲圖像去卷積的問(wèn)題中,取得了顯著的效果。而圖像SR重建和圖像去卷積有一定的相似之處,都需要通過(guò)一定的方法來(lái)預(yù)測(cè)丟失的高頻圖像細(xì)節(jié)。所以,我們把SVR理論也運(yùn)用到圖像SR重建,把該重建問(wèn)題看成是一個(gè)回歸問(wèn)題。SVR用于解決如下最優(yōu)化問(wèn)題:
其中0≤ν≤1,對(duì)于回歸問(wèn)題,用ν來(lái)代替ε。而對(duì)于分類(lèi)問(wèn)題,用ν來(lái)代替C。我們使用的就是ν-SVR模型。應(yīng)用到圖像SR重建這一具體問(wèn)題,我們使用圖像塊的稀疏系數(shù)αi來(lái)代替上述φ(xi)中的輸入屬性向量xi,yi表示該稀疏系數(shù)αi對(duì)應(yīng)的圖像塊的正中間像素的標(biāo)簽(我們把正中間像素灰度與當(dāng)前圖像塊灰度均值的差值作為像素的標(biāo)簽)。我們使用ν-SVR模型來(lái)找到LR圖像塊和HR圖像塊中心像素標(biāo)簽之間的映射函數(shù)。由于支持向量的樣本數(shù)遠(yuǎn)遠(yuǎn)少于輸入的訓(xùn)練樣本數(shù)目,所以該模型的復(fù)雜度并不會(huì)很高。比如對(duì)于512×512大小的person訓(xùn)練圖像,其高頻圖像塊訓(xùn)練樣本的數(shù)目是1261,而支持向量的樣本數(shù)只有722。
(3.1)在訓(xùn)練階段,我們把得到的稀疏系數(shù)αh和αl作為學(xué)習(xí)SVR模型的訓(xùn)練集的屬性,把塊分類(lèi)后得到的高頻標(biāo)簽向量training_label和低頻標(biāo)簽向量training_label_low作為學(xué)習(xí)SVR模型的訓(xùn)練集的標(biāo)簽。SVR模型學(xué)習(xí)這些輸入的特征和HR圖像中對(duì)應(yīng)的像素標(biāo)簽之間的映射函數(shù),并得到一個(gè)模型文件。其中含有關(guān)于SVR的一些有用參數(shù)信息。
(3.2)在測(cè)試階段,我們同樣對(duì)測(cè)試圖像稀疏編碼得到稀疏系數(shù)αh和αl,再使用上述訓(xùn)練階段得到的模型文件來(lái)預(yù)測(cè)測(cè)試圖像的像素標(biāo)簽。由于在前面圖像塊分類(lèi)步驟中,像素的標(biāo)簽減去了圖像塊的灰度均值,所以我們需要再加上該均值并乘以255歸一化到0-255的灰度范圍,把這個(gè)灰度值作為最終的HR圖像灰度值。
步驟4:保持邊緣的后處理。SVR模型傾向于使用光滑的函數(shù)來(lái)更好地?cái)M合數(shù)據(jù),導(dǎo)致函數(shù)快速變化的地方變得光滑。對(duì)于一幅圖像,就會(huì)一定程度地模糊邊緣。同時(shí)可能產(chǎn)生振鈴效應(yīng)。針對(duì)這一不足,我們使用圖像邊緣不連續(xù)性的圖像先驗(yàn)知識(shí),對(duì)重建后的圖像進(jìn)行后處理,去除了振鈴效應(yīng),邊緣保持的更加清晰、鋒利。該先驗(yàn)知識(shí)由自然圖像先驗(yàn)和重建約束兩部分組成。其表達(dá)形式如下:
其中{y}表示LR圖像,{x}表示HR圖像,等號(hào)右邊第一項(xiàng)是自然圖像先驗(yàn)約束,第二項(xiàng)是重建約束。算法的目標(biāo)是使得該條件概率達(dá)到最大值。再把(2)式轉(zhuǎn)化為一個(gè)因子圖的表示形式,并使用max-product置信度傳播算法來(lái)計(jì)算隨機(jī)變量的最大后驗(yàn)概率MAP的估計(jì)。實(shí)驗(yàn)證實(shí),該圖像先驗(yàn)知識(shí)的后處理過(guò)程能改善振鈴效應(yīng)和被模糊的邊緣。