高潔 張鍵
摘要:本文利用卷積神經(jīng)網(wǎng)絡(luò)算法,提出了基于Inception V3的服裝分類(lèi)模型。首先對(duì)服裝數(shù)據(jù)集進(jìn)行分類(lèi),然后將分類(lèi)好的數(shù)據(jù)放入神經(jīng)網(wǎng)絡(luò)的模型中訓(xùn)練,Inception V3模型網(wǎng)絡(luò)結(jié)構(gòu)能夠高效的提取服裝圖像的特征,并根據(jù)服裝的分類(lèi)屬性預(yù)測(cè)服裝的類(lèi)別,進(jìn)而得到不同類(lèi)別的服裝之間的搭配度。
最終,本課題在現(xiàn)有的網(wǎng)絡(luò)模型基礎(chǔ)上提出了基于Inception V3的服裝搭配模型,它能夠?qū)崿F(xiàn)服裝的分類(lèi)預(yù)測(cè)以及服裝之間的搭配度預(yù)測(cè),因此能夠在一定程度上解決實(shí)際生活中遇到的衣物搭配問(wèn)題。
關(guān)鍵詞:卷積神經(jīng)網(wǎng)絡(luò);時(shí)尚衣物搭配;深度學(xué)習(xí);Inception V3網(wǎng)絡(luò)模型;圖像處理
中圖分類(lèi)號(hào):TP181? ? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)22-0180-04
開(kāi)放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID):
Research on Fashion Collocation Algorithm Based on Deep Convolutional Neural Network
GAO Jie,ZHANG Jian
(Huaihai Institute of Technology,Lianyungang 222000,China)
Abstract:In this paper, based on the convolutional neural network algorithm, a clothing classification model based on Inception V3 is proposed.Firstly, the clothing data set is classified, and then the classified data is trained in the model of the neural network. The Inception V3 model network structure can extract the features of the clothing image efficiently, and predict the category of the clothing according to the classification attribute of the clothing, and then obtain the degree of matching between different categories of clothing.
Finally, based on the existing network model, this topic proposes a clothing matching model based on Inception V3.It can realize the classification prediction of clothing and the prediction of the matching degree between garments, so it can solve the problem of clothing matching encountered in real life to a certain extent.
Key words:convolutional neural network;fashion collocation;deep learning;inception V3 network model;image processing
引言
近年來(lái),互聯(lián)網(wǎng)的高速發(fā)展催生出了許多電子商務(wù)平臺(tái),這些購(gòu)物平臺(tái)在帶給人們便利的同時(shí)也在不斷地創(chuàng)新和發(fā)展。服裝搭配是人們?nèi)粘I钪斜容^關(guān)注的問(wèn)題,網(wǎng)絡(luò)購(gòu)物平臺(tái)經(jīng)常會(huì)根據(jù)用戶(hù)的搭配習(xí)慣為用戶(hù)推薦商品,推薦的搭配的好壞直接影響著用戶(hù)的體驗(yàn)。據(jù)中國(guó)產(chǎn)業(yè)信息網(wǎng)統(tǒng)計(jì),2011年國(guó)內(nèi)服裝電子商務(wù)市場(chǎng)規(guī)模為2035億元,2016年市場(chǎng)規(guī)模增長(zhǎng)至9343億元,當(dāng)年同比增速為25%,2011-2016年CAGR為36%,服裝電商的滲透率也從2011年的14%提升至2016年的37%[1]。目前一些大型的購(gòu)物網(wǎng)站比如淘寶、京東、亞馬遜等,都將服裝搭配作為吸引消費(fèi)者的重要手段。因此,本課題的研究非常具有現(xiàn)實(shí)意義。
卷積神經(jīng)網(wǎng)絡(luò)[2]作為關(guān)注度最高的神經(jīng)網(wǎng)絡(luò)之一,能夠有效地減少網(wǎng)絡(luò)中的參數(shù)從而降低網(wǎng)絡(luò)模型的復(fù)雜度。卷積神經(jīng)網(wǎng)絡(luò)能夠很好地處理圖像[6],它采用了局部連接和全局共享的方式,使得網(wǎng)絡(luò)的權(quán)值的數(shù)量降低,同時(shí),卷積神經(jīng)網(wǎng)絡(luò)在處理二維圖像時(shí),它的網(wǎng)絡(luò)結(jié)構(gòu)能夠自動(dòng)提取圖像的特征,比如圖像的花紋、顏色、形狀等,而且CNN對(duì)圖像進(jìn)行移動(dòng)、縮放等形式的操作時(shí)具備杰出的魯棒性和運(yùn)算效率?;诰矸e神經(jīng)網(wǎng)絡(luò)在處理圖像上的眾多優(yōu)點(diǎn),本文選擇使用該網(wǎng)絡(luò)結(jié)構(gòu)來(lái)實(shí)現(xiàn)對(duì)服裝圖像的處理和識(shí)別,從而確定服裝之間的匹配度[3]。神經(jīng)網(wǎng)絡(luò)與服裝搭配的良好結(jié)合,將會(huì)促進(jìn)服裝電子商務(wù)的發(fā)展??焖贉?zhǔn)確的服裝搭配能夠滿(mǎn)足用戶(hù)的需求,促進(jìn)電子商務(wù)行業(yè)的發(fā)展。
1 本文主要工作及成果
1.1卷積神經(jīng)網(wǎng)絡(luò)
隨著大數(shù)據(jù)的發(fā)展以及一些大規(guī)模的硬件設(shè)備的出現(xiàn),深度學(xué)習(xí)[4]的性能在近幾年不斷提高。近年來(lái),人工智能領(lǐng)域的許多技術(shù)的發(fā)展離不開(kāi)卷積神經(jīng)網(wǎng)絡(luò),比如語(yǔ)音識(shí)別、人臉識(shí)別、圖像處理等,卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(shì)在于它與普通的神經(jīng)網(wǎng)絡(luò)相比,有獨(dú)特的卷積層和池化層,它的卷積層和池化層構(gòu)成的特征提取器能夠準(zhǔn)確地提取圖像的特征信息[5]。
1.1.1 卷積層
卷積層的主要作用是通過(guò)卷積操作提取輸入的圖像數(shù)據(jù)的特征,在卷積層中,一個(gè)神經(jīng)元只和與它相鄰的層中的神經(jīng)元連接。卷積神經(jīng)網(wǎng)絡(luò)中的卷積層一般包含若干個(gè)由神經(jīng)元組成的特征平面,同一個(gè)特征平面中的神經(jīng)元能夠共享權(quán)值,這些共享的權(quán)值就是卷積層的卷積核。卷積核的重要特性就是它需要通過(guò)網(wǎng)絡(luò)自己進(jìn)行學(xué)習(xí)。
為了清楚的描述卷積計(jì)算過(guò)程,根據(jù)我們定義的卷積核步長(zhǎng)對(duì)卷積核窗口進(jìn)行滑動(dòng)。首先將圖片的每一個(gè)像素標(biāo)上序號(hào),用表示圖像的第i行、第j列元素;再將卷積核的每一個(gè)權(quán)值進(jìn)行編號(hào),用表示filter的偏置項(xiàng);其中,表示卷積核的第m行、第n列權(quán)重。對(duì)目標(biāo)圖像的每個(gè)元素進(jìn)行編號(hào),用表示Feature Map(特征圖像)的第i行、第j列元素;用f表示激活函數(shù)。卷積層的卷積計(jì)算的公式為:,利用該公式計(jì)算得到結(jié)果如圖1所示:
1.1.2池化層
卷積神經(jīng)網(wǎng)絡(luò)中的池化層可以看作提取輸入數(shù)據(jù)的核心特征的方式,池化層的操作大量減少了參與模型計(jì)算的參數(shù),而且實(shí)現(xiàn)了對(duì)原始數(shù)據(jù)的壓縮。這種方式能夠提高計(jì)算效率。
池化層的作用主要有以下幾點(diǎn)。
(1)第一是降維。降低維度的主要目的是減少網(wǎng)絡(luò)學(xué)習(xí)的參數(shù)數(shù)量從而提高學(xué)習(xí)效率。
(2)池化層的第二個(gè)作用是擴(kuò)大感受野,擴(kuò)大感受野能夠獲得更大的原始輸入圖像的范圍,這樣就可以獲取更大的圖像特征。
(3)池化層能夠使圖像在操作過(guò)程中使圖像具有平移不變性、旋轉(zhuǎn)不變性和尺寸不變性,保持圖像的完整性。
常用的池化方法是最大池化層和平均池化層。最大池化方法就是在n*n的樣本中取得最大值,作為下采樣的樣本值。如圖2為最大池化層的操作過(guò)程。首先通過(guò)滑動(dòng)窗口框選出特征圖中的數(shù)據(jù),然后將這組數(shù)據(jù)中的最大值作為最后輸出的結(jié)果。圖2中邊的格子就是輸出的結(jié)果。
1.1.3 全連接層
圖像數(shù)據(jù)在經(jīng)過(guò)卷積層和池化層的處理后,已經(jīng)提取出了重要的特征,全連接層的主要作用就是將卷積層和池化層的操作完成后提取出的特征進(jìn)行壓縮處理,并根據(jù)壓縮后的特征進(jìn)行模型的分類(lèi)。
1.2基于Inception v3的服裝搭配模型
Inception V3網(wǎng)絡(luò)[7]在兩個(gè)方面進(jìn)行了改造,一方面是引入了Factorization into small convolutions(卷積分解)的思想,這個(gè)思想將二維卷積層拆分成兩個(gè)一維的卷積層,這樣可以降低參數(shù)的數(shù)量并減輕了出現(xiàn)過(guò)擬合的現(xiàn)象。Inception V3之所以能夠取得良好的性能是因?yàn)樗M(jìn)行了卷積分解,比如將一個(gè)7x7的卷積核分解成兩個(gè)分別是1x7和7x1的一維卷積,這樣分解的好處是既可以將一個(gè)卷積拆分成兩個(gè)卷積從而增加網(wǎng)絡(luò)的深度、增強(qiáng)網(wǎng)絡(luò)模型的非線(xiàn)性擴(kuò)展表達(dá)能力,又可以加速計(jì)算過(guò)程從而減輕過(guò)擬合,提高計(jì)算效率。另一方面,Inception V3模型優(yōu)化了Inception Module的結(jié)構(gòu),Inception V3除了在Inception Module中使用分解卷積的操作,還可以在分解的卷積中再分解。
本課題使用的就是Inception V3模型來(lái)訓(xùn)練服裝圖片。整個(gè)網(wǎng)絡(luò)結(jié)構(gòu)如表1所示,Inception V3的深度是42層。
從表中我們可以看到,Inception V3模型的最后一層是Softmax層。在分類(lèi)問(wèn)題之中,我們想要最終得到的是圖像的預(yù)測(cè)結(jié)果,而該結(jié)果往往是由一定的概率得到的。Softmax層能夠?qū)⑸窠?jīng)元的輸入數(shù)據(jù)映射到(0,1)之間,然后將所得結(jié)果進(jìn)行歸一化處理,這樣輸出的值得累加之和就是1,滿(mǎn)足概率的特點(diǎn)。公式(1)為Softmax函數(shù)的公式。公式(1)為Softmax函數(shù)的公式。
在(1)式中,表示第i個(gè)神經(jīng)元的輸出,輸出的向量表示各個(gè)分類(lèi)的概率。
1.3服裝搭配模型的構(gòu)建
1.3.1 準(zhǔn)備數(shù)據(jù)集
將服裝圖片下載完成后分為訓(xùn)練集和測(cè)試集,訓(xùn)練集中包含十三個(gè)分類(lèi),分別是短袖t恤、長(zhǎng)袖t恤、短袖衛(wèi)衣、長(zhǎng)袖衛(wèi)衣、毛衣、短袖襯衫、長(zhǎng)袖襯衫、短褲、運(yùn)動(dòng)褲、牛仔褲、西裝褲、短半身裙和長(zhǎng)半身裙。每個(gè)類(lèi)中有100章圖片,每個(gè)類(lèi)放在同一個(gè)文件夾中。
1.3.2 模型構(gòu)建
對(duì)數(shù)據(jù)集的處理完成后,選擇InceptionV3模型對(duì)圖片進(jìn)行特征提取。首先將該模型的頂層的輸出作為提取的特征,然后將這些特征經(jīng)過(guò)全連接層進(jìn)行分類(lèi)。獲得圖像的特征后,將其輸入一個(gè)全連接層進(jìn)行分類(lèi)。全連接層的模型示意圖如圖3所示:
將兩個(gè)模型連接起來(lái)就是一個(gè)完整的模型。模型的輸入是服裝的某一個(gè)種類(lèi)的圖片。而模型的輸出是輸入的圖片屬于哪一種服裝的類(lèi)型。
1.3.3訓(xùn)練模型
在訓(xùn)練過(guò)程中可能要花費(fèi)較多的時(shí)間和計(jì)算資源,為了合理利用資源、節(jié)約時(shí)間以及有效地提高訓(xùn)練效果,需要設(shè)置合理的模型結(jié)構(gòu)。第一是要緩存模型的計(jì)算結(jié)果,這樣可以加快計(jì)算的過(guò)程。第二是圖片要以一定的數(shù)量批量的輸入,如果輸入的圖片過(guò)多可能導(dǎo)致計(jì)算機(jī)資源緊張,輸入的圖片過(guò)少計(jì)算機(jī)的資源不能得到充分的利用。第三要設(shè)置合理的模型訓(xùn)練參數(shù),這樣可以提高模型訓(xùn)練的精確度并減少訓(xùn)練的次數(shù)。
模型訓(xùn)練參數(shù)主要包括學(xué)習(xí)率、一次輸入圖片數(shù)量及訓(xùn)練次數(shù)。
在配置好網(wǎng)絡(luò)模型后,可以開(kāi)始訓(xùn)練模型。以下為Inception V3模型對(duì)服裝圖片的訓(xùn)練過(guò)程。
(1)準(zhǔn)備數(shù)據(jù)。這里用到的訓(xùn)練數(shù)據(jù)集是自己準(zhǔn)備的,數(shù)據(jù)的圖像大小分辨率較高,因此不可以將數(shù)據(jù)一次性全部載入到內(nèi)存中,會(huì)出現(xiàn)內(nèi)存溢出的情形,這里使用flow_from_directory方法,該方法能夠按批次按數(shù)量從硬盤(pán)中讀取數(shù)據(jù)。在載入數(shù)據(jù)過(guò)程中,實(shí)時(shí)對(duì)進(jìn)行數(shù)據(jù)圖像增強(qiáng)。
(2)訓(xùn)練數(shù)據(jù):在Inception V3模型中,有兩個(gè)重要的參數(shù),一個(gè)是weights,本模型中的weights的值為"imagenet","imagenet"表示加載訓(xùn)練的權(quán)重,它表示Keras能夠自動(dòng)下載ImageNet上已經(jīng)訓(xùn)練好的參數(shù)。這里該參數(shù)的值為False,表示模型會(huì)丟掉頂層全連接層,然后輸出一個(gè)8x8x2048的長(zhǎng)量。構(gòu)建完新的模型后要對(duì)模型進(jìn)行配置,指定所有層都需要訓(xùn)練,設(shè)置模型訓(xùn)練的優(yōu)化器使用Adam算法,損失函數(shù)設(shè)置為多類(lèi),它是與Softmax分類(lèi)器相對(duì)應(yīng)的損失函數(shù)。
訓(xùn)練過(guò)程中的訓(xùn)練次數(shù)驗(yàn)證精度之間的關(guān)系如圖4所示:
訓(xùn)練過(guò)程中的訓(xùn)練次數(shù)驗(yàn)證損失之間的關(guān)系如圖5所示:
(3)預(yù)測(cè)圖片的類(lèi)別。
首先指定圖片的尺寸,輸入模型和將要預(yù)測(cè)的圖片;將圖片處理之后,加載訓(xùn)練好的模型的權(quán)重,然后開(kāi)始預(yù)測(cè),獲取預(yù)測(cè)概率最大的結(jié)果,如圖6所示:
將測(cè)試的圖片的類(lèi)別預(yù)測(cè)出來(lái)之后,根據(jù)自定義的服裝匹配度輸出兩件服裝的搭配度。
1.4系統(tǒng)的測(cè)試
首先準(zhǔn)備不同種類(lèi)的服裝若干張,將其中圖片放在test的目錄下,如果這兩張圖片都是上衣或者都是下衣,那么不顯示搭配結(jié)果,如果圖片是一張上衣和一張下衣,那么輸出圖片的類(lèi)別一節(jié)兩件衣服的匹配度。
(1)輸入短袖襯衫和牛仔褲作為測(cè)試圖片。
(2)輸入的圖片的測(cè)試結(jié)果如圖7所示:
2 結(jié)論
服裝圖像與其他圖像相比有許多特征,比如服裝的長(zhǎng)度、款式等等,深度卷積神經(jīng)網(wǎng)絡(luò)正是利用圖像固有的特征,通過(guò)訓(xùn)練分類(lèi)屬性讓網(wǎng)絡(luò)能夠更精確的表示服裝的細(xì)節(jié)特征。本文使用卷積神經(jīng)網(wǎng)絡(luò)的Inception 模型來(lái)訓(xùn)練和預(yù)測(cè)圖像類(lèi)別[8],它能夠進(jìn)行卷積分解,這樣分解的好處是增強(qiáng)網(wǎng)絡(luò)的非線(xiàn)性表達(dá)能力,還可以減輕過(guò)擬合提高計(jì)算的效率速率。
服裝搭配主要涉及數(shù)據(jù)集處理、目標(biāo)檢索、特征提取、圖像分類(lèi)等相關(guān)技術(shù),卷積神經(jīng)網(wǎng)絡(luò)是目前為止處理圖像最適合的技術(shù)之一,它能夠使得輸入的圖像直接作為網(wǎng)絡(luò)的輸入,這樣可以避免進(jìn)行復(fù)雜的特征提取和數(shù)據(jù)重建。這一特征在處理二維圖像上具有很大的優(yōu)勢(shì)。同時(shí),CNN具有良好的容錯(cuò)能力和自學(xué)習(xí)能力,它允許圖像有部分損失或者變形,它能夠通過(guò)結(jié)構(gòu)重組和減少權(quán)值將提取的特征融合到多層感知層中,在識(shí)別圖像之前不需要進(jìn)行復(fù)雜的圖像特征提取過(guò)程。
本文經(jīng)過(guò)多次測(cè)試發(fā)現(xiàn),基于Keras框架搭建的Inception V3模型對(duì)服裝類(lèi)別的預(yù)測(cè)的精確度很高,基本能夠正確識(shí)別出測(cè)試的圖片屬于服裝的哪種類(lèi)型,并根據(jù)服裝的類(lèi)型給出兩類(lèi)服裝的匹配度。
參考文獻(xiàn):
[1] 莫岱青.《2015-2016年度中國(guó)服裝電商行業(yè)報(bào)告》發(fā)布[J]. 計(jì)算機(jī)與網(wǎng)絡(luò), 2017(4).
[2] 陳先昌.基于卷積神經(jīng)網(wǎng)絡(luò)的深度學(xué)習(xí)算法與應(yīng)用研究[D]. 浙江工商大學(xué), 2014.
[3] 杜丹.基于極速學(xué)習(xí)機(jī)的服裝搭配智能推薦系統(tǒng)設(shè)計(jì)[J]. 中國(guó)科技信息,2012(17):70-71.
[4] 樊雅琴, 王炳皓, 王偉, 等. 深度學(xué)習(xí)國(guó)內(nèi)研究綜述[J]. 中國(guó)遠(yuǎn)程教育, 2015(6): 27-33.
[5] 劉海龍, 李寶安, 呂學(xué)強(qiáng),等. 基于深度卷積神經(jīng)網(wǎng)絡(luò)的圖像檢索算法研究[J]. 計(jì)算機(jī)應(yīng)用研究, 2017, 34(12):302-305.
[6] 包曉安, 張瑞林, 鐘樂(lè)海. 基于人工神經(jīng)網(wǎng)絡(luò)與圖像處理的蘋(píng)果識(shí)別方法研究[J]. 農(nóng)業(yè)工程學(xué)報(bào), 2004, 20(3):109-112.
[7] 佚名. 基于inception v3模型的道路交通標(biāo)志識(shí)別研究[J]. 江西科學(xué), 2018, 36(5):147-150.
[8] Xia X, Cui X, Bing N. Inception-v3 for flower classification[C]//International Conference on Image,2017.
【通聯(lián)編輯:唐一東】