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

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

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

圖3 改進(jìn)后的算法修復(fù)流程Fig.3 Algorithm repair flow after the improvement
第1步:開(kāi)始時(shí),標(biāo)記出圖像的待修復(fù)區(qū)域,將該區(qū)域標(biāo)記為純色,然后選出待修復(fù)的圖像邊緣;若待修復(fù)區(qū)域Ω沒(méi)有空缺,則輸出結(jié)果,修復(fù)結(jié)束;
第2步:若待修復(fù)區(qū)域Ω空缺,則需要優(yōu)先權(quán)計(jì)算;
第3步:確定最大修復(fù)塊的優(yōu)先權(quán);
第4步:找尋母本中與破損部分最接近的紋理;
第5步:將這一部分紋理填充到破損部分對(duì)應(yīng)的像素點(diǎn);
第6步:若修復(fù)結(jié)果不理想則重復(fù)步驟1~5,直至得出最終結(jié)果,修復(fù)結(jié)束。
Criminisi算法修復(fù)的核心就是不同待修復(fù)塊的優(yōu)先級(jí)別的計(jì)算與比較,會(huì)先尋找到邊界上具有最大優(yōu)先權(quán)的像素點(diǎn),母本圖像的每個(gè)像素點(diǎn)都有其不同的置信度,而待修復(fù)區(qū)域和母本圖像的像素點(diǎn)不同所以具有不同的優(yōu)先級(jí)權(quán)。
算法中算出優(yōu)先權(quán)P(p)的步驟如下式[11]所示:
P(p)=C(p)D(p)
(1)
對(duì)于整個(gè)待修復(fù)的區(qū)域邊緣,算法會(huì)優(yōu)先計(jì)算待修復(fù)區(qū)域的優(yōu)先權(quán),由此來(lái)決定算法對(duì)四經(jīng)絞羅紋樣缺失的修復(fù)優(yōu)先次序,其中的步驟如下式所示:
(2)
(3)
式中:C(p)為置信項(xiàng),用來(lái)衡量點(diǎn)p所在的修復(fù)區(qū)域的利用率高的信息;D(p)為數(shù)據(jù)項(xiàng),用來(lái)對(duì)比被選區(qū)域的結(jié)構(gòu)特征。
當(dāng)檢測(cè)到無(wú)縫隙可以修復(fù)時(shí)(直至邊緣輪廓size等于0時(shí)),算法會(huì)自動(dòng)停止修復(fù),程序暫停。
2.3.1 腐 蝕
腐蝕的作用是消去物體的邊界點(diǎn),可以把小于目標(biāo)圖像的物體都去除掉。
aΘb={x|bx?a}
(4)
2.3.2 膨 脹
膨脹的作用是擴(kuò)大目標(biāo)的區(qū)域,填補(bǔ)其中空白的部分,可以將兩個(gè)離得很近的物體進(jìn)行連接。
(5)
開(kāi)運(yùn)算的原理就是先腐蝕后膨脹,需要通過(guò)程序控制其處理結(jié)果,主要將得出的掩膜圖像附近的毛邊和瑕疵消除了,使其邊界變得平滑,且沒(méi)有改變掩膜整體的形狀和大小,這樣在后期的修復(fù)中,修復(fù)出的紋樣圖片才會(huì)更加平整。由此可以得出,在原Criminisi算法修復(fù)的基礎(chǔ)上增加開(kāi)運(yùn)算這一步,能夠去除小顆粒的噪點(diǎn),以及目標(biāo)區(qū)域旁邊的粘連物,使得待修復(fù)的邊緣變得很平滑。
2.3.3 優(yōu)先權(quán)函數(shù)的改進(jìn)
由前文的公式可知,當(dāng)C(p)為0時(shí),D(p)的值最高,而優(yōu)先權(quán)P(p)的值也會(huì)等于0,這樣的話就會(huì)不知道該優(yōu)先修復(fù)哪一塊目標(biāo)。針對(duì)這一問(wèn)題,提出對(duì)優(yōu)先權(quán)的修改如下式所示:
(6)
(7)
式中:P(p)為優(yōu)先權(quán),D(p)為數(shù)據(jù)項(xiàng),用來(lái)對(duì)比被選區(qū)域的結(jié)構(gòu)特征。α和β都是常數(shù)。
由式(9)(10)可以看出,盡管在可信度上為0時(shí),僅要求所需數(shù)據(jù)量足夠大,仍可獲得較高的優(yōu)先級(jí)計(jì)算結(jié)果,因此可以將所需修復(fù)的目標(biāo)區(qū)域加以優(yōu)先修復(fù),以達(dá)到對(duì)原算法混亂修復(fù)順序問(wèn)題的改進(jìn)。
開(kāi)運(yùn)算處理后部分代碼:
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
羅又稱絞羅,是一種以兩經(jīng)(地經(jīng)、絞經(jīng))或以上的經(jīng)線與緯線相互絞纏成椒孔呈網(wǎng)狀的絲織物,與“紗”統(tǒng)稱為“紗羅組織”[12]。根據(jù)絞經(jīng)的數(shù)量,可以將羅分為二經(jīng)絞羅、三經(jīng)絞羅、四經(jīng)絞羅等。最早出土的完整絲織品應(yīng)是從湖南馬王堆出土的菱紋提花四經(jīng)絞羅[13],結(jié)構(gòu)如圖4所示。

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

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

表2 計(jì)算機(jī)修復(fù)的時(shí)間節(jié)點(diǎn)及完畢時(shí)間Tab.2 Timeframe and completion time of computer restoration

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

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

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

圖8 長(zhǎng)信繡破損區(qū)域提取Fig.8 Extraction of damaged area of Changxin embroidery

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

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

《絲綢》官網(wǎng)下載

中國(guó)知網(wǎng)下載