江 慧, 馬 彪
(東華大學 旭日工商管理學院, 上海 200051)
隨著大數據時代的來臨,網絡上有大量的服裝圖像,如各類時尚博主分享在社交媒體上的穿搭圖像、用戶隨手拍的街拍穿搭以及服裝時尚領域發布的流行服裝搭配圖像等,越來越多的用戶通過各大電商網站提供的“以圖搜圖”功能購買相似商品,傾向于圖像檢索的方式實現跨場景的需求。實際場景中的服裝圖像更為復雜,包括很多難以用文字描述的屬性特征,因此,研究合理有效的服裝圖像相似度的計算方法,是解決基于圖像的服裝個性化推薦的關鍵之一。
傳統圖像相似度的計算已經取得了較好的效果,韓旭[1]研究了商標圖像的相似度計算,利用余弦相似度對待檢索樣本圖像和驗證樣本圖像進行相似度檢索;王朝卿等[2]針對灰度直方圖提取算法的局限性,提出基于特征點匹配的尺度不變特征變換(SIFT)算法,能更好地計算圖像的相似度。傳統的圖像相似度計算大都提取的是圖像整體特征,如顏色、紋理、輪廓特征等[3-4]全局特征,在普通圖像相似度比較上效果顯著。而服裝圖像細粒度分類多[5]、視覺變化大,其圖像相似度計算更加依賴于服裝設計元素或者裁剪方式等細節特征,而不僅僅是整體上的顏色、紋理、輪廓等全局特征,傳統的圖像相似度計算方法很難適用,其準確率和可解釋性有待進一步提高。目前,區分不同服裝類別的維度很多,如面料、顏色、款式造型、風格等[6],其中按照服裝風格比較服裝相似度是消費者最常用的方法。由于服裝圖像在款式風格上的復雜多樣性,本文考慮對影響服裝風格的因素進行分析和量化,進而研究基于服裝風格的圖像相似度計算。
服裝風格的形成受很多因素的影響,劉曉剛[7]提出了服裝風格可界定和量化的觀點,之后許多學者開始專注于服裝風格的量化研究,加大服裝風格的區分度,使得服裝風格的判斷也能夠有據可循。謝珍珍等[8]總結出服裝風格形成的客觀元素主要有服裝造型、色彩和面料等,其中款式造型是服裝風格量化研究的一個重要領域;馮利等[9]從服裝的輪廓造型,包括領、袖、分割線和裁剪方式等角度對服裝風格進行量化,得出服裝風格和服裝各部件裁剪造型之間的關系。此外,一部分學者還從服裝風格的設計元素對服裝風格進行相應的量化研究,賈璽增等[10]闡述了服裝面料促成服裝風格的形成,面料的特性會融入到服裝的整體風格中;陳雁等[11]提出顏色對服裝風格的重要影響,是與顏色的物理特征、人的生理感覺密切聯系的。綜上,本文考慮從服裝風格比較重要的影響因素款式造型著手,如領口、袖口、衣長、剪裁方式等屬性特征,獲取服裝在款式上的風格特征,從而判斷不同服裝的風格相似度。
近年來,越來越多的學者將深度學習與服裝圖像屬性識別相結合,取得了不錯的效果。吳圣美等[12]提出一種結合人體檢測和多任務學習的少數民族服裝識別方法,提高了少數民族服裝圖像識別的準確率和效率。張凱麗[13]構建了一個基于深度遷移學習和特征增強卷積神經網絡模型,提高了服裝屬性識別的準確性。Liu等[14]融合了大類、屬性、服裝ID以及關鍵點4種監督信息來進行服裝特征學習。林城龍等[15]提出了一個更加輕量的深度卷積神經網絡模型,采用多任務分類方法提升了服裝圖像分類的準確率。現有的研究大都是提取服裝圖像的淺層特征,對服裝單個類別進行分類,分類的粒度較粗,而本文主要研究更細粒度的服裝屬性識別,對類別的劃分更具體,從而抽取到更豐富的服裝款式風格特征,更好地構建基于服裝風格的款式相似度算法。
綜上,本文旨在構建服裝款式的風格特征模型,研究服裝款式特征的深度學習算法,提高圖像屬性的識別準確率,最終實現基于款式風格特征的服裝圖像相似度計算。
常用的圖像相似度計算采用余弦相似度方法,如圖1所示。基于余弦相似度方法計算圖1(c)、(d)的圖像相似度,計算結果為0.924 5,在一般圖像上的相似度計算效果較為顯著。基于余弦相似度方法計算圖1(a)、(b)2張服裝圖像的相似度,計算結果為0.953 3,而這2張服裝圖像無論是在風格上還是顏色外觀上都不具有較高的相似度,會和實際產生明顯的偏差。

