人体姿态估计算法之open pose
一,openpose是一種自底向上的算法:
? ? ? ? OpenPose人體姿態(tài)識(shí)別項(xiàng)目是美國(guó)卡耐基梅隆大學(xué)(CMU)基于卷積神經(jīng)網(wǎng)絡(luò)和監(jiān)督學(xué)習(xí)并以Caffe為框架開(kāi)發(fā)的開(kāi)源庫(kù)??梢詫?shí)現(xiàn)人體動(dòng)作、面部表情、手指運(yùn)動(dòng)等姿態(tài)估計(jì)。適用于單人和多人,具有極好的魯棒性。是世界上首個(gè)基于深度學(xué)習(xí)的實(shí)時(shí)多人二維姿態(tài)估計(jì)應(yīng)用,基于它的實(shí)例如雨后春筍般涌現(xiàn)。
? ? ? ? 檢測(cè)所有的關(guān)鍵點(diǎn),再group成不同的人,是當(dāng)前比較流行的人體姿態(tài)評(píng)估算法之一。OpenPose 大獲成功的一部分原因是它在 GitHub 上開(kāi)源了其實(shí)現(xiàn)代碼
(https://github.com/CMU-Perceptual-Computing-Lab/openpose),并配有詳細(xì)的說(shuō)明文檔。
和很多自底向上的方法一樣,OpenPose 首先檢測(cè)出圖像中所有人的關(guān)節(jié)(關(guān)鍵點(diǎn)),然后將檢出的關(guān)鍵點(diǎn)分配給每個(gè)對(duì)應(yīng)的人。下圖展示了 OpenPose 模型的架構(gòu)。
?
二,openpose算法:
1.輸入一幅圖像,經(jīng)過(guò)VGG19卷積網(wǎng)絡(luò)提取特征,得到一組特征圖,然后分成兩個(gè)岔路Branch1&2,分別使用 CNN網(wǎng)絡(luò)提取Part Confidence Maps(置信度) 和 Part Affinity Fields(關(guān)聯(lián)度);
2.得到這兩個(gè)信息后,我們使用圖論中的 Bipartite Matching(偶匹配) 求出Part Association,將同一個(gè)人的關(guān)節(jié)點(diǎn)連接起來(lái),由于PAF自身的矢量性,使得生成的偶匹配很正確,最終合并為一個(gè)人的整體骨架;
3.最后基于PAFs求Multi-Person Parsing—>把Multi-person parsing問(wèn)題轉(zhuǎn)換成graphs問(wèn)題—>Hungarian Algorithm(匈牙利算法)(匈牙利算法是部圖匹配最常見(jiàn)的算法,該算法的核心就是尋找增廣路徑,它是一種用增廣路徑求二分圖最大匹配的算法。)
三,關(guān)鍵點(diǎn)熱圖與矢量圖(heatmap&vectmap):
如,一共有19個(gè)關(guān)鍵點(diǎn),就會(huì)生成19個(gè)通道的熱圖,每一個(gè)通道為某個(gè)關(guān)節(jié)的熱圖分布(也就是概率圖)。同時(shí)會(huì)生成192個(gè)通道的矢量圖,為什么是192呢?因?yàn)槭噶繄D分為兩個(gè)方向,一個(gè)是X方向、一個(gè)是Y方向。
heatmap生成關(guān)鍵點(diǎn)熱力圖,未在圖內(nèi)且未標(biāo)注的關(guān)鍵點(diǎn)生成的heatmap所有值都為0。一共19個(gè)heatmap,其中最后一個(gè)代表背景。
vectormap 向量叉乘,vectormap是heatmap的兩倍為38個(gè)(19*2),因?yàn)橛?9條的關(guān)鍵點(diǎn)連接線,每一條線使用向量表示,分別有x軸的map,以及y軸的map。
四,coco keypoints 標(biāo)注 以及tf-openpose的標(biāo)注的不同
總結(jié)
以上是生活随笔為你收集整理的人体姿态估计算法之open pose的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: ubantu分区知识
- 下一篇: Microsoft Hololens开发