楊爭妍, 薛文良, 張傳雄, 丁 亦 , 馬顏雪
(1. 東華大學 紡織學院, 上海 201620; 2. 紡織工業(yè)科學技術發(fā)展中心, 北京 100020)
在信息化時代,科技發(fā)展日新月異,人工智能突飛猛進,越來越多算法的出現(xiàn)使得機器行為更加智能化,能夠勝任大量機械性工作,并且可以通過大數(shù)據(jù)的學習表現(xiàn)出比人類更優(yōu)質(zhì)的決策性。隨著越來越多的企業(yè)朝智能化方向發(fā)展,紡織時尚領域也在不斷摸索如何將人工智能完美融入用戶生活。
隨著人們物質(zhì)生活的提高,銷售模式的改變,用戶購買服裝頻率增加,出現(xiàn)盲目購買現(xiàn)象,造成了衣柜服裝溢出和服裝堆積等問題。許多團隊在研究“智能衣柜”以使服裝管理智能化,各團隊之間模塊設計和使用算法不同,實現(xiàn)效果也各有差異。例如基于iOS(蘋果公司移動設備專有操作系統(tǒng))模塊設計智能衣柜管理系統(tǒng)[1],使用Polyvore網(wǎng)站的數(shù)據(jù)集進行智能搭配設計[2],使用協(xié)同過濾算法設計智能衣物搭配系統(tǒng)[3]。除算法理論外,還有實際應用案例,阿里巴巴基于50多萬服裝搭配達人的搭配方案開設了FashionAI時尚零售概念店。
本文通過對以上智能服裝推薦系統(tǒng)及應用的調(diào)研發(fā)現(xiàn),目前存在的推薦模式多為通過將服裝搭配中的下裝與下裝庫內(nèi)下裝進行相似度計算,從而進行推薦,智能化程度低,對使用場景有限制,在日常生活場景中實用性不高。
基于以上原因,本文提出一種新的下裝推薦思路:依據(jù)圖像,通過深度學習模型探索搭配的潛在規(guī)則,如顏色、款式、風格等;利用模型預測并生成虛擬下裝;然后通過相似度匹配算法將虛擬下裝與真實下裝進行匹配,依托用戶私人衣柜完成推薦過程。
本文通過目標人群調(diào)研,確定美感、風格與溫度3個服裝搭配要素,從這3方面出發(fā)進行系統(tǒng)設計。同時,通過對近年來深度學習領域算法的調(diào)研,采用在圖像生成領域中生成效果較好的生成式對抗網(wǎng)絡(GAN)模型進行下裝圖像生成,實現(xiàn)輸入上裝智能設計下裝的功能,體現(xiàn)智能性。最后利用方向梯度直方圖計算生成的虛擬下裝與用戶的真實下裝的相似度,并結合溫度因素為用戶推薦合理的下裝。
本系統(tǒng)智能推薦功能的實現(xiàn)分為以下3個步驟:第1步,收集大量服裝搭配數(shù)據(jù),用以訓練網(wǎng)絡模型,找出上下裝映射關系;第2步,確定相似閾值以進行相似度匹配,實現(xiàn)從虛擬數(shù)據(jù)到實際數(shù)據(jù)的轉換;第3步,確定溫度范圍進行二次篩選,最終通過服裝厚薄程度標簽為用戶推薦合適的下裝。系統(tǒng)框架如圖1所示。
圖1 系統(tǒng)框架Fig.1 System framework
為訓練圖像生成模型,需要獲取大量有參考價值的訓練數(shù)據(jù),在此選擇用爬蟲技術從一個高端品牌購物網(wǎng)站上爬取足量的上下裝搭配數(shù)據(jù)。
網(wǎng)絡爬蟲是一個自動獲取網(wǎng)頁相關信息的程序,通過算法濾掉無用的信息,抓取有用的信息保存下來,直至滿足設定的條件后停止抓取。為確保服裝的美感因素,選擇中高端品牌的服裝作為訓練數(shù)據(jù)。根據(jù)網(wǎng)站分類,按照不同服裝的廓形和款式歸納并獲取西裝通勤、街頭潮流、運動套裝、基礎簡約、性感前衛(wèi)、優(yōu)雅大氣6種風格的服裝數(shù)據(jù),以概括日常生活中的常見風格。最終得到女性服裝搭配組5 303組,男性服裝搭配組1 332組,由于男性褲裝多樣性較小,因此選擇減少其數(shù)據(jù)數(shù)量,增加女性服裝在總數(shù)據(jù)中的占比,總共6 635組服裝對數(shù)據(jù)。每對服裝對(包括1件上裝和1件下裝)形成1個訓練數(shù)據(jù)集。
本文選用生成式對抗網(wǎng)絡對服裝數(shù)據(jù)進行學習生成圖像,旨在通過對大量數(shù)據(jù)探索搭配內(nèi)在規(guī)律,不指定按照某一特定元素如顏色、材質(zhì)、花紋進行搭配,因此輸出結果受到訓練數(shù)據(jù)集的影響。
GAN作為近些年來最熱門的深度學習模型之一,在圖像生成方面表現(xiàn)出卓越的效果。GAN的提出是受到零和博弈 (即參與博弈的2人利益之和為零, 一方的利益是另一方的損失) 的啟發(fā)[4]。該模型由1個生成器和1個鑒別器組成,生成器通過學習大量數(shù)據(jù)研究其分布規(guī)律,并生成新的數(shù)據(jù)分布,而鑒別器判斷輸入的數(shù)據(jù)是真實的數(shù)據(jù)還是生成器生成的數(shù)據(jù)。GAN的優(yōu)化是“極小極大博弈”問題[5],生成器和鑒別器相互博弈,生成器盡可能生成足夠真實的數(shù)據(jù)分布去迷惑判別器,判別器提高自己的判斷能力去鑒別輸入數(shù)據(jù)的真假,二者相互博弈,對抗訓練,使得生成器的生成數(shù)據(jù)達到以假亂真的效果。同時,GAN的生成只需運行1次模型,不需要重復用馬爾科夫鏈來生成。GAN模型示意圖如圖2所示。
圖2 GAN模型示意圖Fig.2 Schematic diagram of GAN model
本文中生成模型主要采用圖像翻譯pix2pix卷積神經(jīng)網(wǎng)絡[6]的思想,將服裝生成視為一種圖像翻譯任務,學習一種由上裝到下裝的映射。
2.2.1 模型的生成器
生成器的工作是通過重復訓練,生成近似真實數(shù)據(jù)的數(shù)據(jù)分布,即在本文中用以通過上裝圖像生成下裝圖像。本文中模型的生成器采用圖像翻譯中非常流行的一種結構U-Net[7],其下采樣與上采樣的對稱性顯示出U型結構,加以跳躍式傳遞(skip connection)結構,使其能夠加快收斂速度,在網(wǎng)絡深度達到一定程度時,還可保留更多的高分辨率細節(jié)信息,在處理上裝到下裝的映射問題時,可以在一定程度上建立起上下裝在服裝花型、輪廓等的聯(lián)系。
網(wǎng)絡以256像素×256像素×3(訓練圖片為RGB圖像,256像素×256像素為圖片的空間分辨率,3為維度,即三維矩陣)的圖像為輸入,經(jīng)過8次步長為2的4×4卷積操作,再進行8次上采樣及卷積得到256像素×256像素×3的輸出圖像。其中,本文將pix2pix中的反卷積操作改為了上采樣加步長為1的卷積組合,旨在消除生成圖像的棋盤效應[8],提升生成圖片的質(zhì)量。
2.2.2 模型的鑒別器
雖然數(shù)據(jù)的生成依靠生成器,但鑒別器的存在是為了訓練生成器。鑒別器判斷數(shù)據(jù)是否足夠真實,與生成器相對抗,用以提升生成器生成數(shù)據(jù)的真實性,使得生成器通過反復訓練生成的數(shù)據(jù)更符合真實數(shù)據(jù)的分布。本文中鑒別器采用PatchGAN的思想,可在局部小塊畫面中捕獲高頻結構信息[6]。網(wǎng)絡以256像素×256像素×6的組合圖像為輸入,通過4次步長為2的4×4卷積與2次步長為1的4×4卷積,獲得輸出為32×32×1的矩陣,此矩陣的每個點對應原圖中86像素×86像素的圖像區(qū)域的匹配程度,即上下裝是否搭配合理。
2.2.3 模型的對抗損失
本文中用以訓練的圖片并沒有文字標注,對抗損失目的是在少標注數(shù)據(jù)下盡可能實現(xiàn)多標注數(shù)據(jù)的生成效果,增強模型的魯棒性。為保證模型的訓練速度與訓練穩(wěn)定性,本文放棄了GAN的對數(shù)對抗損失,而使用了WGAN-GP[9]的W-Distance(推土機距離)與梯度懲罰:
Ladv(G,D)=-Ex~pdata[D(x)]+Ex~pG(x)[D(x)]+
2.2.4 模型的重建損失
為使得網(wǎng)絡訓練的初期能夠加速收斂,即更快達到理想效果,本文在生成器中設置了重建損失——L1損失,即生成圖像與目標圖像像素值之差的絕對值之和,公式如下:
LL1(G)=Ex,y~pdata(x,y)[‖y-G(x)‖1]
式中:y為目標圖像數(shù)據(jù);G(x)為生成器生成數(shù)據(jù);Ex,y~pdata(x,y)為訓練數(shù)據(jù)分布,下角標是范數(shù)。
最終,獲得了網(wǎng)絡的目標函數(shù),即優(yōu)化目標是最小化G的損失。
式中,λL1為可調(diào)節(jié)的超參數(shù)。
模型訓練的目標是使得生成數(shù)據(jù)和真實數(shù)據(jù)之間的距離盡可能得小。整個網(wǎng)絡通過每一批次數(shù)據(jù)(稱為1個epoch)的計算訓練,計算出相應目標函數(shù)的值,經(jīng)由網(wǎng)絡的反向傳播機制,形成誤差梯度,應用梯度下降法減小網(wǎng)絡訓練誤差,最終獲得符合預期的生成圖像。
由于最終落腳點為用戶個人衣柜,所以系統(tǒng)需要由用戶提供個人下裝的圖片數(shù)據(jù):由用戶拍照輸入下裝圖片,并給每件下裝打上季節(jié)標簽,即該下裝適合穿著的季節(jié),如冬、春秋,制作成用戶下裝數(shù)據(jù)集。
在計算機視覺中,圖像特征是指能夠完成某種指定操作的信息,有許多算法可以用來提取圖像特征,常用的算法有局部敏感哈希算法、方向梯度直方圖等。經(jīng)測試選擇了方向梯度直方圖進行虛擬下裝圖片到真實下裝圖片的圖像特征提取和匹配。
方向梯度直方圖是一種經(jīng)典的特征描述方法,可以很好地描述圖像的局部特征,計算圖像邊緣信息,通過統(tǒng)計梯度方向直方圖來構成特征[10],即構成對圖像中物體表象和形狀的特征描述子。
利用方向梯度直方圖對上一步的生成圖像與用戶下裝庫的下裝進行相似度匹配,可以得到圖像相似度數(shù)值,從高到低輸出前4件高分下裝,暫存。
再由用戶輸入天氣溫度T,通過預先設定的溫度區(qū)間,即春季和秋季為14~24 ℃,夏季為22 ℃以上,冬季為16 ℃以下對上述4件下裝進行溫度篩選。為了適應不同人群的體質(zhì),各個溫度區(qū)間有所重疊,以擴大篩選范圍,從而提高推薦合適下裝的可能性。
通過對大量上、下裝搭配數(shù)據(jù)訓練,模型總結搭配規(guī)律,通過黑箱方式對輸入的上裝圖像進行處理,并根據(jù)機器總結的搭配規(guī)律預測和生成下裝圖像。
本文模型訓練效果和測試效果中的輸入數(shù)據(jù)圖片,均為farfetch網(wǎng)站獲取圖片。全部的訓練數(shù)據(jù)訓練1次稱為1個epoch,本模型總共訓練了800個epoch,每個epoch訓練耗時15~29 min。訓練效果如圖3所示。
圖3 訓練效果Fig.3 Effect of model training. (a) Real top image; (b) Real bottom image; (c) Generate bottom image after 5 epoch training;(d) Generate bottom image after 800 epoch training
實際應用中,輸入的上裝圖像需保證白色底色,但不限制來源,導入客戶端圖片、實景拍攝圖片等方式均可。測試效果如圖4所示。
圖4 測試效果Fig.4 Effect of model testing. (a) Real top image; (b) Real bottom image; (c) Generate bottom image after 5 epoch training;(d) Generate bottom image after 800 epoch training
在實際應用場景中,用戶可以通過導入或拍攝等手段,輸入上裝圖片,通過訓練好的模型進行下裝圖像生成,這一步驟結果暫時保存在系統(tǒng)內(nèi)部,成為黑箱步驟;再通過相似度匹配輸出與預測下裝相似的用戶下裝,此時用戶可編輯溫度,根據(jù)下裝標簽進行篩選,最終輸出符合美感和溫度的下裝。全部推薦過程如圖5所示。
圖5 推薦過程Fig.5 Recommendation process
本文基于大量服裝搭配數(shù)據(jù),利用生成式對抗網(wǎng)絡生成虛擬下裝,并用方向梯度直方圖進行圖像相似度對比,完成從輸入上裝到輸出用戶下裝的過程。通過效果圖對比發(fā)現(xiàn),生成的下裝與設計師推薦搭配的顏色較為一致。然而GAN的缺點是訓練不穩(wěn)定,比較困難,本文的模型訓練也遇到此問題,導致生成的下裝有時出現(xiàn)款式偏差、輪廓模糊等問題。但通過GAN生成下裝圖片,再匹配到用戶衣櫥的方法體現(xiàn)了機器自主決策的智能性,為智能搭配系統(tǒng)設計提供了一種較為新穎的方法。