杜 斐,陳明非,張云港
(云南師范大學信息學院,云南昆明 650500)
最近,在計算機視覺及圖像處理等領域,生成對抗網絡(GAN)顯示出優異的性能[1]。在圖像翻譯任務中,目前較常見的方法是學習未配對圖像從一個源域到一個目標域的映射,將原圖像作為輸入,修改后的圖像作為輸出。隨著深度學習的發展[2-3],神經風格遷移成為人工智能領域一個非常活躍的研究課題,其通過將風格圖像和內容圖像共同輸入到神經網絡模型中合成一幅新圖像[4]。新生成的圖像具有內容圖像的結構和內容特征,同時擁有風格圖像的風格和紋理特征。神經風格轉移已被應用于許多研究領域,如字體風格轉移[5]、頭部風格轉移[6]、視頻風格化[7]等。
另外,計算機視覺領域里的時尚分析也引起了很多研究者的興趣,產生了許多應用人工智能解決藝術與時尚行業實際需求的研究內容,如時尚風格分類[8]、服裝解析[9]、服裝檢索[10]等。本文研究目標為時裝的風格遷移,主要目標為合成的服裝形象在保持服裝原有結構和形狀的同時,融合給定的參考圖像風格。設計師可快速看到服裝在給定風格中的樣子,以方便進行設計處理。如文獻[11]在人的身上合成一個正面特寫的服裝圖像;文獻[12]在輸入基本服裝圖像和風格圖像的情況下,自動生成混合了基本設計風格與新風格的服裝圖片;文獻[13]利用VITION 模型輸入空白背景下的服飾和人物圖像,將所需的服裝項目無縫轉移到人物相應區域。該框架首先生成一個粗合成的圖像,目標服裝項目覆蓋同一人的同一姿勢,再通過服裝區域的細化網絡進一步提升圖像的合成效果。對于同樣的任務,文獻[14]通過SieveNet 模型引入一個感知幾何匹配損失訓練的多級粗到細的翹曲網絡,嘗試將服飾圖像與目標模型的形狀對齊,接下來引入目標區域分割掩碼實現精確的紋理傳輸。文獻[15]利用TailorGAN 模型給定一個參考服裝圖像和另一個具有目標屬性(領/袖)的圖像,生成一個結合參考服裝圖像紋理風格和參考目標屬性(領/袖)的真實圖像。通過對服飾局部區域的款式進行對應轉換,在這一任務下開發的方法可應用于服裝檢索或協助設計師工作。文獻[16]引入一個新的試穿設置,使服裝項目與人的姿勢都可以改變。首先提出一種增強服裝變形的方案,以精確地對給定的新服裝項目進行變形,其中引入了目標人體形狀掩模預測模塊,為服裝變形提供中間指導,然后提出一個專注的雙向生成對抗網絡生成最終的試穿人形象。文獻[17]提出一種新的GAN 體系結構Poly-GAN,能夠將參考服飾自動放置在任意姿態的人體模型圖像上。Poly-GAN 允許對多個輸入進行調整,并適合于許多任務,包括圖像對齊、圖像拼接和修補等。在類似任務中,風格和內容圖片通常都有干凈的背景和正面的姿勢。本文目標是以虛擬試穿為驅動,研究背景與非試穿部分不變的時裝片段轉換,從而使用戶能夠在其身體圖像上看到新衣服,而不需要實際試穿。
文獻[18]進行了類似研究,其指定所需服裝樣式的圖像和個人圖像作為輸入,然后從人物圖像中提取一個服裝片段。通過給定的提取片段和樣式圖像,合成一個顯示了樣式圖像顏色和圖案的新服裝片段。輸出段同時保留了輸入段的形狀和位置,使其自然疊加在人的圖像上。通過該過程,轉換后的圖像看起來就像一個人穿著新設計的衣服,其他時尚項目則保持不變。該方法包含一個基于先驗人類知識預定義規則的不可訓練的預處理模塊,該模塊通過提取給定服裝片段的幾何和樣式因子生成輸入目標訓練對。整個模型分為多個部分,流程多且結構復雜。本文方法選擇在框架中直接結合目標對象的分割掩碼進行圖像轉換。分割掩碼能很好地表示實例的形狀信息,因其只包含對象邊界,不會受到顏色等其他細節干擾。實驗結果如圖1 所示,其中圖(a)、(b)為輸入圖像,自身作為內容圖像,互相作為風格圖像;圖(c)、(d)為輸出圖像,內容圖像中人物形象的褲子轉換為風格圖像對應的風格,目標區域外的其他部分則保持不變。

