周長(zhǎng)敏,佘佐明,吳安麗
(1.凱里學(xué)院,大數(shù)據(jù)工程學(xué)院,凱里556011;2.凱里學(xué)院,經(jīng)濟(jì)與管理學(xué)院,凱里556011;3.凱里學(xué)院,美術(shù)與設(shè)計(jì)學(xué)院,凱里556011)
按地區(qū)和風(fēng)格對(duì)蠟染紋樣進(jìn)行分類是蠟染數(shù)字化保護(hù)的基礎(chǔ)工作,具有重要意義。在圖像分類模型中,基于卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNNs)的模型在圖像分類領(lǐng)域取得了令人矚目的成績(jī),提出了AlexNet、GoogLeNet、VGGNet、ResNet等經(jīng)典模型。CNNs直接依靠神經(jīng)網(wǎng)絡(luò)本身去學(xué)習(xí)數(shù)據(jù)的特征[1],無(wú)需設(shè)計(jì)復(fù)雜的特征提取器,因而在紡織品識(shí)別與分類領(lǐng)域得到廣泛關(guān)注。黎智等人[2]使用VGGNet實(shí)現(xiàn)了蠟染染色模擬,侯宇康等人[3]使用VGGNet提取蠟染紋理特征并將其風(fēng)格遷移到其他圖案生成全新的民族紋飾圖案。王飛等人[4]使用CNNs進(jìn)行羊絨與羊毛鑒別、賈小軍等人[5]使用CNNs對(duì)藍(lán)印花布紋樣基元進(jìn)行分類都取得了較好的分類效果。目前,CNNs應(yīng)用于蠟染紋樣分類的研究較少,本文提出一種改進(jìn)的VGGNet模型對(duì)蠟染紋樣進(jìn)行分類,并通過(guò)實(shí)驗(yàn)驗(yàn)證模型的分類效果。
遷移學(xué)習(xí)(Transfer Learning)是一種將源領(lǐng)域?qū)W習(xí)到的知識(shí)應(yīng)用到目標(biāo)領(lǐng)域的機(jī)器學(xué)習(xí)方法[6]。CNNs是一種包含卷積運(yùn)算的神經(jīng)網(wǎng)絡(luò),主要由輸入層、卷積層、池化層、全連接層組成。為擴(kuò)展網(wǎng)絡(luò)深度,CNNs通常包含多個(gè)交替堆疊的卷積層和池化層。深層的CNNs擁有大量的參數(shù),需要巨大的數(shù)據(jù)樣本進(jìn)行長(zhǎng)時(shí)間訓(xùn)練才能充分捕獲數(shù)據(jù)中的規(guī)律,從而取得好的分類效果。VGGNet、AlexNet等優(yōu)秀模型所使用的訓(xùn)練數(shù)據(jù)集為120萬(wàn)張圖像的ImageNet數(shù)據(jù)集。在具體的應(yīng)用領(lǐng)域重新建立新的CNNs,如果數(shù)據(jù)樣本不足會(huì)導(dǎo)致網(wǎng)絡(luò)模型在訓(xùn)練過(guò)程中參數(shù)過(guò)度擬合訓(xùn)練數(shù)據(jù)集,從而影響模型的泛化性能。本文采用遷移學(xué)習(xí)的方法,對(duì)VGGNet模型的全連接層進(jìn)行調(diào)整,使用預(yù)先訓(xùn)練好的模型參數(shù)作為初始化參數(shù),使用蠟染紋樣數(shù)據(jù)集對(duì)模型進(jìn)行訓(xùn)練,以適應(yīng)蠟染紋樣的分類問(wèn)題。
CNNs的訓(xùn)練需要大量標(biāo)注的數(shù)據(jù)樣本,為解決訓(xùn)練樣本不足的問(wèn)題,可采用數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充數(shù)據(jù)樣本。數(shù)據(jù)增強(qiáng)是指在不改變圖像主要特征的前提下通過(guò)裁剪、縮放、平移、旋轉(zhuǎn)等操作,對(duì)圖像數(shù)據(jù)集進(jìn)行擴(kuò)充。本文采集了安順、丹寨、黃平、織金4種風(fēng)格類型的蠟染紋樣圖像,圖1所示為1張丹寨蠟染紋樣圖像經(jīng)過(guò)數(shù)據(jù)增強(qiáng)處理后到的樣本圖像。對(duì)訓(xùn)練集進(jìn)行數(shù)據(jù)增強(qiáng)可以讓模型學(xué)習(xí)到圖像特征的不變性,有助于提高模型的泛化能力。
圖1 蠟染紋樣數(shù)據(jù)增強(qiáng)
VGGNet是Simonyan等人[7]在2014年提出的網(wǎng)絡(luò)模型,在ImageNet視覺(jué)識(shí)別競(jìng)賽中獲得分類第二的成績(jī)。VGG16和VGG19是VGGNet中的最常用的兩個(gè)模型,VGG16和VGG19卷積層數(shù)分別為13和16,兩者的全連接層都為3層,具體結(jié)構(gòu)如圖2所示。與AlexNet模型使用多尺寸卷積核不同,VGGNet統(tǒng)一使用3×3大小的卷積核,卷積核個(gè)數(shù)從淺層的64個(gè)增加到深層的512個(gè)。使用多個(gè)小卷積核代替大卷積核的優(yōu)勢(shì)是多個(gè)卷積核需要經(jīng)過(guò)多次激活,能夠增加網(wǎng)絡(luò)的非線性,增強(qiáng)網(wǎng)絡(luò)的表征能力。
圖2 VGG16和VGG19結(jié)構(gòu)
為保留更多的圖像信息和保證網(wǎng)絡(luò)的深度,VGGNet采用一組卷積層加一個(gè)池化層的方式來(lái)組織網(wǎng)絡(luò)結(jié)構(gòu),池化層全部采用最大池化法,池化核的大小為2×2。VGGNet有3個(gè)全連接層。各全連接層的神經(jīng)元個(gè)數(shù)分別為4096、4096、1000,全連接層的輸出結(jié)果通過(guò)Softmax函數(shù)生成分類標(biāo)簽。
VGGNet屬于參數(shù)量巨大的深層網(wǎng)絡(luò),3個(gè)全連接層的參數(shù)密度最高,大量的參數(shù)容易導(dǎo)致網(wǎng)絡(luò)模型過(guò)擬合[8],從而影響模型的泛化性能。Hinton等人[9]提出了在訓(xùn)練過(guò)程中隨機(jī)丟棄全連接層部分神經(jīng)元的dropout方法來(lái)解決過(guò)擬合的問(wèn)題,但效果不理想。Lin等人[10]提出將最后池化層輸出的特征圖進(jìn)行全局平均池化(Global Average Pooling)來(lái)減少參數(shù)的方法。全局平均池化與普通平均池化不同,全局平均池化的池化窗口大小與每個(gè)通道的特征圖大小相同,相當(dāng)于對(duì)每個(gè)特征圖獨(dú)立地進(jìn)行求平均值操作,該平均值相當(dāng)于類別的置信度。將最后池化層輸出的特征圖進(jìn)行全局平均池化代替原來(lái)的全連接層,可縮減參數(shù)量,有助于解決過(guò)擬合問(wèn)題。
基于以上思路,本文在保持VGG網(wǎng)絡(luò)卷積層結(jié)構(gòu)不變的情況下,將網(wǎng)絡(luò)的全連接層調(diào)整為全局平均池化層,如圖3所示為改進(jìn)后的VGG16網(wǎng)絡(luò)結(jié)構(gòu)。
(1)輸入層。將輸入的RGB模式蠟染紋樣圖像統(tǒng)一調(diào)整到224×224像素,對(duì)圖片進(jìn)行歸一化處理,得到標(biāo)準(zhǔn)化的像素矩陣。
(2)卷積組。如圖3所示,卷積組的結(jié)構(gòu)與VGG16模型一致,由5個(gè)塊(block)組成。block1、block2為2層卷積,block3、block4、block5為3層卷積,每個(gè)block的最后層為2×2的最大池化層。
圖3 改進(jìn)的VGG16模型
(3)全局平均池化層。在原來(lái)VGG16模型最后的卷積塊block5之后增加一個(gè)全局平均池化層,對(duì)512個(gè)尺寸為7×7的特征圖進(jìn)行全局平均池化操作,池化核的大小為7×7,池化步長(zhǎng)為7。全局平均池化層輸出長(zhǎng)度為512的一維向量與4個(gè)分類神經(jīng)元進(jìn)行全連接,輸出結(jié)果通過(guò)Softmax函數(shù)生成分類標(biāo)簽。
本文實(shí)驗(yàn)數(shù)據(jù)為實(shí)地拍攝采集的4類蠟染紋樣圖片1784張,包括安順蠟染460張、丹寨蠟染456張、黃平蠟染438張、織金蠟染430張。每類蠟染抽取80%的圖片進(jìn)行數(shù)據(jù)增強(qiáng),得到5600張圖片用于模型的訓(xùn)練,20%的圖片作為測(cè)試集用于測(cè)試模型的分類準(zhǔn)確率與泛化性能,測(cè)試集不進(jìn)行數(shù)據(jù)增強(qiáng)操作。圖4為各類蠟染紋樣例圖。
圖4 蠟染樣例
實(shí)驗(yàn)效果評(píng)價(jià)標(biāo)準(zhǔn)為圖像分類準(zhǔn)確率(Accuracy),具體表示如下:
公式(1)中M表示測(cè)試集樣本總數(shù),T為正確分?jǐn)?shù)的樣本數(shù)。
本文實(shí)驗(yàn)的硬件環(huán)境為CPU Intel Core i7-10750H,內(nèi)存16GB,顯卡NVIDIA GeForce GTX 1650,顯存4GB。軟件環(huán)境為Windows 10操作系統(tǒng),使用Anaconda進(jìn)行開(kāi)發(fā)環(huán)境管理,在TensorFlow-GPU框架的基礎(chǔ)上實(shí)現(xiàn)模型的微調(diào),模型的訓(xùn)練和測(cè)試采用CUDA并行計(jì)算框架和cuDNN深度神經(jīng)網(wǎng)絡(luò)的加速庫(kù)來(lái)實(shí)現(xiàn)GPU加速,數(shù)據(jù)增強(qiáng)使用Python的imgaug庫(kù)實(shí)現(xiàn)。
為驗(yàn)證本文模型的有效性,分析CNNs提取圖像特征的特點(diǎn),設(shè)置以下實(shí)驗(yàn)內(nèi)容。
實(shí)驗(yàn)一:本文模型的有效性驗(yàn)證,具體流程如下:
(1)構(gòu)建蠟染紋樣分類模型。在VGG16、VGG19模型的最后池化層之后增加一個(gè)全局平均池化層,將全局平均池化的輸出與4個(gè)分類神經(jīng)元進(jìn)行全連接,構(gòu)建2個(gè)改進(jìn)模型。修改原VGG16、VGG19模型的分類神經(jīng)元個(gè)數(shù)為4個(gè),構(gòu)建2個(gè)對(duì)比模型。
(2)訓(xùn)練模型。使用預(yù)先訓(xùn)練好的VGG16、VGG19模型參數(shù)作為初始化參數(shù),設(shè)定學(xué)習(xí)率、數(shù)據(jù)批量值、迭代次數(shù)以及優(yōu)化器,使用相同的訓(xùn)練數(shù)據(jù)集對(duì)(1)中構(gòu)建的4個(gè)模型進(jìn)行訓(xùn)練。
(3)測(cè)試模型。使用相同的測(cè)試集對(duì)以上4個(gè)模型進(jìn)行測(cè)試,驗(yàn)證分類效果。
實(shí)驗(yàn)二:與傳統(tǒng)分類模型對(duì)比,具體流程如下:
(1)采用方向梯度直方圖(Histogram of Oriented Gradient,HOG)算法提取蠟染紋樣特征,使用特征數(shù)據(jù)訓(xùn)練支持向量機(jī)(Support Vector Machine,SVM)模型,測(cè)試模型的分類效果。
(2)通過(guò)尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)算法對(duì)蠟染紋樣進(jìn)行特征提取,使用K-means算法對(duì)特征進(jìn)行聚類得到特征詞典,以特征詞典為基礎(chǔ)將每幅圖片表示成特征向量,使用特征向量訓(xùn)練SVM模型,使用相同的測(cè)試集測(cè)試分類效果。
3.4.1 實(shí)驗(yàn)一
通過(guò)實(shí)驗(yàn),確定訓(xùn)練樣本和測(cè)試樣本的數(shù)據(jù)批量值(batch size)均為32,訓(xùn)練迭代次數(shù)為3000次,使用Adam自適應(yīng)優(yōu)化器,初始學(xué)習(xí)率設(shè)為0.001。如圖5所示為訓(xùn)練過(guò)程中的損失函數(shù)的變化曲線圖。從圖中看出,使用全局平均池化層改進(jìn)的VGG16_improve和VGG19_improve模型的初始損失值都低于原模型,4個(gè)模型在前1000次訓(xùn)練過(guò)程中損失值下降速度最快,迭代2000次以后模型基本收斂,因此訓(xùn)練3000次可以得到分類效果穩(wěn)定的模型。實(shí)驗(yàn)表明使用預(yù)先訓(xùn)練好的模型參數(shù)作為初始化參數(shù)可以加快模型收斂的速度,減少訓(xùn)練次數(shù),達(dá)到遷移學(xué)習(xí)的目的。
圖5 損失函數(shù)曲線
表1為4個(gè)模型在訓(xùn)練集和測(cè)試集上的準(zhǔn)確率。從表1中可看出,改進(jìn)的VGG16_improve、VGG19_improve模型在訓(xùn)練集和測(cè)試集上的分類準(zhǔn)確率都高于原模型,并且在測(cè)試集上的分類準(zhǔn)確率達(dá)到了92.12%和95.79%,表明本文提出的改進(jìn)模型具有更好的分類效果和泛化性能。本組實(shí)驗(yàn)也驗(yàn)證了網(wǎng)絡(luò)層數(shù)的增加在一定程度上能夠提升分類準(zhǔn)確率。
表1 分類準(zhǔn)確率
3.4.2 實(shí)驗(yàn)二
表2為本文模型與傳統(tǒng)分類模型準(zhǔn)確率的對(duì)比。從表2中可以看出,相比HOG+SVM分類法、SIFT+SVM分類法,本文模型的分類準(zhǔn)確率得到了大幅度的提高,表明本文提出的模型更適用于蠟染紋樣分類問(wèn)題,同時(shí)驗(yàn)證了卷積神經(jīng)網(wǎng)絡(luò)的圖像特征提取性能優(yōu)于傳統(tǒng)的圖像特征提取算法。
表2 與傳統(tǒng)分類方法對(duì)比
蠟染屬于國(guó)家非物質(zhì)文化遺產(chǎn),蠟染紋樣分類是對(duì)其進(jìn)行數(shù)字化保護(hù)的基礎(chǔ)工作。本文提出一種改進(jìn)的VGGNet分類模型,將最后池化層的輸出進(jìn)行全局平均池化后直接與分類神經(jīng)元進(jìn)行全連接,使用預(yù)先訓(xùn)練好的VGGNet模型參數(shù)作為初始化參數(shù),提高訓(xùn)練的效率,采用數(shù)據(jù)增強(qiáng)技術(shù)擴(kuò)充訓(xùn)練集樣本數(shù)量,提高模型的泛化能力。通過(guò)與原模型、傳統(tǒng)分類方法進(jìn)行實(shí)驗(yàn)對(duì)比,本文提出的改進(jìn)模型在蠟染測(cè)試集上的分類準(zhǔn)確率達(dá)到92.12%和95.79%,具有較好的分類效果。下一步的研究工作是繼續(xù)收集蠟染紋樣,擴(kuò)充類別與數(shù)據(jù)集,研究其他卷積神經(jīng)網(wǎng)絡(luò)模型的分類效果,改進(jìn)、優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu),進(jìn)一步提升分類性能。