本發(fā)明涉及一種基于不同冗余字典的圖像修補(bǔ)方法,屬于圖像復(fù)原技術(shù)領(lǐng)域。
背景技術(shù):
圖像修補(bǔ)技術(shù)有很多應(yīng)用,常見(jiàn)的有去除掉照片上的刮痕、去掉圖片中一些特定物體和照片中的文字等,其他的還有像珍貴的書(shū)畫(huà)和文物作品的修補(bǔ),可以看到,圖像修補(bǔ)技術(shù)具有很高的實(shí)際意義。
圖像修補(bǔ)問(wèn)題研究至今已經(jīng)取得了一定的進(jìn)展,出現(xiàn)了很多的修補(bǔ)方法。典型的方法主要?dú)w納為兩類(lèi):第一類(lèi)是基于偏微分方程(partialdifferentialequation,pde)和變分算法理論,這類(lèi)方法的修補(bǔ)過(guò)程是從圖像中已知的區(qū)域擴(kuò)展到未知區(qū)域,也就是圖像中缺失的部分。第二類(lèi)方法則是基于樣本紋理合成的技術(shù),這類(lèi)方法是從待修補(bǔ)區(qū)域邊緣開(kāi)始分割圖像小塊,從缺失圖像的已知部分尋找和待處理的圖像小塊最匹配的圖像小塊,利用對(duì)應(yīng)位置上的元素來(lái)進(jìn)行圖像修補(bǔ)。但是要注意的是,自然圖像除了具有紋理層信息之外,還具有結(jié)構(gòu)層信息,僅修補(bǔ)圖像的紋理層并不能取得很好的修補(bǔ)效果,忽略了缺失區(qū)域的結(jié)構(gòu)層。
公開(kāi)號(hào)cn104680492a《基于樣本結(jié)構(gòu)一致性的圖像修復(fù)方法》,該方法首先計(jì)算圖像中缺失區(qū)域邊緣上每一像素點(diǎn)的優(yōu)先權(quán)函數(shù)值,選取其中具有最大優(yōu)先權(quán)值的像素點(diǎn),將包含該像素點(diǎn)的邊緣小塊作為待修復(fù)的目標(biāo)塊,從圖像中已知區(qū)域中尋找和目標(biāo)塊最匹配的圖像塊,利用對(duì)應(yīng)位置上的像素值來(lái)修補(bǔ)目標(biāo)塊上未知的像素點(diǎn),接著更新填充像素的置信度。重復(fù)上述步驟直至圖像中缺損區(qū)域被填補(bǔ)。但是該方法在修補(bǔ)大塊缺失區(qū)域時(shí),圖像細(xì)節(jié)信息恢復(fù)效果不好,另外由于該方法的貪婪性,修補(bǔ)結(jié)果容易引入不相關(guān)的物體。
chan等人在論文“nontextureinpaintingbycurvature-drivendiffusions”中提出了基于曲率擴(kuò)散(curvature-drivendiffusions,cdd)的非線性偏微分方程修補(bǔ)模型解決圖像修補(bǔ)問(wèn)題,同時(shí)可以解決線性斷裂物體處恢復(fù)時(shí)出現(xiàn)的視覺(jué)不連通性的問(wèn)題。該方法在處理較小的缺失區(qū)域時(shí),可以很好的恢復(fù)結(jié)構(gòu)層信息,比如邊緣部分。但是在處理較大區(qū)域時(shí)效果不是很好,容易引入模糊。
chen等人在論文“sketch-guidedtexture-basedimageinpainting”中,采用對(duì)圖像缺失位置的結(jié)構(gòu)信息和紋理信息分別進(jìn)行修補(bǔ),其中草圖模型(sketchmodel)用來(lái)重構(gòu)缺失圖像的結(jié)構(gòu)信息,然后再采用基于圖像塊的紋理合成方法去合成圖像中缺失的區(qū)域。基于樣例的圖像修補(bǔ)算法可以處理大塊的缺失區(qū)域,可以更好的恢復(fù)待修補(bǔ)區(qū)域的紋理信息,但是該修補(bǔ)算法的貪婪性,在處理過(guò)程中可能會(huì)引入不相關(guān)的物體。
綜上,現(xiàn)有的圖像修補(bǔ)方法,存在的諸多局限性主要表現(xiàn)在:(1)第一類(lèi)基于偏微分方程和變分算法理論的修復(fù)方法可以很好的恢復(fù)較小缺失區(qū)域的結(jié)構(gòu)層信息,但在處理較大缺失區(qū)域的時(shí)候容易引起模糊。(2)第二類(lèi)基于樣本紋理合成的技術(shù)可以處理較大塊的缺失區(qū)域,恢復(fù)待修補(bǔ)區(qū)域的紋理信息,但是該修補(bǔ)算法的貪婪性,在處理過(guò)程中可能會(huì)引入不相關(guān)的物體。
技術(shù)實(shí)現(xiàn)要素:
發(fā)明目的:針對(duì)現(xiàn)有技術(shù)中存在的問(wèn)題,本發(fā)明提供一種基于不同冗余字典的圖像修補(bǔ)方法,方法首先利用離散余弦變換獲得冗余dct字典,利用k-svd方法訓(xùn)練獲得全局字典及自適應(yīng)字典;然后基于上述三種不同的冗余字典分別稀疏表示待處理圖像;最終圖像中缺損的部分就可以由冗余字典和更新得到的稀疏系數(shù)表示出來(lái),實(shí)現(xiàn)圖像修補(bǔ)。
技術(shù)方案:一種基于不同冗余字典的圖像修補(bǔ)方法,包括如下步驟:
步驟1,對(duì)于缺損圖像,利用如下退化模型表示:
y=hx+η
其中,x表示原始的清晰圖像,y則表示部分內(nèi)容缺失的待修補(bǔ)圖像,η是指圖像退化過(guò)程中可能引入的加性噪聲,一般是指加性的高斯噪聲,h指圖像缺失問(wèn)題中的退化算子。
步驟2,將待處理的圖片定義為
步驟3,訓(xùn)練冗余字典,包括dct字典,全局訓(xùn)練字典和自適應(yīng)字典三種,字典為
步驟4,結(jié)合退化模型,計(jì)算各圖像塊yk基于字典d上的稀疏表示系數(shù)αk。
步驟5,利用求得的稀疏系數(shù)αk重建各圖像塊,記為xk=dαk,依次重建所有的圖像塊,在重疊區(qū)域作平均處理,獲得最終修補(bǔ)后的圖像x。
作為本發(fā)明的一種優(yōu)選方案,步驟3所述冗余字典的訓(xùn)練。其中,冗余的dct字典是通過(guò)離散余弦變換得到的,而全局訓(xùn)練字典和自適應(yīng)字典是利用k-svd方法從訓(xùn)練樣本中訓(xùn)練得到的。
k-svd訓(xùn)練方法的目標(biāo)函數(shù)為:
其中
當(dāng)訓(xùn)練全局字典時(shí),訓(xùn)練樣本集是指從大量清晰的自然圖像中獲得的圖像塊;當(dāng)訓(xùn)練自適應(yīng)字典時(shí),訓(xùn)練樣本是從待處理的圖像中獲得。k-svd訓(xùn)練方法包括稀疏編碼和字典更新兩個(gè)階段,首先根據(jù)已知的字典計(jì)算訓(xùn)練樣本集中各圖像小塊在字典上的稀疏系數(shù)αk,然后利用已知的字典和系數(shù)集α逐列更新字典。設(shè)定字典更新的次數(shù)或者重構(gòu)圖像塊和訓(xùn)練圖像塊間的殘差作為停止條件,最終訓(xùn)練得到冗余字典d。
作為本發(fā)明的一種優(yōu)選方案,步驟4所述的計(jì)算各圖像塊在字典d上的稀疏表示系數(shù)αk。基于圖像塊yk的稀疏編碼問(wèn)題可以表示為:
其中,λ是正則化參數(shù),p可以取0或者1,用以計(jì)算系數(shù)的稀疏度,在本文方法中取p=0,即計(jì)算系數(shù)中非零元素的個(gè)數(shù)。h代表圖像退化的退化算子,退化算子在該修補(bǔ)模型中起著重要的作用。上述關(guān)于
作為本發(fā)明的一種優(yōu)選方案,步驟5所述求解修補(bǔ)后圖像。首先利用求得的系數(shù)重構(gòu)圖像小塊,有
xk=dαk
依次重建所有的圖像塊,則修補(bǔ)后的圖像x可以表示為
其中,α是指所有圖像塊在字典下的系數(shù)αk的集合,即α=[α1,α2,...,αn]。上述公式的含義是指把恢復(fù)后的各圖像塊放在原來(lái)的位置上,對(duì)于圖像塊間相互重疊的部分,做平均處理,這樣可以減少圖像塊在各重疊區(qū)域的誤差,獲得更好的修補(bǔ)結(jié)果。
本發(fā)明采用以上技術(shù)方案與現(xiàn)有技術(shù)相比,具有以下技術(shù)效果:
本發(fā)明利用離散余弦變換獲得冗余的dct字典,或利用k-svd方法訓(xùn)練獲得全局字典及自適應(yīng)字典,然后基于上述三種不同的冗余字典稀疏的表示待處理圖像,最終圖像中缺損的部分就可以由冗余字典和更新到的稀疏系數(shù)表示出來(lái)。該方法充分利用了自然圖像的稀疏性,并比較了不同字典下的修補(bǔ)結(jié)果,利用了自適應(yīng)訓(xùn)練字典的高效性,實(shí)驗(yàn)結(jié)果證明了提出方法的有效性。
附圖說(shuō)明
圖1為本發(fā)明實(shí)施例的基于不同冗余字典的圖像修補(bǔ)方法的實(shí)施流程圖;
圖2是圖像修補(bǔ)問(wèn)題的示意。
具體實(shí)施方式
下面結(jié)合具體實(shí)施例,進(jìn)一步闡明本發(fā)明,應(yīng)理解這些實(shí)施例僅用于說(shuō)明本發(fā)明而不用于限制本發(fā)明的范圍,在閱讀了本發(fā)明之后,本領(lǐng)域技術(shù)人員對(duì)本發(fā)明的各種等價(jià)形式的修改均落于本申請(qǐng)所附權(quán)利要求所限定的范圍。
如圖1所示,為本發(fā)明基于不同冗余字典的圖像修補(bǔ)方法的實(shí)施流程圖,具體步驟如下:
圖像修補(bǔ)問(wèn)題很多,比較典型的是對(duì)于一幅內(nèi)容缺失的圖像,根據(jù)圖像中剩余的部分恢復(fù)出圖像中缺失的部分,該問(wèn)題可以形象的表示為圖2所示。
其中,e是圖像中殘缺的部分,也就是待修補(bǔ)的部分,ec為圖像中保留的部分。這一修補(bǔ)問(wèn)題可以描述為根據(jù)ec恢復(fù)出e的過(guò)程。圖2所示的退化過(guò)程可以用如下公式表示:
y=hx+η(1)
其中,x表示原始的清晰圖像,y則表示部分內(nèi)容缺失的待修補(bǔ)圖像,η是指圖像退化過(guò)程中可能引入的加性噪聲,一般是指加性的高斯噪聲。h指圖像缺失問(wèn)題中的退化算子,此時(shí)h為只包含0和1兩種元素的掩碼時(shí),可以將圖像中部分位置的像素值置0,造成圖像部分內(nèi)容缺失。
1,根據(jù)圖像修補(bǔ)問(wèn)題的退化模型公式(1),我們的目標(biāo)是利用觀測(cè)到的缺失圖像y恢復(fù)出原始的清晰圖像x。為了表述方便,這里將待處理的圖像定義為
2,字典訓(xùn)練,包括冗余的dct字典、全局訓(xùn)練字典和自適應(yīng)字典。其中,冗余的dct字典是通過(guò)離散余弦變換得到的,而全局訓(xùn)練字典和自適應(yīng)字典是利用k-svd方法從訓(xùn)練樣本中訓(xùn)練得到的。
k-svd訓(xùn)練方法的目標(biāo)函數(shù)為:
其中
k-svd訓(xùn)練方法包括稀疏編碼和字典更新兩個(gè)階段,首先根據(jù)初始字典計(jì)算訓(xùn)練樣本集中各圖像小塊在字典上的稀疏系數(shù)αk,然后利用已知的字典和系數(shù)集α逐列更新字典中的原子。設(shè)定字典更新的次數(shù)或者重構(gòu)圖像塊和訓(xùn)練圖像塊間的殘差作為停止條件,最終訓(xùn)練得到冗余字典d。當(dāng)訓(xùn)練全局字典時(shí),訓(xùn)練樣本集是從大量清晰的自然圖像中獲得的圖像塊,訓(xùn)練了超過(guò)100000幅8×8的圖像小塊,是由k-svd算法訓(xùn)練得到,迭代了180次,在每次的迭代中,采用omp算法求解稀疏系數(shù),系數(shù)的稀疏度設(shè)為6。當(dāng)訓(xùn)練自適應(yīng)字典時(shí),訓(xùn)練樣本是從待處理的圖像中獲得的圖像塊,采用k-svd方法訓(xùn)練,迭代10次獲得。
3,每一個(gè)圖像塊可以表示為yk=rky,其中
其中,λ是正則化參數(shù),p可以取0或者1,用以約束系數(shù)的稀疏度,在本方法中取p=0,即計(jì)算系數(shù)中非零元素的個(gè)數(shù)。h代表圖像退化的退化算子,退化算子在該修補(bǔ)模型中起著重要的作用。上述關(guān)于
4,計(jì)算得到圖像塊yk基于字典d的稀疏表示系數(shù)αk,則恢復(fù)后的每一個(gè)圖像塊可以記為:
xk=dαk(4)
5,依次重建所有的圖像塊,則恢復(fù)后的完整的圖像x就可以表示為:
其中,α是指所有圖像塊在字典下的系數(shù)αk的集合,即α=[α1,α2,...,αn]。公式(5)的含義是指把恢復(fù)后的圖像塊放在原來(lái)的位置上,對(duì)于圖像塊間相互重疊的部分,做平均處理,這樣可以減少圖像塊在各重疊區(qū)域的誤差,獲得更好的修補(bǔ)結(jié)果。