【論文研讀】2D Human Pose Estimation - A Survey

Posted by David Chen on 2023-10-20
Estimated Reading Time 24 Minutes
Words 6.5k In Total
Viewed Times

2D Human Pose Estimation: A Survey

hackmd-github-sync-badge

  • Journal reference: Multimedia Systems, 2022
  • Authors: Haoming Chen, Runyang Feng, Sifan Wu, Hao Xu, Fengcheng Zhou, Zhenguang Liu
  • Github: None
  • 論文連結: 2D Human Pose Estimation: A Survey

Network Architecture Design Method

2D HPE 通常分為兩個通用框架:

  • top-down framework:使用 two-step procedure:

    1. 偵測人體邊界框(BBox)
    2. 分別對各個 BBox 進行 Single Person Pose Estimation (SPPE)

    $\Diamond$ top-down framework 可以隨著物體檢測器和姿勢偵測器的進步而不斷改進。

    top-down 可細分為以下幾個類別:

    • Regression-Based
    • Heatmap-Based
    • Video-Based
    • Model Compressing-Based

  • bottom-up framework:與 top-down 相比,bottom-up 透過不依賴人類檢測,直接執行關鍵點估計,以達成減少計算量的目的,但就有需要判斷關節點屬於誰的問題。

    bottom-up 可細分為以下幾個類別:

    • Human Center Regression-Based
    • Associate Embedding-Based
    • Part Field-Based

Top-Down Framework

Regression-Based Methods

Regression-Based 很有效,但是他只有輸出每個關節的座標而已,完全不考慮身體部位的面積。
為了解決這個問題,發展出了 heatmap-based 的方法。

以下為幾個代表性的 Regression-Based 方法:

  • CNN:DeepPose 透過級聯 CNN 提取影像特徵,然後透過全連接層回歸關節座標。
  • self-correcting modelHuman Pose Estimation with Iterative Error Feedback 基於 GoogleNet 提出了一種自校正模型,逐步改變初始關節座標估計。
  • Re-parameterizationCompositional Human Pose Regression 提出了一種結構感知回歸方法,該方法利用結構重參數化的骨骼姿勢表示,並因為建構在ResNet50之上,模型能夠捕捉更多的人體結構訊息,例如關節連接之類的。
  • GCN:透過合併相鄰節點的特徵來增強節點的特徵,Peeking into occluded joints: A novel framework for crowd pose estimation 將人體視為圖形結構,其中節點代表關節,邊緣代表骨骼,並建議使用影像引導漸進式 GCN 模組來估計不可見的關節。
  • TransformerPose Recognition With Cascade Transformers 提出了一個級聯 Transformer,執行人體和關鍵點檢測的 end-to-end 回歸,首先檢測所有人的邊界框,然後分別回歸每個人的所有關節座標。
    $\Diamond$ 如果想做 end-to-end 感覺可以看一下這篇。

Heatmap-Based Methods

熱圖 $H_i$ 通過以第 $i$ 個關節位置$(x_i, y_i)$為中心的 2D 高斯產生,編碼該位置是第 i 個關節的機率。
訓練目標是預測總共 $N$ 個關節的 $N$ 個熱圖 $\begin {Bmatrix}H_1,H_2,…,H_N\end{Bmatrix}$。

Heatmap-Based 的準確率會比 Regression-Based 來的,但是相對的需要較多的計算資源,以及有著不可避免的量化誤差

