行人三維姿態與形狀估計面試準備

1.SMPL

 

2.HMR

本文達到了實時的人體三維姿態與形狀的估計,但是實際上測試最多能夠達到5fps,可以在有2D-3D之間的對應關係來訓練模型,也可以在沒有2D-3D的情況下利用弱監督的方式訓練模型,在人體存在遮擋或者截斷的情況下仍然能夠恢復出人體的三維模型,並且可以會恢復出人體的頭部和肢體的朝向。

具體貢獻點:(1)單幅RGB圖像恢復人體的3Dmesh結構,主要的目標函數約束是三維關節點重投影回二維圖像去擬合圖像的二維關節點,但是僅靠這個約束難以獲得較爲理想的效果(約束過少);(2)HMR可以被在2D-3D數據之間不匹配的情況訓練,只是在有3D數據(2D keypoints是一定有的)訓練的模型效果最佳;(3)不是依據圖像的 2Dkeypoints獲得SMPL的形狀beta和姿態sita參數,而是根據人體圖像的像素來回歸人體的參數;(4)模型可以在給出人體bounding box框的時候達到實時的效果;(5)在三維關節點估計和區域分割的模型上能夠達到具有競爭力的效果。

目前的兩階段的方法,首先檢測人體的二維關節點,利用二維關節點獲得SMPL的參數,本文利用人體圖像的像素信息,充分利用人體的像素信息,只利用二維關節點忽略很多有用的信息;本文輸出人體三維mesh,在三維關節點和運行時間有優勢;不利用2D-3D,只利用2D的信息(帶有2d keypoints 標註信息)也可以訓練,這樣可以打開場景的限制(3D scan數據有實驗場景的限制)

估計單幅圖像的人體Mesh能夠在前景和人體部位分割上得到大量的應用;在衝突和遮擋的情況下,總是恢復人體的三維mesh;本文輸出的是人體三維關節點,具體而言是三維關節點(運動樹結構)的旋轉矩陣(而不是歐拉角),獲得肢體和頭部的朝向;(預測旋轉矩陣可以確保肢體是對稱和在有效的長度內???);模型會在人體的三維模型數據集中學習三維關節點旋轉角度之間的限制。

目前問題的挑戰:(1)缺少大規模的三維人體標註的in the wild 數據集,現有的數據集都是在有限的實驗環境中獲得的人體掃瞄的三維模型,這些數據集訓練的三維模型在真實場景中的泛化能力較差;(2)單視角二維圖像與三維映射之間的歧義,多個三維模型可以map到相同的二維信息(關節點或者輪廓信息);(3)生成器迴歸出SMPL的三維參數,鑑別器(會學習哪些參數符合人體學結構特徵)判斷參數是否符合人體學的結構特徵,大多數現有的方法將人體姿態關節點的角度當成分類問題(將角度劃分爲一度一度的),這樣的離散的角度的精度不足(角度的一點偏差對重投影回二維關節點的影響很大),本文采用一種迭代迴歸的方式獲得三維模型的參數。

本文利用三維關節點來評估訓練的模型,(本人認爲可以用過mesh來衡量,都有了三維關節點可以利用SMPL擬合,得到SMPL模型呀),比兩階段的人體三維模型與姿態估計優,比單純估計人體三維關節點的方法相當(在當時)。

訓練的時候是需要人體二維關節點的,用來構成loss;一般是數據集帶有的標註gt(比如 MS COCO),否則利用OpenPose獲取二維關節點,所以自己的數據集可以利用Openpose構建(目前有更好的二維關節點檢測算法,PIFPAF可以試一下,可以自己構建一個PTZ場景下的數據集,這樣可以在圖像域上,更爲接近,恢復出來的效果應該更好);形狀決定三維關節點的位置(寬,高和骨骼比列);

本文的損失函數:

直接回歸85維參數難以實現,所以本文借鑑前人工作,設計了迭代的三維迴歸器,三維迴歸器的輸入是人體圖像的feature map特證和上一次迴歸的85維參數,三維迴歸器估計的是residual ,然後

