周長敏,佘佐明,吳安麗
(1.凱里學院,大數據工程學院,凱里556011;2.凱里學院,經濟與管理學院,凱里556011;3.凱里學院,美術與設計學院,凱里556011)
按地區和風格對蠟染紋樣進行分類是蠟染數字化保護的基礎工作,具有重要意義。在圖像分類模型中,基于卷積神經網絡(Convolutional Neural Networks,CNNs)的模型在圖像分類領域取得了令人矚目的成績,提出了AlexNet、GoogLeNet、VGGNet、ResNet等經典模型。CNNs直接依靠神經網絡本身去學習數據的特征[1],無需設計復雜的特征提取器,因而在紡織品識別與分類領域得到廣泛關注。黎智等人[2]使用VGGNet實現了蠟染染色模擬,侯宇康等人[3]使用VGGNet提取蠟染紋理特征并將其風格遷移到其他圖案生成全新的民族紋飾圖案。王飛等人[4]使用CNNs進行羊絨與羊毛鑒別、賈小軍等人[5]使用CNNs對藍印花布紋樣基元進行分類都取得了較好的分類效果。目前,CNNs應用于蠟染紋樣分類的研究較少,本文提出一種改進的VGGNet模型對蠟染紋樣進行分類,并通過實驗驗證模型的分類效果。
遷移學習(Transfer Learning)是一種將源領域學習到的知識應用到目標領域的機器學習方法[6]。CNNs是一種包含卷積運算的神經網絡,主要由輸入層、卷積層、池化層、全連接層組成。為擴展網絡深度,CNNs通常包含多個交替堆疊的卷積層和池化層。深層的CNNs擁有大量的參數,需要巨大的數據樣本進行長時間訓練才能充分捕獲數據中的規律,從而取得好的分類效果。VGGNet、AlexNet等優秀模型所使用的訓練數據集為120萬張圖像的ImageNet數據集。在具體的應用領域重新建立新的CNNs,如果數據樣本不足會導致網絡模型在訓練過程中參數過度擬合訓練數據集,從而影響模型的泛化性能。本文采用遷移學習的方法,對VGGNet模型的全連接層進行調整,使用預先訓練好的模型參數作為初始化參數,使用蠟染紋樣數據集對模型進行訓練,以適應蠟染紋樣的分類問題。
CNNs的訓練需要大量標注的數據樣本,為解決訓練樣本不足的問題,可采用數據增強技術擴充數據樣本。數據增強是指在不改變圖像主要特征的前提下通過裁剪、縮放、平移、旋轉等操作,對圖像數據集進行擴充。本文采集了安順、丹寨、黃平、織金4種風格類型的蠟染紋樣圖像,圖1所示為1張丹寨蠟染紋樣圖像經過數據增強處理后到的樣本圖像。對訓練集進行數據增強可以讓模型學習到圖像特征的不變性,有助于提高模型的泛化能力。

圖1 蠟染紋樣數據增強
VGGNet是Simonyan等人[7]在2014年提出的網絡模型,在ImageNet視覺識別競賽中獲得分類第二的成績。VGG16和VGG19是VGGNet中的最常用的兩個模型,VGG16和VGG19卷積層數分別為13和16,兩者的全連接層都為3層,具體結構如圖2所示。與AlexNet模型使用多尺寸卷積核不同,VGGNet統一使用3×3大小的卷積核,卷積核個數從淺層的64個增加到深層的512個。使用多個小卷積核代替大卷積核的優勢是多個卷積核需要經過多次激活,能夠增加網絡的非線性,增強網絡的表征能力。

圖2 VGG16和VGG19結構
為保留更多的圖像信息和保證網絡的深度,VGGNet采用一組卷積層加一個池化層的方式來組織網絡結構,池化層全部采用最大池化法,池化核的大小為2×2。VGGNet有3個全連接層。各全連接層的神經元個數分別為4096、4096、1000,全連接層的輸出結果通過Softmax函數生成分類標簽。
VGGNet屬于參數量巨大的深層網絡,3個全連接層的參數密度最高,大量的參數容易導致網絡模型過擬合[8],從而影響模型的泛化性能。Hinton等人[9]提出了在訓練過程中隨機丟棄全連接層部分神經元的dropout方法來解決過擬合的問題,但效果不理想。Lin等人[10]提出將最后池化層輸出的特征圖進行全局平均池化(Global Average Pooling)來減少參數的方法。全局平均池化與普通平均池化不同,全局平均池化的池化窗口大小與每個通道的特征圖大小相同,相當于對每個特征圖獨立地進行求平均值操作,該平均值相當于類別的置信度。將最后池化層輸出的特征圖進行全局平均池化代替原來的全連接層,可縮減參數量,有助于解決過擬合問題。
基于以上思路,本文在保持VGG網絡卷積層結構不變的情況下,將網絡的全連接層調整為全局平均池化層,如圖3所示為改進后的VGG16網絡結構。
(1)輸入層。將輸入的RGB模式蠟染紋樣圖像統一調整到224×224像素,對圖片進行歸一化處理,得到標準化的像素矩陣。
(2)卷積組。如圖3所示,卷積組的結構與VGG16模型一致,由5個塊(block)組成。block1、block2為2層卷積,block3、block4、block5為3層卷積,每個block的最后層為2×2的最大池化層。

