鄒 悅,潘偉杰,呂 健,方年麗,岳 迪,朱姝蔓
(貴州大學(xué) 現(xiàn)代制造技術(shù)教育部重點(diǎn)實(shí)驗(yàn)室,貴州 貴陽(yáng) 550025)
在民族圖案非物質(zhì)文化遺產(chǎn)數(shù)字化的進(jìn)程當(dāng)中,包括提取、解讀、重用3部分[1],如何對(duì)其釋義、如何快速處理其分類(lèi)、識(shí)別、檢索等問(wèn)題,亦是數(shù)字文化遺產(chǎn)解讀、重用的重要研究方向。Wang等[2]根據(jù)面向工藝品個(gè)性化定制的蠟染知識(shí)分類(lèi)框架對(duì)蠟染案例進(jìn)行分析,構(gòu)建蠟染知識(shí)庫(kù)并對(duì)蠟染圖案進(jìn)行編碼。Xu等[3]通過(guò)研究剪紙圖像的自動(dòng)分類(lèi)識(shí)別來(lái)尋找實(shí)現(xiàn)對(duì)剪紙圖像分類(lèi)儲(chǔ)存、高效檢索的新途徑。Yuan等[3]提出了一種基于距離度量學(xué)習(xí)和加權(quán)二部圖匹配的方法,將全局特征和局部特征提取與整合,得到蠟染醒目形狀模式,以實(shí)現(xiàn)蠟染紋樣圖像的搜索。綜合來(lái)看,上述研究對(duì)民族圖案的數(shù)字化研究做出了具有參考價(jià)值的研究,但做檢索研究的過(guò)程中,沒(méi)有考慮到民族圖案具有豐富語(yǔ)義的特性,多只涉及了單模態(tài)的檢索。
因此,本文針對(duì)貴州蠟染紋樣,提出了一種基于多任務(wù)學(xué)習(xí)的跨模態(tài)檢索方法。實(shí)現(xiàn)圖-圖、文-圖的跨模態(tài)檢索。主要內(nèi)容如下:
(1)蠟染數(shù)據(jù)集的構(gòu)建:從“非遺貴州”網(wǎng)站及《中國(guó)貴州民族民間美術(shù)全集:蠟染》中提取蠟染紋樣圖片,并根據(jù)文化背景進(jìn)行語(yǔ)義層次分析,對(duì)圖片數(shù)據(jù)進(jìn)行增強(qiáng)后對(duì)其按語(yǔ)義體系進(jìn)行標(biāo)注,構(gòu)建蠟染紋樣圖案數(shù)據(jù)集Batik Dataset;
(2)蠟染紋樣跨模態(tài)檢索模型的構(gòu)建:由ResNet50為主干,提取圖片特征,采用BERT預(yù)訓(xùn)練模型提取文本特征輸送到主干網(wǎng)絡(luò)中,實(shí)現(xiàn)兩個(gè)預(yù)測(cè)任務(wù)的學(xué)習(xí);
(3)實(shí)驗(yàn):將模型運(yùn)用在Batik Dataset上驗(yàn)證其有效性。
民族圖案是一種極具語(yǔ)義特征的特殊圖案,針對(duì)民族服飾銀宇堃等[5]提出一種基于標(biāo)簽民俗語(yǔ)義模型的圖案語(yǔ)義標(biāo)簽體系,用三層語(yǔ)義來(lái)增加標(biāo)簽的專(zhuān)業(yè)性和實(shí)用性。本文借鑒該方法,參考《中國(guó)貴州民族民間美術(shù)全集:蠟染》中的蠟染文化背景、張智艷[6]和孫鑫磊[7]等對(duì)苗族圖案意象的研究,針對(duì)貴州苗族蠟染紋樣進(jìn)行層次分析,建立適用于蠟染的語(yǔ)義體系,并依據(jù)該語(yǔ)義體系對(duì)數(shù)據(jù)集進(jìn)行標(biāo)注,最終構(gòu)建一個(gè)總數(shù)為12 249張的蠟染紋樣圖案數(shù)據(jù)集,命名為Batik Dataset。
本文的數(shù)據(jù)集來(lái)源于“非遺貴州”的系統(tǒng)網(wǎng)站,從“非遺貴州”系統(tǒng)網(wǎng)站現(xiàn)有的蠟染圖庫(kù)中,采集了常見(jiàn)的苗族蠟染紋樣,采集過(guò)程中借助貴州省蠟染制作者、蠟染研究者、工藝品設(shè)計(jì)師等多方面的專(zhuān)家提供的蠟染知識(shí)和技術(shù)知識(shí)進(jìn)行辨識(shí),保證紋樣數(shù)據(jù)具有相對(duì)的完整性和代表性,其中包括鳥(niǎo)紋、花紋、魚(yú)紋、銅鼓紋、蝴蝶紋五大類(lèi)紋樣。由于蠟染圖片的基數(shù)少,采集得到的圖像數(shù)據(jù)量也相對(duì)較小,為解決這一問(wèn)題,本文對(duì)采集的數(shù)據(jù)進(jìn)行了數(shù)據(jù)增強(qiáng),以防止機(jī)器學(xué)習(xí)中因樣本量過(guò)少產(chǎn)生過(guò)擬合現(xiàn)象并提升網(wǎng)絡(luò)模型的魯棒性和泛化能力。增強(qiáng)后的數(shù)據(jù)合計(jì)蠟染紋樣圖像12 249張,部分采集圖案如圖1所示。
圖1 部分蠟染紋樣采集圖像及分類(lèi)
苗族是一個(gè)沒(méi)有語(yǔ)言的民族,因此苗族蠟染在文化意義上,不僅是裝飾物,更是苗族歷史文化的載體。從符號(hào)學(xué)的角度來(lái)看,蠟染紋樣是極具語(yǔ)義內(nèi)容、具有豐富的意象,紋樣之意是其表征上視覺(jué)給人帶來(lái)的意向,而紋樣之言則是其表達(dá)的創(chuàng)作思維和內(nèi)涵;紋樣之意為其所指,紋樣之言為其能指[6]。
為了給苗族蠟染紋樣建立一個(gè)統(tǒng)一的語(yǔ)義體系作為標(biāo)注的參考標(biāo)準(zhǔn),本文根據(jù)上述方法,從符號(hào)學(xué)的角度對(duì)蠟染紋樣的語(yǔ)義進(jìn)行分類(lèi)、拆解,從而構(gòu)建一個(gè)語(yǔ)義標(biāo)簽體系模型。目前標(biāo)簽標(biāo)注多采用三元模型,根據(jù)蠟染語(yǔ)義層次的特點(diǎn),我們構(gòu)建以下模型
(1)
其中,P為圖案視覺(jué)上紋樣的類(lèi)型;S為該紋樣的象征意義;G為圖畫(huà)工藝的類(lèi)型。
模型如圖2所示。
圖2 語(yǔ)義標(biāo)注模型
紋樣的類(lèi)型P(pattern)主要有鳥(niǎo)紋、魚(yú)紋、花紋、蝴蝶紋、銅鼓紋等,它描述的是紋樣視覺(jué)表達(dá)上的形式。
紋樣的象征意義S(symbolic meanings)表示紋樣的文化內(nèi)涵,以蝴蝶紋為例:“蝴蝶媽媽”在苗族的神話傳說(shuō)中占有重要的地位[7],常作為嬰兒襁褓上的圖案,是祈求庇護(hù)和保佑,同時(shí),苗族人也對(duì)蝴蝶的生殖能力有著崇拜之情,因此蝴蝶紋也表達(dá)了苗族人民“多子多?!钡拿篮迷妇?。
紋樣的工藝類(lèi)型G(genre)表示貴州蠟染不同的藝術(shù)風(fēng)格流派,包括月亮山型、飛云山型、扁擔(dān)山型、烏蒙山型等[8],不同的藝術(shù)風(fēng)格分布的地區(qū)不同,風(fēng)格也有著細(xì)微的差異,背后也蘊(yùn)涵著不同的歷史。標(biāo)注不同的藝術(shù)風(fēng)格,有利于更好的溯源和理解紋樣的含義。
依據(jù)上述規(guī)則,本文針對(duì)不同的蠟染紋樣圖片進(jìn)行標(biāo)注,見(jiàn)表1。
表1 部分蠟染紋樣圖案標(biāo)注示例
多任務(wù)學(xué)習(xí)屬于歸納遷移學(xué)習(xí)機(jī)制的一種,它通過(guò)共享特征層和并行訓(xùn)練的方法實(shí)現(xiàn)多個(gè)任務(wù)的學(xué)習(xí),同時(shí)能夠利用相關(guān)任務(wù)中的領(lǐng)域特定信息來(lái)提高模型的泛化能力。
本文所采用多任務(wù)學(xué)習(xí)的架構(gòu),訓(xùn)練階段的目的是輸入蠟染圖片,能夠得到類(lèi)別和文本分類(lèi)這兩個(gè)結(jié)果,通過(guò)BERT模型提取文本特征,采用ResNet50作為學(xué)習(xí)的主干網(wǎng)絡(luò),同時(shí)提取圖片特征,網(wǎng)絡(luò)中定義一個(gè)輸入,兩個(gè)輸出,實(shí)現(xiàn)兩個(gè)預(yù)測(cè)任務(wù)的學(xué)習(xí)。
本文利用BERT模型[9]進(jìn)行文本特征的提取。BERT模型Google提出的自然語(yǔ)言處理模型,是bidirectional encoder representations from trans-formers的簡(jiǎn)稱(chēng),其結(jié)構(gòu)是基于多層雙向tranformer模型的encoder結(jié)構(gòu),不同于以往的自然語(yǔ)言處理模型,只能獲取詞語(yǔ)單側(cè)(左側(cè)或右側(cè))的信息,由于這種雙向結(jié)構(gòu),使得BERT模型能夠獲取詞語(yǔ)雙方向的信息,并整合起來(lái)。其結(jié)構(gòu)比transformer更深,因此被廣泛應(yīng)用于NLP領(lǐng)域。同時(shí)它使用自我注意力機(jī)制,能夠根據(jù)不同語(yǔ)境學(xué)習(xí),用Transformer代替了RNN,由于這兩個(gè)機(jī)制的特性,使得BERT模型能夠生成詞向量,解決word2vec中不能解決的一詞多義的問(wèn)題,表達(dá)詞語(yǔ)在不同語(yǔ)境中的含義。BERT的模型的結(jié)構(gòu)如圖3所示。
圖3 BERT模型的結(jié)構(gòu)
在BERT模型之前,自然語(yǔ)言處理常用OpenAI GPT預(yù)訓(xùn)練語(yǔ)言模型,二者都使用了Transformer,但BERT模型針對(duì)OpenAI GPT模型中使用的單向注意力機(jī)制進(jìn)行了改進(jìn),借鑒殘差網(wǎng)絡(luò)并使用雙向Transformer的編碼器作為基本組成單元,這使得BERT模型能夠結(jié)合上下文信息進(jìn)行訓(xùn)練[10],BERT中的Transformer網(wǎng)絡(luò)結(jié)構(gòu)如圖4[11]所示。
圖4 BERT模型中采用的Transformer網(wǎng)絡(luò)
BERT模型中的多頭注意力機(jī)制,通過(guò)這種結(jié)構(gòu)形式,可以使模型捕獲更多層面的語(yǔ)義特征,將結(jié)果進(jìn)行整合拼接得到的最終結(jié)果。多頭注意力機(jī)制的結(jié)構(gòu)如圖5所示。
圖5 BERT模型的多頭注意力機(jī)制
民族圖案是一種極具語(yǔ)義特征的特殊圖案,用戶(hù)習(xí)慣于根據(jù)先驗(yàn)知識(shí)用圖像的語(yǔ)義進(jìn)行檢索,而不是視覺(jué)特征來(lái)進(jìn)行查詢(xún),例如檢索“橙子”時(shí),我們會(huì)直接搜索關(guān)鍵詞“橙子”而不是“橙色的球體”。但在實(shí)際應(yīng)用中視覺(jué)特征相似的圖像其語(yǔ)義很可能存在很大差別,這是因?yàn)閳D像的高層語(yǔ)義(即象征含義)和低層特征(即視覺(jué)特征)之間沒(méi)有直接關(guān)聯(lián),會(huì)產(chǎn)生“語(yǔ)義鴻溝”,這導(dǎo)致一些圖像檢索系統(tǒng)在進(jìn)行某些查詢(xún)時(shí)會(huì)得到意料之外的結(jié)果。
(2)
本文利用Resnet50以提取圖像特征同時(shí)也作為多任務(wù)學(xué)習(xí)的主干。在神經(jīng)網(wǎng)絡(luò)中,隨著深度和寬度的增加,可以較好提升網(wǎng)絡(luò)性能,但同時(shí),因?yàn)榫W(wǎng)絡(luò)層數(shù)增加,導(dǎo)致訓(xùn)練集上的準(zhǔn)確率飽和下降,這個(gè)就是退化問(wèn)題。Resnet是一種殘差網(wǎng)絡(luò),它與普通網(wǎng)絡(luò)最不同的地方就是引入了一個(gè)跳躍連接,使得上一個(gè)殘差塊的信息沒(méi)有阻礙地流入下一個(gè)殘差塊,提高了信息的流通,能夠避免由網(wǎng)絡(luò)過(guò)深引起的消失梯度問(wèn)題和退化問(wèn)題。ResNet的概述如圖6所示。
圖6 ResNet概述
(1)第一層卷積Conv1:64個(gè)7*7卷積核,步幅為2,輸出64個(gè)(112,112);
(2)最大池化層pool1:步幅為2,池化區(qū)域(3,3),輸出 64個(gè)(5,5);
(3)第二大層卷積Conv2_x:(64,1,1),(64,3,3),(256,1,1)的卷積核各3個(gè);
(4)第三大層卷積Conv3_x:(128,1,1),(128,3,3),(512,1,1)的卷積核各4個(gè);
(5)第四大層卷積Conv4_x:(256,1,1),(256,3,3),(1024,1,1)的卷積核各6個(gè);
(6)第五大層卷積Conv5_x:(512,1,1),(512,3,3),(2048,1,1)的卷積核各3個(gè);
(7)全局平均池化層:pool5:步幅為1,池化區(qū)域(7,7),輸出2048個(gè)(1,1);
(9)全連接層fc:輸入2048個(gè)神經(jīng)元節(jié)點(diǎn),輸出ci。
如表2所示。
表2 改進(jìn)后的ResNet50網(wǎng)絡(luò)架構(gòu)
本文針對(duì)兩個(gè)不同的分類(lèi)問(wèn)題,定義了兩個(gè)損失函數(shù)。
交叉熵(cross entropy)是香農(nóng)信息論中用于度量?jī)蓚€(gè)概率分布之間的差異性信息的一個(gè)重要概念[13]。針對(duì)分類(lèi)任務(wù)使用交叉熵?fù)p失函數(shù)訓(xùn)練模型,用來(lái)評(píng)估真實(shí)值與預(yù)測(cè)值之間的差別。交叉熵描述了兩個(gè)概率分布的差異,然而神經(jīng)網(wǎng)絡(luò)輸出的是向量,并不符合概率分布的形式,因此需要用一個(gè)激活函數(shù)將神經(jīng)網(wǎng)絡(luò)輸出的向量進(jìn)行“歸一化”成概率分布的形式,這樣就能采用交叉熵?fù)p失函數(shù)計(jì)算loss了,本文選擇的激活函數(shù)是softmax。將ResNet50中全連接層輸出的向量ci,經(jīng)過(guò)用于多分類(lèi)的softmax激活函數(shù)處理得到
(3)
其中,ci為全連接層的輸出;N為總類(lèi)數(shù),yi為預(yù)測(cè)對(duì)象屬于第N類(lèi)的概率。
然后計(jì)算任務(wù)k的預(yù)測(cè)標(biāo)簽和真實(shí)標(biāo)簽之間的交叉熵?fù)p失如下
(4)
其中,M表示類(lèi)別的數(shù)量;yi為上述softmax的輸出;ti表示真實(shí)值。
(5)
本實(shí)驗(yàn)運(yùn)用前文構(gòu)建的蠟染紋樣圖案數(shù)據(jù)集Batik Data,共12 249張圖,格式為jpg,進(jìn)行訓(xùn)練和測(cè)試測(cè)試環(huán)境為python3.7,CPU:4GHz Intel Core i7,內(nèi)存:16 GB;GPU:NVIDIA GeForce GTX 1080,顯存:8 GB。
本文的訓(xùn)練和測(cè)試環(huán)境為tensorflow深度學(xué)習(xí)框架;為保證數(shù)據(jù)的統(tǒng)一,對(duì)圖像數(shù)據(jù)進(jìn)行預(yù)處理:對(duì)于訓(xùn)練集首先對(duì)圖像采用224×224的隨機(jī)剪裁以統(tǒng)一圖像的大小,然后采用隨機(jī)水平翻轉(zhuǎn)并進(jìn)行歸一化處理;同樣地,將驗(yàn)證集圖像大小調(diào)整為224×224,并進(jìn)行歸一化處理。訓(xùn)練時(shí),輸入的數(shù)據(jù)參數(shù)為224×224×3,lr設(shè)置為le-3,epochs為50。
為了更加直觀地展示檢索的效果,本文設(shè)置輸入一張蠟染紋樣圖片或文本,返回最相似的6張圖片。在圖-圖的模塊當(dāng)中,為了使檢索更加具有實(shí)際意義,我們定義返回的圖片為非輸入圖片自身。
圖7(a)以隨機(jī)一張鳥(niǎo)紋和一張花紋的檢索結(jié)果為例,可以看出當(dāng)輸入鳥(niǎo)紋圖片bird5時(shí),返回了圖片bird1270、bird793、bird669等6張鳥(niǎo)紋圖片,相似度最高達(dá)到99.13%,同理,如圖7(b)所示,輸入花紋flower4時(shí),返回flower2444等6張花紋圖片,相似度最高達(dá)到99.35%??梢钥闯鰣D-圖檢索的效果是比較準(zhǔn)確的。
圖7 圖-圖隨機(jī)檢索實(shí)例
在文-圖任務(wù)中,由于人工標(biāo)注的誤差和數(shù)據(jù)集中具體圖案類(lèi)別的不均衡,造成了一些詞語(yǔ)只標(biāo)注了10個(gè)左右的圖案,一些詞語(yǔ)卻標(biāo)注了上千個(gè)圖案的現(xiàn)象,因此,我們剔除了標(biāo)注圖片為100張以下的詞語(yǔ),使得數(shù)據(jù)集的文本標(biāo)注更加均勻便于機(jī)器學(xué)習(xí)。表3為每個(gè)詞最小標(biāo)注圖片量為不同數(shù)量時(shí),文本任務(wù)的準(zhǔn)確率。
表3 最小標(biāo)注圖片量為不同數(shù)量下文本任務(wù)的準(zhǔn)確率
同樣設(shè)置輸入文本,返回相似度最高的6張圖片。如圖8(a)所示,以魚(yú)紋和為例,可以看出當(dāng)輸入文本“魚(yú)紋”時(shí),返回了圖片fish702、fish1714等6張魚(yú)紋圖片,相似度最高達(dá)到92.38%;如圖8(b)所示,當(dāng)輸入“崇拜自然”時(shí),返回drum263等6張帶有“崇拜自然”寓意的圖片,包括5張銅鼓紋和一張蝴蝶紋,相似度最高達(dá)到93.8%。
圖8 文-圖隨機(jī)檢索實(shí)例
需要說(shuō)明的是,相較于圖-圖的檢索結(jié)果的準(zhǔn)確率,文-圖的表現(xiàn)要差一些,這是因?yàn)槿斯?biāo)注的過(guò)程中,由于蠟染紋樣的圖案采集大部分來(lái)自《中國(guó)貴州民族民間美術(shù)全集:蠟染》中,且依賴(lài)于人工標(biāo)注,盡管本文做了一些剔除的調(diào)整,仍然存在一些標(biāo)注上的不均勻,因此一些大類(lèi)(如鳥(niǎo)紋)下的小分類(lèi)(如錦雞)數(shù)量不多且不均衡,造成了機(jī)器在學(xué)習(xí)過(guò)程中產(chǎn)生偏差。另外,由于多任務(wù)學(xué)習(xí)的機(jī)制中,任務(wù)間有主次之分,因?yàn)楣蚕硖卣鲗?,文本任?wù)又一定程度上提高了主任務(wù)圖像任務(wù)的準(zhǔn)確性,導(dǎo)致了一個(gè)任務(wù)表現(xiàn)優(yōu)異,一個(gè)任務(wù)表現(xiàn)平平的結(jié)果。
最后本文用準(zhǔn)確率Accuracy、平均查準(zhǔn)率mAP、平均查詢(xún)時(shí)間mAT,與單任務(wù)下的調(diào)整前的ResNet網(wǎng)絡(luò)模型作對(duì)比,來(lái)評(píng)估圖-圖任務(wù)的實(shí)驗(yàn)效果。
由表4可以看出本文相較于調(diào)整前的ResNet網(wǎng)絡(luò)模型在圖-圖任務(wù)上,平均查準(zhǔn)率提升了2.4%,準(zhǔn)確率提升了9.2%,平均查詢(xún)縮短了8.1 s。
表4 本文方法和ResNet50對(duì)比
針對(duì)非物質(zhì)文化遺產(chǎn)數(shù)字化問(wèn)題中的解讀與再利用問(wèn)題,以貴州苗族蠟染紋樣為例,提出一種基于多任務(wù)學(xué)習(xí)的跨模態(tài)檢索方法,實(shí)現(xiàn)圖-圖及文-圖的檢索。該方法以ResNet50為主干,提取圖片特征,采用BERT預(yù)訓(xùn)練模型提取文本特征,實(shí)現(xiàn)兩個(gè)預(yù)測(cè)任務(wù)。為驗(yàn)證方法的有效性,本文從蠟染數(shù)據(jù)庫(kù)中提取蠟染紋樣圖案,并建立多層語(yǔ)義體系進(jìn)行標(biāo)注,構(gòu)成蠟染紋樣圖案數(shù)據(jù)集Batik Dataset。最后在Batik Dataset上驗(yàn)證了方法的有效性。
其中圖-圖檢索任務(wù),相對(duì)于ResNet50單模態(tài)檢索在平均準(zhǔn)確率上有2.4%的提升。然而受人工標(biāo)注產(chǎn)生的標(biāo)注詞匯分布不均勻的影響,文-圖任務(wù)并不理想。
通過(guò)分析,造成文-圖任務(wù)與理想結(jié)果產(chǎn)生偏差的原因有二:一是數(shù)據(jù)集在人工標(biāo)注的過(guò)程中容易受疲勞、主觀等因素影響,造成標(biāo)注的詞匯分布不均勻造成結(jié)果的偏差;二是由多任務(wù)學(xué)習(xí)的特性和數(shù)據(jù)集標(biāo)注存在缺陷造成的。
在未來(lái)的工作中,一方面為減少人工標(biāo)注易產(chǎn)生疲勞而產(chǎn)生標(biāo)注的偏差問(wèn)題,研究自動(dòng)標(biāo)注方法;另一方面將考慮更全面地構(gòu)建語(yǔ)義模型,完善數(shù)據(jù)集標(biāo)注不均勻的問(wèn)題,豐富訓(xùn)練集,利用大量數(shù)據(jù)進(jìn)行訓(xùn)練,提高模型的效率。