Day04 Openpose (人體姿態預估)


前言


CMU所提供能夠擷取人體關節及骨架資訊的方法

翻譯內容

原文出處:

Zhe Cao and Gines Hidalgo and Tomas Simon and Shih-En Wei and Yaser Sheikh,"OpenPose: realtime multi-person 2D pose estimation using Part Affinity Fields", arXiv:1812.08008 [cs.CV]

0. 摘要

即時多人2D姿態估計是使機器能夠了解圖像和視頻中人物的關鍵組件。在這項工作中,我們提出了一種實時方法來檢測圖像中多個人的2D姿勢。所提出的方法使用非參數表示(我們稱為部分親和區域(Part Affinity Field, PAF))來學習將身體部位與圖像中的個體相關聯。無論圖像中有多少人,該自下而上的系統都可以實現高精度和實時性能。在先前的工作中,PAF和身體部位位置估計在整個訓練階段中同時進行了完善。我們證明,僅使用PAF進行細化,而不是同時進行PAF和身體部位定位細化,會導致運行時性能和準確性均得到大幅提高。我們還基於我們公開發布的內部帶註釋的腳數據集,展示了第一個組合的身體和腳關鍵點檢測器。我們表明,與順序運行它們相比,組合檢測器不僅減少了推理時間,而且還單獨保持了每個組件的準確性。這項工作的最終成果是發布了OpenPose,OpenPose是第一個用於多人2D姿勢檢測的開源實時系統,包括身體,腳,手和麵部關鍵點。

1. 介紹

在本文中,我們考慮了對圖像和視頻中的人進行詳細了解的核心要素:
人類2D姿勢估計-或定位解剖學關鍵點或“零件”的問題。 人類的估計主要集中在尋找個體的身體部位。 推斷圖像中多個人的姿勢提出了一系列獨特的挑戰。 首先,每個圖像可能包含未知數量的人,這些人可以在任何位置或任何比例出現。 其次,由於接觸,咬合或肢體關節活動,人與人之間的互動會引起復雜的空間干擾,從而使零件的關聯變得困難。 第三,運行時復雜度往往隨著映像中的人數而增加,這使實時性能成為一個挑戰。

一種常見的方法是採用人員檢測器並對每個檢測執行單人姿勢估計。 這些自上而下的方法直接利用了現有技術來進行單人姿勢估計,但遭受了早期承諾:如果人體檢測器發生故障(如在人們附近時容易發生這種情況),將無法恢復。 此外,它們的運行時間與圖像中的人數成比例,對於每個人檢測,運行一個單人姿勢估計器。 相比之下,自下而上的方法很有吸引力,因為它們為早期承諾提供了魯棒性,並且有可能使運行時復雜性與映像中的人數脫鉤。 但是,自下而上的方法並不直接使用來自其他身體部位和其他人的全局上下文提示。 最初的自下而上的方法([1],[2])沒有保留效率方面的收益,因為最終解析需要昂貴的全局推斷,每個圖像需要花費幾分鐘。

在本文中,我們提出了一種有效的多人姿勢估計方法,該方法在多個公共基准上具有競爭性表現。 我們通過部分親和力字段(PAA)展示了關聯評分的第一個自下而上的表示形式,這是一組二維矢量場,它們在圖像域上編碼肢體的位置和方向。 我們證明,同時推斷出檢測和關聯的這些自下而上的表示形式,可以為貪婪的解析提供足夠的全局上下文,從而以較高的計算成本實現高質量的結果。

2. 相關作業

單人姿態預估 鉸接式人體姿勢估計的傳統方法是對身體部位的局部觀測結果以及它們之間的空間依賴性進行推理。鉸接式姿勢的空間模型基於樹狀結構的圖形模型[7],[8],[9],[10],[11],[12],[13],這些模型通過參數編碼之間的空間關係運動鏈之後的相鄰部分,或非樹模型[14],[15],[16],[17],[18],它們通過附加的邊來增強樹結構以捕獲遮擋,對稱和長距離關係。為了獲得對身體部位的可靠局部觀察,卷積神經網絡(CNN)已被廣泛使用,並大大提高了人體姿勢估計的準確性[19],[20],[21],[22],[23], [24],[25],[26],[27],[28],[29],[30],[31],[32]。湯普森(Tompson)等。 [23]使用了具有圖形模型的深度架構,其參數是與網絡一起學習的。 Pfister等。 [33]進一步使用CNN通過設計具有大接收域的網絡來隱式捕獲全局空間依賴性。 Wei等人提出的捲積姿態機架構。 [20]使用了基於順序預測框架[34]的多階段架構;迭代地合併全局上下文以完善零件置信度圖並保留先前迭代的多峰不確定性。在每個階段的末期都將執行中級監督,以解決訓練過程中梯度消失的問題[35],[36],[37]。 Newell等。 [19]還表明,在堆疊的沙漏架構中,中間監管是有益的。但是,所有這些方法都假設一個人,並給出了感興趣的人的位置和規模。

