2D/3D姿態估計整理

2D

主要參考:
https://www.jianshu.com/p/39fe654ed410
https://blog.csdn.net/sinat_26917383/article/details/79704097

2個思路:

1)Top-Down(自上而下)方法:將人體檢測和關鍵點檢測分離,在圖像上首先進行人體檢測,找到所有的人體框,對每個人體框圖再使用關鍵點檢測,這類方法往往比較慢,但姿態估計準確度較高。目前的主流是CPM,Hourglass,CPM,Alpha Pose等。

2)Bottom-Up(自下而上)方法:先檢測圖像中人體部件,然後將圖像中多人人體的部件分別組合成人體,因此這類方法在測試推斷的時候往往更快速,準確度稍低。典型就是COCO2016年人體關鍵點檢測冠軍Open Pose。

經典模型

CPM

論文:https://arxiv.org/abs/1602.00134
代碼:https://github.com/shihenw/convolutional-pose-machines-release
解析:https://blog.csdn.net/u010579901/article/details/79606257
主要思想:
論文設計的網絡分爲多個階段(stage):前面階段使用原始圖片作爲輸入,後面階段使用之前階段生成的特徵圖作爲輸入,這樣做主要是爲了融合空間信息,紋理信息。
  論文中,爲了進一步提升精度,採用加大網絡的感受野的方式來學習各個部件 parts 之間的空間幾何約束關係, 保證精度的同時考慮各個部件的遠距離關係.
  同時,網絡採用全卷機網絡(FCN), 可以 end-to-end joint training, 同時爲了防止梯度消失, 在各個階段中添加監督信息, 避免網絡過深難以優化的問題.
在這裏插入圖片描述
Stage 1 input是原始圖像,經過全卷機網絡,輸出是一個P+1層的2Dmap。其中,全卷積網絡中有7個卷積層,3個池化層,原始輸入圖片是 368368 ,經過3次池化後得到 4646 大小。又因爲這裏使用的數據庫是半身結構,只有9個關節點,因此加上背景,輸出的響應圖大小應該是 464610。
  Stage 2 input是 Stage1 的 Output 響應譜,並且加上原始圖像通過幾層網絡後的特徵譜 feature map。輸出是一個P+1層的2Dmap。其中,stage 2 融合了三部分的信息–一是stage1的響應圖,二是原始圖像的圖像特徵,三是高斯模版生成的中心約束。圖像深度變爲10+32+1 = 43。
  Stage 3 及其後面各個階段的網絡結構和 Stage 2 相似
  爲了防止訓練時出現梯度消失的問題:論文采用了中層監督(加入中層loss),加強反向傳播。

注: 在cpm網絡結構中,網絡有一個格外的輸入: center map,center map爲一個高斯響應。因爲cpm處理的是單人pose的問題,如果圖片中有多人,那麼center map可以告訴網絡,目前要處理的那個人的位置。因爲這樣的設置,cpm也可以自底向上地處理多人pose的問題。
  
隨着stage的增長,CPM會學習到parts之間的空間幾何約束關係來糾正容易出錯的情況.在這裏插入圖片描述

CMU OpenPose

論文:https://arxiv.org/abs/1812.08008
升級版論文:https://arxiv.org/abs/1909.13423
github:https://github.com/CMU-Perceptual-Computing-Lab/openpose
論文解析:https://blog.csdn.net/wwwhp/article/details/88782851
https://blog.csdn.net/weixin_41665360/article/details/90905476
核心思想:
文章的核心是提出一種利用Part Affinity Fields(PAFs)的自下而上的人體姿態估計算法。研究自下而上算法(得到關鍵點位置再獲得骨架)而不是自上而下算法(先檢測人,再回歸關鍵點),是因爲後者運算時間會隨着圖像中人的個數而顯著增加,而自下而上所需計算時間基本不變。
在這裏插入圖片描述
首先是輸入一張原始圖片,經過基礎網絡VGG進行簡單的特徵提取,得到一個Feature map,然後在stage1,經過兩個分支分別預測。第一個分支爲關鍵點的分支,這個分支也爲CPM的經典方法,此外在這個分支的基礎之上增加了PAF骨骼點走向的分支。之後的階段與上面的類似,最終得到網絡的輸出S,L。
損失函數的計算,兩種loss求和。
在這裏插入圖片描述

