鄒 悅,潘偉杰,呂 健,方年麗,岳 迪,朱姝蔓
(貴州大學 現代制造技術教育部重點實驗室,貴州 貴陽 550025)
在民族圖案非物質文化遺產數字化的進程當中,包括提取、解讀、重用3部分[1],如何對其釋義、如何快速處理其分類、識別、檢索等問題,亦是數字文化遺產解讀、重用的重要研究方向。Wang等[2]根據面向工藝品個性化定制的蠟染知識分類框架對蠟染案例進行分析,構建蠟染知識庫并對蠟染圖案進行編碼。Xu等[3]通過研究剪紙圖像的自動分類識別來尋找實現對剪紙圖像分類儲存、高效檢索的新途徑。Yuan等[3]提出了一種基于距離度量學習和加權二部圖匹配的方法,將全局特征和局部特征提取與整合,得到蠟染醒目形狀模式,以實現蠟染紋樣圖像的搜索。綜合來看,上述研究對民族圖案的數字化研究做出了具有參考價值的研究,但做檢索研究的過程中,沒有考慮到民族圖案具有豐富語義的特性,多只涉及了單模態的檢索。
因此,本文針對貴州蠟染紋樣,提出了一種基于多任務學習的跨模態檢索方法。實現圖-圖、文-圖的跨模態檢索。主要內容如下:
(1)蠟染數據集的構建:從“非遺貴州”網站及《中國貴州民族民間美術全集:蠟染》中提取蠟染紋樣圖片,并根據文化背景進行語義層次分析,對圖片數據進行增強后對其按語義體系進行標注,構建蠟染紋樣圖案數據集Batik Dataset;
(2)蠟染紋樣跨模態檢索模型的構建:由ResNet50為主干,提取圖片特征,采用BERT預訓練模型提取文本特征輸送到主干網絡中,實現兩個預測任務的學習;
(3)實驗:將模型運用在Batik Dataset上驗證其有效性。
民族圖案是一種極具語義特征的特殊圖案,針對民族服飾銀宇堃等[5]提出一種基于標簽民俗語義模型的圖案語義標簽體系,用三層語義來增加標簽的專業性和實用性。本文借鑒該方法,參考《中國貴州民族民間美術全集:蠟染》中的蠟染文化背景、張智艷[6]和孫鑫磊[7]等對苗族圖案意象的研究,針對貴州苗族蠟染紋樣進行層次分析,建立適用于蠟染的語義體系,并依據該語義體系對數據集進行標注,最終構建一個總數為12 249張的蠟染紋樣圖案數據集,命名為Batik Dataset。
本文的數據集來源于“非遺貴州”的系統網站,從“非遺貴州”系統網站現有的蠟染圖庫中,采集了常見的苗族蠟染紋樣,采集過程中借助貴州省蠟染制作者、蠟染研究者、工藝品設計師等多方面的專家提供的蠟染知識和技術知識進行辨識,保證紋樣數據具有相對的完整性和代表性,其中包括鳥紋、花紋、魚紋、銅鼓紋、蝴蝶紋五大類紋樣。由于蠟染圖片的基數少,采集得到的圖像數據量也相對較小,為解決這一問題,本文對采集的數據進行了數據增強,以防止機器學習中因樣本量過少產生過擬合現象并提升網絡模型的魯棒性和泛化能力。增強后的數據合計蠟染紋樣圖像12 249張,部分采集圖案如圖1所示。

圖1 部分蠟染紋樣采集圖像及分類
苗族是一個沒有語言的民族,因此苗族蠟染在文化意義上,不僅是裝飾物,更是苗族歷史文化的載體。從符號學的角度來看,蠟染紋樣是極具語義內容、具有豐富的意象,紋樣之意是其表征上視覺給人帶來的意向,而紋樣之言則是其表達的創作思維和內涵;紋樣之意為其所指,紋樣之言為其能指[6]。
為了給苗族蠟染紋樣建立一個統一的語義體系作為標注的參考標準,本文根據上述方法,從符號學的角度對蠟染紋樣的語義進行分類、拆解,從而構建一個語義標簽體系模型。目前標簽標注多采用三元模型,根據蠟染語義層次的特點,我們構建以下模型

