1. 程式人生 > >Simple Baselines for Human Pose Estimation and Tracking

Simple Baselines for Human Pose Estimation and Tracking

介紹

微軟神作,pose track 的新base line 

比ICCV Pose track 冠軍在mAP上高15個點,在MOTA上高6個點

姿態估計

一個簡單的ResNet 結構

  • 三個卷積層+BN+ReLU
  • 中間一個1*1的卷積層產生pose的heatmap
  • 後面接了3個反捲積和卷積交替的網路獲得高解析度的heatmat
  • 使用Mean Squared Error(MSE) loss, 目標的heatmat 是通過在目標位置附近使用一個2D高斯分佈。

對比另外兩種主流獲取關鍵點heatmap 的架構:

左邊的是Hourglass框架:

Newell, A., Yang, K., Deng, J.: Stacked hourglass networks for human pose estimation. In: European Conference on Computer Vision, Springer (2016) 483-499

右邊的是Cascaded pyramid network(CPN), COCO2017 關鍵點挑戰的領先方案:

Chen, Y., Wang, Z., Peng, Y., Zhang, Z., Yu, G., Sun, J.: Cascaded pyramid network for multi-person pose estimation. arXiv preprint arXiv:1711.07319 (2017)

論文中,作者指出這三種框架中,本文所提更簡潔,從結果來看,本文方法雖然簡單,但是結果棒棒的。作者沒有指明為嘛他們的簡單網路實現姿態估計的效果更好。結果對比如下圖所示

姿態跟蹤

問題描述:

前一幀檢測結果以及ID已經確定:P_{k-1} = {p_i},p_i=(joints_i,id_i)

當前幀的檢測結果已經有了,確定當前幀的ID:P_k = {p_j},p_j=(joints_j,id_j=None)

 

論文裡首先分析了ICCV'17 PoseTrack 挑戰冠軍是怎麼做的:

Girdhar, R., Gkioxari, G., Torresani, L., Paluri, M., Tran, D.: Detect-and-track:Efficient pose estimation in videos. arXiv preprint arXiv:1712.09184 (2017)

  • 首先對每一幀用Mask-RCNN估計人體姿態
  • 然後在幀間進行線上的跟蹤,使用的是一個貪婪的二分匹配演算法:
  1. 對於前一幀和當前幀的結果進行相似計算s(p_i,p_j)
  2. s(p_i,p_j)進行排序,選擇相似度最高一對p_i,p_jp_j繼承p_i的ID,然後這兩個結果從集合中剔除
  3. 在剩下的集合元素中繼續找相似度最高的匹配,重複2,直到沒有了
  4. 在當前幀的結果中,如果還有剩餘沒有匹配的,就各自發一個新的ID

本文參考這種做法,但在細節上又兩點不同:

  • 本文的人體框有兩種來源,一種是當前幀的檢測結果(Mask-RCNN),另外一種的上一幀的結果,通過光流wrap到當前幀的,如下圖所示,右邊圖中,黑色框的當前幀檢測結果,藍色的是上一幀wrap過來的。這樣做是為了彌補當前幀檢測漏檢問題。

給定上一幀的結果P_{k-1} =\{p_i\},p_i=(joints_i,id_i),以及兩幀間的光流F(I_{k-1},I_k),估計上一幀的目標在當前幀的結果\hat{P}_k = \{\hat{p}_j\},\hat p_j=(\hat{joints}_j,\hat{id}_j):

  1. 通過光流把上一幀的關節點wrap到當前幀
  2. 用一個適當擴大的邊界框包含該目標在當前幀的關鍵點

  • 另外是兩個框的相似計算,提出使用一個基於流的姿態相似度量指標

首先介紹兩種可以參考的相似度度量:

  1. 使用邊界框的IOU去定義s(p_i,p_j),會在目標快速運動時產生問題,IOU比較低
  2. 一個更細粒的度量是姿態相似,姿態相似計算兩個人體之間同一關節的距離 , One Keypoint Similarity(OKS),這方法的問題在於人的姿態是會變化的和前面的IOU相似

從上面的warp結果,我們得到了幀k目標p_i在幀l的目標\hat{p_i},顯然這個通過光流wrap得到的\hat{p_i}蘊含了該目標在當前幀應有的位置以及樣子

給定幀k的一系列目標P_k = \{p_i\},和幀l的一系列目標P_l = \{p_j\},基於流的姿態相似度度量定義為:

S_{Flow}(P_k,P_l) = OKS(\hat{P}_k,P_l)

由於遮擋問題,相鄰兩幀的wrap並不能很好的解決由於遮擋產生的丟失問題,因此需要通過多相隔幀進行wrap。

最後的演算法流程圖

結果:

COCO-Pose Estimation:達到頂尖,提升不多

Pose-Track - Pose Estimation: 達到頂尖,高10個點,重新整理了baseline

Pose-Track - Pose Track: 達到頂尖,比baseline高6個點

重點看這個warp對於結果的影響從結果上看,通過wrap雖然不能改善精度,但是召回提升還是特別明顯的,在不同的檢測框架下均有5到6個點的提升