馮 青, 王婧慧
(西安科技大學 藝術學院,西安 710054)
中國絲織品品類多樣,清新雅致、華貴高潔的當屬“羅”為之最,羅織物的產生代表了中國古代織物技藝的最高水準[1]。但羅織物由于自身的物理特性,因而目前出土或現存的古代羅織物多有破損或殘缺。相關研究者將圖像數字修復技術運用在文物修復上進行了持續的探索[2],隨即也呈現了一些多元的研究方法。
李海燕等[3]提出了一種雙轉移網絡結構的圖像修復網絡,可以在大面積缺失圖像的修復中,提供更加清晰細膩的修復結果;魏明強等[4]提出了青銅器缺塊的多元數字化補配框架,為破損的缺塊補配提供了一個專業、便捷的,且具有多元互補方案的計算機輔助幾何處理平臺;王雨等[5]提出了一種基于特征增強的青銅器尖銳特征提取算法,能夠自動、高效地提取青銅器紋飾的特征。但一些圖像修復算法單獨使用存在局限性,陳永等[6]使用了一種基于邊緣缺失結構重構和改進優先權的壁畫圖像修復算法,通過對Criminisi算法的改進將其運用在壁畫修復上,使得修復更加精確;楚天鴻等[7]結合FCM和Criminisi提出了一種可以準確分辨車牌圖像污漬區域并對此區域進行修復的方法,使得車牌圖像修復準確率提高到95%。
研究人員從不同領域進行了圖像修復的相關研究,但也存在一些問題:一方面,研究對象選取較為主觀,對紡織物紋樣的修復研究不足。要用數字化修復使得那些因傳統手工藝失傳而難以留存的紡織物紋樣得以復原。另一方面,一些圖像修復方法單獨使用起來存在弊端。如Criminisi算法屬于圖像修復中的經典算法,但在使用時會出現匹配錯誤和信息丟失等問題,使得修復結果變得不理想,導致效率降低。本文針對四經絞羅規律性紋樣的破損區域,使用Criminisi算法進行修復,生成掩膜圖像,同時根據圖像特點用開運算對Criminisi算法進行改進,去除掩膜邊緣的毛邊,用改進后的算法再修復一次。
Criminisi算法是由Criminisi等在2004年提出的一種基于樣本塊的修補算法,是一種經典的基于紋理合成的圖像修復算法,具有良好的修復效果,主要包括優先權的計算、匹配塊的搜索和置信度的更新這3個部分(圖1)。尤其針對大面積破損圖像的修復,所以被廣泛運用于各種修復領域。傳統的Criminisi算法是將母本圖像上面最相似的一塊目標區域填充到需要修復的區域[8]。算法的重點就是對于待修復塊優先權的計算,待修補塊由于其內部像素點的差別而具有不同的優先權,在修復過程中,通過計算區塊優先權的法則,優先權會傾向具有高可信度數據的缺失數據邊緣,得到優先權的修復塊后,根據第一次修復程度,可以重復修復步驟。

圖1 Criminis算法修復原理Fig.1 Criminis algorithm repair principle
圖1中:Φ=完整區域,Ω=圖片需要修復的區域[9],δΩ=待修復區域和圖案母本之間的邊界,Ψp=待修復的像素塊,np=像素點p的延伸方向。
Criminisi算法的圖解填充原理如圖2所示。