以下為幾個代表性的 Heatmap-Based 方法:

  • Iterative Architecture (迭代架構)Convolutional Pose Machines 建構了一個順序預測框架,該框架採用 sequential CNN 來隱式模擬人體部位之間的遠程空間依賴性,並且提出了中間監督來緩解迭代架構中梯度消失的固有問題,後來因為 ResNet 出現,把梯度消失/爆炸的問題完美解決了,因此很多大模型就出現了。

    下圖為迭代架構的示意圖,( a )為 Convolutional Pose Machine 的架構,( b )為使用 LSTM 對 Convolutional Pose Machine 進行延伸的 LSTM Pose Machines

  • Symmetric Architecture (對稱架構)

    Stacked Hourglass Networks for Human Pose Estimation 提出了一種基於池化上採樣的連續步驟的新穎的堆疊沙漏架構,它結合了所有尺度的特徵來捕捉關節之間的各種空間關係。

    堆疊沙漏架構如下圖( a )所示。

    以下為基於這種堆疊沙漏架構的成功變體,這些變體模型都保留了從高到低和從低到高卷積之間的對稱結構:

  • Asymmetric Architecture (非對稱架構)
    與對稱架構一樣是高到低和低到高的卷積架構,但是非對稱架構偏重於由高到低的過程,因此存在特徵編碼和解碼不平衡的問題,可能會影響模型表現。

    以下模型採用經典分類網路(VGGNetResNet)的子網路進行從高到低的卷積,並採用簡單網路進行從低到高的卷積:

  • High Resolution Architecture (高解析度架構)
    高解析度架構能夠在整個過程中保持高解析度表示HRNet 在多個視覺任務上實現最先進的結果,足以證明高解析度表示在人體姿勢估計方面的優越性。

    其中Pay Attention Selectively and Comprehensively: Pyramid Gating Network for Human Pose Estimation without Pre-trainingHRNet 為骨幹網絡,進一步結合門控機制特徵注意模組來選擇和融合判別性和注意力感知特徵


    $reg. conv.$ = 常規卷積層,$strided \ conv.$ = 用於可學習下採樣的跨步卷積層,
    $trans.conv.$ = 用於可學習上採樣的轉置卷積層,$ele. sum$ = 逐元求和

  • Composed Human Proposal Detection (組合人類提案檢測)
    上述模型專注於對從整個圖像中裁剪出的 Human Proposal 進行姿勢估計,並簡單地採用現成的 Human Proposal Detecter 進行 Proposal Detection,且 Human Proposal 的品質(人類位置和冗餘檢測)會影響姿勢估計器的結果
    因此有以下兩派人馬從不同的角度去解決這個問題:

    • 改善 Human Proposal 派:
      • Towards Accurate Multi-Person Pose Estimation in the Wild 提出了一種多人姿勢估計方法,該方法採用 Faster R-CNN 作為人物檢測器,使用 ResNet-101 作為姿勢檢測器,並另外提出了一種新的關鍵點NonMaximum-Suppression ( NMS)策略來解決姿勢冗餘問題
      • RMPE 利用 SSD-512 作為人體偵測器,使用堆疊沙漏作為單人姿勢偵測器,並進一步提出一種可以從不準確的邊界框中提取高品質的單人邊界框對稱空間變換網路以促進人體姿勢估計。
      • CrowdPose 利用聯合候選姿勢偵測器來預測具有多個峰值的熱圖,並使用圖網路來執行全域關節關聯以解決單人邊界框包含多人的問題。
    • 一起處理 Human Proposalpose detection 派:
      • Mixture Dense Regression for Object Detection and Human Pose Estimation 提出了一個以密集迴歸方式同時推斷人體邊界框和關鍵點位置的混合模型。
      • Point-Set Anchors 引入了一種模板偏移模型,該模型首先為人體邊界框和姿勢提供良好的初始化,然後回歸初始化和相應標籤之間的偏移
      • MultiPoseNet 分別檢測關鍵點和 Human Proposal,然後採用由殘差多層感知器實現的姿勢殘差網路將偵測到的關鍵點分配給不同的邊界框
      • FCPose 是一個結合了動態實例感知卷積消除邊界框裁切和關鍵點分組過程的框架。

Video-Based Methods

使用 Video-Based Method 的優缺點如下:

  • 優點:存在豐富的時間線索,如時間依賴性和幾何一致性。
  • 缺點:影片有可能會因為攝影機移位、快速物體移動和散焦而造成 frame 品質不良

