李維乾,張紫云,王 海,張 藝
1(西安工程大學 計算機科學學院,西安 710048)
2(陜西省服裝設計智能化重點實驗室,西安 710048)
3(新型網絡智能信息服務國家地方聯合工程研究中心,西安 710048)
4(西北大學 信息科學與技術學院,西安 710127)
在電子商務應用領域,常采用服裝關鍵點從視覺方面來描述服裝的形態信息,從而將感興趣的服裝推薦給消費者,進而滿足客戶的個性化需求.而現有數據集中,因服飾圖片存在背景復雜、服飾變形等問題,導致服裝關鍵點的檢測精度不高.為此,Liu 等人[1]基于深度學習Caffe 框架,構建了三層級聯神經網絡模型,利用深度時尚對齊技術(Deep Fashion Alignment,DFA)完成了服裝關鍵點的檢測研究.但該模型未對復雜背景下的圖片進行處理,尤其是當服飾部分關鍵點被遮擋或服飾發生變形時,該模型對關鍵點檢測的準確率會降低.Yan 等[2]采用VGG16 (Visual Geometry Group)模型構建了DLAN (Deep LAndmark Network)網絡,該網絡對因人體姿態不同產生變形的服裝關鍵點進行了檢測.Wang 等人[3]提出了一種雙向卷積遞歸神經網絡 (Bidirectional Convolutional Recurrent Neural Networks,BCRNNs),根據運動學和服裝對稱關系來檢測服裝關鍵點.然而DLAN 和BCRNNs 在對圖像特征進行提取時,僅使用了圖像的深層信息,未能融合多層網絡語義信息,導致關鍵點檢測的準確率較低.
針對以上問題,本文提出了一種自上而下的級聯層疊金字塔網絡模型(Cascaded Stacked Pyramid Network,CSPN)用于服裝關鍵點的檢測.首先,采用Faster R-CNN[4]對服裝目標區域進行定位,以確定服裝的位置,消除圖像中與服飾無關的圖像特征.然后,利用ResNet-101[5]提取服裝區域的圖像特征.以此為基礎,將多個不同深度的特征圖疊加在一起,構成級聯層疊特征金字塔[6]網絡結構,有效融合服飾圖像的原始特征、全局特征和局部特征,逐步對關鍵點進行預測與修正,從而提高服裝關鍵點檢測的準確度.
在傳統的關鍵點檢測中,采用全連接層直接回歸坐標點[7].該類做法的優點是輸出即為坐標點,訓練和前向速度很快,且是端到端的全微分訓練,但缺點是缺乏空間泛化能力,丟失了特征圖上的空間信息.此方法不利于檢測被遮擋的服裝關鍵點.而本文采用預測高斯熱圖的方式,輸出特征圖大,空間泛化能力較強.
如圖1 所示,原始圖片經過金字塔網絡提取特征之后,融合高低層特征信息,生成預測關鍵點熱圖,計算Loss 并反向傳播.

圖1 預測關鍵點熱圖并回傳Loss
CSPN 模型將基于目標檢測和基于回歸檢測的方法相結合,通過構建級聯層疊特征金字塔網絡模型來提高服裝關鍵點的檢測準確率.該模型包含兩個階段,第一階段Detection Proposal 是對服裝區域進行識別,第二階段Detection KeyPoint 是利用識別后的特征圖對服裝關鍵點檢測.圖2 為該模型對服裝關鍵點進行檢測的過程.

圖2 服裝關鍵點檢測過程
針對復雜背景下關鍵點識別率低的問題,CSPN 模型利用Faster R-CNN 對服裝目標區域進行識別,其流程如圖3 所示.首先,利用VGG16 卷積層對服裝圖片數據進行特征提取,將生成的feature map1 特征圖一方面用作服裝邊界框proposals 的生成,另一方面將該feature map1 特征圖和生成的proposals 邊界框作為RoI (Region of Interest)pooling 層的輸入,得到固定大小的輸出特征圖(feature map2).然后,利用分類器(Classifier)對固定大小的feature map2 進行全連接操作.最后,使用L1 Loss 邊框回歸操作,獲得服裝區域的精確位置.

