陸建波,謝小紅,李文韜
南寧師范大學 計算機與信息工程學院,南寧 530299
隨著電子商務不斷發展,服裝商務新模式已經成為人們生活不可缺少的一部分。如何更好地對服裝圖片識別、分類和獲取有價值的信息,是目前研究服裝的熱點。隨著服裝圖像數量的迅猛增長,服裝的風格越來越多元化,文字描述已經無法完整地表達服裝信息,必須花費大規模的人力物力對圖像做精確的標注。但是,由于受到個人的主觀性影響,在對圖像進行標注時并不能很精準地給目標圖像打上標注,進而影響服裝的識別分類精度。
傳統的服裝分類方法主要是提取圖像的顏色、紋理、邊緣等特征,這些人工選取特征方法過程繁瑣且分類精度較低。由于服裝圖片存在細粒度分類[1]多,視覺變化大,如形變、光照、拍攝視角、背景影響等問題,使得服裝識別分類技術受到更大挑戰。
近年來,深度學習(Deep Learning,DL)[2]已經成為當前機器學習領域中的重要發展方向。使用卷積神經網絡(Convolutional Neural Networks,CNN)[3]去解決圖像分類中的問題逐漸成為主流。越來越多的研究者將深度學習和服裝分類相結合。Liu 等人[4]收集一個數據量大且標注完整的服裝數據集DeepFashion,并構建出一種新的卷積神經網絡。高妍等人[5]利用區域全卷積神經網絡R-FCN與HyperNet 網絡結合,對形變服裝進行訓練。陳麗麗等人[6]設計了一種新的卷積神經網絡,有效地完成服飾圖像的分類。Ge 等人[7]提出了一種基于掩碼R-CNN 的新型匹配R-CNN 框架以端到端的方式解決了服裝檢測、姿態估計、分割和檢索等問題。以上研究工作都使用深度卷積神經網絡對服裝圖像進行識別分類。為達到識別圖像精度的提升,通常改進CNN的卷積層數量或結構來完善模型的識別分類性能。但深度卷積神經網絡還有問題尚存:(1)隨著深度學習網絡的加深,網絡的堆疊效果不好;(2)網絡越復雜,訓練時會出現梯度彌散或梯度爆炸等問題使得訓練具有挑戰性[8]。網絡層數淺的模型識別性能不理想,而殘差網絡引入了殘差塊,當模型的深度加深時,殘差塊的加入能很好地解決退化問題。
本文借鑒ResNet 能解決在訓練深層網絡時出現梯度彌散問題的優點,提出了一種改進深度殘差網絡結構來提高服裝圖像的識別分類的性能。
目前大多數的研究者選擇AlexNet[9]和VGGNet[10]這兩種網絡對服裝圖像進行特征的選取,VGGNet 在AlexNet基礎上做了改進,網絡結構簡潔。其中文獻[4]采用VGGNet用于服裝類別分類上,但是在面對多種服裝類別分類時,由于AlexNet 和VGGNet 網絡層數比較少,直接影響了網絡的學習特征能力。后來研究者們通過增加深度卷積神經網絡層數和卷積層個數的方向對網絡進行改進,比如GoogleNet[11]和ResNet[12]的出現,都證明了在圖像識別分類工作上層數越深的模型識別性能會更理想。
殘差網絡在2015年的ImageNet大規模視覺識別多項比賽中以絕對的優勢取得第一。深度殘差網絡是由殘差塊組成的。每個殘差塊可以表示為:

其中,F為殘差函數,f為ReLU函數,wi為權值矩陣,xi和yi為第i層的輸入和輸出。函數h為:

殘差函數F的定義為:
B(xi)是批處理規范化“,?”表示卷積和σ(x)=max(x,0 )。殘差學習的基本思想是梯度傳播路徑的分支。對于CNN,這一思想首先以并行路徑的形式引入到了inception 模型[13]中。殘差網絡與Highway Network 思想有一些相似之處,但對其進行改進,稱之為恒等映射,如通過殘差塊和shortcut 連接,減緩了在ResNet 中隨著層數的增加帶來的梯度消失問題。然而,Highway Network 中每條路徑的輸出是由訓練階段學習的門函數控制的。
與傳統CNN 中的卷積層一樣,ResNet 中的殘差單元不是堆疊在一起的,相反,從每個卷積層的輸入端到輸出端引入了shortcut連接。使用恒等映射作為shortcut連接降低了殘差網絡的復雜性,使得深度網絡更快地被訓練。殘差網絡可以被看作是許多路徑的集合,而不是一個非常深的架構,但是,殘差網絡中的所有網絡路徑的長度都不相同,只有一條路徑穿過所有殘差單元。此外,所有這些信號路徑都不傳播梯度,這是殘差網絡更快優化和訓練的原因。隨著網絡層數加深,準確率不下降。殘差塊的結構如圖1所示。

深度卷積神經網絡訓練時某一層的權重發生變化,該層的輸出特征圖也隨之變化,下一層網絡的權重需要重新學習,之后的每一層網絡權重都會受到影響。在ResNet 中加入激活函數可以提升構建網絡模型的非線性能力。深度殘差網絡采用線性修正單元ReLU,f(x)=max(0 ,x)作為激活函數,ReLU 函數的梯度在x>0 時一直為1使得梯度不衰減,緩解了梯度彌散的問題。假設不使用激活函數,網絡僅能通過線性映射構建,即使有很多的卷積層網絡,整個網絡中的每一層都是等價的,卷積出來的特征圖也不會有太大的變化,因此網絡應該使用激活函數。
隨著卷積神經網絡層數的加深,在訓練過程中會出現網絡的收斂速度急劇下降和梯度彌散等問題。而批量歸一化(Batch Normalization)[14]能有效解決此問題。具體的解決方法是對同一層的輸入信號進行歸一化,公式如下:


其中,每一個神經元xk都會有一對這樣的參數γ、β。這樣其實當:時可以保持某一層原始的學習特征,并能重構參數γ、β,恢復初始網絡學習的特征分布。BN層是一種規范化神經網絡的激活方法,加入批量歸一化算法先對每一層的輸入信號做歸一化處理,穩定其數據分布,在訓練時設置較大的學習率,使得網絡收斂速度和訓練速度變快。圖2為傳統殘差網絡中的“卷積層+BN層+ReLU層”排列順序。

圖2 傳統殘差塊的排列順序
傳統殘差塊的排列順序在深度卷積ResNet 中有缺陷,如恒等塊的輸入分別從兩個路徑傳輸到深層網絡。右邊路徑表示特征圖先通過卷積層再到BN和ReLU[15]。輸入的特征圖沒有先做歸一化處理,所以BN層的存在并不能起到很大的作用。根據上述缺陷,本文采用一種新的非線性支路“BN 層+卷積層+ ReLU 層”恒等塊結構的排列順序。如圖3所示,圖中的網絡結構還是和傳統殘差塊網絡結構(圖1)一樣,而ResNet中典型的殘差塊由三個卷積層組成。本文提出的新殘差塊的排列方法既保留了左邊路徑的恒等映射,也維持著右邊非線性網絡路徑的學習能力。

圖3 改進殘差塊的排列順序
注意力機制[16(]Attention Mechanism)是對目標數據進行加權變化,它使用頂部信息來指導自下而上的前饋過程。人腦的注意力模型,是一種資源分配模型,在某個特定時刻,注意力總是集中在畫面中的某個焦點部分,而對其他部分視而不見。近年來,人們開始嘗試將注意力應用到深層神經網絡中。因此,引入注意力機制進一步提取判別性部位特征,在改進后的網絡中采用SE(Squeeze-and-Excitation)算法[17],通過精確地建模卷積特征各個通道之間的作用關系來改善網絡模型的表達能力。讓網絡模型對特征進行校準的機制,使網絡從全局信息出發,選擇性地增強有價值的特征通道并且抑制無用的特征通道。
SE網絡模塊如圖4所示,為保證增加網絡后對有價值信息的敏感性,并使有價值的特征在之后的網絡層中得到有效利用,達到對通道之間的依賴關系進行精確建模,通過 Squeeze、Excitation 和 Reweight 來重新定義之前得到的特征:
(1)Squeeze(全局信息嵌入)。為了解決利用通道依賴性的問題,利用空間維度壓縮特征。用一個具有全局空間信息的變量代表每個二維的特征向量,且輸出的維度與輸入的通道數相匹配。公式表達如下所示:

(2)Excitation(自適應重新校正)。為了利用壓縮操作中匯聚的信息,全面捕獲到通道的依懶性。必須滿足學習通道之間的非線性交互以及非互斥關系。

(3)Reweight,在Excitation 操作之后產生的權重與原始特征進行相乘。


圖4 SE模塊示意圖
在上述每個新殘差塊的所有“BN層+卷積層+ReLU層”結構完成后引入SE算法,利用網絡實施動態的特征再次校準,從而提升網絡的性能,將軟注意力機制成功應用于深度網絡的典型。將SE模塊嵌入到新殘差模塊中如圖5所示。

圖5 加入SE模塊的殘差塊
表1 是原始ResNet50 網絡的卷積層主要結構及其參數數量改變后的主體結構,有3個包含128個卷積核、4個包含256個卷積核、6個包含512個卷積核、3個包含1 024 個卷積核數量的殘差塊及兩層全連接層,模型輸出的維度為8和10。分別對應兩個數據集的分類類別。

表1 兩種網絡卷積結構對比
本文使用香港中文大學多媒體實驗室提供的多類別大型服裝數據集DeepFashion[4]和FashionMNIST數據集來驗證本文網絡的性能。
本文實驗環境:Ubuntu 操作系統,Intel i7-7700 處理器,1 TB固態硬盤,32 GB內存,NVIDIA GTX1080Ti GPU,采用TensorFlow 平臺進行訓練;實驗結果中的準確率曲線采用python中的matplotlib可視化得到。在實驗中,本文提出了一個新的網絡為F-ResNet,首先改進非線性支路中“BN 層+卷積層+ReLU”恒等塊結構的排列順序(如圖3)代替傳統網絡中的排列順序。其后引入注意力機制SE 模塊(如圖5)。最后調整網絡卷積結構(如表1)。網絡主體由4 個殘差網絡層組成,每個殘差塊都進行歸一化處理。最后通過全局均值池化層、全連接層和線性分類器得到輸出結果。本文將F-ResNet 與目前經典的卷積神經網絡VGG16 和Inception_v3 作性能比較,模型選用交叉熵損失函數和Adam 算法作為優化器進行優化,學習率統一設置為0.000 1。在進行網絡訓練時只使用部分的優化方法,因此網絡并不能達到最高的精度。
標準數據集FashionMNIST共有70 000張來自10種不同類別商品的正面圖片。其中共有60 000 張圖像作為訓練集,10 000張圖像作為測試集驗證。該數據集的圖片大小以及劃分和MNIST數據集一致。如圖6所示,本文提出的F-ResNet 在準確率和收斂速度上優于ResNet的兩個改進網絡且泛化能力強。圖7所示,最終模型F-ResNet與傳統殘差網絡作對比,F-ResNet的準確率和收斂速度均優于傳統殘差網絡。

圖6 最終模型F-ResNet和兩個改進模型精度比較

圖7 原始ResNet50和本文網絡模型精度比較
如表2所示,各個網絡模型經過充分訓練后得到識別準確率和訓練耗時。使用CNN并未出現因層數增加而導致網絡發生訓練困難等問題,Inception_v3 層數比VGG16深,但是Inception_v3對圖像識別分類的準確率和時效性都高于VGG16,而本文改進深度殘差網絡的準確率比VGG16 提高1.5 個百分點。在只改進ResNet殘差塊的情況下,網絡的分類精度僅比傳統殘差網絡精度提高了0.3 個百分點。僅用深度殘差網絡與SE 模塊相結合,網絡精度提高了0.42個百分點。將以上兩個方法結合后,最終模型較傳統殘差網絡精度提高0.75個百分點。實驗結果表明本文提出的模型可以提高卷積神經網絡的特征學習能力。