(1)
其中,P為圖案視覺上紋樣的類型;S為該紋樣的象征意義;G為圖畫工藝的類型。
模型如圖2所示。

圖2 語義標注模型
紋樣的類型P(pattern)主要有鳥紋、魚紋、花紋、蝴蝶紋、銅鼓紋等,它描述的是紋樣視覺表達上的形式。
紋樣的象征意義S(symbolic meanings)表示紋樣的文化內涵,以蝴蝶紋為例:“蝴蝶媽媽”在苗族的神話傳說中占有重要的地位[7],常作為嬰兒襁褓上的圖案,是祈求庇護和保佑,同時,苗族人也對蝴蝶的生殖能力有著崇拜之情,因此蝴蝶紋也表達了苗族人民“多子多福”的美好愿景。
紋樣的工藝類型G(genre)表示貴州蠟染不同的藝術風格流派,包括月亮山型、飛云山型、扁擔山型、烏蒙山型等[8],不同的藝術風格分布的地區不同,風格也有著細微的差異,背后也蘊涵著不同的歷史。標注不同的藝術風格,有利于更好的溯源和理解紋樣的含義。
依據上述規則,本文針對不同的蠟染紋樣圖片進行標注,見表1。

表1 部分蠟染紋樣圖案標注示例
多任務學習屬于歸納遷移學習機制的一種,它通過共享特征層和并行訓練的方法實現多個任務的學習,同時能夠利用相關任務中的領域特定信息來提高模型的泛化能力。
本文所采用多任務學習的架構,訓練階段的目的是輸入蠟染圖片,能夠得到類別和文本分類這兩個結果,通過BERT模型提取文本特征,采用ResNet50作為學習的主干網絡,同時提取圖片特征,網絡中定義一個輸入,兩個輸出,實現兩個預測任務的學習。
本文利用BERT模型[9]進行文本特征的提取。BERT模型Google提出的自然語言處理模型,是bidirectional encoder representations from trans-formers的簡稱,其結構是基于多層雙向tranformer模型的encoder結構,不同于以往的自然語言處理模型,只能獲取詞語單側(左側或右側)的信息,由于這種雙向結構,使得BERT模型能夠獲取詞語雙方向的信息,并整合起來。其結構比transformer更深,因此被廣泛應用于NLP領域。同時它使用自我注意力機制,能夠根據不同語境學習,用Transformer代替了RNN,由于這兩個機制的特性,使得BERT模型能夠生成詞向量,解決word2vec中不能解決的一詞多義的問題,表達詞語在不同語境中的含義。BERT的模型的結構如圖3所示。

圖3 BERT模型的結構
在BERT模型之前,自然語言處理常用OpenAI GPT預訓練語言模型,二者都使用了Transformer,但BERT模型針對OpenAI GPT模型中使用的單向注意力機制進行了改進,借鑒殘差網絡并使用雙向Transformer的編碼器作為基本組成單元,這使得BERT模型能夠結合上下文信息進行訓練[10],BERT中的Transformer網絡結構如圖4[11]所示。

圖4 BERT模型中采用的Transformer網絡
BERT模型中的多頭注意力機制,通過這種結構形式,可以使模型捕獲更多層面的語義特征,將結果進行整合拼接得到的最終結果。多頭注意力機制的結構如圖5所示。

