动作分析 姿态估计_单人或多人的人体姿态骨架估计算法概述
原標題:單人或多人的人體姿態骨架估計算法概述
如何在大片中實現人物的特效,最終應用人體姿態估計。本博客介紹了使用深度學習技術及其應用的多人姿勢估計方法。
人體骨骼骨架以圖形格式表達人體運動。基本上,它是一組坐標,用于描述一個人的姿勢。骨架中的每個坐標稱為此圖的零件(或關節,關鍵點)。我們將兩個組件之間的有效連接稱為一對(對或肢)。但是,應該注意,并非所有組件組合都產生有效對。下圖是人體骨架圖的示例。
左圖:人體骨骼骨架的COCO關鍵點格式; 右圖:渲染后的人體姿勢圖
該圖來源:https://github.com/CMU-Perceptual-Computing-Lab/openpose
獲取人體姿勢信息為多個真實世界的應用程序開辟了道路,其中一些應用程序將在本博客的最后討論。近年來,研究人員提出了各種人體姿勢估計方法,最早(也是最慢)的方法通常是在一個人的圖像中估計一個人的姿勢。這些方法通常識別各個組件,然后通過在它們之間形成連接來創建姿勢。
當然,如果您處于多人的真實場景中,這些方法并不是非常有用。
多人姿勢估計
由于圖像中的人的位置和總人數未知,因此多人姿勢估計比單人姿勢估計更困難。一般來說,我們可以通過以下方法解決上述問題:
簡單的方法是首先添加人體檢測器,然后分別估計每個組件,最后計算每個人的姿勢。這種方法稱為“自上而下”的方法。
另一種方法是檢測圖像中的所有組件(即所有者的組件),然后關聯/分組屬于不同人的組件。這種方法稱為“自下而上”的方法。
上部:傳統的自上而下方法; 下部:傳統的自下而上的方法。
通常,自上而下的方法比自下而上的方法更容易實現,因為添加人類檢測器比使用關聯/分組算法容易得多。很難判斷哪種方法總體上表現更好,因為比較人體檢測器和相關/分組算法會更好。
在這篇博客中,我們專注于使用深度學習技術的多人姿勢估計技術。在下一節中,我們將回顧一些流行的自上而下和自下而上的方法。
深度學習方法
1.OpenPose
OpenPose是最受歡迎的自下而上多人姿勢估計方法之一,部分原因在于其GitHub實現的友好文檔。
與許多自下而上的方法一樣,OpenPose首先檢測圖像中的部分(關鍵點),然后將部分分配給不同的個體。下圖顯示了OpenPose模型的體系結構。
OpenPose網絡首先使用前幾層(上圖中的VGG-19)從圖像中提取特征。然后將這些特征輸入卷積層的兩個平行分支。第一分支預測一組置信圖(18),每個置信圖表示人體骨架圖的特定部分。第二個分支預測另一組部件親和力字段(PAF,38),PAF表示組件之間的關聯程度。
其余的OpenPose步驟用于優化每個分支的預測。使用組件置信度圖,在組件對之間形成二分圖(如上所示)。然后使用PAF值修剪二分圖中的較弱鏈接。通過上述步驟,我們可以估計人體骨架圖并將其分配給圖像中的每個人。
2. DeepCut
DeepCut是一種自下而上的方法,可用于多人姿勢估計。作者通過定義以下問題來完成此任務:
生成一組身體部位候選集D.此集合表示圖像中所有人的身體部位的所有可能位置。從身體部位候選組中選擇身體部位的子集。
用身體部位C類中的類別標記每個所選身體部位。身體部位類指示部位的類型,例如“手臂”,“腿”,“軀干”等。
指定屬于同一個人的身體部位。
上述問題可以通過建模為整數線性規劃(ILP)來解決。使用二進制隨機變量的三元組(x,y,z)進行建模,二進制隨機變量的域如下所示:
考慮來自身體部位候選組D的兩個身體部位候選d和d',以及來自類別集C的類別c和c',其中通過更快的RCNN或密集CNN獲得身體部位候選。現在我們可以開發以下一組語句。
如果x(d,c)= 1,則意味著身體部位候選d屬于類別c。
如果y(d,d')= 1,則意味著身體部位候選者d和d'屬于同一個人。
它們還定義z(d,d“,c,c”)= x(d,c)* x(d“,c”)* y(d,d“)。如果上述值是1,則意味著身體部位候選d屬于類別c,身體部位候選d'屬于類別c',并且最后的身體部位候選d,d'屬于同一個人。
最后一個陳述可用于劃分屬于不同人的姿勢。上述陳述顯然可以使用線性方程表示為(x,y,z)的函數。通過這種方式,我們可以構建整數線性規劃(ILP)模型并估計多人的姿勢。有關完整的方程式和詳細分析,請參閱文章“DeepCut:多人姿態估計的聯合子集分區和標簽”。
3. RMPE(AlphaPose)
RMPE是一種流行的自上而下的態度估計方法。作者認為,自上而下的方法通常依賴于人體探測器的性能,因為姿勢估計是在某人所在的區域進行的。因此,定位誤差和重復邊界框預測可能導致姿態提取算法僅獲得次優解。
為了解決這個問題,作者提出使用對稱空間變換器網絡(SSTN)從不準確的邊界框中提取高質量的單人區域。在該區域中,使用單人姿勢估計器(SPPE)來估計人體姿勢骨架圖。然后我們使用空間變換器網絡(SDTN)將估計的人體姿勢重新映射回原始圖像坐標系。最后,參數姿態NMS技術用于解決冗余問題。
此外,作者還介紹了Pose Guided Proposals Generator,以增強訓練樣本,以更好地幫助訓練SPPE和SSTN網絡。RMPE的一個顯著特征是該技術可以擴展到人類檢測算法和SPPE的任何組合。
4.Mask RCNN
Mask RCNN是一種用于執行語義和實例分割的流行架構。該模型可以并行地預測圖像中各種對象的邊界框的位置以及用于對象的語義分割的掩模。該基本架構可以容易地擴展到用于人體姿勢估計的方法。
基本架構首先使用CNN從圖像中提取特征圖。區域提議網絡(RPN)使用這些要素圖來獲取對象的候選邊界框。通過從CNN提取的特征圖中選擇區域來獲得這些候選邊界框。由于候選邊界框可以具有各種大小,因此我們使用名為RoIAlign的層來減小提取的要素的大小,使它們具有相同的大小。現在,提取的特征被傳遞到CNN的并行分支,以最終預測邊界框和分割掩模。
現在讓我們看看執行拆分的分支。首先假設圖像中的對象屬于類別集K.分割分支可以輸出大小為m×m的K個二進制掩碼,其中每個二進制掩碼僅表示屬于該類的所有對象。我們可以將每種類型的關鍵點建模為不同的類,并將其視為分割問題,以提取屬于圖像中每個人的關鍵點。
同時,我們還可以訓練目標檢測算法來識別人的位置。通過將人們的位置信息與他們的關鍵點相結合,我們可以得到圖像中每個人的人體骨架圖。
該方法類似于自上而下的方法,但人類檢測階段與組件檢測階段并行執行。換句話說,臨界點檢測階段和人體檢測階段彼此獨立。
其他方法
多人體姿評估有很多解決方案。為簡潔起見,本文僅介紹幾種方法。有關方法的更詳細列表,您可以查看以下信息:
可以應用于:
態度估計在許多領域都有應用,其中一些在下面列出。
1.活動識別
跟蹤身體姿勢隨時間的變化也可用于活動,手勢和步態識別。這些用例是:
用于檢測人是否摔倒或生病的應用程序。
可以自主地教授正確的運動機制,運動技術和舞蹈活動的應用。
可以理解全身手語的應用(例如:機場跑道信號,交警信號等)。
可以增強監控的安全性和應用程序。
跟蹤一個人的步態對于安全和監視區域非常有用
2.動作捕捉和增強現實
CGI應用程序是一種有趣的應用程序類型,它也利用了人體姿勢估計。如果您可以估計一個人的姿勢,您可以在人物上疊加圖形,樣式,設備和藝術品。通過跟蹤這種人體姿勢的變化,渲染的圖形可以在人移動時“自然地適應”。
Animoji就是一個很好的例子。雖然上述研究僅追蹤了臉部的結構,但這種想法可以擴展到人類的關鍵跟蹤。相同的概念也可用于渲染模仿人體運動的增強現實(AR)元素。
3.訓練機器人
我們可以跟蹤執行動作的人體骨骼的軌跡,而不是手動編程機器人來跟蹤軌跡。人類教練可以通過示范行動有效地教導機器人這些行動。然后,機器人可以計算如何移動關節以執行相同的動作。
4.控制臺動作跟蹤
姿勢估計的另一個有趣的應用是跟蹤交互式游戲中人體的運動。通常,Kinect使用3D姿勢估計(使用紅外傳感器數據)來跟蹤人類運動員的運動并使用它來渲染化身的動作。
總結
我們在人體姿態估計領域取得了很大進展,這使我們能夠更好地服務于可能使用該技術的大量應用。此外,對姿勢跟蹤等相關領域的研究可以大大提高其在許多領域的生產利用率。
關注微信公眾號:“圖像算法”或者微信搜索imalg_cn 可獲取更多有用資源返回搜狐,查看更多
責任編輯:
總結
以上是生活随笔為你收集整理的动作分析 姿态估计_单人或多人的人体姿态骨架估计算法概述的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: L档是什么档?
- 下一篇: 车辆识别代码LDCA2366XP3010