圖1 圖像相似度舉例Fig.1 Image similarity example.(a)Clothing image 1; (b)Clothing image 2;(c) Natural image 1;(d) Natural image 2
傳統圖像相似度的計算方法在計算服裝圖像相似度的時候會和實際產生明顯的偏差,原因在于傳統的方法大都關注的是圖像淺層的整體特征,如顏色、紋理、輪廓等全局特征,會忽略服裝深層次的特征,如衣領、衣袖等局部細節。考慮到影響服裝風格的服裝屬性類別多且細分程度很高,本身柔性、形變比較大,設計元素也比較多樣,本文歸納出服裝風格的構成要素:服裝的款式造型、顏色風格以及服裝面料等。其中款式造型是區分服裝之間風格相似度的重要領域。因此,本文主要構建基于服裝款式風格特征的圖像相似度計算模型,如圖2所示。

圖2 基于服裝風格的款式相似度計算模型Fig.2 Model for calculating style similarity based on clothing style
在服裝設計中,馮利等[9]對服裝風格進行量化,總結出了影響服裝款式風格的幾大類別以及各類別上的具體細分。夏明等[16]通過分析連衣裙款式關鍵點輪廓,總結出影響廓形的部位包括肩部、胸部、腰部、臀部、膝蓋和下擺。本文結合服裝風格量化的相關研究,構建了服裝款式的風格特征,其數學表達式如下:
Style(i)={x(i),f(x(i))}
式中:Style(i)代表第i張服裝圖像的整體風格;x(i)表示影響第i張服裝圖像風格的組成要素,x(i)∈{款式造型,服裝顏色,面料,…};f(x(i))表示對應要素下的具體特征分布。本文研究款式的服裝風格特征構建,即x(i)取值為“款式造型”。
Style(i|x(i)=‘款式造型’)={Ci,Ai,Pi}
式中:Style(i|x(i)=‘款式造型’)表示第i張服裝圖像在款式造型上的風格特征,包括款式類別Ci和類別下的具體特征Ai;Pi表示具體的屬性特征取值。Ci∈{長度設計,領子設計,裁剪設計}。當Ci取值為“長度設計”時,Ai∈{裙長,褲長,衣長,袖長};當Ci取值為“領子設計”時,Ai∈{領型,領深,翻領,頸線};當Ci取值為“裁剪設計”時,Ai∈{袖型,褲型,腰線,裝飾物}。
基于所構建的服裝款式的風格特征,進一步構建服裝圖像風格特征識別模型,采用深度學習網絡可提取服裝深層次的屬性特征,最終基于提取出的服裝款式特征計算服裝風格的款式相似度,區分不同服裝在風格上的相似度大小。
目前,在圖像處理上采用的深度學習方法主要是卷積神經網絡(CNN),準確率有了很大的提高,Chen等[17]采用不同的CNN網絡結構進行服裝分類實驗,均取得良好的結果,最高準確度為92.02%。常見的深度卷積神經網絡模型有LeNet、AlexNet、VGG-NET、Google-Net以及ResNet,本文要識別更多服裝屬性的深層次的特征,需要設計較多的網絡層,網絡層數越深,其表達能力越強,但網絡設計得太深,會有梯度衰減等各種問題使網絡的性能大幅度下滑,用一些正則化、線性整流函數(RELU)等激活函數也不能完全避免。而殘差網絡的特點是容易優化,其內部的殘差塊使用了跳躍連接,緩解了在深度神經網絡中增加深度帶來的梯度消失問題[18],能夠通過增加相當的深度來提高準確率,且在2015年的ImageNet大規模視覺識別競賽中ResNet殘差網絡分類算法獲得了圖像分類和物體識別的優勝。因此,對于本文的研究問題來說,使用殘差網絡設計較深的網絡層數,從而提取服裝更深層次的細節屬性特征,可以達到較好的訓練效果。
另外,為了獲得良好分類能力的深度學習模型,需要大量服裝圖像進行訓練,這樣巨量的訓練數據獲取成為阻礙服裝多標簽分類的難點。而遷移學習是解決深度學習數據集稀少的常用方法,將源領域訓練好的模型遷移到現有模型中,可很好地把一個領域學習的知識遷移至另一個領域,充分發揮其在源領域中學習到的圖像細節特征提取的優勢,提高模型的泛化能力。因此,本文采用遷移學習的思想,使用殘差網絡模型作為基礎特征提取網絡,解決服裝圖像數據不充足的問題,也能獲得較好的訓練效果。
綜上,本文基于1.1小節構建的服裝風格特征,結合遷移學習的思想,設計改進的殘差神經網絡模型ResNet,利用其在ImageNet中學習到的圖像識別相關知識,將其遷移至新的服裝圖像屬性識別的任務中,抽取到的通用特征對于新的識別任務產生了顯著的效果,用于識別服裝圖像的風格特征。圖3示出本文構建的服裝圖像風格特征的識別模型。采用了多任務的多標簽分類算法,構建各個服裝類別上的多標簽分類模型,從而識別出服裝圖像在款式上的風格特征,如在裙長特征識別任務中,對于輸入的圖像,通過殘差網絡模型的特征識別,最終識別出該服裝圖像的裙長屬性特征為“中裙”。