圖3 服裝目標區域識別網絡流程圖
對于圖像特征圖,較低尺度圖像往往含有豐富的語義信息,對圖像上半部分的關鍵點檢測效果較好;而更高尺度的圖像含有豐富的空間紋理信息,對圖像下半部分關鍵點的檢測效果較好[8].因此,CSPN 模型采用級聯金字塔網絡自上而下的對圖像特征進行提取,從語義豐富的深層圖像特征圖中,通過上采樣方式重新構建高分辨率的淺層,達到對關鍵點進行定位的目的.由于經過上采樣之后的圖像,在關鍵點檢測時存在偏差,所以需要在上采樣重建時將相應的高分辨率特征圖疊加在一起,經過關鍵點信息的重復利用及級聯方式,不斷修正關鍵點位置,從而提高關鍵點檢測的準確率.
服裝關鍵點檢測網絡的模型結構分為Stage1、Stage2、Stage3 和Stage4 共4 個階段,如圖4 所示.Stage1 階段是對ResNet-101 中的特征圖進行上采樣后疊加操作,輸出3 個特征圖作為下一階段的輸入記做L1.L1 中3 個特征圖像素值的大小分別為64*64、128*128 和256*256.L0 表示殘差網絡ResNet-101 中的特征圖,本文選取conv2~5 最后殘差塊的特征圖;Up 為上采樣操作Up sampling;+為將上采樣擴大后的圖像與其同像素大小的圖像疊加.Stage2 是對L1 特征圖重復進行上采樣和疊加操作,其輸出特征圖和L1 中的conv5 記做L2,作為Stage3 的輸入.Stage3 和Stage4 復制Stage1 和Stage2 過程,通過多級級聯模式生成最終的L4 特征圖(大小為256*256),即為服裝關鍵點的預測結果.在4 個階段中,每個階段均以前一個階段的預測結果作為輸入,通過級聯方式提高關鍵點的檢測精度.
對于可見關鍵點,Stage1 階段可直接預測得到.服裝圖片經過網絡模型輸出8 個關鍵點的heatmap(數據集定義服裝關鍵點為8 個),把每個heatmap 計算Loss 之后再回傳,Loss 表達式為式(1),記為 L2.

其中,n 表示關鍵點的個數,k gi,k pi分別表示標注的關鍵點坐標和預測的關鍵點坐標.
對于不可見關鍵點,可通過增大感受野,以級聯層疊的方式來獲得關鍵點.Stage2,Stage3 和Stage4 階段,關鍵點檢測難度依賴于關鍵點訓練時的損失,因此,在訓練過程中取前K(K=4)個損失值較大的關鍵點計算Loss 并回傳,Loss 表達式記為 L2?.與Stage1 階段Loss 不同的是,關鍵點的個數n =K.


圖4 級聯層疊金字塔服裝關鍵點檢測網絡模型
實驗選用DeepFashion 數據庫進行訓練和測試,其Landmark Detection Benchmark 是該數據庫中一個公開的大型服裝數據集,包括12.3 萬張服裝圖片,有上衣(6 個關鍵點)、下裝(4 個關鍵點)、全身(8 個關鍵點)3 種服裝類型,且存在正常、中等、嚴重等不同程度的變形圖片.圖5 為全身類服裝8 個關鍵點的標注.本文從該數據集中選取8.6 萬張服裝圖片作為訓練數據集,3.7 萬張作為測試數據集.

圖5 全身類服裝關鍵點
CSPN 模型采用NE (Normalized Error)值作為評價指標,該值只考慮關鍵點可見情況下,預測關鍵點與實際關鍵點之間的平均歸一化距離.數值越小代表預測的精確越高.

