李 揚, 黃 榮, b, 董愛華, b
(東華大學 a.信息科學與技術學院; b.數(shù)字化紡織服裝技術教育部工程研究中心, 上海 201620)
隨著計算機技術的發(fā)展和電子商務的成熟,研究者們開始從服裝圖像數(shù)據(jù)中挖掘與服裝相關的信息[1-2],其中服裝風格是一種重要的服裝信息,由服裝的結構、色彩、紋理等多種要素綜合而成,可表征服裝整體的視覺感受[3]。在服裝行業(yè)中,服裝設計者將品牌理念轉化為產(chǎn)品風格呈現(xiàn)給消費者[4-5]。服裝圖像風格的自動識別,不僅可以幫助服裝設計者把握潮流趨勢,也便于消費者根據(jù)風格檢索目標服裝[6]。
傳統(tǒng)的服裝圖像風格識別方法主要聚焦于如何設計有效的特征描述子。Qian等[8]采用Canny算子提取服裝輪廓,再設計3層神經(jīng)網(wǎng)絡作為分類器以識別服裝風格。Chao等[9]將圖像的局部二值模式(LBP)和方向梯度直方圖(HOG)作為描述服裝風格的特征,通過度量特征之間的相似性實現(xiàn)服裝風格推薦。吳圣美等[10]將尺度不變特征變換(SIFT)等5種圖像局部描述子與自定義的服裝語義屬性進行匹配,采用多任務學習模式,實現(xiàn)面向少數(shù)民族服裝的風格識別。但這些傳統(tǒng)的服裝圖像風格識別方法依賴于專家知識,需要手動設計特征描述子,耗費的人力與時間成本較高。
近年來,深度神經(jīng)網(wǎng)絡被廣泛應用于圖像識別領域[11-12],其將表示學習與分類學習級聯(lián),通過反向傳播算法,能夠自適應地從數(shù)據(jù)中挖掘出有效的特征信息,克服了傳統(tǒng)方法依賴人工設計特征描述子的缺點。目前,國內(nèi)外基于深度神經(jīng)網(wǎng)絡的服裝圖像風格識別方法主要有兩類。一是以CD-CNNs(component-dependent convolutional neural networks)[13]為代表的基于服裝組件的方法。該類方法利用卷積神經(jīng)網(wǎng)絡提取不同部位服裝組件的特征,通過數(shù)據(jù)驅(qū)動學習各組件特征的融合方式,最后用支持向量機(SVM)進行服裝風格識別;其以服裝組件為單位部署特征提取模型,需要多種與服裝組件相關的監(jiān)督信息,整個模型的復雜程度高、參數(shù)多、計算量大。二是基于圖像全局的端到端方法。該類方法將整幅圖像作為深度神經(jīng)網(wǎng)絡的輸入,自動學習能夠表示服裝風格的特征。Aoki等[14]用PSPNet(pyramid scene parsing network)和SSD(single shot multibox detector)定位圖像場景中的服裝區(qū)域,通過ResNet50(residual network50)識別服裝風格。Takagi等[15]收集13 126幅服裝圖像,涵蓋禮服、古典、洛麗塔等14種風格,并利用VGG(visual geometry group)等5種通用圖像識別網(wǎng)絡測試服裝風格識別的性能。劉正東等[16]提出一種基于尺寸分割和負樣本的SSD檢測方法,克服了小目標識別的困難,提高了西裝圖像分類的準確率。相比基于服裝組件的方法,該類方法以單個類別標簽為監(jiān)督信息,將整幅圖像作為識別對象,所需的參數(shù)量和計算量較少。
服裝風格具有細粒度特性。細粒度特性通常指目標對象的視覺感知相似,屬于同一個粗粒度元類,具有較為顯著的類間相似性[17]。服裝風格的細粒度特性體現(xiàn)在:所有服裝圖像均屬于“服裝”元類,而不同風格的服裝是“服裝”元類中的不同子類。因此,對服裝圖像風格進行識別存在一定的挑戰(zhàn)性[18]。對于細粒度圖像識別問題,Lin等[19]提出一種Bilinear-CNN(convolutional neural network)模型,該模型通過兩條并行的網(wǎng)絡通路提取圖像特征,并使用雙線性池化方法[20]計算并行特征間的相關性,篩選能夠有效區(qū)分細粒度子類的特征。然而,Bilinear-CNN模型存在兩個問題:一是缺乏關注細粒度目標的機制,未能有效抑制圖像背景區(qū)域?qū)ψR別性能的影響;二是因使用兩條并行的網(wǎng)絡通路提取特征,需成倍的參數(shù)量和計算量。針對上述問題,提出一種改進的Bilinear-CNN模型,并將其用于服裝圖像風格的識別。
Bilinear-CNN模型改進步驟:首先,引入空間注意力機制,通過數(shù)據(jù)驅(qū)動學習注意力的分配權重值,使得網(wǎng)絡能夠關注體現(xiàn)服裝風格細粒度差異的空間區(qū)域,達到抑制背景干擾的目的;其次,設計一種單特征通路的雙線性池化方法,該方法用兩種不同的池化操作從單通道特征中挖掘細粒度特征。改進后的Bilinear-CNN模型結構如圖1所示。
將VGG16中conv1_1至conv5_3的網(wǎng)絡部分作為單個網(wǎng)絡通路中的特征提取器[21]。其中,下劃線“_”前的數(shù)字代表卷積模塊序號,下劃線“_”后的數(shù)字代表某個卷積模塊中卷積層的序號。通過ImageNet數(shù)據(jù)集預訓練的VGG16模型能夠提取豐富的圖像特征。因此,采用這些預訓練的參數(shù)對特征提取器進行初始化。
使用交叉熵損失和L1范數(shù)正則化項的加權和作為代價函數(shù),如式(1)所示。
(1)
圖1 改進的Bilinear-CNN模型結構Fig.1 Improved Bilinear-CNN model structure
空間注意力機制使得神經(jīng)網(wǎng)絡能夠自適應地增強對前景區(qū)域的感知,抑制背景部分的干擾,提高識別性能。本文在單特征通路之后嵌入一種可學習的空間注意力網(wǎng)絡,從而實現(xiàn)上述機制[22]。空間注意力網(wǎng)絡的輸入為一個h×w×c的特征圖F,輸出為一個h×w×1的注意力圖M。該注意力圖中每個元素取值范圍為[0, 1],表示注意力的分配權重值,其大小表征關注程度的強弱。注意力圖M的計算流程如圖2所示。
圖2 空間注意力網(wǎng)絡Fig.2 Spatial attention network
注意力圖M的計算步驟如下:
(1) 通道壓縮。在輸入特征圖F中,以空間位置為單位,分別取每個c維特征的最大值和平均值,得到兩個具有全局通道信息的h×w矩陣。將這兩個矩陣在通道維度上進行拼接,得到h×w×2的張量,其中c>2,實現(xiàn)通道壓縮。
(2) 卷積。對上一步輸出的h×w×2的張量做卷積操作,采用一個大小為3×3×2、步長為1、參數(shù)可學習的卷積核(共18個參數(shù))。為保證卷積前后張量空間尺寸(即h和w)的一致性,對輸入張量的邊界進行全零填充:上下/左右邊界各填充一行/列。
(3) Sigmoid激活。使用Sigmoid激活函數(shù)將上一步輸出張量的取值范圍映射到[0,1],生成注意力圖M。其中,元素的取值越大,表示網(wǎng)絡更加關注該元素所對應的局部感受野。
在訓練開始時,空間注意力網(wǎng)絡中卷積核的參數(shù)被隨機初始化。在訓練過程中,通過誤差反向傳播算法調(diào)整空間注意力網(wǎng)絡中卷積核的參數(shù)。經(jīng)過訓練之后,對于一幅給定的服裝圖像,空間注意力網(wǎng)絡能夠輸出一張注意力圖M,為空間域中的各局部感受野分配合適的注意力權重值,使得模型能夠有效聚焦風格差異的服裝區(qū)域。圖3示為不同風格服裝圖像的注意力圖M(已轉換為可視化的熱力圖),其中,圖3(a)、(b)、(c)分別為禮裙風格、古典風格和洛麗塔風格的服裝圖像,圖3(d)~(f)分別為圖3(a)~(c)的注意力圖,圖中越高亮的像素代表越高的注意力權重值。
圖3 服裝圖像及其可視化的注意力圖
由圖3可知,注意力圖的高亮區(qū)域均與原圖的服裝區(qū)域貼合。對于圖3(a),模型關注禮服的胸褶和腰褶部分;對于圖3(b),模型關注服裝的衣身部分;對于圖3(c),模型注重反映洛麗塔風格的蕾絲花紋。這說明所設計的空間注意力網(wǎng)絡具有聚焦風格信息、抑制背景干擾的能力。
將注意力圖M與輸入特征圖F融合,得到經(jīng)過注意力分配調(diào)制的新特征圖F′。注意力圖M與輸入特征圖F的融合計算如式(2)所示。首先,將注意力圖M復制c份并拼接成一個h×w×c的張量;接著,計算該張量與輸入特征圖F的哈達瑪積,得到輸出特征圖F′。
(2)
式中:“;”表示張量拼接操作;“°”表示哈達瑪積。
深度神經(jīng)網(wǎng)絡中的深層特征圖是淺層特征圖的組合,反映圖像的高級語義信息。因此,在VGG16特征提取器的最深層特征圖,即conv5_3引入上述的空間注意力機制,使得模型能夠篩選與服裝相關的高級語義信息。在消融試驗中,測試了在不同深度的特征圖引入空間注意力機制后對細粒度識別性能的影響。
原始Bilinear-CNN模型通過兩條并行的網(wǎng)絡通路提取特征,并利用雙線性池化操作計算格拉姆矩陣,提取能夠有效區(qū)分細粒度子類的特征。然而,并行特征通路的雙線性池化方法導致模型參數(shù)量和計算量的成倍增加。設計一種單特征通路的雙線性池化方法,如圖4所示,在減少參數(shù)量和計算量的同時利用兩種不同的池化操作充分挖掘細粒度特征。由圖4可知,單個特征通路輸出一個h×w×c的特征圖,對該特征圖分別進行全局平均池化和全局最大池化,得到兩個描述特征圖全局信息的向量,再計算這兩個向量的外積,得到格拉姆矩陣G。
圖4 單特征通路的雙線性池化方法Fig.4 Bilinear pooling method over single feature path
綜上所述,對單個網(wǎng)絡通路的輸出特征圖采用全局最大池化和全局平均池化提取了兩種不同的統(tǒng)計量,并通過格拉姆矩陣來刻畫特征通道之間的相關性。與并行特征通路相比較,單特征通路的雙線性池化方法在降低模型參數(shù)量與計算量的同時仍能較好地挖掘細粒度特征。
所有試驗均采用公開的FashionStyle14數(shù)據(jù)集[15]。該數(shù)據(jù)集包含13 126幅由服裝設計領域?qū)<沂占俗⒌姆b圖像,涵蓋禮服、古典、洛麗塔等14種服裝風格標簽。該數(shù)據(jù)集每一類的圖像數(shù)量均在區(qū)間[816, 1 106]內(nèi),其數(shù)據(jù)具有均衡性。因此,將所有類別識別準確率的均值作為最終總體準確率。將80%的數(shù)據(jù)集作為訓練集,剩余的20%作為測試集,分別計算訓練集和測試集中樣本圖像的均值和方差,并對數(shù)據(jù)集中每一幅樣本圖像進行去均值和方差標準化處理。
試驗環(huán)境:CPU為Inteli7 8700,內(nèi)存16G;GPU為Nvidia GTX 2070;操作系統(tǒng)為Ubuntu18.04;使用PyTorch深度學習框架。
訓練過程分為兩個階段。第一階段凍結VGG16特征提取器的初始參數(shù),只訓練空間注意力網(wǎng)絡和最后的全連接層。初始學習率設為0.05,批大小設為32,訓練50輪。在此基礎上,第二階段使用較小的學習率微調(diào)包括VGG16特征提取器在內(nèi)的全部參數(shù)。初始學習率設為0.001,批大小設為16,共訓練50輪。訓練過程采用余弦函數(shù)衰減學習率l,如式(3)所示。
(3)
式中:l0為初始學習率;n為訓練輪次。使用自適應矩估計優(yōu)化器(adaptive moment estimation, ADAM)[23]作為網(wǎng)絡參數(shù)更新的優(yōu)化算法,其一階和二階動量項分別設為0.90和0.99。
設計模型性能對比試驗、消融試驗和穩(wěn)健性試驗來驗證改進Bilinear-CNN模型的細粒度識別性能,并采用Top-1準確率作為衡量識別性能的指標。參數(shù)量統(tǒng)計網(wǎng)絡中參與訓練的參數(shù)個數(shù)之和,單位以百萬(M)計,作為衡量參數(shù)量的指標。采用浮點運算次數(shù)(floating point of operations, FLOPs)作為衡量計算量的指標,單位以十億(B)計。使用PyTorch框架中的torchstat軟件庫計算模型的參數(shù)量和FLOPs。
2.3.1 模型對比試驗
在識別效果方面,將改進的Bilinear-CNN模型和CD-CNNs模型[13]、ResNet50模型[15]、原始Bilinear-CNN模型[19]進行比較,其中,CD-CNNs是基于檢測服裝組件的圖像識別模型,ResNet50是通用的圖像識別模型。4種模型經(jīng)訓練后對于服裝風格的識別效果如表1所示。
表1 服裝圖像風格識別效果對比
由表1可知:相比原始Bilinear-CNN模型,改進Bilinear-CNN模型的識別準確率提升2個百分點,減少了40%的參數(shù)量和52%的計算量;改進Bilinear-CNN模型的識別準確率(76.4%)接近最高值77.7%,但其參數(shù)量僅為CD-CNNs模型的75%。該試驗結果證實了本文所提方法的有效性。
2.3.2 消融試驗
設計兩組消融試驗。消融試驗一用于對比空間注意力機制和單特征通道的雙線性池化方法對識別性能的影響,如表2所示。消融試驗二用于對比在不同深度的特征圖引入空間注意力網(wǎng)絡對識別性能的影響,如表3所示。
表2 消融試驗一的結果
表3 消融試驗二的結果
對比表2中前兩行試驗數(shù)據(jù)可知,引入空間注意力機制之后,在未顯著增加網(wǎng)絡參數(shù)量和計算量的前提下,風格識別的準確率上升了1.2個百分點。這是因為所提出的空間注意力網(wǎng)絡僅使用了一個大小為3×3×2的卷積核,參數(shù)量為18,遠小于百萬(M)量綱,可近似忽略。比較表2中第1行和第3行的試驗數(shù)據(jù)可知,單特征通路的雙線性池化方法在僅增加3 M參數(shù)量、0.3 B計算量的前提下,將識別準確率提升到了75.2%。由表2中的第4行數(shù)據(jù)可知,同時使用空間注意力機制和單特征通道的雙線性池化方法使得識別準確率達到最高值76.4%,均優(yōu)于表2中1~3行的識別準確率。由此驗證了空間注意力機制抑制背景干擾的作用以及雙線性方法挖掘細粒度特征的能力。
由表3可見:隨著深度的增加,識別準確率逐步提升;在conv5_3引入空間注意力網(wǎng)絡時,識別準確率達到最高值76.4%。這驗證了高級語義信息有助于挖掘細粒度特征。
2.3.3 穩(wěn)健性試驗
在實際應用中,由于拍攝條件的限制,在成像的服裝圖像中存在旋轉、低分辨率和光照等擾動,因此,服裝風格識別系統(tǒng)的穩(wěn)健性是面向?qū)嶋H應用的需求之一。對改進前后的Bilinear-CNN模型進行穩(wěn)健性測試。對測試集中圖像分別進行旋轉變換、縮放變換和亮度變換,依次增大各變換參數(shù)的隨機取值范圍,分別對測試集中圖像進行5次試驗,識別準確率取5次試驗均值。
穩(wěn)健性試驗結果如表4所示。其中,旋轉角度是指旋轉變換后的圖像與原圖像夾角,圖像尺寸是指尺度變換后的圖像空間分辨率,亮度因子是指亮度變換后的圖像相比原始圖像的整體亮度增益。由表4可知,改進Bilinear-CNN模型的識別準確率下降幅度較小,均優(yōu)于原始Bilinear-CNN模型,說明所提方法針對3種擾動具有較好的識別穩(wěn)健性。當進一步擴大參數(shù)隨機取值范圍時,識別準確率將急劇下降,此時需要通過數(shù)據(jù)擴充或擾動參數(shù)估計來提高識別模型的穩(wěn)健性。
表4 穩(wěn)健性試驗結果
針對服裝風格的細粒度識別問題,提出一種改進的Bilinear-CNN模型。在VGG16特征提取網(wǎng)絡的輸出特征圖中引入空間注意力機制,增強對圖像中服裝目標區(qū)域的感知能力,抑制復雜背景的干擾。設計了一種單特征通路的雙線性池化方法,通過兩種不同的池化操作挖掘細粒度特征。試驗結果表明,相比原始Bilinear-CNN模型,所提方法使得識別準確率提升了2個百分點,同時減少了40%的參數(shù)量和52%的計算量。下一步研究工作將聚焦于強穩(wěn)健性的細粒度識別問題及其在服裝圖像風格識別模型中的應用。