根據時間資訊的利用方式,Video-Based 方法大致可分為:

  • Optical Flow(光流)
    基於光流的表示可以在像素層級對運動線索進行建模,這有利於捕捉有用的時間資訊,但是在擷取人體運動資訊之類的有用特徵的同時也將背景的變化也一起蒐集起來了,因此光流只能提取不純的特徵,並且對雜訊相當敏感

    • Flowing ConvNets for Human Pose Estimation in Videos 將卷積網路和光流結合到一個統一的框架中框架利用流場來對齊多個幀之間的特徵速度,並利用對齊的特徵來改進各個幀中的姿態檢測。
    • Thin-Slicing Networks 提出了一種薄切片網絡,它計算每兩個幀之間的密集光流,以隨時間傳播關節位置的初始估計,並使用基於流的扭曲機制來對齊關節熱圖,以進行後續的時空推理。
    • Towards Accurate Human Pose Estimation in Videos of Crowded Scenes 專注於擁擠場景中的人體姿態估計,它結合了前向姿態傳播和後向姿態傳播來改進當前幀的姿態
    • PoseFlow 能夠揭示影片中的人體運動,同時抑制一些雜訊,例如背景和運動模糊。
  • RNN(循環神經網路)
    RNN 可捕獲視訊幀之間的時間上下文以改進姿勢估計,因此可以有效地從單人圖像序列中估計人體姿勢,但截至論文發表為止,RNN 尚未應用於多人影片,作者推測可能 RNN 在提取每個人的時間上下文時會受到其他人的影響:

    • Chained Predictions Using Convolutional Neural Networks提出了一種Seq2Seq模型,它採用 Chained Convolutional Networks 來處理輸入影像,並結合歷史隱藏狀態和當前影像來預測當前關鍵點熱圖
    • LSTM Pose Machines透過使用卷積LSTM擴展了卷積姿勢機(Heatmap-Based-Iterative Architecture 有提到),它能夠對空間和時間上下文進行建模以進行姿勢預測。
  • Pose Tracking(姿態追蹤)
    Pose Tracking method 會為視訊幀中的每個人建立一個軌跡,以過濾不相關資訊的干擾,並且在多人場景中表現出強烈的適應性,但是這些模型需要計算特徵相似性或姿勢相似性來創建軌跡,計算資源++

  • Key Frame Optimization(關鍵影格優化)
    Key Frame Optimization 的特點在於模型會選擇一些關鍵影格來改善目前影格的姿態估計

    • Personalizing Human Video Pose Estimation 提出了一種個人化視訊姿勢估計框架,它利用一些具有高精度姿勢估計的關鍵影格來微調模型
    • PoseWarper 是一種姿勢扭曲網絡,它先將標記幀的姿勢扭曲到未標記的(當前)幀,然後聚合所有扭曲的姿勢以預測當前幀的姿勢熱圖。
    • K-FPN 提出了一個關鍵幀提議網絡來選擇有效關鍵幀,並提出了一個可學習的字典來從所選關鍵幀重建整個姿勢序列
    • DCPose 為一個能夠充分利用相鄰幀的時間信息的雙連續幀工作視訊姿勢估計框架,包含以下三個模組化組件:(跟這篇 Survey 是同一批作者,灌水機率偏高)
      • 姿勢時間合併器會對關鍵點時空上下文進行編碼以產生有效的搜尋範圍
      • 姿勢殘差融合模組則計算雙向加權姿勢殘差
      • 姿勢校正網路用於重新處理以上兩個模組的輸出,以改善姿勢估計。

Model Compression-Based Methods

上述的方法雖然有效但是模型都偏大,為了可以在手機等輕量設備上實際應用,需要將模型壓縮以達到即時計算:

  • FastPose 是一個基於教師-學生網絡的快速姿勢蒸餾模型,教師網絡採用8階段沙漏模型,而學生網絡則採用緊湊型對應模型(4階段沙漏)

  • LSTM Pose Machines 提出了一種輕量級的 LSTM 架構來執行視訊姿態估計。

  • Lite-HRNet 提出了兩種減少HRNet參數的方案:

    • 簡單地應用 Shuffle-Block取代普通 HRNet 中的基本區塊。
    • 設計一個條件通道加權模組,它可以學習多種解析度的權重,以取代昂貴的逐點 (1 × 1) 卷積。

Bottom-Up Framework

Human Center Regression-Based Methods

Human Center Regression-Based Method 利用人體中心點來表示人物實例:

Associate Embedding-Based Method 為每個關鍵點分配一個關聯嵌入以區分不同人的實例表示:

Part Field-Based Method 先偵測關鍵點及其之間的連接,然後根據關鍵點連接進行關鍵點分組:


Network Training Refinement

Data Augmentation Techniques

常見的資料增強技術包括隨機旋轉隨機縮放隨機截斷水平翻轉隨機資訊丟棄光照變化


Multi-Task Training Strategies(有料)

多任務學習旨在透過在相關視覺任務之間共享表示來捕獲資訊特徵

人體解析是與人體姿勢估計密切相關的任務,其目標是將人體分割成頭部、手臂和腿等語意部分。

$\Diamond$ 人體解析資訊可提升人體姿勢估計的效能。

