一 寫在前面
未經(jīng)允許,不得轉(zhuǎn)載,謝謝~~~
這篇文章主要做的是3D human pose estimation,從單圖中恢復3D的人體skeleton信息。
主要信息:
- 文章出處:CVPR2020
- 文章代碼:https://github.com/Nicholasli1995/EvoSkeleton
- 原文鏈接:http://openaccess.thecvf.com/content_CVPR_2020/html/Li_Cascaded_Deep_Monocular_3D_Human_Pose_Estimation_With_Evolutionary_Training_CVPR_2020_paper.html
二 主要內(nèi)容
2.1 相關(guān)背景
盡管現(xiàn)有的3D human body estimation方法比較成功,但是仍然需要面臨以下2個問題:
- 對于RGB圖像的3D標注工作非常耗費人力/時間/資金;
- 現(xiàn)有的數(shù)據(jù)集非常的biased,大多數(shù)是室內(nèi)的數(shù)據(jù)集,而且包含的動作也是少數(shù)被選擇的日常行為。
這就導致現(xiàn)有方法仍然是data-hungry以及不能很好的恢復novel pose。
而現(xiàn)有的很多方法是基于two-stage模式的:
- locates 2D human keypoints;
- lifts the 2D joints into 3D skeleton;(using geometric info)
其中stage1比較方便,且可以利用很多wild的數(shù)據(jù)集,所以訓練數(shù)據(jù)不會很受限,但是stage2能用的training data就很少。
2.2 本文工作
針對這些現(xiàn)象,文章提出了2個問題:
- are 2D-to-3D networks influenced by data bias;
- if yes,how can we improve network generalization when the training data is limited in scale or variation?
本文的工作可以說都針對以上2個問題進行展開:
- 首先提出用層次化的人體模型來表示training data,將human pose表示為local bone orientation的集合;
- 然后提出dataset evolution framework來處理數(shù)據(jù)集受限的問題。(可以理解為數(shù)據(jù)增強算法)。利用一些簡單的先驗知識,在不用任何標注的情況下,通過crossover(交叉),mutation(變換)等操作實現(xiàn)3D空間中新3D skeletons的生成;
- 在增強好的數(shù)據(jù)上,提出一個級聯(lián)網(wǎng)絡(luò)cascaded network(TAGNet),用來預測最后的3D skeleton。TAGNet主要包含1)2D joint detector 2) a novel cascaded 2D-to-3D network;
- 把他們增強好的數(shù)據(jù)集release出來了。(目前暫時沒有找到)
經(jīng)過對dataset進行增強后,其效果比之前的方法都好,能解決dataset biased的問題,且能較好的處理novel pose。

三 具體方法
3.1 Hierarchical Human Representation
首先是3D skeleton的表示:

如圖,從整體上看是一個tree(注意不是graph),而是有方向的樹,從parent節(jié)點指向child節(jié)點。然后對于每個parent,都有一個以當前parent為坐標中心的local坐標系。其中l(wèi)ocal 坐標系是由三個基向量[i,j,k]定義的旋轉(zhuǎn)矩陣定義的。
這樣將全局的向量表示轉(zhuǎn)換到local的向量表示:

最后為了便于計算,還將其轉(zhuǎn)換到橢圓坐標系上:

3.2 Synthesizing New 2D-3D Pairs
主要想法:主要是3D data比較少,所以對現(xiàn)有的3D skeleton進行新數(shù)據(jù)的生成,再利用相機參數(shù)將其映射回去,得到對應的2D keypoints就得到了新的數(shù)據(jù)。
主要的操作包括以下兩種:

1) crossover(左邊)
隨機選擇一個頂點,圖中為左手臂靠近脖子的第一個,然后將pose A和pose B這個點以下的部分全部交換。
2)mutation(右邊)
對旋轉(zhuǎn)角度加一些高斯變換,改變其方向。
此外,也包括對整個人進行角度的轉(zhuǎn)換,以及bone的長度的改變,以更好的增加數(shù)據(jù)集多樣性。
3.3 Model Architecture
網(wǎng)絡(luò)部分比較簡單。

第一個階段是獲取熱力圖以及對應的2D keypoints,文章的重點是在從2D keypoints到3D keypoints的轉(zhuǎn)換過程,也就是第二個階段。
這里是直接針對坐標進行學習的網(wǎng)絡(luò),了解這個就比較清楚了,也就是輸入輸出都是坐標的數(shù)值。具體的網(wǎng)絡(luò)模型的設(shè)計(第2排)用級聯(lián)的方式達到一個循序漸進的效果。
四 實驗結(jié)果
4.1 與弱監(jiān)督的方法比(H3.6M for training and testing)

4.2 與SOTA比 (H3.6M for training and testing)

4.3 跨數(shù)據(jù)集的生成能力 (H3.6M for training,3DHP for testing)

4.4 數(shù)據(jù)增強算法可視化
left:before augmentation
right:after augmentation

五 寫在最后
感謝閱讀~
以及關(guān)注下,點個贊再走么~(′?`)?