DeeperCut

論文:https://arxiv.org/abs/1605.03170
github:https://github.com/eldar/pose-tensorflowhttps://github.com/mattzheng/pose-tensorflow-detailed
論文解讀:https://blog.csdn.net/qq_36165459/article/details/78321696https://blog.csdn.net/qq_36165459/article/details/78321696
思路:首先使用CNN提取body part candidates,每一個候選區域對應的是一個關節點, 每一個關節點作爲圖中的一個節點,所有的這些候選關節點組成代表的節點組成一副完整的圖,正如上圖dense graph所示。節點之間的關聯性作爲圖中的節點之間的權重。這時,可以將其看作是一個優化問題,將屬於同一個人的關節點(圖中的節點)歸爲一類,每一個人作爲一個單獨的類。同時,另一條分支,需要對檢測出來的節點進行標記,確定他們屬於人體的哪一個部分。最後,使用分類的人結合標記的部分構成最終的每個人的姿態估計。

在這裏插入圖片描述

Hourglass

論文:https://arxiv.org/abs/1603.06937
github:https://github.com/princeton-vl/pose-hg-train
論文解讀:https://blog.csdn.net/jerryzhang__/article/details/98308729
https://blog.csdn.net/zziahgf/article/details/72732220
主要網絡結構:
(1)"hourglass"模塊的基本結構
"hourglass"模塊的基本結構如下圖所示,圖中的每一個方塊都表示一個殘差模塊。
hourglass module
根據論文的代碼,殘差模塊的具體形式如下:
residual block in hourglass network
(2)"stacked hourglass network"的整體結構
"hourglass network"的整體結構如下圖所示,輸入的圖像首先經過卷積和pooling操作後,尺寸縮小四倍(256x256->64x64),然後接多個"hourglass"模塊。在中間的每一個"hourglass"模塊後都會輸出一箇中間結果heatmaps,參與損失函數計算,並會將這個heatmaps通過1x1的卷積“remap”回去,與原來的feature map相加到一起。具體詳細的結構可以參見下圖。
stacked hourglass network

CPN(Cascaded Pyramid Network)

論文:https://arxiv.org/abs/1711.07319
github:https://github.com/chenyilun95/tf-cpn
論文解讀:https://blog.csdn.net/yangzhengzheng95/article/details/85288347
https://blog.csdn.net/weixin_41665360/article/details/90780857

AlphaPose

論文:https://arxiv.org/abs/1612.00137v3
github:https://github.com/MVIG-SJTU/AlphaPosehttps://github.com/MVIG-SJTU/AlphaPose/tree/pytorch
論文解讀:https://www.cnblogs.com/taoshiqian/p/9593901.htmlhttps://blog.csdn.net/TwT520Ly/article/details/79258594

CrowdPose(AlphaPose v2)

論文:https://arxiv.org/abs/1812.00324
github:https://github.com/MVIG-SJTU/AlphaPosehttps://github.com/MVIG-SJTU/AlphaPose/tree/pytorch
論文解讀:https://blog.csdn.net/Gavinmiaoc/article/details/89876752https://blog.csdn.net/Murdock_C/article/details/84886471

HRnet

論文:https://arxiv.org/abs/1904.04514
github:https://github.com/leoxiaobin/deep-high-resolution-net.pytorch
論文解讀:

HigherHRNet

論文:https://arxiv.org/abs/1908.10357
github:
論文解讀:

3D

DensePose

論文:https://arxiv.org/abs/1802.00434
github:https://github.com/facebookresearch/Densepose
配置:https://blog.csdn.net/FatMigo/article/details/88246815
論文解讀:https://blog.csdn.net/Julia_deeplearning/article/details/83011798

VideoPose3D

論文:https://arxiv.org/abs/1811.11742
github:https://github.com/facebookresearch/VideoPose3Dhttps://github.com/tobiascz/VideoPose3D
論文解讀:https://blog.csdn.net/chizhaoyi1901/article/details/89136182

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