文章目錄
- 1、人體需要檢測的關鍵點
- 2、Top-down方法
- 3、Openpose
- 3.1 姿態估計的步驟
- 3.2 PAF(Part Affinity Fields)部分親和場
- 3.3 制作PAF標簽
- 3.4 PAF權值計算
- 3.5 匹配方法
- 4、CPM(Convolutional Pose Machines)模型
- 5、Openpose
- 5.1 序列的作用
- 5.2 整體框架
1、人體需要檢測的關鍵點
在本項目中,需要檢測人體18個關鍵點,除了下圖所標注的17個關鍵點外,還有1個脖子關鍵點
2、Top-down方法
1、檢測得到所有人的框;
2、對每一個框進行姿態估計輸出結果
Top-down方法的問題
1、姿態估計做成啥樣主要由人體檢測所決定,能檢測到效果估計也沒問題
2、但是如果倆人出現重疊,只檢測到一個人,那肯定會丟失一個目標
3、計算效率有點低,如果一張圖像中存在很多人,那姿態估計得相當慢了
能不能設計一種方法不依賴于人體框而是直接進行預測呢?有的,接下來請看下面的方法
3、Openpose
3.1 姿態估計的步驟
姿態估計的2個步驟
1、識別出圖片中所有關鍵點,
2、按順序拼接同屬一個人的所有關鍵點
如下面左圖所示,我們識別人體18個關鍵點中的右肩關鍵點,就在圖片中建立熱度圖(高斯),識別18個關鍵點就需要建立18個特征圖
3.2 PAF(Part Affinity Fields)部分親和場
PAF作用:將屬于同一個人的不同關鍵點按順序拼接
整體框架如下,1張圖片經過CNN網絡后分成2個網絡,Parts Detection網絡是預測關鍵點,Parts Association網絡是預測方向,人體18個關鍵點總共需要19個不同的方向,而確定方向至少需要1個平面,即 x x x 和 y y y 坐標,所以Parts Association需要預測19x2=38個特征圖
3.3 制作PAF標簽
Parts Association輸出38張特征圖,其中19張特征圖預測 x x x 坐標,19張特征圖預測 y y y 坐標,每一張特征圖的像素點都需要輸出坐標值。在PAF標簽處理中,把2個關鍵點所包圍的矩形當中的所有像素值的方向與2個關鍵點的方向都一致。
藍色和紅色分別是兩個關鍵點, V V V 是其向量,
對于其中某個PAF特征圖(19種連接方式種的1種),這就相當于得到PAF標簽值了,包括所有人在該連接處的向量,
3.4 PAF權值計算
兩個關鍵點j1與j2之間的權值計算方法
d j 1 d_{j1} dj1?, d j 2 d_{j2} dj2?分別表示j1與j2兩點的坐標,求j1和j2間各點的PAF在線段j1j2上投影的積分,其實就是線段上各點的PAF方向如果與線段的方向越接近權值就越大
3.5 匹配方法
4、CPM(Convolutional Pose Machines)模型
為OpenPose后面的工作奠定了基礎,也可以當作基礎框架,通過多個stage來不斷優化關鍵點位置(stage1預測完全錯誤,2和3在糾正)
stage越多相當于層數越深,模型感受野越大,姿態估計需要更大的感受野,因為進行關鍵點檢測需要更多關于人體的信息,所以感受野越大則人體的信息越多,關鍵點檢測越能檢測準確
使用多個stage級聯的思想,每個stage都加損失函數,也就是中間過程也得做的好才行
5、Openpose
兩個網絡結構分別搞定:1、關鍵點預測;2、姿勢的‘親和力’向量
使用多個stage級聯的思想,2個網絡結構輸出之后再進行特征融合,因為方向的預測離不開關鍵點的位置信息,關鍵點的位置信息也與方向有關
5.1 序列的作用
多個stage,相當于糾正的過程,不斷調整預測結果
5.2 整體框架
兩個分支都要經過多個階段,注意每個階段后要把特征拼接一起