圖3 服裝圖像風格特征識別模型(殘差網絡模型)Fig.3 Clothing image style feature recognition model (residual network model)
圖3中的殘差網絡模型通過在源數據集上預訓練神經網絡模型得到源模型,然后構建一個新的神經網絡模型作為目標模型,去除源模型的最后1層輸出層,將剩余網絡層的節點權重復制到新的目標模型上,確定目標模型輸出層的輸出大小,并對該層的模型參數進行初始化,從而將源模型中學習到的知識遷移到新的目標模型中,再通過模型的訓練,就可識別出服裝的屬性。
隨著網絡深度的增加,深度神經網絡的準確率會達到飽和,然后迅速退化。而本文使用的殘差網絡模型,基于殘差學習單元可解決這個退化問題。在圖4所示的殘差網絡結構圖中:X可通過折線部分直接傳輸給下一層網絡,殘差網絡中提出的殘差映射(residual mapping)輸出的是F(X),最終模型整個輸出為H(X)=F(X)+X,ResNet改變了學習目標,不再是學習一個完整的輸出,而是殘差F(X)=H(X)-X,因此,訓練目標就是要將殘差結果逼近于0,隨著網絡加深,準確率就不會下降。

圖4 殘差網絡結構圖Fig.4 Residual block structure diagram
圖5示出不同層數殘差網絡模型的殘差塊的結構,2種結構分別針對ResNet34(見圖5(a))和ResNet50(見圖5(b))。圖5(a)中是2個3×3的卷積,圖5(b)先使用1×1卷積對稀疏信息進行壓縮,有效利用計算力,減少參數的運算,效率更高。因此,本文考慮到需要識別的服裝屬性特征較多,為了減少參數量,采用網絡層數更加復雜的ResNet50模型,在提高模型運算的效率的同時也不會降低計算的準確率。

圖5 殘差塊的改進-瓶頸結構Fig.5 Improvement of residual block-bottleneck
表1示出本文使用的ResNet50網絡模型的結構。要求輸入圖像的大小為224×224×3,獲取特征向量后對其進行平均池化,然后將特征向量輸入到Softmax分類器得出服裝圖像所屬類別的概率值,從而判斷出當前輸入圖像所屬的類別屬性。