圖5 BERT模型的多頭注意力機制
民族圖案是一種極具語義特征的特殊圖案,用戶習慣于根據先驗知識用圖像的語義進行檢索,而不是視覺特征來進行查詢,例如檢索“橙子”時,我們會直接搜索關鍵詞“橙子”而不是“橙色的球體”。但在實際應用中視覺特征相似的圖像其語義很可能存在很大差別,這是因為圖像的高層語義(即象征含義)和低層特征(即視覺特征)之間沒有直接關聯,會產生“語義鴻溝”,這導致一些圖像檢索系統在進行某些查詢時會得到意料之外的結果。

(2)
本文利用Resnet50以提取圖像特征同時也作為多任務學習的主干。在神經網絡中,隨著深度和寬度的增加,可以較好提升網絡性能,但同時,因為網絡層數增加,導致訓練集上的準確率飽和下降,這個就是退化問題。Resnet是一種殘差網絡,它與普通網絡最不同的地方就是引入了一個跳躍連接,使得上一個殘差塊的信息沒有阻礙地流入下一個殘差塊,提高了信息的流通,能夠避免由網絡過深引起的消失梯度問題和退化問題。ResNet的概述如圖6所示。

圖6 ResNet概述

(1)第一層卷積Conv1:64個7*7卷積核,步幅為2,輸出64個(112,112);
(2)最大池化層pool1:步幅為2,池化區域(3,3),輸出 64個(5,5);
(3)第二大層卷積Conv2_x:(64,1,1),(64,3,3),(256,1,1)的卷積核各3個;
(4)第三大層卷積Conv3_x:(128,1,1),(128,3,3),(512,1,1)的卷積核各4個;
(5)第四大層卷積Conv4_x:(256,1,1),(256,3,3),(1024,1,1)的卷積核各6個;
(6)第五大層卷積Conv5_x:(512,1,1),(512,3,3),(2048,1,1)的卷積核各3個;
(7)全局平均池化層:pool5:步幅為1,池化區域(7,7),輸出2048個(1,1);
(9)全連接層fc:輸入2048個神經元節點,輸出ci。
如表2所示。

表2 改進后的ResNet50網絡架構
本文針對兩個不同的分類問題,定義了兩個損失函數。
交叉熵(cross entropy)是香農信息論中用于度量兩個概率分布之間的差異性信息的一個重要概念[13]。針對分類任務使用交叉熵損失函數訓練模型,用來評估真實值與預測值之間的差別。交叉熵描述了兩個概率分布的差異,然而神經網絡輸出的是向量,并不符合概率分布的形式,因此需要用一個激活函數將神經網絡輸出的向量進行“歸一化”成概率分布的形式,這樣就能采用交叉熵損失函數計算loss了,本文選擇的激活函數是softmax。將ResNet50中全連接層輸出的向量ci,經過用于多分類的softmax激活函數處理得到
(3)
其中,ci為全連接層的輸出;N為總類數,yi為預測對象屬于第N類的概率。
然后計算任務k的預測標簽和真實標簽之間的交叉熵損失如下
(4)
其中,M表示類別的數量;yi為上述softmax的輸出;ti表示真實值。
(5)
本實驗運用前文構建的蠟染紋樣圖案數據集Batik Data,共12 249張圖,格式為jpg,進行訓練和測試測試環境為python3.7,CPU:4GHz Intel Core i7,內存:16 GB;GPU:NVIDIA GeForce GTX 1080,顯存:8 GB。
本文的訓練和測試環境為tensorflow深度學習框架;為保證數據的統一,對圖像數據進行預處理:對于訓練集首先對圖像采用224×224的隨機剪裁以統一圖像的大小,然后采用隨機水平翻轉并進行歸一化處理;同樣地,將驗證集圖像大小調整為224×224,并進行歸一化處理。訓練時,輸入的數據參數為224×224×3,lr設置為le-3,epochs為50。
為了更加直觀地展示檢索的效果,本文設置輸入一張蠟染紋樣圖片或文本,返回最相似的6張圖片。在圖-圖的模塊當中,為了使檢索更加具有實際意義,我們定義返回的圖片為非輸入圖片自身。
圖7(a)以隨機一張鳥紋和一張花紋的檢索結果為例,可以看出當輸入鳥紋圖片bird5時,返回了圖片bird1270、bird793、bird669等6張鳥紋圖片,相似度最高達到99.13%,同理,如圖7(b)所示,輸入花紋flower4時,返回flower2444等6張花紋圖片,相似度最高達到99.35%。可以看出圖-圖檢索的效果是比較準確的。