Loss Function Constraints

  • 最常見的損失函數是L2距離。
    L2距離公式:$$L = \frac{1}{N}\sum_{j=1}^N v_j \times \lVert G(j) - P(j)\lVert^2$$
    $G(j), P(j), v(j), N$ 分別代表 Ground Truth 熱圖, Prediction 熱圖, 關節 $j$ 的可見性, 關節的數量。
  • Multi-Scale Structure-Aware Network for Human Pose Estimation 提出了一種多尺度的人體結構感知損失,它捕捉人體的結構資訊。
    第 $i$ 個特徵尺度的結構感知損失可以表示如下:$$ L^i = \frac{1}{N}\sum_{j=1}^N \lVert P_j^i - G_j^i\lVert_2 \ + \ \alpha \sum_{i=1}^N \lVert P_{S_j}^i - G_{S_j}^i\lVert_2$$
    $P_j, G_j, P_{S_j}, G_{S_j}$ 分別代表關節 $j$ 的Prediction 熱圖, Ground Truth 熱圖, 關節 $j$ 和他的鄰居的熱圖組。
  • Cascaded Pyramid Network for Multi-Person Pose Estimation 提出了一種線上困難關鍵點探勘,它首先計算所有關鍵點的常規 L2 損失,然後對前 M 個困難的關鍵點加強懲罰
  • Combined Distillation Pose 提出了適用於 HR Net 的組合蒸餾損失,其中包括強制網路在早期階段學習人體結構以對抗姿勢遮擋的結構損失(STLoss)、緩解了類似關節分類錯誤的成對抑制損失(PairLoss)和指導最終熱圖分佈學習的機率分佈損失(PDLoss)。

Domain Adaption Methods

在實際應用中,預先訓練的姿態估計模型通常需要適應沒有標籤或稀疏標籤的新領域
下列領域適應方法利用有標籤的來源領域來學習一個模型,使其在無標籤或標籤稀疏的目標領域上表現良好:


Post Processing Approaches

Post Processing Approaches 不會立即預測最終關鍵點位置,而是先估計初始姿勢,然後透過一些後處理操作進行最佳化。

作者將這些方法分為兩大類:

  • Quantization Error
  • Pose Resampling

Quantization Error

heatmap based 的模型需要從估計的關鍵點熱圖解碼關節的 2D 座標 (x, y),且通常會將預測熱圖中最大活化值的位置作為關鍵點座標,但是預測的高斯熱圖並不總是符合標準高斯分佈,並且可能包含多個峰值,這降低了座標計算的準確性

解碼過程中,最大運算的不可微性質也會產生量化誤差,因此以下研究嘗試設計可微分演算法

Pose Resampling

很多姿態估計器會直接將模型輸出作為最終估計,以下方法將這些估計值透過與模型無關的 Pose Resampling 技術進一步改進。

  • 針對靜態影像設計的 Pose Resampling

    • PoseFix 根據輸入圖像和輸入姿勢的元組估計精細姿勢,其中輸入姿勢是從現有方法的估計中導出的。
    • Peeking into occluded joints: A novel framework for crowd pose estimation 提出先透過現有的姿勢估計器根據視覺資訊定位可見關節,透過結合影像上下文姿勢結構線索影像引導漸進式 GCN 模組估計不可見關節。
    • Graph-PCNN 是一個兩階段且與模型無關的框架,先利用現有的姿態估計器進行粗略關鍵點定位,再用他們提出的圖姿態細化模組以產生更準確定位結果。
  • 針對動態影片設計的 Pose Resampling
    以下方法透過執行姿勢聚合來整合當前幀的多個估計姿勢以改善估計結果:


Evaluation Metrics

Percentage of Correctly Estimated Body Parts (PCP)

PCP 指標反映了局部身體部位的準確性。

如果估計的部位的端點位於閾值內,則認為該部位是正確的,該閾值可以是其註釋位置處的地面實況片段長度的一小部分[31]。

除了所有身體部位的平均 PCP 之外,通常還會報告軀幹、大腿和頭部等單獨的身體肢體 PCP。

與 PCP 指標類似,PCPm 在整個測試中利用平均真實片段長度的 50% 作為匹配閾值。

Percentage of Correct Keypoints (PCK)

PCK 用於測量局部身體關鍵點的準確性,如果候選關節位於匹配閾值內,則認為它是正確的

關鍵點位置與地面實況相符的閾值可以定義為人體邊界框大小的一部分(表示為 PCK)和頭部片段長度的 50%(表示為 PCKh)。

Average Precision (AP)

AP 度量是基於物件關鍵點相似度(OKS)[93] 來定義的,它評估預測關鍵點和真實關鍵點之間的相似性。

不同 OKS 閾值 N 下的平均精度得分表示為 AP@N。

對於基於影像的人體姿勢估計,平均精確度 (mAP) 是所有 OKS 閾值下 AP 分數的平均值。

在基於影片的人體姿態估計中,mAP 每個關節的平均 AP 分數。