初始的85維參數爲慘的均值,85維參數和輸入特徵是被簡單級聯在一起的,這樣的效果不錯。

利用鑑別器網絡鑑別產生的參數是否符合人體學結構學特徵(身體部位的交叉以及極限的身體姿態以及形狀)

鑑別器:爲每個姿態的關節點設置一個鑑別器,然後爲關節點設置了一個聯合的關節點鑑別器捕獲關節點的聯合分佈;當沒有與2D gt對應的3Dgt的時候,會提高鑑別器損失函數的權重;本文提出來的生成對抗模型,沒有經歷崩塌的原因是除了對抗損失之外還有重投影損失,3D損失進行約束;在K+2個鑑別器中(K是三維姿態關節點),每個鑑別器的輸出是【0-1】,代表着來自真實數據分佈的概率。

帶有2D keypoints 標註的二維數據集LSP, LSP-Extend, MPII,MS COCO;過濾了少於6個關節點可見的圖像;帶有2D和3D標註的數據集human3.6M和MPI-INF-3DHP;這兩個數據集都是在有限的環境下獲得的,本文利用Mosh方法獲得了Human3.6M的SMPL模型。利用CMU, Human3.6M,Pose Prior數據集構成範圍變化很廣泛的鑑別器訓練集。

所有的圖像被resize到224*224應爲編碼網絡是resnet50,人體區域裁剪是對角線像素爲150大小;數據增強方法有隨機scale, translated, and flipped;minibatch 64。

3維迴歸器的組成是兩個帶有1024個神經元的全連接層和一個dropout層,最後一層是85維的神經元的輸出

對於形狀鑑別器是兩個10,5 全聯接層, 對於每個姿態關節點會將sita角度利用羅格里格斯公司轉換爲旋轉矩陣,然後通過兩個32個神經元的嵌入式全聯接網絡;編碼輸出進入姿態的鑑別器網絡,姿態的鑑別器網絡是由10,5, 1和1024,1024,1

實驗結果:

3.denseBody

雲從科技提出的基於單楨圖像的3D人體重建技術,在Human3.6M、Surreal 和 UP-3D 三大數據集上創造了最新的世界紀錄將原有最低誤差記錄大幅降低 30%。

(1)在human 3.6M上的方法對比

(2)在surreal 和 UP-3D數據集上的誤差

 

時間僅需5ms,達到了超越實時;單幀圖像的 3D 重建技術不僅能輸出骨骼關節點信息,更能同時預測大量的人體表面關鍵點信息,預測結果更加豐富,而且每個點的座標都是 3D 的,能夠體現不同軀幹的縱深信息。傳統 3D 重建技術大多需要連續的圖像序列或是多視角的圖像;在硬件設備上一般需要採用雙目攝像機或者結構光攝像機等設備,因此在手機等便攜設備上往往難以實現;另一方面,專用設備還會增加部署成本,增加大規模普及 3D 重建技術的難度。行業應用:這項技術可通過重要人員影像重建、醫療仿真肢體打印虛擬試衣、美顏化妝、表情姿態動畫合成等應用場景在大型商場直播平臺、美顏軟件、影視特效製作等行業普及。

基於參數的學習模型,例如SMPL模型,將3D人體形狀限制在低維線性空間,使CNN模型更加容易學習,但是受到線性模型的限制,其性能可能達到最優。

本文提出的方法沒有結合任何參數化的人體模型,因此該網絡的輸出不會受到任何低維空間的限制;該方法的預測過程是一步到位的,沒有依賴於中間任務和結果來預測 3D 人體。