表1 ResNet50的網絡結構Tab.1 ResNet50′s network structure
基于本文構建的風格特征識別算法,可識別出服裝款式的風格特征,表示形式如下:
Style(i|x(i)=‘款式造型’)=
{Ci,Ai,Pi=maxaprob(a|I)}
式中:Pi為服裝圖像i在給定款式風格類別Ci、款式風格子類別Ai下的具體服裝屬性特征值;prob(a|I)為該類別下屬性為a的預測概率分數,最終Pi的取值為最大輸出概率對應的屬性值,屬性特征值的輸出形式為[a,prob],包括屬性a以及對應的概率值prob。
基于識別到的服裝圖像款式風格特征,可計算服裝之間的相似度大小,現有的幾種基本方法都是基于向量,即計算2個向量的距離,距離越近,相似度越大。例如:皮爾森相關系數反映了2個變量之間的線性相關程度,其取值在[-1,1]之間,計算出來的歐幾里德距離是一個大于0的數,距離越小,越相似,更多地體現個體數值特征的絕對差異,常用于需要從維度的數值大小中體現差異的分析。
考慮到風格特征的識別結果是離散形式的分類特征,余弦相似度計算結果對數據絕對值不敏感,通常描述用戶的興趣、喜好或用于情感分析,相比距離度量,余弦相似度更加注重2個向量在方向上的差異,可弱化風格特征度量標準不統一這一因素。因此,本文將輸入服裝風格特征,將其映射到向量空間,用向量空間中2個向量夾角的余弦值來衡量2個風格特征間的相似度,進而比較服裝圖像在款式風格上的相似度。其計算公式如下:
式中:cos(pic1,pic2)表示服裝圖像1和圖像2風格特征之間的余弦相似度,用來度量二者在款式風格上的相似度大小;X表示服裝圖像1的款式風格特征向量;Y表示服裝圖像2的款式風格特征向量;i的取值范圍為特征向量的長度。
實驗數據來源于天池大數據的FashionAI服裝圖像,服裝圖像超過10萬張,每個類別的服裝圖像數據充足而且都有人工標注的屬性標簽,圖像清晰完整,標注信息準確,對服裝屬性識別算法的訓練和測試提供了完善的實驗數據。基于阿里云天池大賽對服裝圖像屬性的分類,本文對服裝8個類別(領子、頸線、脖頸、翻領設計、袖長、衣長、褲長、裙長)分別進行多標簽分類訓練。
圖6為服裝多標簽屬性識別算法流程圖。用來訓練服裝多標簽屬性的識別算法包括以下幾個步驟。
數據集預處理:圖像集的預處理包括訓練集和測試集的預處理。借助計算機視覺的圖像增廣技術,對訓練集圖像進行增廣、隨機裁剪、翻轉等處理,增廣前的服裝圖像大小為224×224×3,增廣處理之后大小為256×256×3,既能擴大訓練集規模,也能降低模型對圖像特定位置的依賴,降低模型對圖像位置的敏感性,一定程度上也能降低模型的過擬合,提高模型的泛化能力;對測試集不做裁剪和翻轉,只需要進行簡單的圖像增廣處理。在數據集預處理設置好之后,定義數據讀取接口,訓練集和測試集數據讀取接口采用gluon框架自帶的DataLoader數據加載接口,在讀取速度上比較快,可以縮短模型訓練的時間。
模型定義和參數設置:本文系統采用的服裝屬性識別算法的模型采用遷移學習的方式,使用預訓練的殘差網絡模型ResNet50_v2,預訓練的模型有2個成員變量features和output。features包括除去模型輸出層之外的所有層;output是指模型的輸出層。因此,將預訓練模型上除了輸出層之外的網絡參數即features部分復制到本系統模型中來,然后再進行接下來的遷移學習模型的訓練和測試。

圖6 服裝圖像風格特征的識別算法流程圖Fig.6 Flow chart of recognition algorithm of clothing image style features
微調:微調是遷移學習中常用的一種模型遷移技術,保留源模型輸出層之外的網絡層,然后對輸出層進行調整,保留輸出層的網絡權重,調整輸出層輸出個數為指定服裝類別的屬性個數,然后對輸出層的權重進行隨機初始化,之后可將模型部署到一定的環境中,確定模型訓練器的學習率為0.001,優化器中參數momentum=0.9,wd=1×10-4,batch_size=32。
模型訓練:準備好數據集和讀取數據的接口,部署好訓練模型,然后迭代訓練ResNet50_v2網絡模型,從迭代器的訓練集數據讀取接口中獲取到的批次數據及標簽值,并通過自動梯度下降來實現圖的計算,輸出網絡預測數據,并計算交叉熵損失率(Loss),對Loss進行反向傳播,設置訓練器的步驟數為批次數,累加每個批次的損失率,得到最后的損失。每次迭代都計算相應的準確率和損失率,來觀測模型訓練的效果。
模型測試:模型測試中,會輸出概率最大的屬性類別作為該圖像的屬性值,可選擇測試集中已知的服裝類別圖像,驗證模型的準確率。
本文將服裝圖像隨機拆分為80%的訓練集、20%的驗證集,通過卷積和池化操作提取圖像特征。表2示出其中8個服裝類別的模型訓練的實驗結果。可看出,訓練集和測試集的準確率以及平均精度的值都比較高,Loss值較低,這8個類別的算法在測試集上的平均準確率為0.80,平均精度為0.884,平均損失率為0.576,在準確率和精度上都達到了80%,精度接近90%,模型的訓練效果顯著。

