天天看點

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

論文位址:CPN

論文總結

  本文方法名為

CPN

,是個

top-down

的檢測方法,即先用檢測器得到人類的bounding box,再使用CPN來檢測關鍵點。CPN是2017年COCO關鍵點檢測的冠軍算法。

  如名字所言,是一個級聯的金字塔網絡。CPN由三個子網絡組成:

Backbone、GlobalNet、RefineNet

。其中Backbone用于提取特征,GlobalNet用于融合不同尺度的特征(金字塔),RefineNet用于得到精細的輸出。文中Backbone使用的是ResNet。

  在訓練時,在每個GlobalNet的輸出上都添加一個預測,當做

“中間監督”

,使得收斂更加容易。由于有多個輸出,CPN旨在GlobalNet預測出較為“simple”的關鍵點,但可能對遮擋、不可見的關鍵點無效;在RefineNet預測出較為“hard”的關鍵點,為達這個目的,RefineNet輸出的損失函數使用

online hard-keypoint mining loss

,簡寫為

ohkm

方法。由于設計時是對GlobalNet和RefineNet有不同的目标期待,是以CPN又稱為

two-stage

的姿态估計方法,RefineNet的名字由來也是對輸出的keypoint 進行Refine的意思。

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

論文介紹

  CPN是個two-stage的網絡架。GlobalNet使用FPN網絡學習好的特征表示,去預測那些可以通過簡單特征表現可以看出來的simple joints;RefineNet使用FPN網絡得到的金字塔特征,去預測那些不可見、遮擋的hard joints。

  CPN所使用的檢測器為FPN detector,其将RoIAlign應用在FPN上,COCO資料集的80個類别都正常檢測,最後隻提取出human bounding box用于pose檢測。

  CPN所使用的backbone為ResNet,特征提取層(為Keypoints生成heatmaps)為 C 2 ∼ C 5 C2\sim C5 C2∼C5,即每個stage的殘差快的最後一個輸出。

  在特征金字塔與上采樣的特征進行element sum之前,使用一個 1 ∗ 1 1*1 1∗1卷積對提取出的特征進行處理。

  經過上采樣的融合特征,可以添加pose檢測器直接預測關節點,即GlobalNet的各級輸出。

  RefineNet将GlobalNet中不同level的資訊進行整合,最後通過上采樣到相同尺度後,使用Concat操作結合在一起。而資訊整合的過程,如上圖所示,在

較低level的特征上使用較多的bottleneck blocks

,然後

一步直接使用大尺度的雙線性上采樣到指定的輸出尺度

。RefineNet的損失函數使用ohkm方法後,隻對Loss最大的k個joints進行關鍵點回歸。

論文實驗

實驗細節

  Crop政策:對每個human bounding box,都擴充到某個固定的比率(比如 256 : 192 256:192 256:192),然後從沒有經過變形操作(長寬比)的圖像中進行Crop操作。最後将crop出來的圖檔Resize到 256 ∗ 192 256*192 256∗192。

  資料增強政策:在Crop之後,使用随機flip,随機rotation( − 45 ° ∼ 45 ° -45°\sim45° −45°∼45°),随機Scale( 0.7 ∼ 1.35 0.7\sim1.35 0.7∼1.35)。

  在

測試時,使用高斯核與predict heamaps上,用以減少預測的方差

消融學習

  在

人類檢測器上

,hard NMS的門檻值越高,keypoint檢測的效果越好;soft NMS對于detections和key points detections都有效。

  從下表可以看出,

随着檢測框的AP增加,keypoint detection獲得的AP增益越來越少。

是以,可以認為較高的檢測AP已經包含了大部分的medium和large執行個體。

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

  

作者認為,現在姿态檢測的關鍵在于加強姿态估計的難點keypoint的準确率。

  在CPN上,使用Hourglass 和 ResNet50作為backbone的實驗如下表所示。 2 2 2個stack hourglass已經達到了 8 8 8個stack glass的性能。

dialation在淺層應用彙大大增加計算量(FLOPs)

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

  從上表可以看出,RefineNet的使用,可以為CPN增加2.0的AP。

  

RefineNet的消融學習

如下所示,即(1)直接使用Concat;(2)使用1個bottleneck後使用Concat;(3)使用多個bottleneck後直接使用Concat。在concat後接一個conv生成heatmaps。

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

  

ohkm的top-k中的k的消融學習

,可以看出在COCO資料集上,K取8時,會得到最好的結果;

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

  

損失函數的消融學習

:沒有中間監督會少0.9AP。

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

  

輸入尺寸的消融學習

:可以看出 256 ∗ 192 256*192 256∗192的效果和 256 ∗ 256 256*256 256∗256差不多,但 256 ∗ 256 256*256 256∗256比 256 ∗ 192 256*192 256∗192多了 6.4 G 6.4G 6.4GFOLPs。

【論文閱讀筆記】Cascaded Pyramid Network for Multi-Person Pose Estimation

繼續閱讀