研究的主要貢獻點:

  1. 提出了一個端到端的方法,從單個彩色圖像直接得到 3D 人體網格。爲此,研究者開發了一種新型 3D 人體網格表示它能夠把 2D 圖像中的完整人體編碼爲姿勢和形狀信息無需依賴任何參數化的人體模型
  2. 3D 人體估計的複雜度從兩步降到了一步。該研究訓練了一個編碼器-解碼器網絡,可直接把輸入 RGB 圖像映射到 3D 表示,無需解決任何中間任務,如分割或 2D 姿態估計。
  3. 進行了多次實驗來評估以上方法的效果,並與現有的最優方法進行對比。結果顯示,該方法在多個 3D 數據集上實現了顯著的性能提升,運行速度也更快。

本文用 UV 位置映射圖來表示 3D 人體幾何結構, UV 映射圖作爲一種物體表面的圖片表達方式,經常被用來渲染紋理圖。大多數的 3D 人體數據集提供的三維標註是基於 SMPL 模型的,SMPL 模型本身提供了一個自帶的 UV 映射圖,把人體切分成了 10 個區域。​​​​​​​DensePose 裏面提供了另一種人體切分的方式,並提供了一個 UV 映射圖,將人體切分成了 24 個區域。我們實驗了兩種切分方式,SMPL 的 UV 映射圖獲得了更好的實驗結果。因此,在我們的方法中,我們採用這個 UV 映射圖來存儲整個人體表面的三維位置信息。 本文選擇了 256 的分辨率,它引入的 1 毫米全身精度誤差可以忽略不計。另外,256 分辨率的 UV 映射圖能夠表示六萬多個頂點,遠多於 SMPL 的頂點數。

我們的網絡採用編碼器-解碼器結構,輸入是 256*256 的彩圖,輸出是 256*256 的 UV 位置映射圖,其中編碼器部分使用 ResNet-18,解碼器是由四層上採樣和卷積層組成。不同於以前的方法中需要仔細設計和融合多種不同損失函數的做法,我們直接針對預測的 UV 位置映射圖進行監督和設計損失函數;爲了平衡不同的身體區域對訓練的影響,我們採用了權重掩模圖來調整損失函數。此外,關節點附近的點的權重也進行了加重。

實現細節:

所有的圖像都先做了對齊使人位於正中。通過裁剪和縮放調整到 256x256,使得緊湊的邊界框和圖像邊緣之間距離適中。圖像經過了隨機的平移、旋轉、翻轉和色彩抖動。我們要注意,數據增強的操作大都不簡單,因爲對應的真值數據也要進行相應的形變。

對於人體表面上的每個3D頂點,X和Y座標對應於圖像中的點Z座標是到root point的相對深度。我們將頂點的X、Y、Z座標存儲爲UV圖中的R、G、B顏色值。

4.常用數據集

5.openpose

Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields ;

輸入一張圖片,經過一個backbone(比如vgg,resnet,mobilenet),再經過6個stage,每個stage有兩個branch,一個用來檢測heatmap,一個用來檢測vectmap。有了heatmap和vectmap就可以知道圖片中所有關鍵點,再通過PAFs把點對應到每個人身上。

輸入一幅圖像,經過卷積網絡提取特徵,得到一組特徵圖,然後分成兩個支路,分別使用CNN提取part confidence maps(圖b)和part affinity fields(圖c);
得到這兩個信息後,我們使用圖論中的bipartite matching(偶匹配)求出part association(圖d),將同一個人的關節點連接起來,由於PAF自身的矢量性,使得生成的偶匹配很正確,最終合併爲一個人的整體框架(圖e)
最後基於PAFs求multi-person parsing —把multi-person parsing問題轉換成graphs問題—Hungarian algorithm(匈牙利算法)匈牙利算法

大概步驟:

1.以wh大小的彩色圖像作爲輸入
2.經過VGG的前10層網絡得到一個特徵度F
3.網絡分成兩個循環分支,一個分支用於預測置信圖S:關鍵點(人體關節),一個分支用於預測L:像素點在骨架中的走向(肢體)
4.第一個循環分支以特徵圖F作爲輸入,得到一組S1,L1