表2 實驗結果Tab.2 Experimental results
圖7示出服裝圖像實例。基于服裝風格特征識別算法,識別出各自的風格特征,特征表示如下:
Style(a)={(長度設計,裙長,‘short’)(領子設計,領深,‘Invisible’)(領子設計,領型,‘Invisible’)(領子設計,頸線,‘Deep V Neckline’)(長度設計,袖長,‘Long Sleeves’)(領子設計,翻領,‘Invisible’)}
Style(b)={(長度設計,裙長,‘short’)(領子設計,領深,‘Invisible’)(領子設計,領型,‘Invisible’)(領子設計,頸線,‘Deep V Neckline’)(長度設計,袖長,‘Long Sleeves’)(領子設計,翻領,‘Notched’)}
Style(c)={(長度設計,裙長,‘Floor’)(領子設計,領深,‘Invisible’)(領子設計,領型,‘Invisible’)(領子設計,頸線,‘Deep V Neckline’)(長度設計,袖長,‘Sleeveless’)(領子設計,翻領,‘Invisible’)}
Style(d)={(長度設計,裙長,‘Knee’)(領子設計,領深,‘Invisible’)(領子設計,領型,‘Invisible’)(領子設計,頸線,‘Straight Neck’)(長度設計,袖長,‘Long Sleeves’)(領子設計,翻領,‘Invisible’)}

圖7 服裝圖像實例Fig.7 Examples of clothing images.(a)Lady dress 1; (b)Lady dress 2;(c) Bohemian dress;(d) National dress
基于識別出的服裝圖像風格特征,可計算不同服裝在款式造型上的風格差異。圖7(a)、(b)的風格相似度計算如下:
Similarity(a,b)=
式中:style(a)和style(b)為風格特征向量,基于圖7(a)、(b)的風格特征向量間的余弦距離,可計算出服裝在款式風格特征上的相似度,計算結果見表3。

表3 基于款式造型比較服裝相似度Tab.3 Compare clothing similarity based on style
對比圖7(a)和(b)可看出,二者基于款式風格特征的相似度為0.933,高于傳統的基于圖像余弦相似度計算出的結果0.881,本文的方法比傳統的方法準確率更高;再比較圖7(c)和(d),傳統方法計算出的整體相似度為0.906,基于款式風格特征的相似度為0.684,而這2張圖像風格不同,細節屬性差異也很大,傳統的方法在服裝圖像上的應用效果缺乏可解釋性,無法捕捉到服裝圖像深層次的細節屬性特征,從而在為用戶推薦相似服裝的時候,效果不盡如意。因此,在服裝圖像的環境因素比較復雜時,本文從服裝的款式造型上比較圖像風格的相似度,計算結果更具解釋性,也更接近人的主觀感知,可以較好地比對服裝款式風格相似度,為服裝個性化推薦提供新的思路。
基于電商大環境以及用戶跨場景需求越來越多樣化,本文通過對服裝風格的量化分析,構建了基于服裝風格的圖像相似度計算模型,從影響服裝風格的款式造型展開研究,構建了基于遷移學習的殘差神經網絡用來識別服裝圖像的風格特征,實現了基于服裝風格的款式相似度計算,與傳統的圖像相似度方法相比,本文方法在計算結果上更準確,也更富解釋性,能夠從服裝設計風格的角度比較不同服裝圖像的相似度,并為基于服裝風格的個性化推薦提供新的思路。
此外,本文研究尚存在一些不足,需要進一步深入:1)進一步細化款式風格量化的粒度,實現對款式造型風格更加精準的量化;2)后續會對服裝環境所造成的干擾進行噪聲處理,并展開對非模特展示的服裝圖像研究,探究不同狀態下服裝圖像屬性識別的效果,增加算法識別的精度和魯棒性;3)可進一步擴展影響服裝風格的因素,如服裝的面料、顏色、圖案logo等,完善對服裝風格的量化研究。
FZXB