表2 模型在FashionMNIST數據集準確率對比
如表3所示,通過查找利用卷積神經網絡解決服裝圖像分類問題的相關文獻。將文獻[6]的實驗結果與本文方法的實驗結果作對比,證明本文方法的可取性。

表3 FashionMNIST數據集上不同方法準確率對比
為了進一步驗證本文提出的模型性能,也在Deep-Fashion 服裝數據集上進行實驗。DeepFashion 包含了28萬的圖片,這些圖像大部分來自購物網站,其余部分來源于博客、論壇和其他用戶的生成。其服裝圖片全部由人工標注,每張圖像都有1個類別標注,1 000個屬性標注,Bbox 邊框,這是迄今為止最大、最全面的服裝數據集。由于數據集過于龐大,本次實驗從中挑選8個服裝類型,分別是 Dress、Jeans、Tank、shots、Tee、Jecket、Hoodie、Coat。其中80%作為訓練集,20%作為驗證集,兩者沒有數據之間的交集,其中該訓練集用于模型訓練和學習以及參數的調整。在訓練中使用驗證集對模型進行測試,對模型進行優化,對模型參數進行微調。
由于該實驗數據集圖像初始尺寸參差不齊,大小不一,根據整體數據集圖像的大小,統一將圖像的尺寸設置為 224×224。如圖8 所示,本文提出的F-ResNet 在準確率和收斂速度上優于ResNet 的兩個改進網絡,其中僅改進殘差塊的網絡實驗結果波動比較大。如圖9為最終模型F-ResNet 與傳統殘差網絡精度的比較情況,可知F-ResNet 的準確率和收斂速度均優于傳統殘差網絡。

圖8 最終模型F-ResNet和兩個改進模型精度比較

圖9 原始ResNet50和本文網絡模型精度比較
如表4所示,Inception_v3、傳統殘差網絡和F-ResNet對圖像識別分類的準確率都高于VGG16。本文改進的深度度殘差網絡與VGGNet相比,準確率提升了2.77個百分點,較Inception_v3 提升1.07 個百分點,比僅改進ResNet 殘差塊的模型精度提高了1.12 個百分點,比ResNet 與SE 模塊相結合的模型精度提高2.02 個百分點,較傳統殘差網絡精度提高2.21 個百分點。VGG16的參數多達1.38多億個,第一個全連接層有1億多個參數。由于網絡的所有全連接層的參數達到整個網絡的3/4,全連接層的參數過多會降低模型的訓練速度,另外還會導致模型的復雜度增加、過擬合現象嚴重等問題,最后網絡精度難以得到提升。Inception_v3 網絡約有2 200 多萬參數,層數多達47 層。本文提出的網絡FResNet 有50 層網絡,約有5 800 多萬個參數,通過加深網絡層數達到提高模型的特征學習能力的目的,使得網絡精度得到提升。
通過FashionMNIST 和DeepFashion 兩個數據集的實驗結果表明,當CNN在達到一定的深度之前,隨著網絡層數的增加,網絡的特征學習能力越強,收斂速度也越快。所以網絡層數多的殘差網絡和Inception_v3都比網絡層數少的VGG16精度高。但是,當CNN達到一定的深度之后,網絡的識別分類精度并不會隨著網絡層數的加深而提高,反而會出現梯度彌散的問題。而深度殘差網絡有解決在深層網絡訓練時出現梯度彌散問題的優點。該實驗結果也說明了本文提出的F-ResNet 是可行的,且在服裝圖像識別分類上取得了很好的效果。
針對卷積神經網絡,本文對傳統殘差網絡進行改進,通過改進傳統殘差塊中的“BN+ReLU+卷積層”的排列順序、引入注意力機制和調整網絡卷積核結構,來提升模型的識別分類效果。實驗結果表明,本文的網絡模型在服裝圖像的分類精度和收斂速度上比傳統深度殘差網絡好,證明了該方法的有效性。