5.之後的分支分別以上一個分支的輸出St-1,Lt-1和特徵圖F作爲輸入
6.網絡最終輸出S,L
7.損失函數計算S,L的預測值與groundtruth(S
,L*)之間的L2範數;S和L的groundtruth根據標註的2D點計算,如果某個關鍵點標註缺失則不計算該點 。

(1)利用循環神經網絡計算,CMP:confidence maps for part

(2)PAF:part affiity fields關節連接:(肢體)​​​​​​​

(3)MultiPerson Parsing using PAFs

藉助非最大抑制,從預測出的confidence maps得到一組離散的關鍵點候選位置

6.PIFPAF

 

7.Hourglass 沙漏網絡

8.keep it SMPL

本文的系統叫做:SMPLify, 輸入單幅RGB圖像,(1)利用Deep Cut CNN去預測人體的二維身體關節點獲得關節點的置信度,然後利用SMPL模型去擬合二維關節點。(2)提出膠囊結構防止身體各部位的衝突,每個膠囊有對應的半徑和軸長,設計迴歸器(線性迴歸器)從身體的形狀參數獲得膠囊參數(SMPL利用形狀去確定關節點的位置)通過三維姿態去放置膠囊。

本文提出了首次提出 Automatic Estimation of 3D Human Pose and Shape from a Single Image,而且實驗證明二維關節點蘊含了豐富的人體形狀的信息。

難點:(1)人體身體結構的複雜(鏈式結構),而且會出現遮擋,表觀變化,光照變化; (2)3D到二維自身存在這歧義

本文在the Leeds Sports, HumanEva, and Human3.6M datasets數據集比較了恢復出來的三維關節點,是當時最好的方法;設計的 目標函數的目的是讓三維關節點最大程度地與二維關節點融合。

實際內容:(1)構建交融項防止身體不同部位的融合,交融項的是由膠囊結構構建而來,膠囊的維度是由模型形狀線性迴歸而來,交融項防止了不正確的人體怪物;(2)構建了中性的SMPL模型;(3)引入姿態先驗,使用Mosh利用SMPL模型擬合CMU mocap marker data。

sita確定關節點的連接方式,J(beta)確定關節點的位置,R(sita)是通過sita的全局鏈式轉換;通過形狀的迴歸模型確定膠囊的半徑和軸長。

目標函數:

姿勢先驗,也就是損失函數的第二項是膝蓋和肘部的姿態旋轉的約束,利用指數函數強烈的約束非自然的旋轉情況,當關節點沒有彎曲的時候sita等於零,負值是正常的所以懲罰小,正值是不正常的所以懲罰大。

利用CMU mocap marker data 訓練姿勢先驗,利用高斯分佈來擬合數據集中的姿態信息

將膠囊模型模型近似爲一個球,物理上不相交的膠囊進行loss約束

更具形狀先驗直接對beta進行約束

9.Unite the people: Closing the Loop Between 3D and 2D Human Representations

貢獻點:產生擁有豐富標註信息的UP-3D數據集,該數據集可以用於二維姿態(91個人體關節點)估計,身體部位(31個部位)分割,以及3d人體姿態與性狀的估計。

獲得人體二維姿態的標註數據集是容易的(比如the MPIIHumanPose dataset);本文采用的3D人體姿態和形狀的估計(3D Fits)是在SMPLify的基礎上做的進一步改進,使用隨機森林的方法進行3維姿態的估計,速度上比SMPLify明顯地變快了,在Human EVA,Human 3.6, 以及LSP(9.3%的更高的品質的人體姿態估計)。

SMPLify對於形狀的估計只能通過人體的關節點之間的連接長度來決定,要準確的估計人體的形狀,需要引入額外的人體形狀監督信息;最佳的形狀監督信息,是將恢復出來的SMPL模型的surface重投影回圖像的二維輪廓中;引入輪廓監督信息的損失函數爲:

本文通過決策樹利用91個二維關節點預測SMPL的beta和sita(迴歸的是旋轉矩陣,直接回歸歐拉角不連續)

10.densepose

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章