圖2 Criminis算法填充原理Fig.2 Criminis algorithm filling principle
將圖像分為已知完整區域(source region)和目標區域(target region),從目標區域的邊界開始填充,以邊界點p作為中心,設置像素塊的大小,形成圖2(b)的效果;然后在已知區域中根據匹配準則找到相似的像素塊,如圖2(c)所示的q′和q″為中心的兩個像素塊;最后選擇最佳匹配的塊進行填充,如圖2(d)所示。
Criminisi算法雖然應用廣泛,但是在修復比較大面積的破損時,修復好的圖像邊界會有明顯的瑕疵。本文在傳統的基礎上要對Criminisi算法進行改進,使用開運算來處理這些毛邊瑕疵,這樣可以提高其修復區域邊緣的清晰度和優先權計算的精準度[10]。
圖像形態學腐蝕可以將細小的噪聲區域去除,但是會將圖像主要區域的面積縮小,造成主要區域的形狀發生改變;而圖像形態學膨脹可以擴充每一個區域的面積,填充較小的空洞,但是會增加噪聲的面積。根據兩者的特性將圖像腐蝕和膨脹適當的結合,便可以既去除圖像中的噪聲,又不縮小圖像中主要區域的面積;既填充了較小的空洞,又不增加噪聲所占的面積,這樣的結合就產生了開運算。
開運算(opening)的定義是對圖像進行先腐蝕(erode)后膨脹(dilate),對圖像進行腐蝕,主要作用就是消除圖像中的噪聲和一些很小的像素點,之后通過膨脹運算來彌補因腐蝕而造成的一些面積減小,從而保留原有圖像。總體來說,開運算的作用主要有:消除值高于鄰近點的孤立點,達到去除圖像中噪聲的作用;消除較小的連通域,保留較大的連通域;斷開較窄的狹頸,可以在兩個物體纖細的連接處將它們分離;不明顯改變較大的連通域面積的情況下,平滑連通域的邊界和輪廓。
本文將采用傳統的Criminisi算法與改進過后的算法對四經絞羅紋樣進行修復,使圖像中的紋樣可以恢復到無殘缺的程度,改進后的算法修復流程如圖3所示。

圖3 改進后的算法修復流程Fig.3 Algorithm repair flow after the improvement
第1步:開始時,標記出圖像的待修復區域,將該區域標記為純色,然后選出待修復的圖像邊緣;若待修復區域Ω沒有空缺,則輸出結果,修復結束;
第2步:若待修復區域Ω空缺,則需要優先權計算;
第3步:確定最大修復塊的優先權;
第4步:找尋母本中與破損部分最接近的紋理;
第5步:將這一部分紋理填充到破損部分對應的像素點;
第6步:若修復結果不理想則重復步驟1~5,直至得出最終結果,修復結束。
Criminisi算法修復的核心就是不同待修復塊的優先級別的計算與比較,會先尋找到邊界上具有最大優先權的像素點,母本圖像的每個像素點都有其不同的置信度,而待修復區域和母本圖像的像素點不同所以具有不同的優先級權。
算法中算出優先權P(p)的步驟如下式[11]所示:
P(p)=C(p)D(p)
(1)
對于整個待修復的區域邊緣,算法會優先計算待修復區域的優先權,由此來決定算法對四經絞羅紋樣缺失的修復優先次序,其中的步驟如下式所示:
(2)
(3)
式中:C(p)為置信項,用來衡量點p所在的修復區域的利用率高的信息;D(p)為數據項,用來對比被選區域的結構特征。
當檢測到無縫隙可以修復時(直至邊緣輪廓size等于0時),算法會自動停止修復,程序暫停。
2.3.1 腐 蝕
腐蝕的作用是消去物體的邊界點,可以把小于目標圖像的物體都去除掉。
aΘb={x|bx?a}
(4)
2.3.2 膨 脹
膨脹的作用是擴大目標的區域,填補其中空白的部分,可以將兩個離得很近的物體進行連接。
(5)
開運算的原理就是先腐蝕后膨脹,需要通過程序控制其處理結果,主要將得出的掩膜圖像附近的毛邊和瑕疵消除了,使其邊界變得平滑,且沒有改變掩膜整體的形狀和大小,這樣在后期的修復中,修復出的紋樣圖片才會更加平整。由此可以得出,在原Criminisi算法修復的基礎上增加開運算這一步,能夠去除小顆粒的噪點,以及目標區域旁邊的粘連物,使得待修復的邊緣變得很平滑。
2.3.3 優先權函數的改進
由前文的公式可知,當C(p)為0時,D(p)的值最高,而優先權P(p)的值也會等于0,這樣的話就會不知道該優先修復哪一塊目標。針對這一問題,提出對優先權的修改如下式所示:
(6)
(7)
式中:P(p)為優先權,D(p)為數據項,用來對比被選區域的結構特征。α和β都是常數。
由式(9)(10)可以看出,盡管在可信度上為0時,僅要求所需數據量足夠大,仍可獲得較高的優先級計算結果,因此可以將所需修復的目標區域加以優先修復,以達到對原算法混亂修復順序問題的改進。
開運算處理后部分代碼:
import math, cv2 import numpy as np import numba as nb from numba import jit, cuda print(cuda.select_device(0)) class Inpainter(): DEFAULT_HALF_PATCH_WIDTH=3 MODE_ADDITION=0 MODE_MULTIPLICATION=1 ERROR_INPUT_MAT_INVALID_TYPE=0 ERROR_INPUT_MASK_INVALID_TYPE=1 ERROR_MASK_INPUT_SIZE_MISMATCH=2 ERROR_HALF_PATCH_WIDTH_ZERO=3 CHECK_VALID=4
……
def checkEnd(self): height, width = self.sourceRegion.shape[:2] for y in range(height): for x in range(width): if self.sourceRegion[y, x] == 0: return True return False
羅又稱絞羅,是一種以兩經(地經、絞經)或以上的經線與緯線相互絞纏成椒孔呈網狀的絲織物,與“紗”統稱為“紗羅組織”[12]。根據絞經的數量,可以將羅分為二經絞羅、三經絞羅、四經絞羅等。最早出土的完整絲織品應是從湖南馬王堆出土的菱紋提花四經絞羅[13],結構如圖4所示。

