朱淑暢, 李文輝
(1. 吉林工程技術師范學院 藝術與設計學院, 長春 130052;2. 吉林大學 計算機科學與技術學院, 長春 130012)
近年來, 服裝購物推薦、 虛擬試衣等服裝領域相關技術快速興起, 這些技術可根據用戶的喜好和風格向其推薦適合的服裝款式和搭配. 但這些技術都需要服裝圖片分類作為基礎算法提供支持, 因此提高自動化服裝分類算法精度具有重要意義.
與其他分類任務相同, 早期的服裝分類算法利用傳統方法解決服裝分類問題. Pawening等[1]使用灰度共生矩陣、 局部二值模式和不變矩陣提取服裝圖像特征, 并利用主成分分析法對提取到的特征進行降維, 最后利用支持向量機(SVM)進行服裝圖片分類. Yamazaki[2]使用Gabor濾波器提取服裝圖像的特征, 實現單個服裝圖像的分類. Surakarin等[3]提出了一種基于加速魯棒紋理特征的服裝分類方法, 利用局部二值模式融合特征, 提高了模型的抗干擾能力. 傳統的圖像特征提取方法在理想條件下能起到分類作用, 但隨著服裝款式的增多與數據量的增大, 傳統方法難以滿足實際應用的需求.
深度學習因其優異的特征提取能力而受到廣泛關注, 給服裝圖像分類任務提供了新的解決方案. Liu等[4]制作并發布了一個大規模且具有高樣本標注質量的服裝語義數據集DeepFashion, 極大促進了基于深度學習技術的服裝圖像分類任務的發展; 包青平等[5]提出了一種基于度量學習的服裝分類方法, 并使用三元組損失函數提升了模型分類性能; 厲智等[6]從信息融合、 損失函數改進的角度提出了一種基于卷積神經網絡(convolutional neural network, CNN)的服裝圖像分類檢索方法; Dong等[7]將VGGNet與空間池化金字塔相結合, 并用于服裝圖像分類任務, 解決了服裝圖像輸入尺度需要固定的問題, 擴大了模型的應用場景; 趙宏偉等[8]通過引入關鍵點注意力機制和通道注意力機制學習服裝關鍵區域的特性信息; Tan等[9]采用指數線性單元(ELU)、 ReLU激活函數和L2正則化改善Xception模型的非線性學習能力和泛化性; 高櫻萍等[10]采用預訓練的VGG16網絡模型, 并在服裝圖像數據集上進行遷移學習, 提升了VGG16模型在服裝圖像分類任務中的精度.
由于卷積神經網絡擅長提取局部特征信息, 但難以提取全局特征信息, 因此基于CNN的服裝分類算法難以滿足海量多樣的服裝分類需求. 針對該問題, 本文提出一種卷積注意力融合網絡(convolutional attention fusion network, CAFNet), CAFNet結合了CNN和Transformer各自的優勢, 既能提取圖像的局部特征, 又能提取圖像的全局特征, 使CAFNet能學習到更多的特征信息. 在數據集Fashion-MNIST和DeepFashion上與其他分類方法進行了對比實驗, 實驗結果表明該算法性能優異.
深度殘差網絡(deep residual network, ResNet)[11]引入了殘差連接和跳躍連接解決深層網絡訓練中的梯度消失和模型退化問題, 使網絡能更深、 更容易地訓練, 同時保持較高的準確性.
殘差連接是ResNet的關鍵組成部分, 它通過在網絡中引入跨層的直接連接, 使網絡在學習過程中可以更容易地傳遞梯度和信息. 殘差連接允許跳過某些層, 直接將輸入傳遞給后面的層, 從而使網絡可以更直接地學習輸入的殘差(即前后層輸出之差), 而不是直接學習輸入的映射. 這樣的設計有效解決了梯度消失問題, 使網絡可以更深地堆疊層, 并且更容易優化和訓練. 跳躍連接是殘差連接的一種形式, 它通過將前面層的輸出直接與后面層的輸入相加, 形成一種“跳躍”的連接. 這種連接方式使信息可以更快速地傳播, 避免了信息在深層網絡中逐層傳遞過程中產生信息損失. 在網絡結構上, ResNet采用層級結構, 由多個殘差塊的堆疊而成. 在ResNet中, 每個殘差塊由2個或3個卷積層組成, 其中包含一個殘差連接. 常見的殘差塊有兩種類型: 基本塊和瓶頸塊, 如圖1所示. 基本塊由兩個3×3的卷積層組成, 而瓶頸塊由一個1×1的卷積層、 一個3×3的卷積層和一個1×1的卷積層組成. 瓶頸塊在減少計算量的同時, 保持了較高的特征表達能力.