Fig.1 The clothing style transfer of fashion image圖1 關于時尚形象的服飾風格遷移
本文主要貢獻為:提出適合時尚圖片服飾風格轉換的網絡結構,在形狀不變的情況下轉換圖像內容,實現了在復雜背景下針對特定服飾區域的風格轉換,可在圖像背景不變的情況下進行虛擬試穿。
生成對抗網絡(GAN)是一種強大的生成模型,其應用于很多計算機視覺任務都取得了很好的效果,如圖像生成[19]、圖像修補[20]、風格遷移[21]及通用的圖像轉換[22]等。GAN 的成功在于對抗性損失的提出,其目標是使生成的圖像與真實照片無法區分,而生成式模型的訓練目的則是最小化這種損失。對抗損失對于圖像的生成任務很有意義,因為這正是大多數圖像生成任務的最終目標。
早期圖像到圖像的轉換最具代表性的一個任務就是圖像類比[23],該模型使用CNN 學習顏色和紋理轉換以及畫家風格轉換等翻譯功能。如Isola 等[22]的“pix2pix”在圖像生成模型中使用了條件生成對抗網絡[1],用來學習輸入圖像與輸出圖像之間的映射。然而,對于絕大多數任務而言,配對的數據通常成本很高且難以獲得。為克服這一局限性,一種非配對圖像到圖像的轉換任務被提出且得到了廣泛應用。具體來說,一種GAN 的分支模型CycleGAN 以兩個生成對抗網絡組成一個循環結構,學習兩個圖像集合之間的映射,而不是兩個特定圖像之間的映射[24]。
神經風格遷移是圖像到圖像轉換的一種更為復雜的方法[25],開辟了一個全新的深度學習應用領域。其通過同時最小化的特征重建損失[26]和風格重建損失,將一幅圖像內容與另一幅圖像風格結合在一起,生成一幅全新圖像,與之前的紋理合成[27]任務類似。圖像風格遷移主要指將參考圖像風格轉換到另一個輸入圖像中,通過選擇一種參考風格的圖像,可將在不同時段、季節、光照條件下拍攝的照片藝術化地轉換成不同風格,但保留原有結構和內容。
目前,已有的服飾風格遷移可分為兩種類型。一類是選擇訓練一個額外的模型檢測對象掩碼[28],然后用其引導生成目標區域掩碼。這需要顯著增加網絡容量,從而大大提高了時間和空間的訓練復雜度。Yang 等[29]建議增加注意模塊以預測出一個可引導圖像轉換過程的注意圖。新的注意導向生成對抗網絡(AttentionGAN)[30]被提出用于不成對圖像到圖像的翻譯任務,AttentionGAN 中的注意力引導發生器可以產生對應的注意力掩碼,然后將輸出與注意力掩碼相融合。注意掩碼使得生成器能夠聚焦于目標區域,同時有效保留目標區域之外的背景,從而獲得高質量的目標圖像。同時模型中還設計了一種新的注意力引導判別器,只考慮轉換的目標區域。GANimorph 引入一個具有擴展卷積的鑒別器,其可以使用整張圖像的鑒別信息反向訓練一個更具上下文感知的生成器[31]。同時結合多尺度感知損失,這種感知損失能夠很好地表示出目標底層形狀中的錯誤。但是本文研究目標為對人身上的服裝進行風格轉換,其具有復雜的背景與多變的形狀,因此這些研究方法不完全適用于本文研究。
另一類是使用額外的數據提供注意力以促進圖像轉化。如Sun 等[32]使用FCN 生成一個掩膜進行面部屬性操作;Liang 等[33]提出Mask contrast-GAN,該模型使用數據所對應的對象掩碼注釋作為額外的輸入指導生成過程。首先基于掩碼裁剪掉圖像中不需要的部分,然后在翻譯后粘貼它們。模型傾向在較小的形狀、幾何或紋理變化之后,將對象的語義成功地轉換為期望的語義。Mo 等[34]提出In?staGAN,輸入包含圖片與對應的實例信息,模型更重視形狀變換,對圖像及相應的實例屬性集進行轉換。例如,在時尚形象中把牛仔褲翻譯成裙子。類似的任務如M2ETry On Net[35],該框架以自我監督的方式進行訓練,從而逐漸將模型衣服的姿勢和紋理轉移到所需外觀上。先利用姿態對準網絡將模型圖像與目標人的圖像對齊,之后提出一種可增強對齊模型圖像特征的紋理細化網絡。將服裝圖像采用細化網絡進行處理,再用擬合網絡將服飾匹配到目標人,這也是一個十分有價值的研究方向,但與本文的目標方向不一致。
圖像到圖像的轉換任務本質是學習X和Y兩個圖像域之間的映射:GXY:X→Y和GYX:Y→X。無監督翻譯的目標是使用原始數據中的未配對樣本恢復這種映射。本文方法將實例信息結合起來,在原始圖像X 基礎上附加一組實例屬性信息A,以改善圖像到圖像的翻譯效果。因此,本文方法可理解為學習X×A與Y×B之間的聯合映射,方法詳細介紹如下:選擇CycleGAN[24]為基礎結構,使用周期一致性損失鼓勵GYX(GXY(x))≈x和GXY(GYX(y))≈y,具體如圖2 所示。模型包含兩個映射函數G1:X→Y和G2:Y→X,以及相關的對抗性鑒別器D1和D2。該結構為循環結構,即從一個域轉換到另一個域,然后返回。其中生成器G1、G2和鑒別器D1、D2遵循圖3 中的結構。每個網絡都被設計成同時編碼圖像和對應的實例掩碼。整體結構包括兩個生成器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,其同時編碼并轉換原始數據(x,a)到目標域數據(y′,b′)。生成器首先輸入原始照片與對應的分割掩碼,然后使用圖像特征提取器從照片和掩碼中提取特征,將相應圖像與掩碼特征連接起來,并將其反饋給圖像生成器,最后輸出轉化后的圖像。對于對抗性鑒別器DY:Y×B{′Y′,′not Y′},其中DY同時編碼y和b(或y′和b′),之后分辨數據是否在目標域Y×B,將結果反饋給需要提升的生成器或鑒別器。通過使用生成器和鑒別器不斷進行博弈與學習,生成器最終可生成一個轉換了目標區域風格的圖像,同時保持背景及對應結構位置與原圖像完全一致。本文要求相應掩碼轉換前后完全一致,即a=b′。
圖像到圖像轉換模型的任務目標是在保持背景、結構等原始上下文信息的情況下,將一個圖像域轉換到另一個域。為此,考慮了使生成的輸出遵循目標域樣式的域損失,以及使輸出保持原始內容的內容損失。為方便表達,將損失函數表示為單個訓練樣本(x,a)∈X×A和(y,b)∈Y×B的函數。根據之前的相關研究結果,域損失使用GAN 損失進行處理,同時內容損失使用周期一致性損失[36]和標識映射損失[37]進行處理。對于GAN 損失選擇使用最小二乘損失函數的LSGAN[38],其會懲罰那些遠離決策邊界的樣本,這些樣本梯度是梯度下降的決定方向。該方案在多數實驗中被證明有穩定、良好的性能表現,如式(1)所示。

周期一致性損失同時使用生成器GXY:X→Y和GYX:Y→X,GXY與GYX應是首尾相連、相互對應的。對于每個來自X域的圖像x,圖像翻譯周期應能將x帶回原始圖像,即x→GXY(x)→GYX(GXY()x)≈x。該結構能夠解決將所有輸入圖像映射到相同輸出圖像導致優化模式崩潰的問題[39]。

標識映射損失直接將(x,a)輸入第二段生成器GYX,僅進行一次轉換,希望得到(x,a),即GYX(x)≈x。該損失有助于保持輸入圖像的顏色與整體色調:

上下文保存損失[34]強制只翻譯實例,同時保持背景。其是一個像素加權l1損失,設置背景權重為1,實例權重為0。考慮原始圖像與翻譯圖像中背景像素的非零權值,也即是說,對于原始樣本(x,a)、(y,b)和轉換后的樣本(y′,b′)、(x′,a′),設置權重ω(a,b′)、ω(b,a′)為1 減去二進制表示的實例掩碼元素最小值,并提出以下損失函數:

其中,⊙是元素層面上的乘積。實驗結果顯示,上下文保持損失能夠使模型更好地保持背景。最后,總損失可由式(5)得到:

其中,λcyc、λidt、λctx是平衡損失的超參數。
參考CycleGAN 的網絡體系結構[24]作為本文的基礎模型,將ResNet9[21]、PatchGAN[22]分別作為生成器和鑒別器。ResNet 生成器由下行采樣塊、殘差塊和上采樣塊組成,使用下采樣塊和剩余塊作為編碼器,用來減少特征映射的空間范圍,然后使用上采樣塊作為生成器,輸出最終目的圖像。鑒別器中使用70×70 的PatchGANS,具體做法為對70×70 的重疊圖像補丁進行真或假的分類。這種補丁級的鑒別器相比全圖像的鑒別器具有更少的參數,同時能夠以完全卷積的方式[22]處理任意大小的圖像。其由5 個卷積層組成,包括歸一化層和非線性層。本文使用斜率為0.2 的leaky ReLUs,將前3 個卷積層用于特征提取,最后2 個卷積層用于分類。對于附加的實例分割信息,本文將其預處理為相應的二進制掩碼,因此可簡單地將其作為單通道二值圖像。參考已有工作,將實例歸一化(IN)[40]應用于生成器和鑒別器中。另外,實驗結果證明,將光譜歸一化[41]應用于鑒別器也能明顯提升生成效果。
本文從多人分析(MHP)[42]數據集中收集了兩個類的樣本,并將其用作圖像翻譯任務的兩個域。調整MHP 數據集大小為240×160(高度×寬度)的圖像。MHP V1.0 數據集包含4 980 張圖像,每張圖像至少包含2 個人(平均為3個)。對于每幅圖像,包括“背景”“大衣”“裙子”“褲子”等類別。每當相應類別出現在當前圖像中時,每個實例都有相應注釋。
實驗中,設置超參數λcyc=10,λidt=1,λctx=1,并選擇Adam[43]優化器。其中,G的學習率為0.000 2,D的學習率為0.000 1。同時設置優化器的動量參數β1=0.5,β2=0.999。對于批處理規范化方法,使用將批處理大小設置為1 的“實例規范化”,該方法已被證明在圖像生成任務[40]中十分有效。對于常見的模型振蕩問題[39],本文遵循Shriv?astava 等[44]的策略并使用緩沖區中一定數量的生成圖像歷史更新鑒別器,而不是最新生成器生成的圖像。根據實驗數據集大小,實驗中保持了前100 次epoch 的學習率,之后50 次epoch 保持線性衰減直到零。訓練任務在ubuntu16.04系統NVIDIA GeForce RTX 2080Ti 的條件下,訓練過程中平均每代訓練時間為78s,測試階段每張圖像處理時間在1s以內。實驗結果顯示,在保證原有背景和結構不變的情況下能夠較好地實現服裝轉換,與本文目標完全一致,如圖4所示,輸入為個人圖像和對應掩碼(x,a)與(y,b),(y′,a)與(x′,b)為其對應輸出。實驗結果還表明,本文方法對時裝片段不同角度的光線和陰影都有較好的保持效果。

Fig.4 Experimental results of style conversion of clothing fragments圖4 服裝片段風格轉換實驗結果
為評估本文方法的有效性,采用3 個相關的神經風格遷移模型作為對比,具體如下:
CycleGAN[24]:最基礎的CycleGAN 網絡,包含循環一致損失和身份映射損失。
InstaGAN[34]:CycleGAN 的演變模型之一,同時編碼與解碼圖片以及對應的目標掩碼,更關注轉換前后的目標區域形狀變換。
AttentionGAN[30]:CycleGAN 的另一演變模型,添加注意機制以引導模型只轉換目標區域,同時保持背景不變。
本文采用MHP 服裝數據集中80%的圖像訓練網絡。以上對比方法均以作者發布的代碼及參數設置作為實驗設置,幾種方法對比結果如圖5 所示。從實驗結果可以看出,CycleGAN 無法將轉換只控制在目標區域,背景上也存在不該出現的顏色轉換,在沒有附加信息的條件下,很難將遷移工作只鎖定在目標區域;InstaGAN 由于其結構特征造成了一定程度的目標區域形狀變化,這與本文研究目標不一致;AttentionGAN 出現了背景上的色彩轉移,且目標區域與背景分界處模糊不清,估計是由于注意機制無法在這種復雜背景和多變的形狀條件下很好地工作,只有本文方法得到了與目標一致的實驗結果。
為驗證本文損失函數的有效性,實驗比較了損失函數得到的轉換結果,如圖6 所示。只使用GAN 損失幾乎不會產生可視化結果(Gan alone),若消除循環一致性損失也是如此(No cyc)。因此,循環一致損失對本文結果至關重要。沒有身份映射損失的結果在顏色顯示上會出現輸入與生成出現偏差的情況(No idt)。而缺少上下文一致損失則會造成背景區域的不正確轉換,無法達到轉換前后背景不變的實驗目標(No ctx)。實驗結果表明,所采用的損失函數若去除其中任意一個損失都會對結果產生較大影響,意味著所有這些因素都對本文轉換模型至關重要。

Fig.5 Experimental results of fashion style transfer with different methods圖5 不同方法時裝風格遷移實驗結果

Fig.6 Experimental results of loss functions圖6 損失函數實驗結果
本文提出一種用于未配對圖像轉換的新方法,以實現對不同風格服裝之間的風格遷移,達到背景不變的虛擬試穿目的。本文方法通過附加風格掩碼的方式轉換服裝項目的顏色和圖案,同時保持其原有背景和結構不變。本文研究結果可將服裝產品直觀展示給設計者和使用者,具有較高的實用價值。實驗結果顯示,該方法通過基于GAN 的深度神經網絡模型達到了本文預期目標,十分適合基于圖像轉化的虛擬試穿實驗。未來計劃收集更豐富的訓練數據以及更精確的服裝分割信息,基于多種不同服飾風格構建更有針對性的數據集,同時減少因分割信息不準確對圖像生成造成的不正確引導,以產生更自然的轉換結果。