杜 斐,陳明非,張云港
(云南師范大學信息學院,云南昆明 650500)
最近,在計算機視覺及圖像處理等領(lǐng)域,生成對抗網(wǎng)絡(luò)(GAN)顯示出優(yōu)異的性能[1]。在圖像翻譯任務(wù)中,目前較常見的方法是學習未配對圖像從一個源域到一個目標域的映射,將原圖像作為輸入,修改后的圖像作為輸出。隨著深度學習的發(fā)展[2-3],神經(jīng)風格遷移成為人工智能領(lǐng)域一個非?;钴S的研究課題,其通過將風格圖像和內(nèi)容圖像共同輸入到神經(jīng)網(wǎng)絡(luò)模型中合成一幅新圖像[4]。新生成的圖像具有內(nèi)容圖像的結(jié)構(gòu)和內(nèi)容特征,同時擁有風格圖像的風格和紋理特征。神經(jīng)風格轉(zhuǎn)移已被應用于許多研究領(lǐng)域,如字體風格轉(zhuǎn)移[5]、頭部風格轉(zhuǎn)移[6]、視頻風格化[7]等。
另外,計算機視覺領(lǐng)域里的時尚分析也引起了很多研究者的興趣,產(chǎn)生了許多應用人工智能解決藝術(shù)與時尚行業(yè)實際需求的研究內(nèi)容,如時尚風格分類[8]、服裝解析[9]、服裝檢索[10]等。本文研究目標為時裝的風格遷移,主要目標為合成的服裝形象在保持服裝原有結(jié)構(gòu)和形狀的同時,融合給定的參考圖像風格。設(shè)計師可快速看到服裝在給定風格中的樣子,以方便進行設(shè)計處理。如文獻[11]在人的身上合成一個正面特寫的服裝圖像;文獻[12]在輸入基本服裝圖像和風格圖像的情況下,自動生成混合了基本設(shè)計風格與新風格的服裝圖片;文獻[13]利用VITION 模型輸入空白背景下的服飾和人物圖像,將所需的服裝項目無縫轉(zhuǎn)移到人物相應區(qū)域。該框架首先生成一個粗合成的圖像,目標服裝項目覆蓋同一人的同一姿勢,再通過服裝區(qū)域的細化網(wǎng)絡(luò)進一步提升圖像的合成效果。對于同樣的任務(wù),文獻[14]通過SieveNet 模型引入一個感知幾何匹配損失訓練的多級粗到細的翹曲網(wǎng)絡(luò),嘗試將服飾圖像與目標模型的形狀對齊,接下來引入目標區(qū)域分割掩碼實現(xiàn)精確的紋理傳輸。文獻[15]利用TailorGAN 模型給定一個參考服裝圖像和另一個具有目標屬性(領(lǐng)/袖)的圖像,生成一個結(jié)合參考服裝圖像紋理風格和參考目標屬性(領(lǐng)/袖)的真實圖像。通過對服飾局部區(qū)域的款式進行對應轉(zhuǎn)換,在這一任務(wù)下開發(fā)的方法可應用于服裝檢索或協(xié)助設(shè)計師工作。文獻[16]引入一個新的試穿設(shè)置,使服裝項目與人的姿勢都可以改變。首先提出一種增強服裝變形的方案,以精確地對給定的新服裝項目進行變形,其中引入了目標人體形狀掩模預測模塊,為服裝變形提供中間指導,然后提出一個專注的雙向生成對抗網(wǎng)絡(luò)生成最終的試穿人形象。文獻[17]提出一種新的GAN 體系結(jié)構(gòu)Poly-GAN,能夠?qū)⒖挤椬詣臃胖迷谌我庾藨B(tài)的人體模型圖像上。Poly-GAN 允許對多個輸入進行調(diào)整,并適合于許多任務(wù),包括圖像對齊、圖像拼接和修補等。在類似任務(wù)中,風格和內(nèi)容圖片通常都有干凈的背景和正面的姿勢。本文目標是以虛擬試穿為驅(qū)動,研究背景與非試穿部分不變的時裝片段轉(zhuǎn)換,從而使用戶能夠在其身體圖像上看到新衣服,而不需要實際試穿。
文獻[18]進行了類似研究,其指定所需服裝樣式的圖像和個人圖像作為輸入,然后從人物圖像中提取一個服裝片段。通過給定的提取片段和樣式圖像,合成一個顯示了樣式圖像顏色和圖案的新服裝片段。輸出段同時保留了輸入段的形狀和位置,使其自然疊加在人的圖像上。通過該過程,轉(zhuǎn)換后的圖像看起來就像一個人穿著新設(shè)計的衣服,其他時尚項目則保持不變。該方法包含一個基于先驗人類知識預定義規(guī)則的不可訓練的預處理模塊,該模塊通過提取給定服裝片段的幾何和樣式因子生成輸入目標訓練對。整個模型分為多個部分,流程多且結(jié)構(gòu)復雜。本文方法選擇在框架中直接結(jié)合目標對象的分割掩碼進行圖像轉(zhuǎn)換。分割掩碼能很好地表示實例的形狀信息,因其只包含對象邊界,不會受到顏色等其他細節(jié)干擾。實驗結(jié)果如圖1 所示,其中圖(a)、(b)為輸入圖像,自身作為內(nèi)容圖像,互相作為風格圖像;圖(c)、(d)為輸出圖像,內(nèi)容圖像中人物形象的褲子轉(zhuǎn)換為風格圖像對應的風格,目標區(qū)域外的其他部分則保持不變。
Fig.1 The clothing style transfer of fashion image圖1 關(guān)于時尚形象的服飾風格遷移
本文主要貢獻為:提出適合時尚圖片服飾風格轉(zhuǎn)換的網(wǎng)絡(luò)結(jié)構(gòu),在形狀不變的情況下轉(zhuǎn)換圖像內(nèi)容,實現(xiàn)了在復雜背景下針對特定服飾區(qū)域的風格轉(zhuǎn)換,可在圖像背景不變的情況下進行虛擬試穿。
生成對抗網(wǎng)絡(luò)(GAN)是一種強大的生成模型,其應用于很多計算機視覺任務(wù)都取得了很好的效果,如圖像生成[19]、圖像修補[20]、風格遷移[21]及通用的圖像轉(zhuǎn)換[22]等。GAN 的成功在于對抗性損失的提出,其目標是使生成的圖像與真實照片無法區(qū)分,而生成式模型的訓練目的則是最小化這種損失。對抗損失對于圖像的生成任務(wù)很有意義,因為這正是大多數(shù)圖像生成任務(wù)的最終目標。
早期圖像到圖像的轉(zhuǎn)換最具代表性的一個任務(wù)就是圖像類比[23],該模型使用CNN 學習顏色和紋理轉(zhuǎn)換以及畫家風格轉(zhuǎn)換等翻譯功能。如Isola 等[22]的“pix2pix”在圖像生成模型中使用了條件生成對抗網(wǎng)絡(luò)[1],用來學習輸入圖像與輸出圖像之間的映射。然而,對于絕大多數(shù)任務(wù)而言,配對的數(shù)據(jù)通常成本很高且難以獲得。為克服這一局限性,一種非配對圖像到圖像的轉(zhuǎn)換任務(wù)被提出且得到了廣泛應用。具體來說,一種GAN 的分支模型CycleGAN 以兩個生成對抗網(wǎng)絡(luò)組成一個循環(huán)結(jié)構(gòu),學習兩個圖像集合之間的映射,而不是兩個特定圖像之間的映射[24]。
神經(jīng)風格遷移是圖像到圖像轉(zhuǎn)換的一種更為復雜的方法[25],開辟了一個全新的深度學習應用領(lǐng)域。其通過同時最小化的特征重建損失[26]和風格重建損失,將一幅圖像內(nèi)容與另一幅圖像風格結(jié)合在一起,生成一幅全新圖像,與之前的紋理合成[27]任務(wù)類似。圖像風格遷移主要指將參考圖像風格轉(zhuǎn)換到另一個輸入圖像中,通過選擇一種參考風格的圖像,可將在不同時段、季節(jié)、光照條件下拍攝的照片藝術(shù)化地轉(zhuǎn)換成不同風格,但保留原有結(jié)構(gòu)和內(nèi)容。
目前,已有的服飾風格遷移可分為兩種類型。一類是選擇訓練一個額外的模型檢測對象掩碼[28],然后用其引導生成目標區(qū)域掩碼。這需要顯著增加網(wǎng)絡(luò)容量,從而大大提高了時間和空間的訓練復雜度。Yang 等[29]建議增加注意模塊以預測出一個可引導圖像轉(zhuǎn)換過程的注意圖。新的注意導向生成對抗網(wǎng)絡(luò)(AttentionGAN)[30]被提出用于不成對圖像到圖像的翻譯任務(wù),AttentionGAN 中的注意力引導發(fā)生器可以產(chǎn)生對應的注意力掩碼,然后將輸出與注意力掩碼相融合。注意掩碼使得生成器能夠聚焦于目標區(qū)域,同時有效保留目標區(qū)域之外的背景,從而獲得高質(zhì)量的目標圖像。同時模型中還設(shè)計了一種新的注意力引導判別器,只考慮轉(zhuǎn)換的目標區(qū)域。GANimorph 引入一個具有擴展卷積的鑒別器,其可以使用整張圖像的鑒別信息反向訓練一個更具上下文感知的生成器[31]。同時結(jié)合多尺度感知損失,這種感知損失能夠很好地表示出目標底層形狀中的錯誤。但是本文研究目標為對人身上的服裝進行風格轉(zhuǎn)換,其具有復雜的背景與多變的形狀,因此這些研究方法不完全適用于本文研究。
另一類是使用額外的數(shù)據(jù)提供注意力以促進圖像轉(zhuǎn)化。如Sun 等[32]使用FCN 生成一個掩膜進行面部屬性操作;Liang 等[33]提出Mask contrast-GAN,該模型使用數(shù)據(jù)所對應的對象掩碼注釋作為額外的輸入指導生成過程。首先基于掩碼裁剪掉圖像中不需要的部分,然后在翻譯后粘貼它們。模型傾向在較小的形狀、幾何或紋理變化之后,將對象的語義成功地轉(zhuǎn)換為期望的語義。Mo 等[34]提出In?staGAN,輸入包含圖片與對應的實例信息,模型更重視形狀變換,對圖像及相應的實例屬性集進行轉(zhuǎn)換。例如,在時尚形象中把牛仔褲翻譯成裙子。類似的任務(wù)如M2ETry On Net[35],該框架以自我監(jiān)督的方式進行訓練,從而逐漸將模型衣服的姿勢和紋理轉(zhuǎn)移到所需外觀上。先利用姿態(tài)對準網(wǎng)絡(luò)將模型圖像與目標人的圖像對齊,之后提出一種可增強對齊模型圖像特征的紋理細化網(wǎng)絡(luò)。將服裝圖像采用細化網(wǎng)絡(luò)進行處理,再用擬合網(wǎng)絡(luò)將服飾匹配到目標人,這也是一個十分有價值的研究方向,但與本文的目標方向不一致。
圖像到圖像的轉(zhuǎn)換任務(wù)本質(zhì)是學習X和Y兩個圖像域之間的映射:GXY:X→Y和GYX:Y→X。無監(jiān)督翻譯的目標是使用原始數(shù)據(jù)中的未配對樣本恢復這種映射。本文方法將實例信息結(jié)合起來,在原始圖像X 基礎(chǔ)上附加一組實例屬性信息A,以改善圖像到圖像的翻譯效果。因此,本文方法可理解為學習X×A與Y×B之間的聯(lián)合映射,方法詳細介紹如下:選擇CycleGAN[24]為基礎(chǔ)結(jié)構(gòu),使用周期一致性損失鼓勵GYX(GXY(x))≈x和GXY(GYX(y))≈y,具體如圖2 所示。模型包含兩個映射函數(shù)G1:X→Y和G2:Y→X,以及相關(guān)的對抗性鑒別器D1和D2。該結(jié)構(gòu)為循環(huán)結(jié)構(gòu),即從一個域轉(zhuǎn)換到另一個域,然后返回。其中生成器G1、G2和鑒別器D1、D2遵循圖3 中的結(jié)構(gòu)。每個網(wǎng)絡(luò)都被設(shè)計成同時編碼圖像和對應的實例掩碼。整體結(jié)構(gòu)包括兩個生成器GXY和GYX,以及對應的對抗性鑒別器DY和DX。具體以生成器GXY和鑒別器DY為例進行描述,GYX和DX與其類似。
Fig.2 CycleGAN model圖2 CycleGAN 模型
Fig.3 Generator and discriminator model圖3 生成器與鑒別器模型
訓練生成器GXY:X×A→Y×B,其同時編碼并轉(zhuǎn)換原始數(shù)據(jù)(x,a)到目標域數(shù)據(jù)(y′,b′)。生成器首先輸入原始照片與對應的分割掩碼,然后使用圖像特征提取器從照片和掩碼中提取特征,將相應圖像與掩碼特征連接起來,并將其反饋給圖像生成器,最后輸出轉(zhuǎn)化后的圖像。對于對抗性鑒別器DY:Y×B{′Y′,′not Y′},其中DY同時編碼y和b(或y′和b′),之后分辨數(shù)據(jù)是否在目標域Y×B,將結(jié)果反饋給需要提升的生成器或鑒別器。通過使用生成器和鑒別器不斷進行博弈與學習,生成器最終可生成一個轉(zhuǎn)換了目標區(qū)域風格的圖像,同時保持背景及對應結(jié)構(gòu)位置與原圖像完全一致。本文要求相應掩碼轉(zhuǎn)換前后完全一致,即a=b′。
圖像到圖像轉(zhuǎn)換模型的任務(wù)目標是在保持背景、結(jié)構(gòu)等原始上下文信息的情況下,將一個圖像域轉(zhuǎn)換到另一個域。為此,考慮了使生成的輸出遵循目標域樣式的域損失,以及使輸出保持原始內(nèi)容的內(nèi)容損失。為方便表達,將損失函數(shù)表示為單個訓練樣本(x,a)∈X×A和(y,b)∈Y×B的函數(shù)。根據(jù)之前的相關(guān)研究結(jié)果,域損失使用GAN 損失進行處理,同時內(nèi)容損失使用周期一致性損失[36]和標識映射損失[37]進行處理。對于GAN 損失選擇使用最小二乘損失函數(shù)的LSGAN[38],其會懲罰那些遠離決策邊界的樣本,這些樣本梯度是梯度下降的決定方向。該方案在多數(shù)實驗中被證明有穩(wěn)定、良好的性能表現(xiàn),如式(1)所示。
周期一致性損失同時使用生成器GXY:X→Y和GYX:Y→X,GXY與GYX應是首尾相連、相互對應的。對于每個來自X域的圖像x,圖像翻譯周期應能將x帶回原始圖像,即x→GXY(x)→GYX(GXY()x)≈x。該結(jié)構(gòu)能夠解決將所有輸入圖像映射到相同輸出圖像導致優(yōu)化模式崩潰的問題[39]。
標識映射損失直接將(x,a)輸入第二段生成器GYX,僅進行一次轉(zhuǎn)換,希望得到(x,a),即GYX(x)≈x。該損失有助于保持輸入圖像的顏色與整體色調(diào):
上下文保存損失[34]強制只翻譯實例,同時保持背景。其是一個像素加權(quán)l(xiāng)1損失,設(shè)置背景權(quán)重為1,實例權(quán)重為0??紤]原始圖像與翻譯圖像中背景像素的非零權(quán)值,也即是說,對于原始樣本(x,a)、(y,b)和轉(zhuǎn)換后的樣本(y′,b′)、(x′,a′),設(shè)置權(quán)重ω(a,b′)、ω(b,a′)為1 減去二進制表示的實例掩碼元素最小值,并提出以下?lián)p失函數(shù):
其中,⊙是元素層面上的乘積。實驗結(jié)果顯示,上下文保持損失能夠使模型更好地保持背景。最后,總損失可由式(5)得到:
其中,λcyc、λidt、λctx是平衡損失的超參數(shù)。
參考CycleGAN 的網(wǎng)絡(luò)體系結(jié)構(gòu)[24]作為本文的基礎(chǔ)模型,將ResNet9[21]、PatchGAN[22]分別作為生成器和鑒別器。ResNet 生成器由下行采樣塊、殘差塊和上采樣塊組成,使用下采樣塊和剩余塊作為編碼器,用來減少特征映射的空間范圍,然后使用上采樣塊作為生成器,輸出最終目的圖像。鑒別器中使用70×70 的PatchGANS,具體做法為對70×70 的重疊圖像補丁進行真或假的分類。這種補丁級的鑒別器相比全圖像的鑒別器具有更少的參數(shù),同時能夠以完全卷積的方式[22]處理任意大小的圖像。其由5 個卷積層組成,包括歸一化層和非線性層。本文使用斜率為0.2 的leaky ReLUs,將前3 個卷積層用于特征提取,最后2 個卷積層用于分類。對于附加的實例分割信息,本文將其預處理為相應的二進制掩碼,因此可簡單地將其作為單通道二值圖像。參考已有工作,將實例歸一化(IN)[40]應用于生成器和鑒別器中。另外,實驗結(jié)果證明,將光譜歸一化[41]應用于鑒別器也能明顯提升生成效果。
本文從多人分析(MHP)[42]數(shù)據(jù)集中收集了兩個類的樣本,并將其用作圖像翻譯任務(wù)的兩個域。調(diào)整MHP 數(shù)據(jù)集大小為240×160(高度×寬度)的圖像。MHP V1.0 數(shù)據(jù)集包含4 980 張圖像,每張圖像至少包含2 個人(平均為3個)。對于每幅圖像,包括“背景”“大衣”“裙子”“褲子”等類別。每當相應類別出現(xiàn)在當前圖像中時,每個實例都有相應注釋。
實驗中,設(shè)置超參數(shù)λcyc=10,λidt=1,λctx=1,并選擇Adam[43]優(yōu)化器。其中,G的學習率為0.000 2,D的學習率為0.000 1。同時設(shè)置優(yōu)化器的動量參數(shù)β1=0.5,β2=0.999。對于批處理規(guī)范化方法,使用將批處理大小設(shè)置為1 的“實例規(guī)范化”,該方法已被證明在圖像生成任務(wù)[40]中十分有效。對于常見的模型振蕩問題[39],本文遵循Shriv?astava 等[44]的策略并使用緩沖區(qū)中一定數(shù)量的生成圖像歷史更新鑒別器,而不是最新生成器生成的圖像。根據(jù)實驗數(shù)據(jù)集大小,實驗中保持了前100 次epoch 的學習率,之后50 次epoch 保持線性衰減直到零。訓練任務(wù)在ubuntu16.04系統(tǒng)NVIDIA GeForce RTX 2080Ti 的條件下,訓練過程中平均每代訓練時間為78s,測試階段每張圖像處理時間在1s以內(nèi)。實驗結(jié)果顯示,在保證原有背景和結(jié)構(gòu)不變的情況下能夠較好地實現(xiàn)服裝轉(zhuǎn)換,與本文目標完全一致,如圖4所示,輸入為個人圖像和對應掩碼(x,a)與(y,b),(y′,a)與(x′,b)為其對應輸出。實驗結(jié)果還表明,本文方法對時裝片段不同角度的光線和陰影都有較好的保持效果。
Fig.4 Experimental results of style conversion of clothing fragments圖4 服裝片段風格轉(zhuǎn)換實驗結(jié)果
為評估本文方法的有效性,采用3 個相關(guān)的神經(jīng)風格遷移模型作為對比,具體如下:
CycleGAN[24]:最基礎(chǔ)的CycleGAN 網(wǎng)絡(luò),包含循環(huán)一致?lián)p失和身份映射損失。
InstaGAN[34]:CycleGAN 的演變模型之一,同時編碼與解碼圖片以及對應的目標掩碼,更關(guān)注轉(zhuǎn)換前后的目標區(qū)域形狀變換。
AttentionGAN[30]:CycleGAN 的另一演變模型,添加注意機制以引導模型只轉(zhuǎn)換目標區(qū)域,同時保持背景不變。
本文采用MHP 服裝數(shù)據(jù)集中80%的圖像訓練網(wǎng)絡(luò)。以上對比方法均以作者發(fā)布的代碼及參數(shù)設(shè)置作為實驗設(shè)置,幾種方法對比結(jié)果如圖5 所示。從實驗結(jié)果可以看出,CycleGAN 無法將轉(zhuǎn)換只控制在目標區(qū)域,背景上也存在不該出現(xiàn)的顏色轉(zhuǎn)換,在沒有附加信息的條件下,很難將遷移工作只鎖定在目標區(qū)域;InstaGAN 由于其結(jié)構(gòu)特征造成了一定程度的目標區(qū)域形狀變化,這與本文研究目標不一致;AttentionGAN 出現(xiàn)了背景上的色彩轉(zhuǎn)移,且目標區(qū)域與背景分界處模糊不清,估計是由于注意機制無法在這種復雜背景和多變的形狀條件下很好地工作,只有本文方法得到了與目標一致的實驗結(jié)果。
為驗證本文損失函數(shù)的有效性,實驗比較了損失函數(shù)得到的轉(zhuǎn)換結(jié)果,如圖6 所示。只使用GAN 損失幾乎不會產(chǎn)生可視化結(jié)果(Gan alone),若消除循環(huán)一致性損失也是如此(No cyc)。因此,循環(huán)一致?lián)p失對本文結(jié)果至關(guān)重要。沒有身份映射損失的結(jié)果在顏色顯示上會出現(xiàn)輸入與生成出現(xiàn)偏差的情況(No idt)。而缺少上下文一致?lián)p失則會造成背景區(qū)域的不正確轉(zhuǎn)換,無法達到轉(zhuǎn)換前后背景不變的實驗目標(No ctx)。實驗結(jié)果表明,所采用的損失函數(shù)若去除其中任意一個損失都會對結(jié)果產(chǎn)生較大影響,意味著所有這些因素都對本文轉(zhuǎn)換模型至關(guān)重要。
Fig.5 Experimental results of fashion style transfer with different methods圖5 不同方法時裝風格遷移實驗結(jié)果
Fig.6 Experimental results of loss functions圖6 損失函數(shù)實驗結(jié)果
本文提出一種用于未配對圖像轉(zhuǎn)換的新方法,以實現(xiàn)對不同風格服裝之間的風格遷移,達到背景不變的虛擬試穿目的。本文方法通過附加風格掩碼的方式轉(zhuǎn)換服裝項目的顏色和圖案,同時保持其原有背景和結(jié)構(gòu)不變。本文研究結(jié)果可將服裝產(chǎn)品直觀展示給設(shè)計者和使用者,具有較高的實用價值。實驗結(jié)果顯示,該方法通過基于GAN 的深度神經(jīng)網(wǎng)絡(luò)模型達到了本文預期目標,十分適合基于圖像轉(zhuǎn)化的虛擬試穿實驗。未來計劃收集更豐富的訓練數(shù)據(jù)以及更精確的服裝分割信息,基于多種不同服飾風格構(gòu)建更有針對性的數(shù)據(jù)集,同時減少因分割信息不準確對圖像生成造成的不正確引導,以產(chǎn)生更自然的轉(zhuǎn)換結(jié)果。