張藝凡, 劉國(guó)華, 盛守祥, 王國(guó)棟, 王力民
(1 東華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 上海201620; 2 華紡股份有限公司,山東 濱州256602)
隨著經(jīng)濟(jì)的發(fā)展,人們?cè)诖┲虬绶矫嬗l(fā)追求個(gè)性化風(fēng)格。 服裝的流行趨勢(shì)隨著時(shí)代的發(fā)展不斷更迭,風(fēng)格也在不斷擴(kuò)展。 隨著電子商務(wù)的蓬勃發(fā)展,在網(wǎng)絡(luò)上選購(gòu)自己心儀的服裝商品已然成為一種潮流和趨勢(shì)。 2019 年度中國(guó)消費(fèi)者網(wǎng)購(gòu)服裝情況如圖1 所示。
圖1 2019 年中國(guó)消費(fèi)者網(wǎng)購(gòu)服裝比例和渠道偏好Fig. 1 Chinese consumers' clothing purchase ratio and channel preferences in 2019
在網(wǎng)購(gòu)的過(guò)程中,人們會(huì)根據(jù)服裝圖像來(lái)取舍商品。 服裝類電商平臺(tái)包含大量的服裝圖像,對(duì)這些圖像進(jìn)行服裝風(fēng)格的分類,有助于幫助用戶快速定位到滿足自己需求的商品區(qū)域[1]。 除此之外,對(duì)服裝圖像進(jìn)行服裝風(fēng)格屬性標(biāo)注,可有效利用網(wǎng)絡(luò)服裝圖像數(shù)據(jù)。 已標(biāo)注風(fēng)格屬性的服裝圖像在各類服裝檢索及推薦系統(tǒng)中有良好的應(yīng)用前景。
由于服裝風(fēng)格的評(píng)判標(biāo)準(zhǔn)個(gè)性化強(qiáng)且風(fēng)格特征發(fā)展迅速[2],其識(shí)別和分類問(wèn)題非常復(fù)雜。 服裝風(fēng)格通常被認(rèn)為是一個(gè)相對(duì)模糊的概念,一般采用主觀評(píng)價(jià)的方法,一直以來(lái)缺少指標(biāo)和主觀感受之間的對(duì)應(yīng)關(guān)系,因此通過(guò)總結(jié)和提取各類服裝圖像特征,對(duì)服裝風(fēng)格進(jìn)行量化具有重要的研究意義[3]。最原始的服裝風(fēng)格標(biāo)注方法是文本手動(dòng)標(biāo)注,即通過(guò)人為判斷來(lái)對(duì)服裝圖像的風(fēng)格進(jìn)行標(biāo)注,費(fèi)時(shí)費(fèi)力,且人為參與標(biāo)注加入了主觀因素。
隨著計(jì)算機(jī)技術(shù)的發(fā)展,在圖像識(shí)別領(lǐng)域出現(xiàn)了大量提取圖像特征的算法。 傳統(tǒng)特征提取方法分為針對(duì)圖像全局和局部進(jìn)行特征提取兩類。 常見的全局特征包括顏色特征[4]、紋理特征[5]和形狀特征[6]。 針對(duì)基于顏色特征的服裝圖像識(shí)別問(wèn)題,構(gòu)建了一個(gè)新的時(shí)尚圖像數(shù)據(jù)集,稱為Colorful-Fashion[7]。 除此之外,有文獻(xiàn)提出了一種基于顏色特征的服裝分割方法,該方法利用形狀和顏色信息對(duì)服裝商店數(shù)據(jù)庫(kù)中服裝圖像進(jìn)行服裝分割[8],基于此類全局特征尤其形狀特征可以辨別出服裝的類別。 但是由于服裝的主觀風(fēng)格量化難度較高,通過(guò)形狀、紋理等簡(jiǎn)單特征無(wú)法準(zhǔn)確識(shí)別服裝風(fēng)格。
常見局部特征提取方法有:SURF[9]、SIFT(尺度不變特征變換)[10]、HOG(方向梯度直方圖)等。 但這類傳統(tǒng)的特征抽取算法有無(wú)法處理遮擋和無(wú)法提取光滑邊緣等缺點(diǎn),其提取出的特征難以用于服裝圖像的分類。 針對(duì)服裝圖像的場(chǎng)景多樣雜亂以及遮擋等問(wèn)題,利用基于多模態(tài)語(yǔ)義關(guān)聯(lián)規(guī)則(MMSAR)的自動(dòng)融合關(guān)鍵詞和視覺(jué)特征的Web 圖像檢索方法加以解決[11]。
近年來(lái),隨著深度學(xué)習(xí)的快速發(fā)展,深度學(xué)習(xí)在計(jì)算機(jī)視覺(jué)領(lǐng)域的應(yīng)用取得了突破性進(jìn)展。 P 使用BP 神經(jīng)網(wǎng)絡(luò)來(lái)識(shí)別機(jī)織物的圖案[12],從分類中提取正常織物的質(zhì)地和結(jié)構(gòu)特征,輸入到神經(jīng)網(wǎng)絡(luò)中,以完成學(xué)習(xí)過(guò)程。 針對(duì)當(dāng)前越來(lái)越多“以圖搜圖”的需求,期望通過(guò)街拍圖片來(lái)搜索到同一服裝的賣家圖片[13]。
傳統(tǒng)的特征提取方法難以利用大數(shù)據(jù)優(yōu)勢(shì),依賴手工調(diào)整參數(shù),因此特征中參數(shù)量較少;而深度學(xué)習(xí)可以從海量數(shù)據(jù)中學(xué)習(xí)包含多參數(shù)的特征,因此深度學(xué)習(xí)提取出的特征表達(dá)效果更好,更適用于識(shí)別服裝風(fēng)格這類需要大量特征對(duì)比來(lái)判斷的屬性。
本文采用基于深度學(xué)習(xí)的特征提取模型對(duì)服裝圖像的風(fēng)格進(jìn)行識(shí)別,根據(jù)提取出的特征訓(xùn)練服裝風(fēng)格分類器,通過(guò)將預(yù)測(cè)結(jié)果寫入數(shù)據(jù)庫(kù)記錄分類結(jié)果,實(shí)現(xiàn)服裝圖像風(fēng)格的批量識(shí)別與標(biāo)注。
服裝風(fēng)格評(píng)定因素分為客觀評(píng)定因素和主觀評(píng)定因素[14]。 客觀評(píng)定因素即服裝的直觀樣式,包括面料、袖長(zhǎng)、領(lǐng)形等易識(shí)別特征。 服裝的主觀評(píng)定因素,如:淑女風(fēng)格、運(yùn)動(dòng)風(fēng)格等等。
服裝的主觀風(fēng)格的定義主要包括3 個(gè)方面:(1)時(shí)代特色和民族傳統(tǒng)。 (2)面料,顏色,圖案紋路等。 (3)服裝的功能性。 當(dāng)代主流的服裝風(fēng)格包括:都市、優(yōu)雅、復(fù)古、淑女、可愛(ài)、簡(jiǎn)約、民族、職業(yè)等。
本文對(duì)六類服裝風(fēng)格進(jìn)行區(qū)分和識(shí)別。 (1)簡(jiǎn)約風(fēng)格。 服裝在色彩特征方面以黑、白、灰色為主,較少使用圖案,常采用廓形設(shè)計(jì),形狀寬松。 (2)優(yōu)雅風(fēng)格。 服裝在色彩特征方面以深色為主,常用色為紅色、黑色、紫色,給人感覺(jué)低調(diào)且華麗,形狀修身且偏長(zhǎng)。 (3)復(fù)古風(fēng)格。 服裝以深棕、卡其色等為主體色調(diào),通常采用素色圖案,形狀特征主要有荷葉邊領(lǐng)、方形領(lǐng)、燈籠袖等突出形狀。 (4)民族風(fēng)格。服裝的顏色通常以艷麗的紅色和藍(lán)色為主,多采用復(fù)雜且重復(fù)的紋路和圖案。 (5)可愛(ài)風(fēng)格。 服裝代表顏色為淡粉色,也常采用對(duì)比強(qiáng)的顏色,款式層疊較多且造型復(fù)雜。 (6)職場(chǎng)風(fēng)格。 服裝多采用黑、白、深藍(lán)色,款式固定,形狀對(duì)稱。 六大服裝風(fēng)格指定特征總結(jié)如表1 所示。
表1 各類服裝風(fēng)格特征總結(jié)Tab.1 Summary of various clothing style characteristics
GoogLeNet 團(tuán) 隊(duì) 提 出 的 Inception 結(jié) 構(gòu), 是用基礎(chǔ)神經(jīng)元搭建的一個(gè)稀疏性、高計(jì)算性的網(wǎng)絡(luò)結(jié)構(gòu)[15]。 Inception 網(wǎng)絡(luò)結(jié)構(gòu)經(jīng)歷了V1,V2,V3,V4 這4 個(gè)版本,Inception V1 的網(wǎng)絡(luò)結(jié)構(gòu)如圖2所示。
該結(jié)構(gòu)將卷積神經(jīng)網(wǎng)絡(luò)中的卷積,池化操作疊加在一起,增加了網(wǎng)絡(luò)對(duì)尺寸的適應(yīng)性,并在3*3卷積、5*5 卷積和max pooling 前加上了1*1 卷積來(lái)降低特征圖的厚度并修正ReLU。 與傳統(tǒng)CNN 一樣,V1 在每一次卷積操作之后,通過(guò)ReLU 激勵(lì)函數(shù)來(lái)為網(wǎng)絡(luò)添加非線性特征。
圖2 Inception V1 的網(wǎng)絡(luò)結(jié)構(gòu)Fig. 2 Network structure of Inception V1
Inception V1 雖然準(zhǔn)確率較高,但是堆疊網(wǎng)絡(luò)使Inception V1 的計(jì)算效率很低。 因此在V2 網(wǎng)絡(luò)中,用更多的小尺寸卷積核來(lái)代替大尺寸的卷積核來(lái)減少參數(shù)量[16]。 但在訓(xùn)練過(guò)程中,每一層輸入的分布由于網(wǎng)絡(luò)中參數(shù)的更新而發(fā)生變化,導(dǎo)致訓(xùn)練變難,此現(xiàn)象被稱為internal covariate shift[16]。 為了解決這一問(wèn)題,在V2 網(wǎng)絡(luò)中添加了Batch Normalization層來(lái)對(duì)每一層神經(jīng)元的輸入做歸一化。
與V2 的改進(jìn)不同,V3 提出了非對(duì)稱分解的概念,即將n*n 的卷積層分解為兩個(gè)1*N 和N*1的卷積層。 例如:將7×7 分解成兩個(gè)一維的卷積(1×7,7×1),這樣既可以進(jìn)一步加速計(jì)算,又可以將1個(gè)卷積分解為2 個(gè)卷積,使得網(wǎng)絡(luò)深度進(jìn)一步增加。實(shí)驗(yàn)證明V3 的非對(duì)稱分解方式訓(xùn)練結(jié)果優(yōu)于V2。
對(duì)V3 進(jìn)一步分析和優(yōu)化, Inception v4 引入了專用的縮減塊(reduction block),添加更多一致的模塊從而提高性能[17]。 Inception-ResNet 則參考了ResNet 的設(shè)計(jì)思想,利用殘差連接(Residual Connection)來(lái)改進(jìn)V3 和V4 結(jié)構(gòu)[18],將Inception 模塊的卷積運(yùn)算輸出添加到輸入上,殘差運(yùn)算要求卷積計(jì)算的輸入輸出具有相同的維度,因此Inception-ResNet 在初始卷積后使用1*1 卷積來(lái)匹配深度。
ImageNet 提供了易于訪問(wèn)的圖像數(shù)據(jù)庫(kù),共有14 197 122 幅圖像,分為21 841 個(gè)類別(synsets)。
遷移學(xué)習(xí)是一種機(jī)器學(xué)習(xí)方法,是指在一個(gè)特定的數(shù)據(jù)集上,重新利用已經(jīng)訓(xùn)練過(guò)的卷積神經(jīng)網(wǎng)絡(luò),將其改造或遷移到一個(gè)不同的數(shù)據(jù)集中。
計(jì)算機(jī)視覺(jué)中使用深度學(xué)習(xí)技術(shù)進(jìn)行圖像處理,通常需要大量標(biāo)記的訓(xùn)練數(shù)據(jù)和超強(qiáng)的計(jì)算能力。 在訓(xùn)練過(guò)程中,數(shù)據(jù)量缺少或者運(yùn)行速度過(guò)慢,使訓(xùn)練過(guò)程十分艱難。 因此,在訓(xùn)練時(shí),常將通過(guò)海量數(shù)據(jù)訓(xùn)練出的模型應(yīng)用于新的實(shí)驗(yàn)中。
(1)圖像數(shù)據(jù)集。 計(jì)算的服裝數(shù)據(jù)集全部來(lái)自于Deepfashion[19]數(shù)據(jù)集,起初的分類采用人工分類的方式。 六類風(fēng)格中的服裝圖像個(gè)數(shù)如表2 所示。
(2)訓(xùn)練。 重用了在ImageNet 數(shù)據(jù)集上訓(xùn)練的圖像分類器的特征提取模塊,并在頂部訓(xùn)練新的分類層,特征提取模塊采用了Inception V3 架構(gòu)。
第一階段是將所有圖片輸入到預(yù)訓(xùn)練好的模型,計(jì)算并存儲(chǔ)所有圖像的特征向量,分類器根據(jù)圖像特征向量來(lái)區(qū)分要識(shí)別的所有類。 第二階段是對(duì)網(wǎng)絡(luò)頂層進(jìn)行訓(xùn)練。 根據(jù)數(shù)據(jù)集數(shù)量對(duì)訓(xùn)練過(guò)程的超參數(shù)進(jìn)行調(diào)整。 在訓(xùn)練時(shí)采用的超參數(shù)數(shù)值如表3 所示。
表3 訓(xùn)練過(guò)程中的超參數(shù)數(shù)值Tab. 3 Hyper parameter values during training
其中,Step 表示訓(xùn)練時(shí)會(huì)運(yùn)行8 000 個(gè)步驟,每一步都將訓(xùn)練集圖像的特征向量輸入到最后一層進(jìn)行預(yù)測(cè),將預(yù)測(cè)結(jié)果與實(shí)際進(jìn)行對(duì)比,通過(guò)反向傳播更新權(quán)重。 Train_batch_size 和Validation_batch_size分別表示每一次訓(xùn)練時(shí)隨機(jī)抽取圖像的數(shù)目和驗(yàn)證時(shí)隨機(jī)抽取圖像的數(shù)目。
在處理分類問(wèn)題時(shí),分類結(jié)果通常分為以下4種情況:(1)TP:將正類預(yù)測(cè)為正類數(shù)。 (2)TN:將負(fù)類預(yù)測(cè)為負(fù)類數(shù)。 (3)FP:將負(fù)類預(yù)測(cè)為正類數(shù)。 (4)FN:將正類預(yù)測(cè)為負(fù)類數(shù)。
(1) 準(zhǔn)確率。 準(zhǔn)確率(Accuracy) 是指分類正確的樣本占總樣本個(gè)數(shù)的比例,可表達(dá)為:
訓(xùn)練集準(zhǔn)確率和驗(yàn)證集準(zhǔn)確率如圖3 所示。 其中,橙色和藍(lán)色分別表示訓(xùn)練集的正確率和驗(yàn)證集的正確率,訓(xùn)練的正確率達(dá)到了0.74,驗(yàn)證的正確率大約為0.72。
圖3 訓(xùn)練準(zhǔn)確率和驗(yàn)證準(zhǔn)確率Fig. 3 Training accuracy and verification accuracy
(2)交叉熵。 交叉熵用來(lái)描述模型預(yù)測(cè)值與真實(shí)值的差距大小。 機(jī)器學(xué)習(xí)算法中,交叉熵代價(jià)函數(shù)作為模型的優(yōu)化目標(biāo)函數(shù),交叉熵代價(jià)函數(shù)表達(dá)式為:
訓(xùn)練過(guò)程中,訓(xùn)練集交叉熵值和驗(yàn)證集交叉熵值的變化如圖4 所示,經(jīng)過(guò)訓(xùn)練后,訓(xùn)練集的損失達(dá)到0.75,驗(yàn)證集達(dá)到0.82。
圖4 訓(xùn)練交叉熵和驗(yàn)證交叉熵Fig. 4 Training cross-entropy and verifying cross-entropy
在網(wǎng)購(gòu)過(guò)程中,服裝風(fēng)格的分類有助于幫助用戶根據(jù)自身喜好快速定位到自己所想要找的服裝區(qū)域。 目前,各類網(wǎng)站對(duì)服裝圖像的標(biāo)注大多只關(guān)注服裝的種類而忽略了服裝的風(fēng)格,累積了大量未標(biāo)注風(fēng)格屬性的服裝圖像,采用服裝風(fēng)格預(yù)測(cè)模型對(duì)服裝圖像進(jìn)行批量標(biāo)記,對(duì)未標(biāo)注服裝風(fēng)格的圖像數(shù)據(jù)集進(jìn)行屬性標(biāo)注具有重要研究意義。
批量標(biāo)記服裝風(fēng)格將遍歷所有的圖片,將圖片依次輸入服裝風(fēng)格識(shí)別模型,得到各類別分類的概率,取最大概率的風(fēng)格類別作為預(yù)測(cè)結(jié)果。 預(yù)測(cè)概率數(shù)值及預(yù)測(cè)如圖5 所示。 其中A-F 代表A:簡(jiǎn)約風(fēng)格;B:優(yōu)雅風(fēng)格;C:復(fù)古風(fēng)格;D:民族風(fēng)格;E:可愛(ài)風(fēng)格;F 職場(chǎng)風(fēng)格。
圖5 批量預(yù)測(cè)服裝類別Fig. 5 Batch prediction clothing category
隨著人們個(gè)性化的追求和對(duì)自身穿衣風(fēng)格的明確,服裝風(fēng)格已經(jīng)成為各類服裝檢索系統(tǒng)和電商平臺(tái)中服裝圖像不可缺少的標(biāo)注屬性。 因此對(duì)服裝圖像的風(fēng)格進(jìn)行精確標(biāo)注具有重要的研究意義和良好的應(yīng)用前景。