一 寫在前面
未經(jīng)允許阵苇,不得轉(zhuǎn)載,謝謝~~~
這篇論文主要是將如何通過GCN網(wǎng)絡(luò)實(shí)現(xiàn)人體從單張圖像到3D mesh的重建過程的。
- 文章出處: 2019 CVPR oral
- 文章鏈接: https://arxiv.org/abs/1905.03244
- 項(xiàng)目website:https://www.seas.upenn.edu/~nkolot/projects/cmr/
- 項(xiàng)目代碼:https://github.com/nkolot/GraphCMR/
二 主要內(nèi)容
2.1 motivation
1. 任務(wù)難
從單張圖像重建出三維模型這個(gè)過程本身就很難桶癣,主要有以下幾點(diǎn):
- multiple cameras 多相機(jī)角度;
- the excessive ambiguity 過度模糊娘锁;
- the limited training data 訓(xùn)練數(shù)據(jù)有限牙寞;
- the wide range of imaging conditions;相差較大的成像條件莫秆;
2. 之前的方法
- 一開始是基于優(yōu)化的方法:optimization method间雀;
- 后來比較多的是基于學(xué)習(xí)的方法:Learning-based method;
而在基于學(xué)習(xí)的方法里大多數(shù)研究的是基于什么模態(tài)進(jìn)行學(xué)習(xí)镊屎,例如:
- Surface landmarks惹挟;
- pose keypoints and silhouettes ;
- semantic part segmentation 缝驳;
- raw pixels.
但是大多數(shù)的模型都是用SMPL(非常經(jīng)典的做人體重建的一篇文章)的參數(shù)化表示方法作為回歸目標(biāo)连锯,這一點(diǎn)在作者看來是非常self-constraint的。
2.2 related work
- Optimization-based shape recovery: 基于優(yōu)化方法的形狀重建
- Direct parametric regression: 直接參數(shù)回歸
- Nonparametric shape estimation: 非參數(shù)化形狀估計(jì)
- Graph CNNs: 圖卷積神經(jīng)網(wǎng)絡(luò)
2.2 本文工作
- 用了一個(gè)更加混合的學(xué)習(xí)方式党巾,保留了SMPL的模板mesh唾那,但是并沒有直接回歸SMPL的模型參數(shù),而是通過回歸模板mesh上的各個(gè)點(diǎn)坐標(biāo)來達(dá)到生成想要的人體模型的效果坤次。
- 考慮到人體需要有很多的點(diǎn)來表示孩等,所以用GCN網(wǎng)絡(luò)。
-
具體從image到mesh的變換學(xué)習(xí)過程如下所示:
主要的pipeline為:
- 給定一張圖署海,用任何一個(gè)經(jīng)典的2D CNN都可以提出到低維的圖像特征吗购;
- 將低緯度的圖像特征嵌入到template mesh的各個(gè)頂點(diǎn)中;
- 這樣每個(gè)頂點(diǎn)都有其坐標(biāo)位置及對(duì)應(yīng)的feature vector砸狞;
- 通過GCN層來不斷迭代進(jìn)行優(yōu)化捻勉;
- 最后得到回歸后的3D mesh的各個(gè)頂點(diǎn)坐標(biāo),對(duì)應(yīng)圖中的output mesh刀森;
三 具體實(shí)現(xiàn)
3.1 image-based CNN 圖像特征提取網(wǎng)絡(luò)
- 用ImageNet預(yù)訓(xùn)練的RestNet50作為通用的圖像特征提取器踱启;
- 對(duì)于每個(gè)輸入圖像,都能獲取到2018D的特征向量;
- 文章中還探索了其他方式的數(shù)據(jù)埠偿,但這不是研究重點(diǎn)透罢。
3.2 GCN 圖卷積神經(jīng)網(wǎng)絡(luò)
本文的一個(gè)核心就是用GCN來回歸mesh的各個(gè)頂點(diǎn)的坐標(biāo),前文所述的將二維圖像特征合并到三維人體的各個(gè)頂點(diǎn)上去之后的迭代學(xué)習(xí)的過程就是通過GCN來實(shí)現(xiàn)的冠蒋。
1. GCN
對(duì)于GCN羽圃,理解一下這個(gè)表示:
- X, 維度:[N,k], 表示輸入的特征向量抖剿,對(duì)應(yīng)上圖中的
Input: Image features ⊕ template 3D coordinate
- W, 維度:[k, l ], 表示待學(xué)習(xí)的權(quán)重參數(shù)朽寞;
- A~, 維度:[N,N], 表示鄰接矩陣斩郎,即反應(yīng)mesh中各個(gè)頂點(diǎn)之間的連接關(guān)系脑融;
這個(gè)操作其實(shí)等價(jià)于對(duì)每個(gè)頂點(diǎn)都做一個(gè)fc操作,然后再對(duì)相鄰的頂點(diǎn)之間進(jìn)行一次avg pooling的操作缩宜。這里avg pool的作用的可以保證相鄰節(jié)點(diǎn)之間的平滑性吨掌,這樣在loss設(shè)計(jì)的時(shí)候就不需要額外去考慮這個(gè)因素。
[未驗(yàn)證]體現(xiàn)在具體實(shí)現(xiàn)上應(yīng)該就是先對(duì)輸入X做一次fc(參數(shù)為W)脓恕,然后再對(duì)鄰居節(jié)點(diǎn)(通過A~確定)做一次avg pooling膜宋;
2. 殘差結(jié)構(gòu)
文章還使用殘差結(jié)構(gòu)來加快U型你連過程呢個(gè),并得到質(zhì)量更好的結(jié)果炼幔。
文中描述:基本的殘差塊結(jié)構(gòu)與殘差網(wǎng)絡(luò)中的類似秋茫,做了如下改進(jìn):
-
1*1
的卷積層用per-vertex fc layer
代替; -
BN
層用grounp normalization layer
代替乃秀;
3. 其他
除了用GCN回歸了mesh的頂點(diǎn)坐標(biāo)肛著,還回歸到了相機(jī)的參數(shù):
- scaling factor:s
- 2D translation: t
3.3 network training 模型訓(xùn)練過程
1. ground truth
-
Y
, 維度[N,3] , 表示目標(biāo)形狀的各個(gè)坐標(biāo)點(diǎn)表示跺讯; -
X
枢贿,表示目標(biāo)二維圖像的2D關(guān)節(jié)點(diǎn)位置表示;
2.模型預(yù)測(cè)結(jié)果
-
Y^
刀脏, 模型預(yù)測(cè)得到的mesh上的各個(gè)點(diǎn)坐標(biāo)局荚; -
X^
, 通過將Y^
用類似于SMPL里面的方法得到3D關(guān)節(jié)點(diǎn)J^_3D
,然后將其映射回2D得到的關(guān)節(jié)點(diǎn)坐標(biāo)位置愈污。
3.loss計(jì)算
根據(jù)上述提到的3D形狀及對(duì)應(yīng)的2D關(guān)節(jié)點(diǎn)耀态,分別構(gòu)成兩部分的loss:
-
形狀loss:
-
關(guān)節(jié)點(diǎn)loss:
-
最終loss:
對(duì)于有些沒有對(duì)應(yīng)關(guān)節(jié)點(diǎn)
X^
的數(shù)據(jù),就只用形狀loss(實(shí)驗(yàn)證明也可以)暂雹。
四 datasets 數(shù)據(jù)集
- Human3.6M
- UP-3D
五 寫在最后
有機(jī)會(huì)要跑一下源碼~
最后跑個(gè)題首装,我愛麻麻,最大的愿望就是家人一切都好杭跪,也祝所有的天下母親節(jié)日快樂ヾ(°?°)??