劉曉音,謝 紅
(上海工程技術(shù)大學 服裝學院,上海 201620)
近年來,服裝電子商務迅速崛起,越來越多的人喜歡網(wǎng)上購買服裝,遠程在線服裝定制隨之發(fā)展[1]。服裝定制首先要滿足顧客對服裝的合體性要求,但目前遠程人體測量技術(shù)并不能得出準確的人體數(shù)據(jù)[2],尤其是胸圍、臀圍和腰圍等較難獲取的數(shù)據(jù)[3]。
深度學習方法被逐漸應用到了服裝領(lǐng)域,為服裝領(lǐng)域中目標分類的問題提供了很大幫助。深度學習是一種深層的機器學習模型,可以通過多層模型實現(xiàn)深層更復雜的關(guān)系[4],其只需要通過輸入原始數(shù)據(jù)就可實現(xiàn)有效特征的提取,然后在此基礎上,加上一層淺層網(wǎng)絡,如Softmax分類器,可以更好地實現(xiàn)目標分類[5]。吳歡等[6]提出了一種基于卷積神經(jīng)網(wǎng)絡 CaffeNet 模型的服裝廓形分類方法,結(jié)果表明,該方法的分類準確率達到 95%以上。陳雙[7]提出基于深度學習的服裝圖像分類與檢索研究,結(jié)果表明模型整體具有良好的分類準確率。但是深度學習對數(shù)據(jù)要求比較高,要保證數(shù)據(jù)量大而且數(shù)據(jù)標注也較準確,這就需要花費大量的時間,對于數(shù)據(jù)集收集較為困難的目標分類,深度學習分類的準確度相對較低。遷移學習是機器學習的一種,不需要太多數(shù)據(jù)進行訓練,所得的目標分類準確度也很高,而且訓練花費時間較短,可以解決數(shù)據(jù)集的問題。白美麗[8]提出基于遷移學習的卷積神經(jīng)網(wǎng)絡服裝圖像分類,分類準確度達到90%以上。魏瑋等[9]提出基于遷移學習的人臉姿態(tài)分類方法,該方法最終準確率達98.7%。夏海浜等[10]提出基于遷移學習與支持向量機的服裝舒適度評估,結(jié)果表明他們有較高的準確率和效率。
目前遠程測體技術(shù)并不能測出精準的人體尺寸,尤其是大圍度。為解決遠程測體中胸圍精準度的問題,本文采用遷移學習的方法對人體著裝圍度松量進行分類,通過本模型可得到著裝時圍度松量,通過該松量即可快速估計人體胸部尺寸。
遷移學習是指是將某個領(lǐng)域或任務上學到的知識或模型應用到不同但相關(guān)的領(lǐng)域或問題中[11]。當訓練一個網(wǎng)絡去完成目標分類任務時,發(fā)現(xiàn)目標數(shù)據(jù)很少或者很難獲取時,可以采用遷移學習方法對少量數(shù)據(jù)進行學習,快速將已學習的特征遷移到目標任務中。與從頭訓練網(wǎng)絡相比,通過遷移學習來微調(diào)網(wǎng)絡的速度相對較快,遷移學習有3種實現(xiàn)方法:樣本遷移、特征遷移和參數(shù)遷移[12-14]。目前國內(nèi)外采用遷移學習方法進行目標分類的研究對象的特征都比較明顯,所以分類精確度相對較高。厲溢成[15]采用遷移學習的方法對食品圖像進行分類,由于食品特征差異較大,所以采用很少的數(shù)據(jù)目標分類準確度就達到了96.8%。廉小親等[16]提出基于深度學習和遷移學習的水果圖像分類方法,采用Inception-V3模型對水果圖像進行特征提取,Softmax分類器對圖像特征進行分類,測得分類準確率為97.7%。馬俊等[17]提出基于遷移學習的VGG16網(wǎng)絡芯片圖像分類,采用VGG16模型進行預訓練,將Softmax分類器改為logsoft-max分類器,以提高分類準確率,避免出現(xiàn)梯度下滑的現(xiàn)象,最后分類準確度為97%。YUN等[18]提出利用SOH網(wǎng)絡的遷移學習方法預測鋰電池健康狀態(tài),數(shù)據(jù)集只采用了原數(shù)據(jù)集的25%,測試結(jié)果表明,鋰電池健康狀態(tài)分類結(jié)果精確度很高。
從以上的研究可以看出,很多遷移模型都可以用于目標分類,但由于人體著裝時圍度松量特征差異很小,比較抽象,所以網(wǎng)絡學習比較困難。VGG16模型對小目標特征學習效果相對較好,所以選取VGG16模型作為預訓練網(wǎng)絡。而且其已經(jīng)基于大量圖像數(shù)據(jù)學習了豐富的特征表示,所以選擇參數(shù)遷移來完成對人體著裝圍度不同松量圖片數(shù)據(jù)集的遷移學習,從而完成對人體著裝圍度松量圖像的分類。
本文實驗需要男模穿著襯衫的圖片,并且還要男模的凈體尺寸和穿著襯衫的尺寸,所以數(shù)據(jù)收集很困難。唯品會網(wǎng)站上著裝襯衫的男模圖片符合本文實驗研究,但是網(wǎng)站上可用圖片數(shù)量不能滿足本文實驗要求,因此在實驗室環(huán)境下拍攝了一部分照片,由于需要獲取男模凈體數(shù)據(jù),涉及隱私,所以志愿者較少,獲取的數(shù)據(jù)也較少,為滿足本文實驗需求,最后采用數(shù)據(jù)增強的方法增加數(shù)量。本文主要通過以下3種方式獲取圖片:①在唯品會網(wǎng)站上收集穿著襯衫的男模圖片,共收集3 300 張;②在實驗室條件下,拍攝穿著襯衫的男生正面圖,共拍攝200張;③數(shù)據(jù)增強,通過隨機翻轉(zhuǎn)和亮度變換增加圖片數(shù)量,共1 000 張,圖片預處理效果見圖1。
圖1 圖片預處理
根據(jù)“襯衫胸圍放量=生理舒適量+內(nèi)層衣物放松量+造型放松量”原則[19],合體男襯衫放松量一般在11~15 cm,松身男襯衫放松量在15~19 cm,寬松男襯衫放松量在19~23 cm,特別寬松的男襯衫放松量在23 cm以上。為了能夠更加準確得出穿著襯衫時的胸圍松量,確保胸圍平均誤差在國家標準范圍內(nèi),本實驗確定胸部松量以2 cm為一檔分類,共分為12類。2.1節(jié)的3種方法共收集數(shù)據(jù)4 500張圖片,訓練集中每個類別300張圖片,驗證集中每個類別75張圖片,為了不受標簽影響,分別用字母A~L命名12類文件夾。
本文的實驗環(huán)境為Window10,PyCharm,Intel Core i7-8750H CPU(2.60 GHz)和16.0 GB RAM,編程語言為 Python3.6。
采用基于遷移學習的方法對VGG16模型進行微調(diào),在VGG16源模型基礎上對目標數(shù)據(jù)集進行訓練,本文選擇參數(shù)遷移來完成胸部松量分類的任務,根據(jù)VGG16網(wǎng)絡模型結(jié)構(gòu),選擇分類器、學習率、迭代次數(shù)和批量大小這4個可能對模型造成影響的參數(shù)進行修正,VGG16網(wǎng)絡模型見圖2。
圖2 VGG16網(wǎng)絡模型
2.2.1 替換最后的全連接層
全連接層(分類器)的任務就是分類,預訓練網(wǎng)絡的卷積層會提取最后一個學習層和全連接層對輸入圖像進行特征提取并分類,對預訓練網(wǎng)絡模型進行重新訓練以及對新圖像進行分類,本文要將全連接層替換為有12個分類的連接層,輸出數(shù)量等于新數(shù)據(jù)集中12個類別的數(shù)量。常用的分類器有Softmax分類器和SVM分類器[20],Softmax分類器通過把多個神經(jīng)元的輸出,映射到(0,1)區(qū)間內(nèi),從而完成多分類的任務[21]。Softmax分類器的原理圖見圖3,由圖示出通過Softmax分類器就能得到不同條件下的概率,即可得出所需要的不同類別,本文共12個類別,結(jié)果就是輸出所需的12個類別。SVM分類器與Softmax分類器在實際應用中效果相當,區(qū)別就是SVM分類器中結(jié)果的絕對值大小沒有特別明顯的意義,而Softmax分類器中結(jié)果的絕對值大小表征屬于該類別的概率。由于本文需要對差別較小的人體著裝胸部松量圖像進行分類,所以Softmax分類器更適合本文的模型,后續(xù)可以針對Softmax分類器中絕對值來區(qū)分本文的12個類別概率大小,對概率較小的類別進行相應的微調(diào),以達到更好的分類效果。
圖3 Softmax分類器的原理圖
2.2.2 學習率
本文除全連接層和輸出層的參數(shù)以外,VGG16模型的參數(shù)全部保留,目的是降低前面的學習率,減緩在遷移層中的速度,更好地學習所有特征。替換層為全連接層,本文將其學習率增大,以加快訓練速度。所以本文將VGG16模型參數(shù)被保留的層學習率設置為0,從而凍結(jié)他們的權(quán)重,即把VGG16模型的權(quán)重當作預訓練參數(shù),加快了整個網(wǎng)絡的訓練速度,同時也防止了過擬合的現(xiàn)象發(fā)生。
2.2.3 訓練周期
本文實驗是學習人體穿著襯衫時胸部的松量的特征,相對比較抽象,網(wǎng)絡中學習比較困難,所以設置的周期相對較長。根據(jù)實驗經(jīng)驗設置周期,首先選擇周期為100,訓練結(jié)束后,模型損失率一直在下降,表明周期還不夠,需要增加訓練周期,所以設置周期為200,到191次時損失率不再變化,則停止迭代。
2.2.4 批量大小
批量指的是一次讀取的圖片的數(shù)量,其是根據(jù)電腦性能以及數(shù)據(jù)集的大小決定的,批量太小就會出現(xiàn)不收斂的問題,批量太大,需要占用大量計算機資源。根據(jù)實驗經(jīng)驗首先設置batch為16,根據(jù)幾輪實驗花費時間和模型精確度,發(fā)現(xiàn)batch為16時,耗費時間較長,精準度提高很慢,所以將批量大小設置為32,很明顯實驗花費時間相比batch為16時要短,batch為64時,占用了計算機太大的計算資源,因此最終確定batch為32。
首先根據(jù)實驗經(jīng)驗確定模型初始參數(shù),然后開始對模型訓練,每次訓練結(jié)束會有相應的準確度,每次對參數(shù)進行微調(diào),經(jīng)過幾輪測試后,選擇模型準確度最高的參數(shù)為本模型的參數(shù)。本模型通過移除頂層的3個全連接層,添加自定義的全連接層對著裝下人體胸部松量圖像數(shù)據(jù)集進行分類。實驗流程圖見圖4,由圖示出共包含3個部分:數(shù)據(jù)獲取及預處理、遷移學習和胸部松量分類。本模型由預訓練網(wǎng)絡和自定義網(wǎng)絡組成。
圖4 實驗流程圖
本文基于遷移學習的方法對著裝下人體胸部松量圖片進行分類,構(gòu)建數(shù)據(jù)集,并基于預訓練VGG16模型網(wǎng)絡與自定義的網(wǎng)絡構(gòu)建一個新的網(wǎng)絡模型。本節(jié)將遷移InceptionV3模型與本模型進行對比,對模型微調(diào)后進行訓練,記錄VGG16模型和inceptionV3模型在微調(diào)時最佳的訓練結(jié)果,證明本文模型的有效性。2個模型的實驗數(shù)據(jù)集和參數(shù)設置相同,周期為100,批量大小為16,從表1可以看出原模型中VGG16模型準確度高出InceptionV3模型0.088。為進一步提高模型準確度,周期設置為200,批量大小為32,原模型與改進后模型結(jié)果對比分析見表1,由表示出改進后的模型中看出本文模型準確度高于遷移InceptionV3模型0.159。本文模型在迭代到191次時,損失率不再變化,但InceptionV3模型損失率還在下降,通過不斷實驗,最后設置其周期為5 000,批量大小為100,模型準確率為81.5%,遷移InceptionV3模型準確率見圖5,由圖示出與本文遷移VGG16模型相比準確度低0.006。遷移VGG16模型對胸部松量圖像的分類準確率見表2,由表示出微調(diào)后的遷移VGG16模型分類效果更好,每類準確率都在80%以上,平均準確率為82.1%,可見迭代次數(shù)和批次大小對目標特征的提取有很大的影響。綜上所述,本文模型相對準確度更高。
表1 原模型與改進后模型結(jié)果對比
圖5 遷移InceptionV3模型準確率(Step=5 000,Bath size=100)
表2 遷移VGG16模型對胸部松量圖像的分類準確率
本文通過對VGG16模型進行預訓練,然后加上自定義網(wǎng)絡模型的方法,構(gòu)成一個新的適合人體著裝胸部松量圖像分類的模型,對人體著裝圍度松量進行研究。對VGG16模型進行微調(diào)后,得出VGG16模型與遷移InceptionV3模型網(wǎng)絡相比,分類準確度更高,可以更好地識別出人體著裝圍度松量差別較小的松量圖片,完成對著裝下人體胸部松量圖像的分類,基于此可快速估計人體胸圍尺寸,更好地實現(xiàn)遠程人體定制服務。本文方法模型同樣適用于腰部和臀部的松量圖像分類,并快速得出人體腰圍和臀圍尺寸。