多人姿勢估計 對於多人姿勢估計,大多數方法使用自上而下的方法該策略首先檢測人,然後在每個檢測到的區域上獨立估計每個人的姿勢。儘管此策略使針對單人案例開發的技術可直接應用,但它不僅遭受對人的檢測的早期承諾,而且無法捕獲需要全局推斷的不同人員之間的空間依賴性。一些方法已經開始考慮人際依賴。 Eichner等擴展了圖像結構,以考慮到一組交互的人和深度順序,但仍然需要人檢測器來初始化檢測假設。 Pishchulin等。 [1]提出了一種自下而上的方法,該方法聯合標記零件檢測候選對象並將其與各個人相關聯,並從檢測到的零件的空間偏移中逐對評分。該方法不依賴於人的檢測,但是,在完全連接的圖上求解建議的整數線性規劃是一個NP難題,因此單個圖像的平均處理時間約為數小時。 Insafutdinov等。 [2]建立在[1]之上,具有基於ResNet [46]和圖像相關的成對分數的更強大的部分檢測器,並使用增量優化方法極大地改善了運行時間,但是該方法仍然需要為每張圖像花費幾分鐘,但有一個限制最多150個部分提案中。 [2]中使用的成對錶示是每對身體部位之間的偏移向量,很難精確回歸,因此需要單獨的邏輯回歸將成對特徵轉換為概率分數。

在較早的工作[3]中,我們提出了部分親和力字段(PAF),這是由一組流場組成的,該流場對可變數量的人的身體部位之間的非結構化成對關係進行編碼。與[1]和[2]相反,我們可以從PAF高效地獲得成對分數,而無需額外的訓練步驟。這些分數足以使貪婪的分析獲得具有實時性能的高質量結果,以進行多人估計。與這項工作同時進行的是Insafutdinov等。 [47]進一步簡化了它們的身體部位關係圖,以便在單幀模型中更快地進行推理,並將明確表達的人類跟踪公式化為零件提議的時空分組。後來,Newell等人。 [48]提出了關聯嵌入,可以將其視為代表每個關鍵點組的標籤。他們將具有類似標籤的關鍵點歸為個人。 Papandreou等。 [49]提出檢測單個關鍵點並預測它們的相對位移,允許貪婪的解碼過程將關鍵點分組為人物實例。 Kocabas等。 [50]提出了一種姿態殘差網絡,該網絡接收關鍵點和人員檢測,然後將關鍵點分配給檢測到的人員邊界框。 Nie等。 [51]提出使用從關鍵點候選到圖像中人的質心的密集回歸對所有關鍵點檢測進行劃分。

在這項工作中,我們對先前的工作進行了一些擴展[3]。 我們證明,PAF細化對於實現高精度至關重要,並且在增加網絡深度的同時消除了身體部位置信度圖的細化。 這將導致更快,更準確的模型。 我們還將展示第一個組合的身體和腳關鍵點檢測器,該檢測器是由將被公開發布的帶註釋腳數據集創建的。 我們證明,結合兩種檢測方法,與獨立運行相比,不僅減少了推理時間,而且還保持了其各自的準確性。 最後,我們介紹OpenPose,這是第一個用於實時檢測身體,腳,手和麵部關鍵點的開源庫。

3. 方法

圖2說明了我們方法的總體流程。 該系統將大小為w×h的彩色圖像作為輸入(圖2a),並為圖像中的每個人生成解剖學關鍵點的二維位置(圖2e)。 首先,前饋網絡預測身體部位位置的一組2D置信度圖S(圖2b)和局部親和力字段(PAF)的一組2D矢量場L,它們編碼各個部位之間的關聯度(圖2c) )。 集合S =(S1,S2,...,SJ)
有J個置信度圖,每個組成一個,其中Sj∈Rw×h,j∈{1。 。 。 J}。 集合L =(L1,L2,...,LC)具有C個矢量場,每肢一個,其中Lc∈Rw×h×2,c∈{1。 。 。 C}。 為了清楚起見,我們將零件對稱為四肢,但有些對不是人的四肢(例如面部)。 Lc中的每個圖像位置都編碼一個2D向量(圖1)。 最後,通過貪婪推斷來解析置信度圖和PAF(圖2d),以輸出圖像中所有人的2D關鍵點。

3.1 網路架構

我們的體系結構(如圖3所示)可迭代地預測親和字段,該親和字段編碼以藍色表示的零件之間的關聯,並以米色表示檢測置信度圖。 繼[20]之後,迭代預測體系結構完善了連續階段t∈{1,...的預測。 。 。 ,T},並在每個階段進行中間監督。

相對於[3],網絡深度增加了。 在原始方法中,網絡體系結構包括幾個7x7卷積層。 在我們當前的模型中,通過用3個連續的3x3內核替換每個7x7卷積內核,保留了接收場,同時減少了計算量。 前者的運算次數為2×72 − 1 = 97,而後者僅為51。 另外,按照類似於DenseNet [52]的方法,將3個卷積內核中每一個的輸出進行級聯。 非線性層的數量增加了兩倍,網絡可以同時保留較低級別和較高級別的功能。 5.2和5.3節分別分析了準確性和運行時速度的提高。

3.2 同時檢測和連結

