OpenPose論文筆記《Realtime Multi-Person 2D Human Pose Estimation using Part Affinity Fields》


OpenPose最新論文《Realtime Multi-Person 2D Human Pose Estimation using Part Affinity Fields》筆記

摘要

能有效檢測圖像中多個人的2D姿態。使用PAFs (Part Affinity Fields),來學習關鍵點和肢體。這種結構對global context(全局上下文)進行編碼,自下而上進行解析。特點:多人,高精度,實時。通過序列結構神經網絡的兩個分支來聯合學習:關鍵點位置、關鍵點之間的聯系即PAF。該方法取得了2016關鍵點檢測挑戰賽冠軍,准確率與效率都大大超過了MPII基准。

 

一、    簡介

難點:1.每張圖中,人的數量、位置、大小,都未知。 2.人與人之間的行為(接觸、遮擋等)會干擾不同身體關鍵點的聯系。 3.人數多使得運算復雜性增加,保證實時性很困難。自上而下的方法(先檢測出人,再進行單人的姿態估計)會因為人越多計算量越大,而且嚴重依賴檢測效果。

該論文解決了以上難點,並發明了PAFs(Part Affinity Fields,Affinity指兩點配對的關聯程度,個人翻譯:關鍵點親和場,表示關鍵點配對的置信程度),是二維矢量場的集合,表示肢體的位置和方向。基於PAFs與關鍵點位置,可以計算出兩個關鍵點的關聯程度。

 

 

 

二、    方法

    執行過程如下圖所示,一張輸入圖像w*h,經過兩個分支,一個得到confidence maps (表示關鍵點位置,該集合記為S),一個得到PAFs(表示關鍵點的關聯,該集合記為L)。然后轉化成圖上的匹配問題:邊權值最大的二分圖匹配(后文使用匈牙利算法解決)。

 

 

2.1Simultaneous Detection and Association(檢測與關聯)其實是介紹了整體的網絡結構

    原圖經過VGG-19,得到feature maps,記為F,經過如圖所示的網絡,該網絡分上下兩個分支,每個分支都有t個階段(表示越來越精細),每個階段都會將feature maps進行融合。其中ρ φ 表示網絡。

 

 

 

為了引導網絡不同的分支做不同的預測任務,使用不同的損失函數,如下所示。其中帶上標*的是ground truth,帶上標t的是不同階段的預測值,p是每一個像素點,W(p)=0代表該點缺失標記,防止懲罰了true positive predictions(真陽性的預測)。每個階段的中間監督通過定期補充梯度來解決消失的梯度問題(其實就是每個階段都有損失函數,這樣就不會梯度彌散)。

 

 

 

 

   2.2 Confidence Maps for Part Detection(人體區域檢測的置信圖)

  訓練階段,ground truth的置信度圖S*,每一張置信度圖是對特定關鍵點的2D表示(如果圖像中只有一個人且關鍵點可見,則每個置信度圖應存在單個峰值;若圖像中有k個人,其中該關鍵點可見的有j個,比如j個脖子,則應該有 j 個峰值)。S的意義理解為對於圖像屬於關鍵點j的概率

['nose', 'neck', 'Rsho', 'Relb', 'Rwri', 'Lsho', 'Lelb', 'Lwri', 'Rhip', 'Rkne', 'Rank', 'Lhip', 'Lkne', 'Lank', 'Leye', 'Reye', 'Lear', 'Rear', 'pt19'] 19種關鍵點,J=19,一張圖像有19張關鍵點置信圖。

  首先對第k個人產生部位j的置信度圖。其中是圖中第k個人部位j的位置,p是圖像坐標,表示了峰值的蔓延程度,

 

 

總置信度圖的計算公式為:

 

 

取最大置信度圖而不是平均值,是為了峰值附近的精確度保持不同,如下圖所示。神經網絡的上半區域則是用於預測該置信圖。(代碼:置信圖的極值點就是關鍵點)。

 

 

注解:(非極大值抑制:假設有N個候選框,(1)將所有框的得分排序,選中最高分對應的框,(2)遍歷其余的框,如果和當前最高分框的重疊面積(IOU)大於一定閾值,我們就將框刪除。3)從未處理的框中繼續選一個得分最高的,重復上述過程。。。以此來保留各個待檢測的區域,最佳的檢測框。)

    2.3 PAFs

已知關鍵點,如何形成未知人數的全身姿態?需要對每一種關鍵點的連接進行置信度的度量,圖a是所有的連接候選;另一種方式是附加每對連接的中點,如圖b,檢查中點的發生率,這樣錯誤率依然很高。錯誤的原因是:1.只編碼位置信息,沒有方向信息;2.將一個區域只用一個點去表示。

 

 

  PAFs是一個2D矢量場,保留了位置和方向,如圖c所示,表示一個肢體,在肢體上的每個點是從一個關鍵點到下一個關鍵點的2D單位矢量。令和表示ground truth中的關鍵點j1,j2的坐標,這兩個關鍵點組成第k號人的一個肢體c,如果一個點P在這個肢體上面,如圖所示,則的值為j1指向j2的單位矢量;其他點都是零向量,如公式8。每一個點上都有一個向量,L可以理解為對於圖像中肢體的單位向量表示

  Ground-truth的PAF計算方法如下:C=38

 

 

 

