從DeepNet到HRNet,這有一份深度學(xué)習(xí)“人體姿勢估計”全指南
幾十年來,人體姿態(tài)估計(Human Pose estimation)在計算機視覺界備受關(guān)注。它是理解圖像和視頻中人物行為的關(guān)鍵一步。
在近年深度學(xué)習(xí)興起后,人體姿態(tài)估計領(lǐng)域也發(fā)生了翻天覆地的變化。
今天,文摘菌就從深度學(xué)習(xí)+二維人體姿態(tài)估計的開山之作DeepPose開始講起,為大家盤點近幾年這一領(lǐng)域的最重要的論文。
什么是人體姿勢估計?
人體姿態(tài)估計(Human Pose Estimation,以下簡稱為HPE)被定義為圖像或視頻中,人體關(guān)節(jié)(也被稱為關(guān)鍵點-肘部、手腕等)的定位問題。它也被定義為,在所有關(guān)節(jié)姿勢組成的空間中搜索特定姿勢。
二維姿態(tài)估計-運用二維坐標(biāo)(x,y)來估計RGB圖像中的每個關(guān)節(jié)的二維姿態(tài)。
三維姿態(tài)估計-運用三維坐標(biāo)(x,y,z)來估計RGB圖像中的三維姿態(tài)。
HPE有一些非??岬膽?yīng)用,在動作識別(action recognition)、動畫(animation)、游戲(gaming)等領(lǐng)域都有著廣泛的應(yīng)用。例如,一個非?;鸬纳疃葘W(xué)習(xí)APP —— HomeCourt,可以使用姿態(tài)估計(Pose Estimation)來分析籃球運動員的動作。
為什么人體姿勢估計這么難?
靈活、小而幾乎看不見的關(guān)節(jié)、遮擋、衣服和光線變化都為人體姿態(tài)估計增加了難度。
二維人體姿態(tài)估計的不同方法
傳統(tǒng)方法
關(guān)節(jié)姿態(tài)估計的傳統(tǒng)方法是使用圖形結(jié)構(gòu)框架。這里的基本思想是,將目標(biāo)對象表示成一堆“部件(parts)”的集合,而部件的組合方式是可以發(fā)生形變的(非死板的)。
一個部件表示目標(biāo)對象某部分圖形的模板?!皬椈伞憋@示部件之間的連接方式,當(dāng)部件通過像素位置和方向進行參數(shù)化后,其所得到的結(jié)構(gòu)可以對與姿態(tài)估計非常相關(guān)的關(guān)節(jié)進行建模。(結(jié)構(gòu)化預(yù)測任務(wù))
然而,上述方法的局限性在于,姿勢模型并非構(gòu)建在圖像數(shù)據(jù)之上。因此,研究者把大部分精力都放在了構(gòu)建更具表現(xiàn)力的模型上了。
可形變部件模型(Deformable part models)- Yang和Ramanan使用表示復(fù)雜關(guān)節(jié)關(guān)系的部件混合模型??尚巫儾考P褪且粋€模板集合,這些模板的組合方式是可發(fā)生形變的,每個模型都有全局模板+部件模板。這些模板與圖像相匹配用以以識別/檢測對象,這種基于部件的模型可以很好地模擬關(guān)節(jié)。然而,這是以有限的表現(xiàn)力為代價實現(xiàn)的,并沒有用到全局信息。
基于深度學(xué)習(xí)的方法
傳統(tǒng)姿態(tài)估計方法有其難以克服的局限性,但這一局面因為CNN的出現(xiàn)而被打破。隨著Toshev等人對“DeepPose”的引入,人體姿態(tài)估計的研究開始從傳統(tǒng)方法轉(zhuǎn)向深度學(xué)習(xí)。
近年來,大多數(shù)姿態(tài)估計系統(tǒng)(pose estimation systems)都普遍采用ConvNets作為其主構(gòu)模塊,這在很大程度上取代了手工制作的特征和圖形模板;這種方法相比傳統(tǒng)方法取得了巨大提升。
在下一節(jié)中,我將按時間順序總結(jié)幾篇論文,這些論文代表了HPE的演進,從google的DeepPose開始(這不是一個詳盡的列表,而是一個個人認(rèn)為能夠顯示該領(lǐng)域最近進展和會議重要成果的論文合集)。
論文涵蓋
1. DeepPose
2. 使用卷積網(wǎng)絡(luò)的高效目標(biāo)定位(Efficient Object Localization Using Convolutional Networks)
3. 卷積姿態(tài)機(Convolutional Pose Machines)
4. 基于誤差反饋的人體姿態(tài)估計(Human Pose Estimation with Iterative Error Feedback)
5. 用于人體姿態(tài)估計的堆疊式沙漏網(wǎng)絡(luò)(Stacked Hourglass Networks for Human Pose Estimation)
6. 人體姿態(tài)估計和跟蹤的簡單基線(Simple Baselines for Human Pose Estimation and Tracking)
7. 人體姿態(tài)估計的高分辨率深度學(xué)習(xí)(Deep High-Resolution Representation Learning for Human Pose Estimation)
DeepPose:通過深度神經(jīng)網(wǎng)絡(luò)(CVPR'14)進行人體姿態(tài)估計
DeepPose是第一篇將深度學(xué)習(xí)應(yīng)用于HPE的重要論文。它實現(xiàn)了SOTA(state of the art)性能并擊敗了現(xiàn)有的模型。在這種方法中,姿勢估計被表述為一個基于CNN的身體關(guān)節(jié)回歸問題。
他們還使用一系列這樣的回歸器來改進姿勢估計并獲得更好的估計結(jié)果。這種方法所做的一件重要事情是以整體的方式評估姿勢,也就是說,即使某些關(guān)節(jié)是隱藏的,如果擺出的姿勢是作為一個整體,也可以對其進行估計。本文認(rèn)為,CNN很自然地提供了這種推理,并通過結(jié)果證明了其強大。
模型
該模型由一個Alexnet后端(7層)和一個額外的最終層組成,這個最終層的輸出為2k關(guān)節(jié)坐標(biāo)。(xi,yi)?2fori∈{1,2…k},k為關(guān)節(jié)數(shù)量
使用L2損失對模型進行回歸訓(xùn)練。
這個模型實現(xiàn)的一個有趣的想法是,使用級聯(lián)回歸器(cascaded regressors)對預(yù)測進行細化,從而對初始的粗糙預(yù)測進行了改進,得到較好的估計。圖像被剪切到預(yù)測到的關(guān)節(jié)周圍,并被送入下一階段,這樣,后續(xù)的姿勢回歸器可以看到更高分辨率的圖像,從而學(xué)習(xí)更細比例的特征,從而最終獲得更高的精度。
結(jié)果
本文使用了LSP(Leeds sports dataset,利茲[2]運動數(shù)據(jù)集)和FLIC(Frames Labeled In Cinema,電影院標(biāo)記幀)數(shù)據(jù)集進行實驗,并以PCP(Percentage of Correct Parts,部件正確率)指標(biāo)和其他方法進行了比較。查看附錄,可以找到一些主流的評估指標(biāo)(如PCP&PCK)的定義。
評語
本文將深度學(xué)習(xí)(CNN)應(yīng)用于人體姿勢估計(HPE),并在這方面啟發(fā)了大量研究。
回歸到XY位置是比較困難的,并且增加了學(xué)習(xí)復(fù)雜性,這削弱了其泛化能力,因此在某些區(qū)域表現(xiàn)不佳。
最近的SOTA方法將問題轉(zhuǎn)化為估算尺寸為W0×H0,{H1,H2,...,Hk} 的K個熱圖(heatmap),其中每個熱圖中Hk表示kth關(guān)鍵點的位置置信度(共K個關(guān)鍵點)。下一篇論文將重點介紹這一觀點。
使用卷積網(wǎng)絡(luò)(CVPR'15)進行有效的目標(biāo)定位
這種方法通過并行方式對圖像進行多分辨率處理來生成一組熱圖(heatmap),同時在不同的尺度上捕獲特征。輸出的結(jié)果是一個離散的熱圖而不是連續(xù)回歸。熱圖預(yù)測關(guān)節(jié)在每個像素發(fā)生的概率。這個輸出模型是非常成功的,很多后續(xù)論文都是預(yù)測熱圖而不是直接回歸。
模型
采用多分辨率CNN結(jié)構(gòu)(粗糙熱圖模型)實現(xiàn)滑動窗口探測器,從而產(chǎn)出粗糙熱圖。
本文的主要目的是恢復(fù)初始模型中,由于池化而造成的空間精度損失。他們通過使用一個額外的“姿態(tài)優(yōu)化”——ConvNet來實現(xiàn)這一點,ConvNet可以優(yōu)化粗糙熱圖的定位結(jié)果。
但是,與標(biāo)準(zhǔn)的級聯(lián)模型不同,它們重用現(xiàn)有的卷積特性。這不僅減少了級聯(lián)中可訓(xùn)練參數(shù)的數(shù)量,而且由于粗糙模型和精細模型是聯(lián)合訓(xùn)練的,因此可以作為粗熱圖模型的調(diào)節(jié)器。
從本質(zhì)上講,該模型包括用于粗定位的基于熱圖的部件模型、用于在每個關(guān)節(jié)的指定(x,y)位置采樣和裁剪卷積特征的模塊以及用于微調(diào)的附加卷積模型。
這種方法的一個關(guān)鍵特征是聯(lián)合使用一個ConvNet和一個圖形模型,圖形模型學(xué)習(xí)關(guān)節(jié)之間的典型空間關(guān)系。
訓(xùn)練
該模型通過最小化我們的預(yù)測熱圖到目標(biāo)熱圖的均方誤差(MSE,Mean Squared-Error)距離進行訓(xùn)練(目標(biāo)是以標(biāo)準(zhǔn)真值(x,y)關(guān)節(jié)位置為中心的二維常方差高斯(σ≈1.5像素))。
結(jié)果
評論
熱圖比直接關(guān)節(jié)回歸更有效。
聯(lián)合使用CNN和圖形模型(Graphical Model)
然而,這些方法缺乏結(jié)構(gòu)建模。由于受限于身體部位比例、左右對稱性、穿插限制、關(guān)節(jié)限制(例如肘部不向后彎曲)和物理連接(例如手腕與肘部的精確相關(guān))等約束,二維人體姿勢呈現(xiàn)出高度結(jié)構(gòu)化。對這種結(jié)構(gòu)約束進行建模,應(yīng)該可以更容易地確定可見的關(guān)鍵點,并使咬合處關(guān)鍵點估計成為可能。接下來的幾篇論文,他們將用一些新穎方式來解決這個問題。
卷積擺位機(CVPR'16)(Convolutional Pose Machines)
摘要
這是一篇有趣的論文,使用了一種稱為姿態(tài)機(Pose Machine)的東西。姿態(tài)機由圖像特征計算模塊和預(yù)測模塊組成。卷積式姿態(tài)機是完全可微分的,其多級結(jié)構(gòu)可以進行端到端的訓(xùn)練。它們?yōu)閷W(xué)習(xí)豐富的隱式空間模型提供了一個連續(xù)的預(yù)測框架,其對人體姿勢的預(yù)測效果非常好。
本文的一個主要動機是學(xué)習(xí)長范圍的空間關(guān)系,它們表明,這可以通過使用更大的感受野(receptive fields)來實現(xiàn)。
模型
g1()和g2()預(yù)測熱圖(即論文中的信念圖(belief maps)),整體架構(gòu)如上圖所示。Stage1是圖像特征計算模塊,Stage2是預(yù)測模塊;下面是一個詳細的架構(gòu)。
CPM(卷積姿態(tài)機)通常包含不止兩個階段,階段數(shù)目一般來講都是超參數(shù),通常取3。第一階段是固定的,大于2的階段一般都只是階段2的重復(fù)。第2階段將熱圖和圖像證據(jù)作為輸入。輸入的熱圖為下一個階段增添了空間背景。(已經(jīng)在論文中進行了詳細的闡述與討論)
總體來說,CPM通過后續(xù)階段來對熱圖進行細化。
論文在每一個階段都會使用中間監(jiān)督學(xué)習(xí),從而來避免梯度消失的問題,這是一個深度多層神經(jīng)網(wǎng)絡(luò)的常見問題。
結(jié)論/結(jié)果
MPII:PCKh-0.5得分達到87.95%的水平狀態(tài),比最接近的競爭者高出6.11%,值得注意的是,在腳踝(最具挑戰(zhàn)性的部分),我們的PCKh@0.5得分是78.28%,這比最接近的競爭對手高出了10.76%。
LSP:模型達到84.32%的水平狀態(tài)(添加MPII訓(xùn)練數(shù)據(jù)時為90.5%)。
評論
介紹了一種新穎的CPM框架,該框架顯示了MPII,F(xiàn)LIC和LSP數(shù)據(jù)集的SOTA性能。
基于誤差反饋的人體姿態(tài)估計(CVPR’16)
摘要
這是一篇內(nèi)容豐富并非常復(fù)雜的論文,我試圖簡單地總結(jié)一下,希望不會遺漏太多。整個工作的思想非常直接:預(yù)測當(dāng)前估計的錯誤并迭代糾正。引用作者的論述,他們不是一次性直接預(yù)測輸出,而是使用自校正模型,通過反饋誤差預(yù)測逐步改變初始解決方案,這個過程稱為迭代誤差反饋(IEF)。
讓我們來看看模型吧。
輸入由圖像I和前一輸出yt?1的表示組成。請記住,這是一個迭代的過程,相同的輸出在不斷地迭代過程中會慢慢地得到改進。
輸入,xt=I⊕g(yt-1) 其中I是圖像,而yt-1是前一個輸出。
f(yt)輸出校正εt,并將其添加到當(dāng)前輸出yt,以生成yt+1,并且這里面還包含了校正更新的過程。
g(yt+1)中的每個關(guān)鍵點yt+1轉(zhuǎn)換為熱圖通道,以便它們可以堆疊到圖像I中,進而也是為了形成下一個迭代過程的輸入。這個過程重復(fù)T次,直到我們得到一個精煉的yt+1,并通過添加εt,進而來更接近標(biāo)準(zhǔn)真值。
在數(shù)學(xué)上,
?t=f(xt)
yt+1=yt+?t
xt+1=I⊕g(yt+1)
f和g是可學(xué)習(xí)的,f 是一個CNN。
需要注意的一點是,當(dāng)ConvNet f() 將I⊕g(t)作為輸入時,它能夠?qū)W習(xí)關(guān)節(jié)輸入- 輸出空間的特征,這是非??岬摹?/p>
參數(shù) Θg和Θf是通過優(yōu)化以下等式來學(xué)習(xí):
其中,?t和(y,yt)是被預(yù)測出來的,并且分別是修正的目標(biāo)。函數(shù)(h)是距離的度量,例如二次損失。T是模型采取的修正步驟的數(shù)目。
案例
如你所見,姿勢在校正步驟中得到了改進。
結(jié)果
評論
這是一篇非常好的論文,它介紹了一個新穎的算法,并且運作良好。
用于人體姿態(tài)估計的堆疊式沙漏網(wǎng)絡(luò)
這是一篇具有里程碑意義的論文,它引入了一種新穎而直觀的架構(gòu),并擊敗了以往的所有方法。它被稱為堆疊式沙漏網(wǎng)絡(luò),因為網(wǎng)絡(luò)包括池化和上采樣層的步驟,這些層看起來像沙漏,并且這些被堆疊在一起。沙漏的設(shè)計是由于需要捕獲各種規(guī)模的信息。
雖然本地證據(jù)對于識別面部手等特征至關(guān)重要,但最終的姿勢估計需要全局背景。用于識別人的方向,肢體的排列以及相鄰關(guān)節(jié)的關(guān)系等內(nèi)容的線索,最好是在圖像的不同尺度中尋找(較小的分辨率捕獲更高階的特征和全局背景)。
網(wǎng)絡(luò)通過中間監(jiān)督執(zhí)行自下而上,自上而下的處理
自下而上處理(從高分辨率到低分辨率)自上而下處理(從低分辨率到高分辨率)
網(wǎng)絡(luò)使用skip connection來保留每個分辨率的空間信息,并將其傳遞給上采樣,進一步沿著沙漏進行傳遞。
每個盒子都是一個殘留模塊,如下圖所示;
中間監(jiān)督
中間監(jiān)督被應(yīng)用于每個沙漏階段的預(yù)測,即監(jiān)督堆棧中每個沙漏的預(yù)測,而不僅僅是最終的沙漏預(yù)測。
結(jié)果
它為什么這么好用呢?
沙漏可以捕獲各種規(guī)模的信息。通過這種方式,全局和本地信息都可以被完全捕獲并被網(wǎng)絡(luò)用于學(xué)習(xí)預(yù)測。
人體姿勢估計和跟蹤的簡單基線
以前的方法運行的效果很好但是都很復(fù)雜。這項工作伴隨著提出來這樣一個問題。為啥不用一個簡單的模型?該模型在COCO上實現(xiàn)了73.7%的mAP創(chuàng)紀(jì)錄水平。網(wǎng)絡(luò)結(jié)構(gòu)非常簡單,最后由一個ResNet 和幾個反卷積層組成。(可能是估算熱圖的最簡單方法)
雖然沙漏網(wǎng)絡(luò)使用上采樣來增加特征圖分辨率并將卷積參數(shù)放入其他塊中,但此方法以非常簡單的方式將它們組合為反卷積層。令人驚訝的是,這樣一個簡單的架構(gòu)比具有skip connections的架構(gòu)表現(xiàn)更好,并且保留了每個分辨率的信息。
均方誤差(MSE)用作預(yù)測的熱圖和目標(biāo)熱圖之間的損失。關(guān)節(jié)k的目標(biāo)熱圖Hk是通過在第k個關(guān)節(jié)的標(biāo)準(zhǔn)真值位置上以std dev = 1像素為中心應(yīng)用2D高斯來生成的。
結(jié)果
用于人體姿勢估計的深度高分辨率表示學(xué)習(xí)[HRNet] (CVPR’19)
HRNet(高分辨率網(wǎng)絡(luò))模型在COCO數(shù)據(jù)集中的關(guān)鍵點檢測,多人姿態(tài)估計和姿態(tài)估計等任務(wù)上的表現(xiàn)均優(yōu)于現(xiàn)有方法,它是最新的。
HRNet遵循一個非常簡單的想法。以前的大多數(shù)論文都來自高→低→高分辨率表示。HRNet 在整個過程中都保持高分辨率的表示,并且這非常有效。
該架構(gòu)從作為第一階段的高分辨率子網(wǎng)開始,逐步逐個添加高到低分辨率的子網(wǎng),以形成更多的階段并連接并行的多分辨率子網(wǎng)。
通過在整個過程中反復(fù)進行跨越多分辨率并行子網(wǎng)絡(luò)的信息交換來實現(xiàn)多尺度融合。
另一些專業(yè)人士認(rèn)為,與堆疊式沙漏不同,這種架構(gòu)不使用中間熱圖監(jiān)督學(xué)習(xí)。
使用MSE損失對熱圖進行回歸復(fù)原,類似于簡單的基線。
結(jié)果
以下是其他一些我認(rèn)為也非常有趣的論文:
Flowing ConvNets for Human Pose Estimation in Videos (ICCV’15)[arXiv]
Learning Feature Pyramids for Human Pose Estimation (ICCV’17) [arXiv][code]
Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields (CVPR’17)[arXiv][code]: Very popular real-time multi-person pose estimator (Better known as OpenPose)
Multi-Context Attention for Human Pose Estimation (CVPR’17)[arXiv][code]
Cascaded Pyramid Network for Multi-Person Pose Estimation (CVPR’18)[arXiv][code]
附錄
通用評估指標(biāo)
需要評估指標(biāo)來衡量人體姿勢估計模型的性能。
正確部件的百分比 - PCP:如果兩個預(yù)測的關(guān)節(jié)位置與真實肢體關(guān)節(jié)位置之間的距離小于肢體長度的一半(通常表示為PCP@0.5),則認(rèn)為肢體被檢測到(正確的部分)。
它測量肢體的檢出率。結(jié)果是,由于較短的肢體具有較小的閾值,因此它會對較短的肢體進行懲罰。
PCP(正確部件的百分比)越高,模型越好。
正確關(guān)鍵點的百分比 - PCK:如果預(yù)測關(guān)節(jié)與真實關(guān)節(jié)之間的距離在特定閾值內(nèi),則檢測到的關(guān)節(jié)被認(rèn)為是正確的。閾值可以是:
PCKh@0.5表示閾值=頭骨鏈接的50%時
PCK@0.2 ==預(yù)測和真實關(guān)節(jié)之間的距離<0.2 *軀干直徑
有時將150 mm作為閾值。
緩解較短的肢體問題,因為較短的肢體具有較小的軀干和頭骨連接。
PCK通常被用于2D和3D(PCK3D)。再次強調(diào)聲明,越高越好。
檢測到的關(guān)節(jié)的百分比 - PDJ:如果預(yù)測關(guān)節(jié)和真實關(guān)節(jié)之間的距離在軀干直徑的某一部分內(nèi),則檢測到的關(guān)節(jié)被認(rèn)為是正確的。PDJ@0.2 =預(yù)測和真實關(guān)節(jié)之間的距離<0.2 *軀干直徑。
基于對象關(guān)鍵點相似度(OKS)的mAP:
常用于COCO關(guān)鍵點的挑戰(zhàn)。
其中di是檢測到的關(guān)鍵點與相應(yīng)的標(biāo)準(zhǔn)真值之間的歐幾里德距離,vi是標(biāo)準(zhǔn)真值的可見性標(biāo)志,s是對象尺度,ki控制衰減的每個關(guān)鍵點常量。
簡而言之,OKS扮演的角色與IoU在對象檢測中扮演的角色相同。它是根據(jù)人的尺度標(biāo)準(zhǔn)化的預(yù)測點和標(biāo)準(zhǔn)真值點之間的距離計算出來的。更多詳細信息,以及標(biāo)準(zhǔn)平均精度和召回分?jǐn)?shù)在論文中皆有報告:A P50(AP at OKS = 0.50) A P75, A P(the mean of A Pscores at 10 positions, OKS = 0.50, 0.55, . . . , 0.90, 0.95; A PMfor medium objects,A PMfor large objects, andA R(Average recall) at OKS = 0.50, 0.55, . . . , 0.90, 0.955。
-
圖像
+關(guān)注
關(guān)注
2文章
1084瀏覽量
40459 -
數(shù)據(jù)集
+關(guān)注
關(guān)注
4文章
1208瀏覽量
24696 -
深度學(xué)習(xí)
+關(guān)注
關(guān)注
73文章
5503瀏覽量
121142
原文標(biāo)題:從DeepNet到HRNet,這有一份深度學(xué)習(xí)“人體姿勢估計”全指南
文章出處:【微信號:BigDataDigest,微信公眾號:大數(shù)據(jù)文摘】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。
發(fā)布評論請先 登錄
相關(guān)推薦
評論