其中,k 為一張圖片里關鍵點的編號,dk為預測關鍵點和標注關鍵點間的距離,sk為距離歸一化參數(上裝及全身為左右袖口的歐式距離,下裝為左右腰側的歐式距離),vk表示該關鍵點是否可見.在數據集標注中,1 表示關鍵點可見,0 表示關鍵點不可見,-1 表示關鍵點不存在.vk=1表 示k 關鍵點可見,δ (vk=1)表示編號為k 關鍵點參與計算.∑kδ(vk=1)表示計算所有圖片中編號為k 的關鍵點的可見個數.
由于關鍵點檢測誤差除與模型訓練時的迭代次數有關,還與級聯層疊特征金字塔網絡結構相關.當級聯層疊特征金字塔中層疊數和級聯數大于4 時,繼續增加特征金字塔結構中層疊數和級聯數,不僅不能有效提升檢測效果,而且會導致訓練參數增加,從而降低訓練效率.因而,本實驗將特征金字塔層疊數設置為1~4,并統計4 個階段中全身類服飾8 個關鍵點的平均NE 值,如表1 所示.

表1 在Landmark Detection Benchmark 數據集關鍵點檢測的NE 值
表1 列舉了CSPN 模型與FashionNet[9]、DFA 和DLAN 模型實驗結果的對比.FashionNet 模型基于VGG16 結構,采用回歸方法檢測關鍵點;DFA 模型則基于VGG16 結構,通過3 層級聯形式使用回歸方式預測關鍵點;DLAN 模型是基于服裝關鍵點原始數據的訓練.表1 中,L.Collar (LC),R.Collar (RC),L.Sleeve(LS),R.Sleeve (RS),L.Waistline (LW),R.Waistline (RW),L.Hem(LH),R.Hem (RH)分別表示左衣領、右衣領、左袖口、右袖口、左腰側、右腰側、左下擺、右下擺.
從表1 可以看出,由于CSPN 模型引入了服裝區域檢測網絡,并采用級聯層疊特征金字塔網絡,有效的提高了關鍵點檢測的準確率.
表2 為采用區域檢測網絡和未采用區域檢測網絡的服裝關鍵點NE 值對比.其中CSPN 為本文模型,NCSPN 為去掉服裝區域檢測網絡Detection Proposal的模型.

表2 是否采用檢測網絡關鍵點檢測的NE 值
從表2 中可以看出,相較于去掉服裝區域檢測網絡,CSPN 模型具有更高的檢測準確率.在實驗過程中,缺少區域檢測的步驟會導致左右袖口和左右衣擺易變形位置的關鍵點檢測準確率較低.而CSPN 模型可以有效地解決這一問題.
另外,圖6 列舉了級聯層疊金字塔結構中采用不同級聯階段時8 個關鍵點的平均NE 值及表3 為不同Stage 的算法性能對比.
實驗中最終將NE 降低到5.56%,一張圖片在模型上的檢測時間為1 s.隨著層疊特征金字塔級聯數量的增加,關鍵點的預測值與真實值之間的距離逐漸縮小,說明關鍵點的檢測準確性得到了有效提高,驗證了CSPN 模型的有效性.
圖7 為CSPN 模型在人體不同姿態下,對全身類服飾8 個關鍵點的檢測效果.

圖6 各關鍵點不同Stage 平均誤差

表3 不同Stage 的性能對比

圖 7 不同人體姿態下全身類服飾關鍵點的檢測效果
針對現有服裝數據庫中,因服飾圖片存在形變及背景復雜等因素導致服裝分類識別率較低的問題,本文結合服裝目標區域識別和關鍵點回歸方法,提出了級聯層疊金字塔網絡CSPN 模型.該模型在DeepFashion數據集上與其他3 種網絡模型進行了對比,結果顯示:CSPN 模型能夠有效提升服裝關鍵點檢測的準確率.由于實驗中采用的圖像特征提取網絡ResNet-101 結構存在參數較多、效率較低等缺陷,因而后續計劃通過改變或替換該網絡結構,進一步提高關鍵點檢測精度.