在肢體上的點P滿足下式(其實代表的就是P在肢體對應的矩形內)

 

其中,L是肢體的長度,是肢體的寬度,v-是垂直矢量。

(注解:點乘 又叫向量的內積、數量積,是一個向量和它在另一個向量上的投影的長度的乘積;是標量。點乘 反映着兩個向量的“相似度”,兩個向量越“相似”,它們的點乘 越大。)

一張圖像中肢體c的PAFs是(重疊處,多個人的同一肢體)所有人物進行平均得到(此情況很少出現)

 

Nc(P)是P點處所有非0向量的個數,即k個人重疊肢體在像素上的平均。

 

  在測試時,沿着“關鍵點對”組成的線段計算上面PAF的線積分,來度量這對“關鍵點對”的關聯程度。換句話說,關聯程度是通過度量這兩者的對齊程度得到:預測的PAF,通過關鍵點連接形成的肢體。具體的=來說,對於兩個候選關鍵點,位置是和,沿着線段采樣預測出的PAF值(即Lc),表示這兩個關鍵點相關聯的置信度E。

 

其中p(u)是兩個部位(關節點)和之間內插的位置。

在實踐中,通過對u的均勻間隔采樣來近似求積分。

 

2.3 多人的PAFs

  對檢測出來的置信度圖執行非極大值抑制,獲得離散的關鍵點位置候選集。由於圖中有多人,對於每種關鍵點,有若干候選。因此有很多可能的肢體,如圖6b所示。通過計算PAF上的線積分(公式10)評估每一個候選肢體的置信度。找到最優肢體是一個NP問題,在本文中使用一個貪心松弛策略(匈牙利算法?),使得每次都能產生高質量的匹配,其根據是:由於PAF網絡的大感知場,成對關聯分數隱含地編碼了全局上下文(下文藍字體)

 

    

  首先,得到一系列關鍵點候選(整張圖像多個人),記為Dj={},表示關節j的圖中第m個候選關鍵點。這些關鍵點候選需要跟同一個人的其他關鍵點進行關聯,找到關鍵點的成對關系,即肢體。定義變量={0或1}表示關鍵點候選和是否關聯。算法目標:找到所有最佳關聯,記為Z。

 

    

  考慮一對關鍵點j1,j2(例如脖子,右臀)組成肢體c,找到最佳匹配,是最大權重二分圖匹配問題:節點是候選集Dj,邊的權值由公式10計算,二分圖匹配選擇最大權重的邊(匹配就是從邊中選子集),使得沒有邊共享節點(由公式13-14強制要求,沒有同類肢體共享一個關鍵點,比如一個脖子只連接一個右臀)。找最佳二分圖匹配使用匈牙利算法。

  

  當找到多人的全身姿勢時,確定出Z是NP Hard問題並且存在許多優化之處。專門針對這個領域,該論文有兩個優化策略:1.選擇邊的最小數目,來構造人體姿態骨架,而不使用完全圖,如圖6c(只需要考慮有關系的兩種關鍵點,對於單個人的骨架而言是一個生成樹)2.將這個匹配問題進一步分解成一個個的子問題,獨立地確定相鄰樹節點的匹配,如圖6d。(其實這兩個策略是遞進地解決了該問題)。在3.1節展示了詳細的比較結果,證明最小貪心推理可以近似全局最優解,而計算消耗卻大大減少。原因在於相鄰樹節點之間的關系由PAF明確建模,在內部,非相鄰節點之間的關系由CNN隱式建模。此屬性的出現是因為:使用大型感知場訓練CNN網絡,而非相鄰樹節點的PAFs也影響預測的PAF。(?使用CNN,預測出的PAFs包含了所有點對的信息?)

通過這兩個松弛策略,該優化目標為:

 

因此,我們獨立地使用公式12-14獲得每種肢體類型的肢體候選。通過所有肢體連接候選,將共享相同關鍵點的不同肢體組裝成人的全身骨架姿態。樹結構上的優化方案比完全連通圖上的優化要快很多。

 

三、    結果

在兩個基准上評估:1.MPII human mutil-person dataset 2. COCO 2016 keypoints challenge dataset . 包含了不同場景、擁擠、遮擋、接觸、比例變化。

3.1 MPII Multi-Person

使用參考論文22的工具包來測量基於PCKh閾值的所有身體部位的mAP.簡單的說,准確率高,運行極快。

在全部測試集上,3種尺度(0.7,1,1.3),大大提高准確率。

   

表2.說明貪心策略可行,效率提高很多,且效果更好(收斂更快)。

 

3.2 COCO key points challenge

在此數據集上不是所有指標都最好,原因是該數據集人員突出,自上而下方法裁取單個人的變化尺度很小。自上而下的單人CPM(也是該團隊的工作)有更好的指標。

3.3 運行時間分析

自頂向下的方法:人體檢測+CPM,與該方法比較。本方法快。

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM