龔 安 周靜紅 李華昱
(中國(guó)石油大學(xué)(華東)計(jì)算機(jī)與通信工程學(xué)院 青島 266580)
隨著網(wǎng)上購(gòu)物的發(fā)展與流行,服裝電子商務(wù)快速發(fā)展,針對(duì)服裝的檢索技術(shù)成為了新的研究熱點(diǎn)?,F(xiàn)有網(wǎng)絡(luò)平臺(tái)的服裝檢索方案大多是基于文本的圖像檢索,主要是利用關(guān)鍵字針對(duì)圖像特征進(jìn)行描述,然后通過(guò)文本匹配檢索的方式實(shí)現(xiàn)圖像檢索。文本標(biāo)簽的定義容易受到標(biāo)注人主觀認(rèn)識(shí)的影響,檢索結(jié)果往往并不理想?;趦?nèi)容的圖像檢索更加符合人類的感知特點(diǎn),同時(shí)隨著人工神經(jīng)網(wǎng)絡(luò)的發(fā)展,這種方法越來(lái)越受到相關(guān)學(xué)者的關(guān)注。基于內(nèi)容的服裝圖像檢索技術(shù)依賴于服裝的視覺特征,通過(guò)對(duì)圖像特征的提取得到特征向量,計(jì)算特征向量之間的匹配程度就可以獲得最終的檢索結(jié)果。但是目前跨場(chǎng)景服裝圖像檢索技術(shù)的發(fā)展受到以下兩方面的限制:1)線上線下服裝圖像背景差異大,很大程度上影響了服裝區(qū)域檢測(cè)的準(zhǔn)確性。2)由于服裝款式樣式的多樣性,根據(jù)服裝特征進(jìn)行學(xué)習(xí)已經(jīng)不能完全描述出服裝的信息,根據(jù)這些信息進(jìn)行服裝檢索的精確度有待提高。
基于內(nèi)容的服裝檢索技術(shù)在發(fā)展初期大多是通過(guò)人臉識(shí)別和皮膚檢測(cè)等方式大致估計(jì)服裝位置,然后通過(guò)GIST 特征、SIFT 特征、HOG 特征等描述圖像特征。隨著深度神經(jīng)網(wǎng)絡(luò)在目標(biāo)檢測(cè)和特征表示中的普及,人們對(duì)深度模型的相似性學(xué)習(xí)越來(lái)越感興趣,嘗試將深度神經(jīng)網(wǎng)絡(luò)應(yīng)用到服裝檢索中?;谌痔卣髅枋龇椒ǎ?~3]多采用顏色直方圖等統(tǒng)計(jì)學(xué)特征,對(duì)服裝的款式、顏色等特征進(jìn)行描述,但是對(duì)于細(xì)粒度特征可能容易忽略?;诩?xì)粒度的特征描述方法[4~5]則主要提取服裝局部特征,能夠?qū)Ψb的花色等細(xì)節(jié)特征進(jìn)行較好描述,不過(guò)沒有概括服裝外形樣式等整體特征。Yan等[6]則注重于解決人體姿勢(shì)對(duì)服裝特征的影響,在具有復(fù)雜人體姿態(tài)的數(shù)據(jù)集中取得良好的效果。Liu 等[7]提出使用FashionNet 網(wǎng)絡(luò)架構(gòu)預(yù)測(cè)提取局部關(guān)鍵位置的特征并和服裝的全局特征進(jìn)行融合,對(duì)服裝屬性進(jìn)行更好的學(xué)習(xí)和檢索。但是局部關(guān)鍵位置的特征需要重新學(xué)習(xí),過(guò)程較為繁瑣,而且根據(jù)人體關(guān)鍵部位的局部特征和服裝全局特征差異性不大。人們對(duì)服裝進(jìn)行相似性判斷時(shí),不僅關(guān)注服裝樣式顏色等全局特征,內(nèi)部包含的圖案特征(品牌商標(biāo)等)也是重要依據(jù)。因此,本文針對(duì)服裝檢索的現(xiàn)有問(wèn)題和相關(guān)研究提出一種綜合考慮服裝全局特征、服裝細(xì)粒度特征和服裝內(nèi)部差異性大的局部圖案特征進(jìn)行特征提取和檢索的新方法。
根據(jù)人類對(duì)服裝的認(rèn)知特點(diǎn),本文提出基于圖案的多層次跨場(chǎng)景服裝檢索方法。神經(jīng)網(wǎng)絡(luò)算法流程圖如圖1 所示,輸入為線下日常服裝圖像,網(wǎng)絡(luò)從輸入服裝圖像中檢測(cè)提取出目標(biāo)服裝區(qū)域以及服裝上的特殊圖案區(qū)域,針對(duì)兩個(gè)區(qū)域分別提取各自的圖像特征,然后將全局服裝特征和局部圖案特征融合作為服裝整體特征描述,根據(jù)線上線下服裝圖像特征向量的相似度進(jìn)行排序,輸出線上數(shù)據(jù)集圖像。
本文構(gòu)建的網(wǎng)絡(luò)模型如圖2 所示。網(wǎng)絡(luò)由三部分組成:第一部分使用YOLOv2[8]對(duì)服裝圖像進(jìn)行檢測(cè),識(shí)別出日常場(chǎng)景和在線商城場(chǎng)景中服裝圖像的上身和下身部分以及圖案區(qū)域。第二部分是兩個(gè)Resnet[9]網(wǎng)絡(luò),其中一個(gè)使用triplet loss[10]函數(shù)作為損失函數(shù)針對(duì)服裝區(qū)域進(jìn)行度量學(xué)習(xí),提高網(wǎng)絡(luò)對(duì)跨場(chǎng)景服裝圖像的識(shí)別能力;另一個(gè)網(wǎng)絡(luò)使用ImageNet[10]進(jìn)行預(yù)訓(xùn)練,然后通過(guò)服裝數(shù)據(jù)集圖案區(qū)域微調(diào)之后對(duì)圖案區(qū)域進(jìn)行特征提取。第三部分是圖像檢索,融合兩個(gè)Resnet網(wǎng)絡(luò)輸出作為特征向量保存到數(shù)據(jù)庫(kù)中以便進(jìn)行服裝圖像檢索。
圖1 神經(jīng)網(wǎng)絡(luò)算法流程圖
圖2 網(wǎng)絡(luò)模型
3.2.1 YOLOv2網(wǎng)絡(luò)目標(biāo)檢測(cè)
圖像分割是圖像檢索的重要前提,對(duì)于跨場(chǎng)景服裝檢索而言,輸入的日常服裝圖像通常背景復(fù)雜,而相關(guān)的在線服裝圖像背景單一,所以二者存在較大差異,導(dǎo)致檢索精度較差。因此,利用目標(biāo)檢測(cè)算法定位并分割出服裝圖像的目標(biāo)區(qū)域,有利于消除背景區(qū)域?qū)δ繕?biāo)區(qū)域的特征干擾,提高服裝檢索精度。其中,YOLOv2 是目前目標(biāo)檢測(cè)效果較好的深度學(xué)習(xí)算法。
利用YOLOv2 提取不同場(chǎng)景服裝圖像目標(biāo)區(qū)域的具體步驟如下:
1)在卷積層提取的特征圖上進(jìn)行13*13 的網(wǎng)格劃分;
2)采用k-means 聚類算法選擇具有代表性的先驗(yàn)框(centroid)維度,其中,k-means 算法采用的距離函數(shù)(度量標(biāo)準(zhǔn))為
通過(guò)對(duì)數(shù)據(jù)集中的ground true box(人工標(biāo)記的物體)做聚類,找到ground true box 的統(tǒng)計(jì)規(guī)律。經(jīng)過(guò)聚類分析,選取5個(gè)初始候選框。
3)對(duì)特征圖上的每個(gè)網(wǎng)格預(yù)測(cè)5 個(gè)bounding box(邊界框),每一個(gè)bounding box 預(yù)測(cè)5 個(gè)坐標(biāo)值:tx,ty,tw,th,to。如果這個(gè)網(wǎng)格距離圖像左上角的邊距為(cx,cy)以及該網(wǎng)格對(duì)應(yīng)的bounding box prior(先驗(yàn)框)維度的長(zhǎng)和寬分別為(pw,ph),那么對(duì)應(yīng)的預(yù)測(cè)框?yàn)?/p>
其中,σ 定義為sigmoid 激活函數(shù),將函數(shù)值約束到[0,1],用來(lái)預(yù)測(cè)相對(duì)于該網(wǎng)格中心的偏移(不會(huì)偏離網(wǎng)格);預(yù)測(cè)框的位置是相對(duì)于bounding box prior的寬高乘以系數(shù)得到。
4)提取IOU 值大于等于0.7 的bounding box 為服裝區(qū)域和圖案區(qū)域。
3.2.2 Resnet網(wǎng)絡(luò)特征提取
只有對(duì)目標(biāo)區(qū)域特征進(jìn)行準(zhǔn)確、完整的特征提取才能完成更好的特征匹配與圖像檢索。近年來(lái)卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks,CNN)[11]在特征提取方面的應(yīng)用越來(lái)越廣泛,同時(shí)含更多隱含層的深度卷積網(wǎng)絡(luò)相較于淺層神經(jīng)網(wǎng)絡(luò)具有更強(qiáng)大的特征學(xué)習(xí)和特征表達(dá)能力。但是CNN 隨著網(wǎng)絡(luò)層數(shù)的增加,訓(xùn)練難度不斷加大,很難保證模型能訓(xùn)練到一個(gè)理想的結(jié)果。微軟亞洲研究院He 等[12]2015 年(正式發(fā)表于CVPR2016)提出了殘差學(xué)習(xí)的思想,很好地解決了深度網(wǎng)絡(luò)訓(xùn)練難的問(wèn)題,使得網(wǎng)絡(luò)層數(shù)達(dá)到了一個(gè)新的高度。為提取服裝和圖案圖像的多層次特征,更好地表達(dá)圖像的語(yǔ)義信息,本文在深度卷積網(wǎng)絡(luò)的基礎(chǔ)上,引入殘差學(xué)習(xí)的思想,使用深度殘差網(wǎng)絡(luò)進(jìn)行特征識(shí)別。
圖3 是殘差學(xué)習(xí)模塊的示意圖,殘差學(xué)習(xí)模塊可以作為神經(jīng)網(wǎng)絡(luò)的一部分或多個(gè)部分。假設(shè)該部分神經(jīng)網(wǎng)絡(luò)的輸入為x,要擬合的函數(shù)映射(即輸出)為H(x),可以定義另外一個(gè)殘差映射F(x)=H(x)-x,則原始的函數(shù)映射H(x)可以表示為F(x)+x。He通過(guò)實(shí)驗(yàn)說(shuō)明:優(yōu)化殘差映射F(x)比優(yōu)化原始映射H(x)要容易的多。F(x)+x在前饋神經(jīng)網(wǎng)絡(luò)中可以理解為捷徑(shortcut)x 與主徑F(x)的加和。捷徑并沒有引入額外的參數(shù),不影響原始網(wǎng)絡(luò)的復(fù)雜度,整體網(wǎng)絡(luò)依然可使用現(xiàn)有的深度學(xué)習(xí)反饋訓(xùn)練求解。
圖3 殘差學(xué)習(xí)示意圖
3.2.3 基于triplet loss的度量學(xué)習(xí)
網(wǎng)絡(luò)使用三張圖像組成三元組作為樣本,記為(xia,xip,xin),其中xin是線下服裝圖像,xip作為與xni相同類別的線上正樣本圖像,xai是隨機(jī)選取的線上服裝,與線下服裝不同類別,稱作負(fù)樣本。損失函數(shù)可表達(dá)為
其中T 是所有三元組集合,α為閾值參數(shù)。該損失函數(shù)主要為了增大不同類別間的距離,同時(shí)減小同類間的距離,可以通過(guò)學(xué)習(xí)將服裝背景的影響減小,從而提高跨場(chǎng)景檢索準(zhǔn)確率。
3.2.4 特征融合檢索
從前一部分的兩個(gè)Resnet 網(wǎng)絡(luò)中學(xué)習(xí)得到兩種特征向量,融合服裝區(qū)域全局特征和圖案的局部特征,就構(gòu)成了服裝的多層次特征描述。最終得到服裝圖像的768 維服裝特征向量,其中512 維來(lái)自服裝全局特征,256 維來(lái)自圖案特征。特征融合采用線性融合即可。由于一些服裝可能識(shí)別不出明顯的圖案區(qū)域,對(duì)服裝的多層次特征描述影響較小,但是網(wǎng)絡(luò)可以提高帶有圖案服裝的檢索準(zhǔn)確度,有助于提升數(shù)據(jù)集整體檢索準(zhǔn)確度。
為了驗(yàn)證加入圖案區(qū)域特征后跨場(chǎng)景檢索的效果,本文建立一個(gè)服裝圖片數(shù)據(jù)集,數(shù)據(jù)集中共有17320 張不同款式顏色的服裝圖像,服裝數(shù)據(jù)庫(kù)大多來(lái)自其他數(shù)據(jù)集(DeepFashion、DARN[12]),也有部分采集自淘寶、京東等購(gòu)物網(wǎng)站的服裝和人們?cè)诓煌h(huán)境下的日常服裝。線上服裝占80%左右,剩下的線下服裝每個(gè)都有與之相對(duì)應(yīng)的商品圖像構(gòu)成服裝對(duì),以便進(jìn)行度量學(xué)習(xí)。同時(shí)服裝中包含明顯圖案區(qū)域的占大概50%左右。所有服裝都按照款式(T 恤、外套、短裙等)、樣式(純色、條紋、豹紋等)、材質(zhì)(羊毛、皮革、棉麻等)等屬性做了詳細(xì)的標(biāo)注,以便于訓(xùn)練和評(píng)價(jià)檢索精度。屬性類別和示例如表1所示。
表1 服裝屬性類別和示例(括號(hào)中數(shù)字是該類別總個(gè)數(shù))
使用ImageNet數(shù)據(jù)集對(duì)服裝圖案進(jìn)行預(yù)訓(xùn)練,同時(shí)使用本文新建數(shù)據(jù)集中的圖案區(qū)域進(jìn)行訓(xùn)練微調(diào)。
本文使用的網(wǎng)絡(luò)記為Pattern-Net,分別對(duì)文中使用的部分網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行替換,在本文構(gòu)建的服裝數(shù)據(jù)集上進(jìn)行圖像檢索,對(duì)比實(shí)驗(yàn)結(jié)果。
1)用FastRCNN 網(wǎng)絡(luò)[13]替換進(jìn)行目標(biāo)檢測(cè)部分的YOLOv2網(wǎng)絡(luò),記為FastRCNN-Net;
2)將網(wǎng)絡(luò)特征提取部分的Resnet 網(wǎng)絡(luò)用CNN網(wǎng)絡(luò)替換,記為CNN-Net;
3)不使用triplet loss 函數(shù)作為損失函數(shù)進(jìn)行度量學(xué)習(xí),記為TL-Net;
4)僅使用全局服裝特征對(duì)服裝圖像進(jìn)行檢索,記為Part-Net。
其中針對(duì)使用了triplet loss 函數(shù)的網(wǎng)絡(luò)在每迭代5000 次之后重新生成新的三元組,這樣可以讓網(wǎng)絡(luò)充分學(xué)習(xí)來(lái)自不同環(huán)境場(chǎng)景的圖像。同時(shí)在進(jìn)行圖像檢索時(shí),首先檢索具有相同語(yǔ)義屬性的服裝,然后比較輸入圖像與數(shù)據(jù)庫(kù)圖像特征向量的距離,認(rèn)為特征距離較短的圖像更相似。表2 展示不同網(wǎng)絡(luò)的服裝檢索結(jié)果。
表中Top-k(分別取5和10)準(zhǔn)確率表示網(wǎng)絡(luò)檢索出的前k 個(gè)結(jié)果中是否包含帶檢索圖像的準(zhǔn)確率,其中Part-Net 網(wǎng)絡(luò)和Pattern-Net 網(wǎng)絡(luò)針對(duì)不同數(shù)據(jù)集的對(duì)比如表3所示。
表2 不同網(wǎng)絡(luò)的服裝檢索結(jié)果
表3 Part-Net網(wǎng)絡(luò)和Pattern-Net網(wǎng)絡(luò)在不同數(shù)據(jù)集上的準(zhǔn)確率
從表2 可以看出,無(wú)論是進(jìn)行目標(biāo)檢測(cè)的YOLOv2 網(wǎng)絡(luò)還是用來(lái)特征提取的Resnet 網(wǎng)絡(luò),比其他主流網(wǎng)絡(luò)能夠提供更好的性能,同時(shí)在網(wǎng)絡(luò)學(xué)習(xí)時(shí)使用triplet loss函數(shù)有助于跨場(chǎng)景服裝檢索。
表3 說(shuō)明基于圖案的服裝檢索方法雖然對(duì)無(wú)圖案數(shù)據(jù)集的檢索沒有太大影響,但能夠有效提高包含圖案服裝數(shù)據(jù)集的檢索準(zhǔn)確率,從而提高整體數(shù)據(jù)集準(zhǔn)確率4%左右。
網(wǎng)絡(luò)檢索結(jié)果示例如圖4 所示,從圖中可以看出檢索結(jié)果基本能夠?qū)⑺械膶傩灶悇e考慮全面,同時(shí)體現(xiàn)出圖案的屬性特征。
圖4 服裝圖像檢索示例(每行第一張圖片為輸入,后五張為檢索結(jié)果)
針對(duì)現(xiàn)有服裝檢索注重全局特征、對(duì)服裝局部特征描述較少的情況,提出一種基于圖案多層次跨場(chǎng)景服裝檢索方法,融合了服裝區(qū)域全局特征以及服裝圖案區(qū)域局部特征,將服裝圖像特征描述進(jìn)一步豐富,能夠?qū)崿F(xiàn)更好的匹配檢索。本文還借鑒使用了基于triplet loss的度量學(xué)習(xí)進(jìn)行跨場(chǎng)景服裝圖像的學(xué)習(xí),提高了網(wǎng)絡(luò)跨場(chǎng)景檢索的能力。實(shí)驗(yàn)結(jié)果表明,本文方法能夠有效提高帶有標(biāo)志性圖案的服裝圖像檢索的準(zhǔn)確度,從而提高整體服裝檢索精度。但是對(duì)于存在人體遮擋和側(cè)身等情況的服裝檢索精確度有待提高,論文的后續(xù)工作將著重圍繞這些問(wèn)題進(jìn)行展開,以便進(jìn)一步提高檢索準(zhǔn)確率。