圖1 ResNet兩種殘差塊結構示意圖Fig.1 Schematic diagram of two residual block structures in ResNet
綜上, 殘差連接和跳躍連接是ResNet網絡的關鍵組成部分, 通過直接傳遞梯度和信息, 解決了深層網絡中的梯度消失和模型退化問題. 殘差連接允許網絡學習輸入的殘差, 使網絡更容易優化和訓練, 而跳躍連接通過直接將前面層的輸出與后面層的輸入相加, 實現了特征的融合和保留, 加快了信息傳播的速度.
近年來, Transformer[12]因其具有更好的并行計算性能和更長的上下文關系建模能力, 在自然語言處理領域取得了顯著的成果和突破, 并逐漸被應用于其他領域(如計算機視覺鄰域). 在傳統的計算機視覺任務中, 如圖像分類、 目標檢測和圖像生成, CNN一直是主流的網絡模型. 但CNN存在一些局限性, 例如對輸入圖像的局部關系建模較強, 而對全局上下文的建模能力有限. 為克服這些限制, 研究人員開始探索將Transformer模型應用于計算機視覺任務.
Vision Transformer(ViT)[13]將Transformer模型應用到圖像分類任務中并取得了較好的效果. ViT模型基于Transformer的架構, 通過將圖像數據轉化為序列數據, 實現了對圖像中像素之間的全局關系進行建模. ViT模型先將圖像分割為一系列固定大小的圖像塊(Patch); 然后將每個圖像塊轉換為向量表示, 并將這些向量輸入Transformer編碼器進行處理, 利用自注意力機制捕捉圖像內部特征和圖像之間的關系, 從而捕捉圖像中的全局上下文信息; 最后經過編碼器的輸出并經過全局平均池化或其他池化操作, 用于最終的分類或回歸任務. ViT模型結構示意圖如圖2所示.

圖2 ViT模型結構示意圖Fig.2 Schematic diagram of ViT model structure
與傳統的卷積神經網絡相比, ViT模型通過Transformer的自注意力機制捕捉全局上下文信息, 而不僅局限于局部感受野. 此外, ViT模型還具有較強的可解釋性, 因為它通過自注意力權重可視化了模型對圖像不同區域的關注程度. 這些優勢使得ViT模型在圖像分類、 目標檢測、 圖像生成等計算機視覺任務中表現出色, 并且逐漸成為一種有競爭力的模型架構.
研究表明, 圖像像素之間的長距離關系對計算機視覺任務至關重要. 但傳統的卷積神經網絡在局部特征提取方面具有優勢, 卻很難捕獲全局特征信息. 而ViT模型利用自注意力機制和多層感知機結構可有效提取全局特征信息. 為充分發揮CNN和ViT各自的優勢, 本文提出一種卷積注意力融合網絡CAFNet. CAFNet采用并行結構, 由一個CNN分支和一個Transformer分支組成, 分別遵循ResNet32和ViT模型的設計. 由于CNN和Transformer分支提取的特征存在差異, 無法直接融合. 因此, 本文設計一個特征融合模塊消除它們之間的差異, 并將兩種風格的特征進行融合. 特征融合模塊由一個卷積核大小為1×1的卷積層、 平均池化層和正則化層三部分組成. CAFNet由卷積殘差模塊、 自注意力模塊、 特征融合模塊和全連接層構成, 其中特征融合模塊作為卷積殘差模塊和自注意力模塊之間的橋梁, 用于消除它們之間的特征差異. CAFNet的總體結構如圖3所示.

圖3 CAFNet整體結構示意圖Fig.3 Schematic diagram of overall structure of CAFNet
當輸入圖像到CAFNet時, 同時經過CNN分支和Transformer分支的處理. Transformer分支與ViT模型結構類似, 需要使用Patch Embedding模塊先將圖像分割成一系列固定大小的圖像塊, 然后將每個圖像塊轉換為向量表示, 以便輸入到自注意力模塊進行上下文特征提取. 在CAFNet中, 特征提取過程包括殘差塊和自注意力模塊的輸出同時輸入特征融合模塊進行特征融合. 融合后的特征圖再作為輸入傳遞給下一個殘差塊和自注意力模塊, 最終將最后一層特征融合模塊輸出的特征輸入全連接層進行分類. 在優化過程中, CAFNet使用交叉熵損失(cross-entropy loss, CE-loss)作為損失函數進行訓練. CAFNet中的特征融合模塊具有連接CNN分支和Transformer分支特征信息的橋梁作用. 這種結構充分結合了CNN和Transformer的優勢, 能最大程度地保留局部特征和全局表示的表征能力, 使CAFNet具有強大的特征學習能力, 能滿足當前服裝分類任務的需求.
為驗證本文方法的有效性, 分別在Fashion-MNIST[14]和DeepFashion[4]兩個服裝分類數據集上進行實驗驗證. 數據集Fashion-MNIST涵蓋了半袖、 褲子和裙子等10種類別的共70 000張商品的正面圖片, 其中包含60 000張訓練集圖片和10 000張測試集圖片, 每張圖片都是一個大小為28×28的灰度圖像. 該數據集示例如圖4所示. 數據集DeepFashion是一個大規模的時尚服裝圖像數據集, 每張圖片是大小為224×224的彩色圖像, 用于服裝分類、 檢索和生成任務. 該數據集包含超過289 222張來自不同時尚場景的圖像, 涵蓋了各種服裝類別、 風格和姿勢. 這些圖像經過了精確的標注, 包括服裝類別、 屬性、 邊界框和關鍵點等信息. 該數據集中的服裝類別包括上衣、 裙子、 褲子、 鞋子等, 屬性標注則涵蓋了顏色、 紋理、 款式等多方面, 數據集示例如圖5所示.

圖4 Fashion-MNIST服裝分類數據集示例Fig.4 Example of Fashion-MNIST clothing classification dataset
本文實驗模型使用Python作為程序設計語言在深度學習框架Pytorch上實現, 并使用Pytorch官方的數據增強方法對訓練集進行在線數據增強. 在數據集Fashion-MNIST和DeepFashion上均使用隨機梯度下降(stochastic gradient descent, SGD)優化器優化網絡參數. 在數據集Fashion-MNIST上模型迭代訓練的總次數為10, 初始學習率為0.01, 批量大小為64, 權重衰減為0.000 5, 動量為0.9. 在數據集DeepFashion上, 模型的初始學習率為0.1, 批量大小為128, 權重衰減為0.000 5, 動量為0.9, 每個模型迭代訓練的總次數為100次, 且在模型訓練過程中學習率會隨著訓練次數的變化而變化, 具體變化為在訓練的第30,60和90次時將學習率乘以0.1. 本文所有實驗均在NVIDIA Geforce RTX 3090上實現.
為驗證本文方法的有效性, 分別在小型數據集Fashion-MNIST和大型數據集DeepFashion上進行實驗驗證. 在所有實驗中本文方法CAFNet都是由一個ResNet32分支和一個Transformer分支組成. 首先在數據集Fashion-MNIST上與其他主流網絡進行對比實驗, 實驗結果列于表1.

表1 在數據集Fashion-MNIST上CAFNet與其他模型分類的準確率對比Table 1 Comparison of classification accuracy of CAFNet with other models on Fashion-MNIST dataset %
由表1可見, CAFNet在小型數據集Fashion-MNIST上性能優異. CAFNet在top1,top3,top5指標上都取得了最優的準確率. 其中top1準確率比AlexNet和ResNet32分別提高了1.78%,0.35%; top3準確率分別提高了0.26%,0.15%; top5準確率分別提高了0.11%,0.04%. 由于數據集Fashion-MNIST是一個小型數據集, 模型易出現過擬合的現象, CAFNet相比于其他網絡模型性能提升較小. 因此, 為進一步驗證CAFNet的有效性, 本文在大型數據集DeepFashion上進行對比實驗, 實驗結果列于表2.

表2 在數據集DeepFashion上CAFNet與其他模型分類的準確率對比Table 2 Comparison of classification accuracy of CAFNet with other models on DeepFashion dataset %
由表2可見, CAFNet相比于AlexNet和VGGNet這類沒有殘差塊的網絡結構具有強大的性能優勢. 與ResNet20相比, CAFNet在top1,top3,top5準確率分別提高了9.3%,6.1%,4.3%. CAFNet在與較深層的ResNet50相比同樣表現出優勢, 在top1,top3,top5準確率分別提高了0.7%,0.6%,0.6%. 實驗結果證明, 本文方法在數據集DeepFashion服裝圖像分類任務中具有良好的特征提取能力.
此外, 本文還進行了消融實驗驗證CAFNet的有效性. CAFNet與基線ResNet32的消融實驗結果列于表3.

表3 CAFNet與基線ResNet32分類的準確率對比Table 3 Comparison of classification accuracy between CAFNet and baseline ResNet32 %
CAFNet是以ResNet32為主干網絡添加自注意力模塊和特征融合模塊構成的, 由表3可見, CAFNet在top1,top3,top5準確率相比于ResNet32分別提高了6.9%,2.5%,2.9%. 上述實驗結果有效證明了融合卷積運算提取的局部特征和自注意力機制提取的全局特征能增強網絡的表征學習能力.
綜上所述, 針對傳統基于卷積神經網絡的服裝分類算法無法滿足海量多樣服裝分類需求的問題, 提出一種卷積注意力融合的服裝分類網絡. 該網絡采用并行結構, 包含一個ResNet分支和一個Transformer分支, 充分利用卷積運算提取的局部特征和自注意力機制提取的全局特征, 以增強網絡的表征學習能力, 從而提高服裝分類算法的性能和泛化能力. 為驗證該方法的有效性, 在數據集Fashion-MNIST和DeepFashion上進行了對比實驗. 結果表明: 在數據集Fashion-MNIST上, 該方法取得了93.58%的準確率; 在數據集DeepFashion上, 該方法取得了71.1%的準確率; 該方法優于其他對比方法的實驗結果.