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

圖像生成對抗生成網(wǎng)絡gan_GAN生成汽車圖像 精選資料推薦
探討條件GAN在圖像生成中的應用

FAIR和INRIA的合作提出人體姿勢估計新模型,適用于人體3D表面構(gòu)建
移動4G網(wǎng)絡,開啟看世界杯直播新姿勢
圖像遷移最新成果:人體姿勢和舞蹈動作遷移
基于DensePose的姿勢轉(zhuǎn)換系統(tǒng),僅根據(jù)一張輸入圖像和目標姿勢
GAN在圖像生成應用綜述

必讀!生成對抗網(wǎng)絡GAN論文TOP 10

生成對抗網(wǎng)絡GAN論文TOP 10,幫助你理解最先進技術(shù)的基礎

評論