意大利Trento大學和法國國立計算機及自動化研究院研究人員(Aliaksandr Siarohin、Enver Sangineto、Stephane Lathuiliere、Nicu Sebe)合作,使用GAN(對抗生成網絡)生成人體的新姿勢圖像。研究人員提出的可變形跳躍連接和最近鄰損失函數,更好地捕捉了局部的紋理細節,緩解了之前研究生成圖像模糊的問題,生成了更可信、質量更好的圖像。
網絡架構
生成視覺內容的深度學習方法,最常用的就是變分自動編碼器(VAE)和生成對抗網絡(GAN)。VAE基于概率圖模型,通過最大化相應數據的似然的下界進行訓練。GAN模型基于兩個網絡:一個生成網絡和一個判別網絡。兩個網絡同時訓練,生成網絡嘗試“愚弄”判別網絡,而判別網絡則學習如何分辨真實圖像和虛假圖像。
現有的姿勢生成方面的工作大部分基于條件GAN,這里研究人員也使用了條件GAN。之前一些工作使用了兩段式方法:第一個階段進行姿勢集成,第二個階段進行圖像改良。研究人員則使用了端到端的方法。
既然使用GAN,那網絡架構的設計就包括兩部分,生成網絡和判別網絡。其中,一般而言,判別網絡的設計相對容易。這符合直覺,比如,判別畫作的真假要比制作一幅足以以假亂真的贗品容易得多。因此,我們首先考慮判別網絡的情形。
判別網絡
我們考慮判別網絡的輸入和輸出。
首先是相對簡單的輸出。判別網絡的輸出,基本上就是兩種,一種是離散的分類結果,真或假,一種是連續的標量,表明判別網絡對圖像是否為真的信心(confidence)。這里研究人員選擇了后者作為判別網絡的輸出。
判別網絡的輸入,最簡單的情形,就是接受一張圖像,可能是真實圖像,也可能是生成網絡偽造的圖像(即生成網絡的輸出)。不過,具體到這個特定的問題,從原始圖像生成同一人物的新姿勢圖像,那么,其實模型還可以給判別網絡提供一些額外的信息,幫助判別網絡判斷圖像的真假。
首先可以提供的是原始圖像。其次,是相關的姿勢信息,具體而言,包括從原始圖像中提取的姿勢信息,也包括目標姿勢信息。因此,實際上判別網絡接受的輸入是4個tensor構成的元組(xa, Ha, y, Hb)。其中,xa是表示原始圖像的tensor,Ha與Hb分別表示原始圖像的姿勢和目標姿勢。y是真實圖像(xb)或生成網絡的輸出。
如前所述,判別網絡的工作相對簡單,因此判別網絡的輸入層也就不對這4個tensor組成的元組做什么特別的處理了,直接連接(concatenate)就行了。
生成網絡
如前所述,生成網絡的設計需要多費一點心思。
同樣,我們先考慮生成網絡的輸出,很簡單,生成網絡的輸出就是圖像,具體而言,是一個表示圖像的tensor。
那么,生成網絡的輸入是什么呢?其實很簡單,從判別網絡的輸入,我們不難得到生成網絡的輸入。判別網絡的輸入,正如我們前面提到的,是4個tensor構成的元組(xa, Ha, y, Hb)。其中,這個y正是生成網絡需要生成的,所以我們去掉y,得到(xa, Ha, Hb)。這個差不多就可以作為生成網絡的輸入了。生成網絡和判別網絡兩者輸入上的相似性,很符合直覺。那些有助于判別圖像真假的信息,同樣有助于偽造虛假的圖像。
不過,圖像多少存在噪點,因此,為了處理數據樣本的噪點問題,以更好地學習以假亂真的技術,生成網絡還額外接受一個噪聲向量z作為輸入。因此,生成網絡的輸入為(z, xa, Ha, Hb)。判別網絡就不操心噪點的問題,這是因為判別網絡的工作要容易很多,不是嗎?
判別網絡的輸入是直接連接的,生成網絡,因為面臨的任務要困難很多,因此并不直接連接xa、Ha、Hb。因為,Ha是基于xa提取的姿勢信息,所以,兩者之間存在著一致性,或者說,緊密的聯系。而Hb是目標姿勢,與xa和Ha的關系不那么緊密。因此,分開來處理比較好。研究人員正是這么做的,將xa和Ha連接起來,使用編碼器的一個卷積流處理,而Hb則使用另一個卷積流處理,兩者之間不共享權重。
姿勢的表示
上面我們提到了Ha和Hb,也就是姿勢信息,可是這些姿勢信息到底是如何表示的呢?
表示姿勢最簡單的方法就是找出各個關節(抽象成點),然后將這些關節連起來(線),用點線組合(關節位置)來表示姿勢。
從圖像中提取姿勢(關節位置)后,還需要轉換成生成網絡能夠理解的形式。以往的工作發現用熱圖的效果不錯,這里研究人員也同樣使用熱圖來表示姿勢。也就是說,如果我們用P(xa)表示從x中提取的姿勢(P為pose即姿勢的首字母),那么Ha= H(P(xa))(H為heat map即熱圖的首字母)。其中,Ha由k張熱圖組成,Hj(1<=j<=k)是一個維數與原始圖像一致的二維矩陣。熱圖與關節位置滿足以下關系:
其中,pj為第j個關節位置,σ = 6像素。
整個網絡架構如下圖所示:
可變形跳躍連接
姿勢的轉變,可以看成是一個空間變形問題。常見的思路是由編碼器編碼相關的變形信息,然后由解碼器將編碼的變形信息加以還原。而由編碼器和解碼器組成的網絡架構,常用的為U-Net。因此,以往的一些研究廣泛使用基于U-Net的方法完成基于姿勢的人像圖片生成任務。然而,普通的U-Net跳躍連接不太適合較大的空間變形,因為在空間變形較大的情況下,輸入圖像和輸出圖像的局部信息沒有對齊。
既然,較大的空間變形有局部信息不對齊的問題,那將空間變形分拆成不同的部分,這樣每個部分之間就對齊了。
研究人員基于以上的想法提出了可變形跳躍連接(deformable skip connection),將全局變形分解為一組由關節的子集定義的局部仿射變換,然后再將這些局部仿射變換組合起來以逼近全局變形。
分解人體
如前所述,局部仿射變換是由關節的子集定義的。因此我們先要劃分關節的子集,也就是,分解人體。研究人員將人體分解為10個部分,頭、軀干、左上臂、右上臂、左前臂、右前臂、左大腿、左小腿、右大腿、右小腿。
每個部分具體區塊的劃分,基于關節進行。
頭部和軀干的區塊定義很簡單,只要對齊軸線,劃出包圍所有關節的矩形即可。
四肢的情形比較復雜。四肢由兩個關節組成,研究人員使用一個傾斜的矩形來劃分四肢區塊。這個矩形的一條邊r1為平行于關節連線的直線,另一條邊r2和r1垂直,長度等于軀干對角線均值的三分之一(統一使用此值)。這樣我們就得到了一個矩形。
上圖為一個例子。我們可以將切分的區域表示為Rha= {p1, ..., p4}。其中,R代表區域(region的首字母),h表示這是人體的第h個區域,a表示這一區域屬于圖像xa,p1到p4為區域矩形的四個頂點,注意,這些并非關節。
仿射變換
然后,我們可以計算Rha的二元掩膜Mh(p),除了Rha內的點之外,其余位置的值均為零。
類似地,Rhb= {q1, ..., q4}為圖像xb中對應的矩形局域。匹配Rha與Rhb中的點,可以計算出這一部分的仿射變換fh的6個參數kh:
以上的仿射變換的參數向量kh基于原始圖像的分辨率計算,然后根據不同卷積特征映射的特定分辨率分別計算相應的版本。類似地,可以計算每個二元掩膜Mh的不同分辨率的版本。
實際圖像中,相應的區域可能被其他部分遮蔽,或者位于圖像邊框之外,或者未被成功檢測到。對于這種情況,研究人員直接將Mh設定為所有元素值為0的矩陣,不計算fh。(其實,當缺失的區域為四肢時,如果對稱的身體部分未缺失,例如右上臂缺失,而左上臂被成功檢測到,那么可以拷貝對稱部分的信息。)
對于數據集中的每對真實圖像(xa, xb),(fh(), Mh)及其分辨率較低的變體只需計算一次。
另外,這也是整個模型中唯一與人體相關的部分,因此,整個模型可以很容易地擴展,用于解決其他可變形物體的生成任務。
仿射變換示意圖
組合仿射變換
一旦計算出人體各個區域的(fh(), Mh)后,這些局部的仿射變換可以組合起來逼近全局姿勢變形。
具體而言,研究人員首先基于每個區域計算:
然后,研究人員將其組合:
其中,F'0= F(未變形),可以提供背景點的紋理信息。這里,研究人員選用了最大激活,研究人員還試驗了平均池化,平均池化的效果要稍微差一點。
最近鄰損失
訓練生成網絡和判別網絡時,除了標準的條件對抗損失函數LcGAN外,研究人員還使用了最近鄰損失LNN。
LcGAN的具體定義為:
其中,帶帽子的x為生成網絡的生成圖像G(z, xa, Ha, Hb)。
在標準的LcGAN之外,之前的一些研究配合使用基于L1或L2的損失函數。比如,L1計算生成圖像和真實圖像之間像素到像素的差別:
然而,L1和L2會導致生成模糊的圖像。研究人員猜想,其原因可能是這兩類損失函數無法容納生成圖像和真實圖像間細小的空間不對齊。比如,假定生成網絡生成的圖像看起來很可信,在語義上也與真實圖像相似,但是兩張圖片服飾上的紋理細節的像素沒有對齊。L1和L2都會懲罰這樣不精確的像素級別的對齊,盡管在人類看來,這些并不重要。為了緩和這一問題,研究人員提出了新的最近鄰LNN:
其中,N(p)是點p的n x n局部近鄰。g(x(p))是點p附近的補丁的向量表示,g(x(p))由卷積過濾器得出。研究人員通過比較生成圖像和真實圖像之間的補丁表示(g()),以便高效地計算LNN。具體而言,研究人員選用了在ImageNet上訓練過的VGG-19的第二個卷積層(conv12)。VGG-19的頭兩個卷積層(conv11和conv12)的卷積跨距均為1,因此,圖像x在conv12中的特征映射Cx和原始圖像x具備相同的分辨率。利用這一事實,研究人員得以在conv1_2上直接計算最近鄰,這不會損害空間準確度,即g(x(p)) = Cx(p)。據此,LNN的定義變為:
研究人員最終優化了以上LNN的實現,使其得以在GPU上并行運算。
因此,最終的基于LNN的損失函數定義為:
將上式與LcGAN結合,得到目標函數:
研究人員將上式中的λ的值設定為0.01,λ起到了正則化因子的作用。
實現細節
訓練生成網絡和判別網絡時,研究人員使用了9萬次迭代,并使用了Adam優化(學習率:2x10-4,β1= 0.5, β2= 0.999)。
如前所述,生成網絡的編碼器部分包含兩個流,每個流由以下層的序列組成:
CN641- CN1282- CN2562- CN5122- CN5122- CN5122
其中,CN641表示使用實例歸一化、ReLU激活、64個過濾器、跨距為1的卷積層,后同。
相應的生成網絡的解碼器部分由以下序列組成:
CD5122- CD5122- CD5122- CN5122- CN1282- CN31
其中,CD5122與CN5122類似,只不過額外附加了50%的dropout。另外,最后一個卷積層沒有應用實例歸一化,同時使用tanh而不是ReLU作為激活函數。
判別網絡使用如下序列:
CN642- CN1282- CN2562- CN5122- CN12
其中,最后一個卷積層沒有應用實例歸一化,同時使用sigmoid而不是ReLU作為激活函數。
用于DeepFashion數據集(研究人員使用的其中一個數據集,詳見下節)的生成網絡的編碼器和解碼器使用了一個額外的卷積層(CN5122),因為數據集中的圖像有更高的分辨率。
試驗
數據集
研究人員使用了兩個數據集:
Market-1501
DeepFashion
Market-1501包含使用6個監控攝像頭拍攝的1501人的32668張圖像。由于圖像的低分辨率(128x64),及姿勢、光照、背景和視角的多樣性,這一數據集很具挑戰性。研究人員首先剔除了未檢測到人體的圖像,得到了263631對訓練圖像(一對圖像為同一人的不同姿勢圖像)。研究人員隨機選擇了12000對圖像作為測試集。
DeepFashion包含52712張服飾圖像,其中有200000對相同服飾、不同姿勢或尺碼的圖像。圖像的分辨率為256x256。研究人員選擇了同一人穿戴相同服飾但姿勢不同的圖像對,其中,隨機選擇1000種服飾作為測試集,剩余12029種服飾作為訓練集。去除未檢測到人體的圖像后,研究人員最終收集了101268對圖像作為訓練集,8670對圖像作為測試集。
定量評估
定量評估生成內容本身是一個正在研究中的問題。目前的研究文獻中出現了兩種衡量標準:SSIM(Structural Similarity,結構化相似性)和IS(Inception Score)。
然而,姿勢生成任務中只有一個物體分類(人類),IS指標卻基于外部分類器的分類神經元計算所得的熵值,因此兩者不是十分契合。實際上,研究人員發現IS值與生成圖像的質量間的相關性常常比較弱。因此,研究人員提出了一個額外的DS(Detection Score,檢測分數)指標。DS基于最先進的物體檢測模型SSD的檢測輸出,SSD基于Pascal VOC 07數據集進行訓練。這意味著,DS衡量生成圖像的真實性(有多像人)。
上為當前最先進模型,中為研究人員使用的模型,下為真實圖像
可以看到,總體而言,模型的表現超過了當前最先進的模型。另外,注意真實圖像的DS值不為1,這是因為SSD不能100%檢測出人體。
定性評估
研究人員同樣進行了定性評估。
可以很明顯地看出,由于采用了基于LNN的損失函數,模型顯著減少了生成圖像的模糊程度。
DeepFashion上的定性評估結果類似。
消融測試
為了驗證模型的有效性,研究人員還進行了定性和定量的消融測試。
Market-1501
上圖為在Market-1501數據集上進行的定性消融測試。第1、2、3列表示模型的輸入。第4列為真實圖像。第5列為基準輸出(不使用可變形跳躍連接的U-Net架構,另外,生成網絡中,xa、Ha、Hb直接連接作為輸入,也就是說生成網絡的編碼器只包含一個流,訓練網絡時使用基于L1的損失函數),第6列DSC為使用基于L1的損失函數訓練的模型,第7列Full為完整的模型。
可以看到,研究人員提出的模型生成的圖像看起來更真實,也保留了更多的紋理細節。
研究人員在DeepFashion上取得了相似的結果。
研究人員也進行了定量的消融測試,并額外試驗了加上dropout(生成網絡和判別網絡同時應用dropout)的效果。
-
GaN
+關注
關注
19文章
2085瀏覽量
75068 -
網絡架構
+關注
關注
1文章
95瀏覽量
12712 -
深度學習
+關注
關注
73文章
5527瀏覽量
121893
原文標題:特倫托大學、Inria合作研究:基于GAN生成人體的新姿勢圖像
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
圖像生成對抗生成網絡gan_GAN生成汽車圖像 精選資料推薦
探討條件GAN在圖像生成中的應用

FAIR和INRIA的合作提出人體姿勢估計新模型,適用于人體3D表面構建
圖像遷移最新成果:人體姿勢和舞蹈動作遷移
基于DensePose的姿勢轉換系統,僅根據一張輸入圖像和目標姿勢
GAN在圖像生成應用綜述

生成對抗網絡GAN論文TOP 10,幫助你理解最先進技術的基礎

評論