胡云康 姜蘇 吳志榮 楊晨霞 朱龍飛 戴磊
摘要:本文首先介紹了圖像修復領域中的Criminisi算法,針對這種算法的不足,從優先級的運算、最優匹配塊的搜索和置信值的更新三個方面進行改進。實驗結果表明,改進算法的修復效果比原算法有了進一步的提高,更符合人類視覺系統的特征。
關鍵詞:圖像修復;優先級;最優匹配塊;置信值
中圖分類號:TP391.41 文獻標識碼:A DOI:10.3969/j.issn.1003-6970.2016.04.016
0 引言
數字圖像虛擬修復是指對那些局部數據信息完全丟失的圖像進行修補,以恢復其完整性和原有的視覺效果,并使觀察者無法覺察到圖像曾經缺損或己被修復。由于該技術不需要直接處理原作,可以根據需求反復調整,最終再確定采用何種修復方法,因此安全可靠,具有很高的實用價值。近年來研究表明,計算機輔助的數字化保護和修復古代藝術作品取得了一定進展,這種方法在排除損壞文物的危險性的基礎上,還具有效率高、可重復性等傳統方法所沒有的優點。計算機的操作不僅提高了工作效率,甚至可以完成以前某些無法完成的工作。隨著計算機技術的發展,數字圖像修復技術可以應用到很多方面。首先,文物在保存時,不可避免會受到環境、人為等因素的影響,進而產生霉斑、劃痕、破損等,為了保持作品完好的視覺效果,要對這些文物和藝術作品進行修復,以往主要通過專業人士進行手工修復,這對人們的技術性要求非常高,同時它也是一項具有高風險的任務,因為文物和藝術作品極其珍貴,如果修復失誤,將造成難以彌補的損失。加之修復大量有損傷的文物需要耗費大量的時間和人力財力,傳統修復方法的特殊性和局限性,使得文物的保護修復工作進展緩慢。我們可以借助于數字圖像修復技術對這些文物數字照片先進行虛擬修復,為文物的實物修復提供參考。另外,在一些檔案老照片的保護上,老照片存放時間過長會存在一些折痕或烏跡,也可以借助數字圖像修復技術進行修復,當然還有一些計算機特效處理以及一些富含玟理特征的照片的生成,都可以利用數字圖像修復技術得到很好的修復效果。所以將數字圖像修復技術應用到文物修復領域中,成為傳統文物修復算法的一個新趨勢。
在當前圖像修復技術中,比較經典的兩大類是:圖像潤飾(inpainting)的方法和基于紋理合成的圖像修復方法。圖像潤飾方法首先由Bertalmio等人引入到數字圖像,使用基于偏微方程(PDE)的修復模型。基于此思想的方法還有Chan提出的整體變分(YV)模型以及基于曲率驅動擴散(CCD)模型等。圖像潤飾適合修復有小瑕疵的圖像,但修復較大區域效果模糊,且對紋理較強的破損區域修復效果差。本文所使用的是基于紋理合成的圖像修復算法。基于紋理合成的圖像修復方法中最經典的算法是由Criminisi等人提出,該算法在基于樣本的紋理合成算法基礎上再融合圖像潤飾結構擴散的特點,修復效果較好,適用于修復大面積的破損。在此基礎上的改進主要有小波變換的圖像修復,利用鄰域特性的圖像修復和基于匹配塊的圖像修復算法等。本文在分析了圖像修復技術中的Criminisi算法后,針對它的不足,提出一種新的改進算法。
1.1.3 更新置信值
第一優先級的計算,隨著填充過程的進行,模板數據值會迅速下降零,這樣使得計算出的優先級不可靠。
第二采用全局搜索算法來尋找最優匹配塊,這樣不但會產生錯誤匹配,而且還會使填充速度變慢。
第三置信值的計算,對破損區域內原有的像素點和填充上去的像素點進行相同處理,算法容易導致修復效果越來越差,從而形成它的貪婪性。
1.2 算法存在的問題
Criminisi算法的缺陷主要表現在三個方面:第一優先級的計算,隨著填充過程的進行,模板數據值會迅速下降到零,這樣計算出的優先級不可靠。因此,會出現錯誤的填充順序,并且會影響修復效果。第二采用全局搜索算法來尋找最優匹配塊,這樣不但會產生錯誤匹配,而且還會使其填充速度變慢。第三置信值的計算,對破損區域內原有的像素點和填充上去的像素點進行相同處理,也就是說破損區域原有的像素點和填充上去的像素點可靠性一樣高,沒有考慮到本次修復的效果,該算法容易導致修復效果越來越差。
1 Criminisi算法簡介及存在問題
1.1 Criminisi算法簡介
Criminisi算法核心是基于樣本的紋理合成,該算法主要包含以下4個步驟:1.1.1 計算優先級
優先級的大小取決于兩部分因素:一部分是該模板的數據值,它反映了模板的結構信息強弱,從而保證線性結構部分的優先合成;另一部分是模板的置信度值,要求優先填充那些含已填充像素較多部分的模板,因為填充這樣的模板可以依賴更多的已知像素。公式如下:
P(p)=C(p)D(p) (1)
(2)C(p)表示模板的置信度值,D(p)表示模板的數據值,C(q)表示模板內像素點的置信值
1.1.2 擴散紋理和結構信息
從源區域取樣,尋找和該模板最匹配的模板,搜索整幅圖像的已知信息區域后,找到SSD(顏色平方差的和)最小的模板即為最優匹配模板,將相應的像素點復制填充到目標區域的模板中
2 算法改進
2.1 優先級計算的改進
原算法用乘積的形式決定優先權,在修復的過程中,如果數據為0,那么置信值信度項很高由于優先級為零也不能得到優先修復。并且在修補過程中如果多個范本塊的D(p)同時為零,會使它們的優先級也都為零,從而使C(p)值失去了意義。
綜上所述,使用原算法計算優先值并不準確,所以將優先級的計算改為如下公式:
(3)
公式中α和β為調節參數(實驗中,取α=0.382,β=0.618),不考慮c(p)為零的情況(實際p點位于填充輪廓在線,待修復模版置信度值不會為零)。這樣能保證當數據項為零時,只要置信度項足夠高,也可以得到優先修復。
2.2 匹配區域及最優匹配塊的改進
對于根據優先權值確定的當前待修復點p,它在上述確定的匹配區域中搜索匹配點的方式為,以點p為中心,順序搜索與p的棋盤距離為n(1≤n≤max,n∈N)的各點作為匹配點,并依次以這些點為中心生成候選塊與待修復塊做SSD計算,直至搜索完匹配區域。這樣的搜索方式使得匹配塊搜索是由近及遠,對于最優匹配塊的選擇也是優先考慮距離p點最近的顏色差距值最小的匹配塊。搜索中,直接對第一次搜索到的顏色差距值最小的候選塊作記錄,并將其作為最優匹配塊,復制其信息到待修復塊相應位置,得到的修復結果與其鄰域的相關性較大,也更加符合視覺上的效果。
2.3 置信值的改進
Criminisi算法在對破損圖像的模板更新時,只要是已經修復的區域,就將修復好的像素置信值置為1。這也意味著在下次計算模版的C(p)時,不論是原圖像上的非破損像素點還是經過修補之后的像素點的C(q)都是1,這樣也就相當于修補之后的像素點和原圖的非破損區域的像素點同樣可靠。算法修補一個模板后更新邊界,極有可能導致新邊界上優先級最大的點就處于剛填充的范本中,然后繼續向內部延伸。算法循環中如果某個模板被填充了不符合視覺效果的顏色信息,會導致不合理的顏色信息繼續延伸下去,最終導致修復的視覺效果不佳。
為了克服以上不足,本算法特設定一顏色閾值T。閾值T的確定,根據計算具體圖像修復模板對應的SSD的值來確定。
(5)
上述公式中,如果最優匹配范本對應的SSD值小于閾值T,說明其可信度高,則待修補像素的置信值,用源圖像模板對應像素點的置信值直接更新。如果SSD的值大于T,說明其相對于源區域中的信息來說可信度值進行更新。如匹配前某優先級最大的范本置信度值為0.68,則匹配后其剩余待修補像素點的置信值都置為0.68。這樣保證在不斷修補的過程中越是深入待修補區域的內部,可信度就越低,這符合一般規律。可信度越低,最后得到的優先級P(p)就越低,填充時應該盡量尋找整體置信度比較高的匹配模塊對待修復區域進行填充,這就保證了圖像修復的順序基本上是從外圍向中間修復。
3 實驗結果分析
本文算法采用Visual C++6.0開發平臺,算法中取α=0.382,B=0.618,顏色閾值T取為11,以下是效果圖對比:
圖1(a)這幅照片因年代久遠,有明顯的白色折痕,以照片中中間那位女士為修復對象,將折痕部分標記出來,如圖41(b),圖1(c)則是應用Criminisi算法修復后的圖片,圖1(d)是本文算法修復后的效果圖。經過對比,可以明顯看出本文算法修復效果比較完整,無明顯折痕。
圖2(a)是一個破損文物的圖像,我們將其裂痕標記出來如圖2(b),采用兩種算法進行修復,圖2胡云康等:基于改進的紋理合成圖像修復算法(c)是Criminisi算法修復后的效果圖,可以明顯看出有一處裂縫沒有修復好,本文算法修復效果如圖2(d),修復效果比較自然,無明顯瑕疵。
實驗中分別統計了圖1、圖2中圖像缺失像素的個數和兩種箅法修復需要的時間,如表l所示。
4 結論
數字圖像修復技術是當下較新的研究課題,本文主要研究了基于紋理合成的數字圖像修復,通過實驗結果的數據列出以下幾點總結:(1)系統采用基于Criminisi的圖像修復算法進行改進,算法先進,修復效果好;(2)算法從優先級的運算、匹配區域及最優匹配塊的搜索和置信值更新三個方面進行改進;改進算法的修復效果會比原算法有進一步的提高,更符合人類視覺系統的特征;(3)算法采用Visual C++6.0開發平臺,便于圖像處理,同時改進算法由于只是在局部進行修復運算,大大減少了修復時間;對于缺損區域在10000像素以內的真彩圖像,修復時間基本控制在10秒內;(4)系統接口直觀,交互性好,能實時顯示圖像修復過程,突破了以往圖像修復軟件只顯示圖像最終修復結果的局限性。