圖像由CNN分析(由VGG-19的前10層初始化[53]並進行微調),生成一組輸入到第一階段的特徵圖F。 在此階段,網絡生成一組部分親和力字段(PAF)L1 =φ1(F),其中φ1指的是在階段1進行推理的CNN。在每個後續階段中,來自上一階段的預測和原始圖像 特徵F被串聯起來並用於產生精確的預測,

其中φt表示在階段t進行推理的CNN,TP表示總的PAF階段數。 TP迭代後,從最新的PAF預測開始,重複進行置信度圖檢測的過程,

其中ρt表示在階段t進行推理的CNN,TC表示總置信度映射階段的數量。

這種方法與[3]不同,在[3]中,每個階段都細化了PAF和置信度圖分支。 因此,每個階段的計算量減少了一半。 我們在5.2節中通過經驗觀察到,改進的親和力場預測可以改善置信度圖結果,而相反情況卻不成立。 直觀地,如果我們查看PAF通道輸出,則可以推測出身體部位的位置。 但是,如果看到一堆沒有其他信息的身體部位,就無法將它們解析為不同的人。

圖4:跨步的右前臂PAF。 儘管在早期階段左右身體部位和四肢之間存在混淆,但在後期階段通過全局推斷對估計值進行了逐步完善

圖4顯示了跨階段親和字段的細化。 在最新和最精確的PAF預測的基礎上預測置信度圖結果,從而在置信度圖階段之間幾乎沒有明顯的差異。 為了引導網絡迭代地預測第一分支中身體部位的PAF和第二分支中的置信度圖,我們在每個階段的末尾應用損失函數。 我們在估計的預測與地面真實地圖和字段之間使用L2損失。 在這裡,我們對損失函數進行空間加權,以解決一個實際問題,即某些數據集不能完全標記所有人。 具體而言,在階段ti的PAF分支的損失函數和在階段tk的置信度圖分支的損失函數為:

其中L ∗ c是地面真實部分PAF,S ∗ j是地面真實部分置信度圖,W是當像素p缺少註釋時W(p)= 0的二進制掩碼。 該掩碼用於避免在訓練過程中對真實的陽性預測產生不利影響。 每個階段的中間監督通過定期補充梯度來解決梯度消失的問題[20]。 總體目標是

3.3 部分偵測的置信圖

要評估方程式中的fS。 (6)在訓練過程中,我們從帶註釋的2D關鍵點生成地面真實可信度圖S ∗。 每個置信度圖都是特定身體部位可以位於任何給定像素中的信念的2D表示。 理想情況下,如果圖像中出現一個人,則在每個置信度圖中,如果可見相應部分,則應存在一個峰; 如果圖像中有多個人,則對於每個人k,應該有一個對應於每個可見部分j的峰。

我們首先為每個人k生成個人置信度圖S ∗ j,k。 令xj,k∈R2為圖像中人k的身體部位j的地面位置。 在S ∗ j,k中p∈R2處的值定義為

其中σ控制峰的擴展。 網絡預測的地面真實度置信度圖是通過最大算子對各個置信度圖進行的匯總,

圖5:零件關聯策略。 (a)兩種身體部位類型的身體部位檢測候選(紅色和藍色點)和所有連接候選(灰線)。 (b)使用中點(黃點)表示的連接結果:正確的連接(黑線)和錯誤的連接(綠線)也滿足入射約束。 (c)使用PAF的結果(黃色箭頭)。 通過在肢體支撐上方編碼位置和方向,PAF消除了錯誤的關聯。

如右圖所示,我們採用置信度圖的最大值而不是平均值,以使附近峰的精度保持明顯。 在測試時,我們預測置信度圖,並通過執行非最大抑制來獲得候選的身體部位。

3.4 對於區域連接的部分親和區域

給定一組檢測到的身體部位(在圖5a中顯示為紅色和藍色點),我們如何組裝它們以形成未知人數的全身姿勢? 我們需要對每對身體部位檢測都具有關聯性的置信度,即它們屬於同一個人。 一種測量關聯的可能方法是檢測肢體上每對零件之間的附加中點,並在候選零件檢測之間檢查其發生率,如圖5b所示。 但是,當人們擠在一起時(如他們傾向於這樣做),這些中點可能會支持虛假的關聯(圖5b中的綠線所示)。 這種假聯想是由於表示方面的兩個局限性引起的:(1)它僅編碼每個肢體的位置,而不編碼方向; (2)將肢體的支撐區域減少到單個點。

參考資料

  1. Zhe Cao and Gines Hidalgo and Tomas Simon and Shih-En Wei and Yaser Sheikh,"OpenPose: realtime multi-person 2D pose estimation using Part Affinity Fields", arXiv:1812.08008 [cs.CV]
#OpenPose #AI #Deep Learning #Human Pose Estimation







你可能感興趣的文章

[演算法] Bubble Sort 泡沫排序法

[演算法] Bubble Sort 泡沫排序法

TypeScript 筆記:推斷、註記與斷言

TypeScript 筆記:推斷、註記與斷言

單一職責、開放封閉原則簡介

單一職責、開放封閉原則簡介






留言討論