圖3 改進的VGG16模型
(3)全局平均池化層。在原來VGG16模型最后的卷積塊block5之后增加一個全局平均池化層,對512個尺寸為7×7的特征圖進行全局平均池化操作,池化核的大小為7×7,池化步長為7。全局平均池化層輸出長度為512的一維向量與4個分類神經元進行全連接,輸出結果通過Softmax函數生成分類標簽。
本文實驗數據為實地拍攝采集的4類蠟染紋樣圖片1784張,包括安順蠟染460張、丹寨蠟染456張、黃平蠟染438張、織金蠟染430張。每類蠟染抽取80%的圖片進行數據增強,得到5600張圖片用于模型的訓練,20%的圖片作為測試集用于測試模型的分類準確率與泛化性能,測試集不進行數據增強操作。圖4為各類蠟染紋樣例圖。

圖4 蠟染樣例
實驗效果評價標準為圖像分類準確率(Accuracy),具體表示如下:

公式(1)中M表示測試集樣本總數,T為正確分數的樣本數。
本文實驗的硬件環境為CPU Intel Core i7-10750H,內存16GB,顯卡NVIDIA GeForce GTX 1650,顯存4GB。軟件環境為Windows 10操作系統,使用Anaconda進行開發環境管理,在TensorFlow-GPU框架的基礎上實現模型的微調,模型的訓練和測試采用CUDA并行計算框架和cuDNN深度神經網絡的加速庫來實現GPU加速,數據增強使用Python的imgaug庫實現。
為驗證本文模型的有效性,分析CNNs提取圖像特征的特點,設置以下實驗內容。
實驗一:本文模型的有效性驗證,具體流程如下:
(1)構建蠟染紋樣分類模型。在VGG16、VGG19模型的最后池化層之后增加一個全局平均池化層,將全局平均池化的輸出與4個分類神經元進行全連接,構建2個改進模型。修改原VGG16、VGG19模型的分類神經元個數為4個,構建2個對比模型。
(2)訓練模型。使用預先訓練好的VGG16、VGG19模型參數作為初始化參數,設定學習率、數據批量值、迭代次數以及優化器,使用相同的訓練數據集對(1)中構建的4個模型進行訓練。
(3)測試模型。使用相同的測試集對以上4個模型進行測試,驗證分類效果。
實驗二:與傳統分類模型對比,具體流程如下:
(1)采用方向梯度直方圖(Histogram of Oriented Gradient,HOG)算法提取蠟染紋樣特征,使用特征數據訓練支持向量機(Support Vector Machine,SVM)模型,測試模型的分類效果。
(2)通過尺度不變特征變換(Scale-Invariant Feature Transform,SIFT)算法對蠟染紋樣進行特征提取,使用K-means算法對特征進行聚類得到特征詞典,以特征詞典為基礎將每幅圖片表示成特征向量,使用特征向量訓練SVM模型,使用相同的測試集測試分類效果。
3.4.1 實驗一
通過實驗,確定訓練樣本和測試樣本的數據批量值(batch size)均為32,訓練迭代次數為3000次,使用Adam自適應優化器,初始學習率設為0.001。如圖5所示為訓練過程中的損失函數的變化曲線圖。從圖中看出,使用全局平均池化層改進的VGG16_improve和VGG19_improve模型的初始損失值都低于原模型,4個模型在前1000次訓練過程中損失值下降速度最快,迭代2000次以后模型基本收斂,因此訓練3000次可以得到分類效果穩定的模型。實驗表明使用預先訓練好的模型參數作為初始化參數可以加快模型收斂的速度,減少訓練次數,達到遷移學習的目的。

圖5 損失函數曲線
表1為4個模型在訓練集和測試集上的準確率。從表1中可看出,改進的VGG16_improve、VGG19_improve模型在訓練集和測試集上的分類準確率都高于原模型,并且在測試集上的分類準確率達到了92.12%和95.79%,表明本文提出的改進模型具有更好的分類效果和泛化性能。本組實驗也驗證了網絡層數的增加在一定程度上能夠提升分類準確率。

表1 分類準確率
3.4.2 實驗二
表2為本文模型與傳統分類模型準確率的對比。從表2中可以看出,相比HOG+SVM分類法、SIFT+SVM分類法,本文模型的分類準確率得到了大幅度的提高,表明本文提出的模型更適用于蠟染紋樣分類問題,同時驗證了卷積神經網絡的圖像特征提取性能優于傳統的圖像特征提取算法。

表2 與傳統分類方法對比
蠟染屬于國家非物質文化遺產,蠟染紋樣分類是對其進行數字化保護的基礎工作。本文提出一種改進的VGGNet分類模型,將最后池化層的輸出進行全局平均池化后直接與分類神經元進行全連接,使用預先訓練好的VGGNet模型參數作為初始化參數,提高訓練的效率,采用數據增強技術擴充訓練集樣本數量,提高模型的泛化能力。通過與原模型、傳統分類方法進行實驗對比,本文提出的改進模型在蠟染測試集上的分類準確率達到92.12%和95.79%,具有較好的分類效果。下一步的研究工作是繼續收集蠟染紋樣,擴充類別與數據集,研究其他卷積神經網絡模型的分類效果,改進、優化網絡結構,進一步提升分類性能。