圖7 圖-圖隨機檢索實例
在文-圖任務中,由于人工標注的誤差和數據集中具體圖案類別的不均衡,造成了一些詞語只標注了10個左右的圖案,一些詞語卻標注了上千個圖案的現象,因此,我們剔除了標注圖片為100張以下的詞語,使得數據集的文本標注更加均勻便于機器學習。表3為每個詞最小標注圖片量為不同數量時,文本任務的準確率。

表3 最小標注圖片量為不同數量下文本任務的準確率
同樣設置輸入文本,返回相似度最高的6張圖片。如圖8(a)所示,以魚紋和為例,可以看出當輸入文本“魚紋”時,返回了圖片fish702、fish1714等6張魚紋圖片,相似度最高達到92.38%;如圖8(b)所示,當輸入“崇拜自然”時,返回drum263等6張帶有“崇拜自然”寓意的圖片,包括5張銅鼓紋和一張蝴蝶紋,相似度最高達到93.8%。

圖8 文-圖隨機檢索實例
需要說明的是,相較于圖-圖的檢索結果的準確率,文-圖的表現要差一些,這是因為人工標注的過程中,由于蠟染紋樣的圖案采集大部分來自《中國貴州民族民間美術全集:蠟染》中,且依賴于人工標注,盡管本文做了一些剔除的調整,仍然存在一些標注上的不均勻,因此一些大類(如鳥紋)下的小分類(如錦雞)數量不多且不均衡,造成了機器在學習過程中產生偏差。另外,由于多任務學習的機制中,任務間有主次之分,因為共享特征層,文本任務又一定程度上提高了主任務圖像任務的準確性,導致了一個任務表現優異,一個任務表現平平的結果。
最后本文用準確率Accuracy、平均查準率mAP、平均查詢時間mAT,與單任務下的調整前的ResNet網絡模型作對比,來評估圖-圖任務的實驗效果。
由表4可以看出本文相較于調整前的ResNet網絡模型在圖-圖任務上,平均查準率提升了2.4%,準確率提升了9.2%,平均查詢縮短了8.1 s。

表4 本文方法和ResNet50對比
針對非物質文化遺產數字化問題中的解讀與再利用問題,以貴州苗族蠟染紋樣為例,提出一種基于多任務學習的跨模態檢索方法,實現圖-圖及文-圖的檢索。該方法以ResNet50為主干,提取圖片特征,采用BERT預訓練模型提取文本特征,實現兩個預測任務。為驗證方法的有效性,本文從蠟染數據庫中提取蠟染紋樣圖案,并建立多層語義體系進行標注,構成蠟染紋樣圖案數據集Batik Dataset。最后在Batik Dataset上驗證了方法的有效性。
其中圖-圖檢索任務,相對于ResNet50單模態檢索在平均準確率上有2.4%的提升。然而受人工標注產生的標注詞匯分布不均勻的影響,文-圖任務并不理想。
通過分析,造成文-圖任務與理想結果產生偏差的原因有二:一是數據集在人工標注的過程中容易受疲勞、主觀等因素影響,造成標注的詞匯分布不均勻造成結果的偏差;二是由多任務學習的特性和數據集標注存在缺陷造成的。
在未來的工作中,一方面為減少人工標注易產生疲勞而產生標注的偏差問題,研究自動標注方法;另一方面將考慮更全面地構建語義模型,完善數據集標注不均勻的問題,豐富訓練集,利用大量數據進行訓練,提高模型的效率。