圖4 四經絞羅Fig.4 Four-warp twisted Luo
四經絞羅中最具代表性的幾何紋主要有菱紋羅、信期繡和長壽繡3種,利用圖譜分析法將樣本進行歸納,四經絞羅工藝代表織物紋樣如表1所示。菱紋羅,橫向每行排列7~8個菱形紋飾,縱向每行排列11~12個菱形紋飾,花紋的排列規整有序,布局緊湊。每單個菱形紋飾由一個大菱形紋飾在對稱的兩角,套扣兩個小的菱形紋飾組成,菱形紋飾左右對稱,在視覺上很像耳杯的俯視形態;信期繡是在菱形花紋的羅上進行刺繡,用繡花針繡上燕子的形象,表1中為代表文物煙色菱紋羅地信期繡,繡片上的燕子形象較完整的共有5排,每橫排大約6只,共計約30只,且每排的燕子之間夾有流云裝飾,線條細密圓曲;長壽繡,是在原有織物的基礎上繡有云紋、花蕾、枝葉等圖案,相互交錯擺放。
中國傳統圖案都多采用的對稱、循環、均衡等來表現[14],規律性圖樣形式具有典型的重復或對稱規律[15],可以無限并且有序的排列下去[16]。此外,從微觀角度來看,若圖樣待修復面積較小,則其局部重復性高[17],也可被視為規律性圖樣[18]。結合四經絞羅的紋樣特征與本文的主要算法的契合程度,最終選取了最具有基礎性的朱紅杯紋四經絞羅來進行紋樣修復,保證樣本具有四經絞羅典型的藝術樣貌和特征。
本文的實驗操作在Dell Burn 7000,內存128 GB,系統Win11的設備上完成,通過Criminisi算法和開運算的編程來實現本文的修復過程。為了驗證此方法的有效性,本文選取中國絲綢官網發布的朱紅杯紋四經絞羅高清圖像,由于圖像篇幅較大,為了保證修復的時效性,截選出其中的一處破損進行修復。
修復步驟如下:

表1 基于考古發現的四經絞經代表織物紋樣Tab.1 Fabric patterns of four-warp twisted Luo based on archaeological findings
第1步:將采集完成的朱紅杯紋四經絞羅圖像上傳,從完好的四經絞羅紋樣圖像中分割出破損區域,獲得了含損的織物紋樣圖像,等待程序讀取待修復圖像及其掩膜;
第2步:第一階段修復,根據掩膜得到待修復區域的邊緣輪廓,進行選取(掩膜是用來控制圖像處理的區域或處理過程的,它提取出四經絞羅紋樣中感興趣區,使得感興趣區的圖像值保持不變,而區域外部的圖像值都為0,掩膜還可以通過對某些區域的屏蔽,使其不參與參數的計算,只針對屏蔽區作處理);
第3步:根據第2步中掩膜得出的待修復邊緣輪廓,計算每個邊緣輪廓的優先權,得出填充次序(選擇邊緣的優先權,得出最中心的兩處破損處于優先修復級別);
第4步:針對優先級最高的輪廓點,在母本圖像已知區域內尋找最佳匹配的圖像塊并進行填充(因是規律性紋樣,所以很好選出相同的匹配特征塊);
第5步:更新邊緣輪廓,若邊緣輪廓size大于0,表示紋樣還未填充完畢,則需要回到第3步再次更新輪廓,開啟新一輪迭代,直到填充完畢(填充完畢的標志是顯示沒有邊緣輪廓點);
第6步:朱紅杯紋四經絞羅圖像的第二階段修復,更新邊緣輪廓,若邊緣輪廓size等于0,表示紋樣修復完畢,輸出修復完畢的圖像。
由于修復時間較長,程序每隔2 min會自動展示修復的時間點及修復程度,本文無法全部展示,表2為4月6日下午7:55:18開始進行修復,4月7日凌晨3:40:02修復完畢。
朱紅杯紋四經絞羅原圖如圖5(a)所示,圖5(b)為截取后需要修復的圖像。

表2 計算機修復的時間節點及完畢時間Tab.2 Timeframe and completion time of computer restoration

圖5 朱紅杯菱紋羅破損區域提取Fig.5 Extraction of damaged area of the vermilion cup diamond-patterned Luo
圖5為破損區域的提取展示,將需要修復的圖像輸入程序,首先進行灰度處理(圖5(c)),這樣可以更好地得到圖像的掩膜區域,未改進的圖像掩膜邊緣毛刺居多、不夠平整(圖5(d)),開運算優化過后的圖像掩膜變得無毛刺且清晰(圖5(f)),針對優先級最高的輪廓點,在母本圖像已知區域內尋找最佳匹配的圖像塊并進行填充,得到圖6(c)。為了驗證開運算優化后的算法的修復效果是否有所提高,本文分別采用優化后的和傳統Criminisi算法進行修復,將兩者的圖像質量進行對比。
圖6為菱紋羅最終修復效果對比,可以得出,傳統的Criminisi算法修復出的四經絞羅紋樣有著嚴重的不足:修復區域邊緣不平整,有很多小像素點,圖6(b)右側有明顯的修復痕跡,再向下延伸,影響了整個紋樣圖案的美觀性,不利于之后的紋樣提取工作。而使用了改進后的算法,在右側明顯的裂痕消失了,小型的破損區域也沒有了。為了驗證此方法的可行性和可信性,根據同樣的修復方法與過程,本文將煙色菱紋羅地信繡和長壽繡進行修復對比,修復過程如圖7、圖8所示,結果對比如圖9、圖10所示。

圖6 朱紅杯菱紋羅修復效果對比Fig.6 Comparison of repair effects of vermilion cup diamond-patterned Luo

圖7 地信期繡破損區域提取Fig.7 Extraction of damaged area of Luo-grounded Xinqi embroidery

圖8 長信繡破損區域提取Fig.8 Extraction of damaged area of Changxin embroidery

圖9 地信期繡紋樣修復效果對比Fig.9 Repair effect comparison of patterns of Luo-grounded Xinqi embroidery

圖10 長信繡紋樣修復效果對比Fig.10 Repair effect comparison of of patterns of Changxin embroidery
本文提出的改進后的Criminisi算法有效地修正了原始算法的不足,解決了四經絞羅紋樣破損區域難以獲取的問題,可說明此方法在修復效果方面相較于傳統的Criminisi算法有很大的提高。改進后的算法相較于原算法,在保持圖像的紋理和結構連續性上,有明顯的提升,修復效果更令人滿意。綜上所述,本文方法能夠比較好地滿足修復效果需求,相較于人工修復可以縮短修復時間。
通過開運算改進的Criminisi修復方法,一方面提高了羅織物的修復效率,為紋樣修復增添了新的方法,拓寬了四經絞羅的發展空間和傳播范圍;另一方面,針對傳統圖像修復效果差等問題,對其進行了改進,使得樣本在視覺上和使用價值方面都具有更好的效果。但目前的研究只局限于修復方面,之后還需將所修復出的紋樣運用于產品設計之中,設計出滿足用戶需求和審美的現代產品,也是今后工作的重要內容。

《絲綢》官網下載

中國知網下載