2D Pose人体关键点实时检测(Python/Android /C++ Demo)
2D Pose人體關鍵點實時檢測(Python/Android /C++ Demo)
目錄
2D Pose人體關鍵點實時檢測(Python/Android /C++ Demo)
1.人體關鍵點數據集
(1)COCO數據集
(2)MPII數據集
(3)關鍵點示意圖
2.人體關鍵點Demo(Python版本)
3.人體關鍵點Demo(C++版本)
4.人體關鍵點Demo(Android版本)
5.人體關鍵點檢測效果
6.人體關鍵點檢測訓練代碼
7.博客推薦:人臉檢測+人體檢測C++ Android實現
人體關鍵點檢測(Human Keypoints Detection)又稱為人體姿態估計2D Pose,是計算機視覺中一個相對基礎的任務,是人體動作識別、行為分析、人機交互等的前置任務。一般情況下可以將人體關鍵點檢測細分為單人/多人關鍵點檢測、2D/3D關鍵點檢測,同時有算法在完成關鍵點檢測之后還會進行關鍵點的跟蹤,也被稱為人體姿態跟蹤。
本博客提供2D Pose的Python代碼,以及C++版本的推理代碼,還提供Android Demo APP,已經集成了輕量化版本的人體檢測模型和人體姿態估計模型,在普通手機可實時檢測。
來,先看個Android Demo的效果圖:
?2D Pose人體關鍵點檢測整套Android源碼:2D Pose人體關鍵點實時檢測Android源碼,?整套項目源碼,主要內容包含有:??
(1)2D?Pose人體關鍵點檢測Android Demo整套源碼,可以直接在本地Android studio構建
(2)已經集成了輕量化版本的人體檢測模型和2D?Pose人體關鍵點檢測模型,在普通手機可實時檢測(CPU多線程約70ms, GPU約50ms)
(3)核心算法均采用C++實現,有效提高性能,開發者可輕松進行二次開發
(4)Android Demo支持多線程CPU處理,以及GPU(OpenCL)加速,可支持多人人體關鍵點檢測
(5)人體關鍵點檢測APP demo免費體驗:Android人體檢測和人體關鍵點檢測APPDemo安裝包-Android文檔類資源-CSDN下載,或者鏈接: https://pan.baidu.com/s/1ywiBsJMZlIZoLAu0UZAOFg 提取碼: bunc?
本篇博客不含訓練代碼,若有需要請詳看這篇博客《https://panjinquan.blog.csdn.net/article/details/125502259》
Repo推薦:
1.人體關鍵點數據集
(1)COCO數據集
下載地址:http://cocodataset.org/
COCO人體關鍵點標注,最多標注全身的17個關鍵點,平均一幅圖像2個人,最多有13個人;
人體關鍵點標注,每個人體關鍵點個數的分布情況,其中11-15這個范圍的人體是最多的,有接近70000人,6-10其次,超過40000人,后面依次為16-17,2-5,1.
(2)MPII數據集
下載地址:http://human-pose.mpi-inf.mpg.de/#download
?人體關鍵點標注了全身16個關鍵點及其是否可見的信息,人數:train有28821,test有11701,有409種人類活動;使用mat的struct格式;行人框使用center和scale標注,人體尺度關于200像素高度。也就是除過了200
(3)關鍵點示意圖
| 數據集 | 關鍵點示意圖? ? ? ? ?? | 關鍵點說明 |
| COCO | # 圖像左右翻轉時,成對的關鍵點(訓練時用于數據增強) flip_pairs=[[1, 2], [3, 4], [5, 6], [7, 8],[9, 10], [11, 12], [13, 14], [15, 16]] # 關鍵點連接線序號(用于繪制圖像) skeleton =[[15, 13], [13, 11], [16, 14], [14, 12], [11, 12], [5, 11], [6, 12], [5, 6], [5, 7], [6, 8], [7, 9], [8, 10], [0, 1], [0, 2], [1, 3], [2, 4]] # 每個關鍵點序號對應人體關鍵點的意義 "keypoints": { 0: "nose", 1: "left_eye", 2: "right_eye", 3: "left_ear", 4: "right_ear", 5: "left_shoulder", 6: "right_shoulder", 7: "left_elbow", 8: "right_elbow", 9: "left_wrist", 10: "right_wrist", 11: "left_hip", 12: "right_hip", 13: "left_knee", 14: "right_knee", 15: "left_ankle", 16: "right_ankle" } | |
| MPII | # 圖像左右翻轉時,成對的關鍵點(訓練時用于數據增強) # 關鍵點連接線序號(用于繪制圖像) skeleton=[[0, 1], [1, 2], [3, 4], [4, 5], [2, 6], [6, 3], [12, 11], [7, 12], [11, 10], [13, 14], [14, 15], [8, 9], [8, 7], [6, 7], [7, 13]] # 每個關鍵點序號對應人體關鍵點的意義 | |
| human3.6M | ||
| kinect | JointType_SpineBase = 0 # 脊柱底 JointType_SpineMid = 1 # 脊柱中間 JointType_Neck = 2 # 脖子 JointType_Head = 3 # 額頭 JointType_ShoulderLeft = 4 JointType_ElbowLeft = 5 JointType_WristLeft = 6 JointType_HandLeft = 7 JointType_ShoulderRight = 8 JointType_ElbowRight = 9 JointType_WristRight = 10 JointType_HandRight = 11 JointType_HipLeft = 12 JointType_KneeLeft = 13 JointType_AnkleLeft = 14 JointType_FootLeft = 15 JointType_HipRight = 16 JointType_KneeRight = 17 JointType_AnkleRight = 18 JointType_FootRight = 19 JointType_SpineShoulder = 20 JointType_HandTipLeft = 21 JointType_ThumbLeft = 22 JointType_HandTipRight = 23 JointType_ThumbRight = 24 JointType_Count = 25 |
2.人體關鍵點Demo(Python版本)
git clone https://github.com/PanJinquan/Human-Keypoints-Detection目前僅僅提供推理代碼,相關訓練代碼和數據,可以跟博主交流一起學習,可以支持自定義人體關鍵點進行訓練。
人體關鍵點和手部關鍵點原理差不多的,只要有相關數據即可訓練模型。
運行demo:
python demo.py3.人體關鍵點Demo(C++版本)
git clone?https://github.com/PanJinquan/Human-Pose-Estimation-Lite-cpp運行demo:?
bash build.sh這是輕量化版本的人體姿態估計(2D Pose)C++推理代碼,推理框架使用TNN
- 輕量化模型是基于MobileNet V2的改進版本
- 使用COCO的數據集進行訓練,也可以支持MPII數據
- 支持OpenCL模型推理加速,在普通手機可實時檢測
- 該倉庫并未集成人體檢測模型,Pose檢測輸入是原圖,使用人體檢測框并進行裁剪,Pose檢測效果會更好
- 關于輕量化版本的人體檢測檢測模型,可參考Object-Detection-Lite-cpp
- 注意:純C++版本速度比較慢,需要配置OpenCL方可實時檢測
- 僅用于學習交流,并未進行過多的性能優化
- 模型訓練代碼暫時未提供
4.人體關鍵點Demo(Android版本)
?2D Pose人體關鍵點檢測整套Android源碼:???????2D Pose人體關鍵點實時檢測Android源碼,?整套項目源碼,主要內容包含有:?
(1)2D?Pose人體關鍵點檢測Android Demo整套源碼,可以直接在本地Android studio構建
(2)已經集成了輕量化版本的人體檢測模型和2D?Pose人體關鍵點檢測模型,在普通手機可實時檢測(CPU多線程約70ms, GPU約50ms)
(3)核心算法均采用C++實現,有效提高算法性能,開發者可輕松進行二次開發
(4)Android Demo支持多線程CPU處理,以及GPU(OpenCL)加速,可支持多人人體關鍵點檢測
(5)人體關鍵點檢測APP demo免費體驗:Android人體檢測和人體關鍵點檢測APPDemo安裝包-Android文檔類資源-CSDN下載,或者鏈接: https://pan.baidu.com/s/1ywiBsJMZlIZoLAu0UZAOFg 提取碼: bunc?
- 運行APP閃退:dlopen failed: library "libomp.so" not found
參考解決方法:解決dlopen failed: library “libomp.so“ not found_PKing666666的博客-CSDN博客_dlopen failed
5.人體關鍵點檢測效果
6.人體關鍵點檢測訓練代碼
人體姿態估計(人體關鍵點檢測)2D Pose訓練代碼和Android源碼_PKing666666的博客-CSDN博客目錄目錄人體姿態估計(人體關鍵點檢測)2D Pose訓練代碼和Android源碼1.人體姿態估計2D Pose方法2.人體姿態估計數據集(1)COCO數據集(2)MPII數據集(3)關鍵點示意圖(ID序號)3.人體(行人)檢測4.人體姿態估計訓練Pipeline(1)Environment(2)數據準備:COCO和MPII數據集(3)模型訓練(4) 測試Demo(5) 檢測效果展示5.人體姿態估計模型Android部署(1) 將Pytorch模型轉換ONNX模型(2) 將ONNX模型轉換為TNN模型(3)https://blog.csdn.net/guyuealian/article/details/125502259?spm=1001.2014.3001.5501
7.博客推薦:人臉檢測+人體檢測C++ Android實現
人臉檢測+人體檢測C++ Android實現,可參考另一篇博客:
人臉檢測+人體檢測C++ Android實現_pan_jinquan的博客-CSDN博客人臉檢測+人體檢測C++ Android實現本博客將實現C++版本的人臉檢測,人臉關鍵點檢測,人體檢測,人臉+人體檢測,推理框架采用TNN,在普通Android手機,CPU和GPU都可以達到實時檢測的效果人臉檢測+人臉關鍵點檢測+人體檢測Android Demo APP(非源碼,僅供學習交流)鏈接: https://pan.baidu.com/s/1By43I1DbMa0gBPLObtPZMQ 提取碼: msnr尊重原創,轉載請注明出處:https://panjinquan.blog..https://panjinquan.blog.csdn.net/article/details/120688804
總結
以上是生活随笔為你收集整理的2D Pose人体关键点实时检测(Python/Android /C++ Demo)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 这是一篇系统的追热点方法论
- 下一篇: 弘辽科技:直通车成交率多少正常?如何提高