目錄
1、人體姿態(tài)簡介
2挫酿、OpenPose論文方案解讀
?? 2.1 文章亮點(diǎn)
?? 2.2 網(wǎng)絡(luò)結(jié)構(gòu)
?? 2.3 loss function
?? 2.4 計(jì)算heatmap()與vectormap(
)
?? 2.5 關(guān)節(jié)拼接與多人檢測(Multi-Person Parsing using PAFs)
3、細(xì)節(jié)梳理
??3.1 COCO人體姿態(tài)數(shù)據(jù)集的格式
??3.2 為什么heatmap的channels是19汗茄,vectormap的channels是38炊苫?
??3.3 tf-openpose人體姿態(tài)估計(jì)標(biāo)簽生成--heatmap--vectormap
??3.4 改進(jìn)
4谊却、參考資料
1衙猪、人體姿態(tài)簡介
??人體姿態(tài)估計(jì)是計(jì)算機(jī)視覺中一個(gè)很基礎(chǔ)的問題馍乙。從名字的角度來看,可以理解為對(duì)“人體”的姿態(tài)(關(guān)鍵點(diǎn)垫释,比如頭丝格,左手,右腳等)的位置估計(jì)棵譬。
??人體姿態(tài)估計(jì)可以分為兩種思路显蝌,
(1)“top-down”,它指先檢測人體區(qū)域茫船,再檢測區(qū)域內(nèi)的人體關(guān)鍵點(diǎn)琅束。
2、OpenPose論文方案解讀
2.1 文章亮點(diǎn)
??已有"bottom-up"方法缺點(diǎn):(1)未利用全局上下文先驗(yàn)信息践宴,也即圖片中其他人的身體關(guān)鍵點(diǎn)信息鲸匿;(2)將關(guān)鍵點(diǎn)對(duì)應(yīng)到不同的人物個(gè)體,算法復(fù)雜度太高阻肩。
??文章改進(jìn)點(diǎn):提出“Part Affinity Fields (PAFs)”带欢,每個(gè)像素是2D的向量运授,用于表征位置和方向信息∏巧罚基于檢測出的關(guān)節(jié)點(diǎn)和關(guān)節(jié)聯(lián)通區(qū)域吁朦,使用greedy inference算法,可以將這些關(guān)節(jié)點(diǎn)快速對(duì)應(yīng)到不同人物個(gè)體渡贾。
2.2 網(wǎng)絡(luò)結(jié)構(gòu)
??整個(gè)的技術(shù)方案為“two-branch multi-stage CNN”逗宜,如圖,其中一個(gè)分支用于預(yù)測打分圖confidence maps(S)空骚,另外一個(gè)分支用于預(yù)測Par Affinity Fields(L)纺讲,也對(duì)應(yīng)著heatmap與vectormap。
其中
??從圖中還可以看出吝沫,網(wǎng)絡(luò)的
上圖(c)中表示檢測到的一段軀干栅受,同樣的一個(gè)軀干對(duì)應(yīng)一個(gè)feature map。
2.3 Loss function
??損失函數(shù)是保證網(wǎng)絡(luò)能收斂的最重要的關(guān)鍵點(diǎn)恭朗,因此作者對(duì)兩分支的損失函數(shù)均采用L2 loss屏镊。訓(xùn)練時(shí),每個(gè)階段都會(huì)產(chǎn)生loss痰腮,避免梯度消失而芥;預(yù)測時(shí)只使用最后一層的輸出。公式表示如下:
其中膀值,表示branch1 的label圖棍丐,也稱為heatmap;
是branch2 的label圖弟翘,也稱為vectormap。另外骄酗,考慮到有些訓(xùn)練數(shù)據(jù)集只標(biāo)注了圖片中部分人物的關(guān)節(jié)點(diǎn)稀余,因此對(duì)損失函數(shù)采用了空域加權(quán)操作,W表示二值化mask矩陣趋翻,當(dāng)位置p的標(biāo)簽缺失時(shí)其值為0睛琳,否則值為1。顯然踏烙,對(duì)于未被標(biāo)記的人物關(guān)節(jié)點(diǎn)
师骗,而被標(biāo)記的人物關(guān)節(jié)點(diǎn)和非關(guān)節(jié)點(diǎn)
,所以未被標(biāo)記的人物關(guān)節(jié)點(diǎn)不會(huì)影響模型的學(xué)習(xí)過程,整個(gè)CNN網(wǎng)絡(luò)架構(gòu)的優(yōu)化目標(biāo)函數(shù)如下讨惩,
2.4 計(jì)算heatmap(
)與vectormap(
)
??實(shí)際上就是使用2D高斯分布建模辟癌,求出一張圖像上身體j部位的heatmap,記第k個(gè)人的第j個(gè)關(guān)節(jié)的heatmap為
荐捻,
表示位置信息黍少,則有:
??表示了使用part affinity fields(PAF)建模骨骼區(qū)域,對(duì)于骨骼區(qū)域內(nèi)的每一個(gè)像素处面,使用2D向量同時(shí)表征位置和方向信息厂置,這里的方向指代當(dāng)前骨骼對(duì)應(yīng)的關(guān)節(jié)點(diǎn)對(duì)的連接方向,對(duì)應(yīng)vectormap魂角。以下圖的骨骼區(qū)域?yàn)槔?/p>
圖中綠色虛線框內(nèi)的區(qū)域以點(diǎn)集
2.5 關(guān)節(jié)拼接與多人檢測(Multi-Person Parsing using PAFs)
??經(jīng)過上述過程,我們已經(jīng)得到各個(gè)關(guān)節(jié)點(diǎn)的坐標(biāo)圖--heatmap找都,與關(guān)節(jié)對(duì)連接的vectormap唇辨,現(xiàn)在的問題就是如何合理地在推理階段將各個(gè)關(guān)節(jié)連接成一段骨骼,并將它們組裝成一個(gè)人能耻?
??關(guān)節(jié)拼接:對(duì)于任意兩個(gè)關(guān)節(jié)點(diǎn)位置和
赏枚,通過計(jì)算PAFs的線性積分來表征骨骼點(diǎn)對(duì)的相關(guān)性亡驰,也即表征了骨骼點(diǎn)對(duì)的置信度,公式表示如下饿幅,
為了快速計(jì)算積分凡辱,一般采用均勻采樣的方式近似這兩個(gè)關(guān)節(jié)點(diǎn)間的相似度,
??多人檢測:由于圖片中人數(shù)不確定栗恩,同時(shí)伴隨遮擋透乾、變形等問題,因此只使用上述計(jì)算關(guān)節(jié)對(duì)相似度磕秤,只能保證局部最優(yōu)乳乌,因此作者利用greedy relaxation的思想生成全局較優(yōu)的搭配。具體操作如下:
(1)已知不同關(guān)節(jié)點(diǎn)的heatmap市咆,也就是不同人的某個(gè)關(guān)節(jié)點(diǎn)的點(diǎn)集汉操;
(2)現(xiàn)在要將不同的點(diǎn)集進(jìn)行唯一匹配,如:一群表示手肘的點(diǎn)集和手腕的點(diǎn)集蒙兰,兩點(diǎn)集中的點(diǎn)必須存在唯一匹配磷瘤;
(3)關(guān)節(jié)點(diǎn)之間的相關(guān)性PAF已知,將關(guān)鍵點(diǎn)作為圖的頂點(diǎn)搜变,將關(guān)鍵點(diǎn)之間的相關(guān)性PAF看為圖的邊權(quán)膀斋,則將多人檢測問題轉(zhuǎn)化為二分圖匹配問題,并用匈牙利算法求得相連關(guān)鍵點(diǎn)最優(yōu)匹配痹雅。
3绩社、細(xì)節(jié)梳理
3.1 COCO人體姿態(tài)數(shù)據(jù)集的格式
3.2 為什么heatmap的channels是19摔蓝,vectormap的channels是38?
??由上圖可知愉耙,COCO數(shù)據(jù)集總共有18個(gè)關(guān)鍵點(diǎn)贮尉,17個(gè)肢體骨架,但heatmap多了一個(gè)背景圖朴沿,vectormap多了耳朵和肩膀的肢體猜谚,為什末要虛構(gòu)這麼一個(gè)肢體呢,因?yàn)橛袝r(shí)候人體是背對(duì)相機(jī)的赌渣,眼睛這個(gè)關(guān)鍵點(diǎn)是不可見的魏铅,為了更好的預(yù)測耳朵,引入這兩個(gè)個(gè)肢體(也就是關(guān)節(jié)對(duì):2-16和5-17)坚芜。所以總共有19個(gè)肢體览芳,應(yīng)為vectormap為矢量,預(yù)測時(shí)分為x,y兩個(gè)分量鸿竖,所以有19*2=38
3.3 tf-openpose人體姿態(tài)估計(jì)標(biāo)簽生成--heatmap--vectormap
??完全參考https://blog.csdn.net/m0_37477175/article/details/81236115沧竟,結(jié)合2.4節(jié)中vectormap()的計(jì)算公式與綠色虛線框內(nèi)的區(qū)域以點(diǎn)集數(shù)學(xué)公式理解铸敏。
??關(guān)鍵是叉乘的幾何意義是兩個(gè)向量所組成的平行四邊形的面積,所以就表示與向量
平行距離為
的區(qū)域悟泵,也就是骨骼寬度杈笔。
3.4 改進(jìn)
后來論文作者對(duì)網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了改進(jìn),使得效果更好糕非,速度更快桩撮,參考文獻(xiàn)【11】。
4峰弹、參考資料
【1】Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
【2】人體姿態(tài)估計(jì)的過去店量、現(xiàn)在和未來
【3】論文解讀-Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
【4】Realtime Multi-Person 2D Pose Estimation Using Part Affinity Fields【菜鳥讀者】
【5】知乎:openpose筆記
【6】openpose論文總結(jié):Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields
【7】詳細(xì)介紹匈牙利算法步驟
【8】Github 項(xiàng)目 - OpenPose 關(guān)鍵點(diǎn)輸出格式
【9】openpose的細(xì)節(jié)處理
【10】tf-openpose人體姿態(tài)估計(jì)標(biāo)簽生成--heatmap--vectormap
【11】OpenPose: Realtime Multi-Person 2D Pose Estimation using Part Affinity Fields