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. 个人repo(Python版): https://github.com/PanJinquan/Human-Keypoints-Detection
  2. 个人repo(C++版):https://github.com/PanJinquan/Human-Pose-Estimation-Lite-cpp
  3. Android Demo,支持CPU多线程和GPU加速,可实时检测(这是APP Demo APP)Android人体检测和人体关键点检测APPDemo安装包-Android文档类资源-CSDN下载
  4. 2D Pose人体关键点检测整套Android源码:2D Pose人体关键点实时检测Android源码
  5. 《Simple Baselines for Human Pose Estimation and Tracking》https://github.com/Microsoft/human-pose-estimation.pytorch
  6. 《Deep High-Resolution Representation Learning for Human Pose Estimation》https://github.com/leoxiaobin/deep-high-resolution-net.pytorch

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

# 图像左右翻转时,成对的关键点(训练时用于数据增强)
flip_pairs = [[0, 5], [1, 4], [2, 3], [10, 15], [11, 14], [12, 13]]

# 关键点连接线序号(用于绘制图像)

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]]

# 每个关键点序号对应人体关键点的意义
"keypoints": {0: "r_ankle", 1: "r_knee", 2: "r_hip", 3: "l_hip", 4: "l_knee", 5: "l_ankle", 6: "pelvis", 7: "thorax", 8: "upper_neck", 9: "head_top", 10: " r_wrist", 11: "r_elbow", 12: "r_shoulder", 13: "l_shoulder", 14: "l_elbow", 15: "l_wrist" }

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.py

3.人体关键点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

Android Demo CPU:70ms,GPU:50ms
  • 运行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)相关推荐

  1. CMU开源:价值百万美元的多目标人体关键点实时检测

    相关文章:开源|2017 CVPR(Oral Paper):多目标实时体态估测 项目开源 主要内容介绍: OpenPose是一个利用OpenCV和Caffe并以C++写成的开源库,用来实现多线程的多人 ...

  2. python 实现81个人脸关键点实时检测

    python 实现81个人脸关键点实时检测 文章目录: 一.81个关键点介绍 二.81 个关键点的使用 该库也是基于dlib实现的,还有face_recognition也同样是基于dlib来实现的 d ...

  3. yolov7 姿态识别-人体骨架-实时检测+实例分割

    (15条消息) YOLOv7实例分割_迷途小书童的Note的博客-CSDN博客https://blog.csdn.net/djstavaV/article/details/126357677 (15条 ...

  4. yolov7 姿态识别-人体骨架-实时检测

    利用官方发布的yolov7-w6-pose.pt权值文件,调用摄像头进行检测,直接附代码:(将该py文件加入官方代码yolov7-main根目录下,直接运行即可) import matplotlib. ...

  5. 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码

    人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 目录 人体姿态估计(人体关键点检测)2D Pose训练代码和Android源码 1.人体姿态估计2D Pose方法 2.人体姿 ...

  6. 人脸检测+人体检测C++ Android项目

    人脸检测+人体检测C++ Android项目 目录 人脸检测+人体检测C++ Android项目 1.项目说明 (1)训练 (2)端上部署 (3)依赖库 2. 人脸人体检测Demo 3. Androi ...

  7. 面部表情识别3:Android实现表情识别(含源码,可实时检测)

    面部表情识别3:Android实现表情识别(含源码,可实时检测) 目录 面部表情识别3:Android实现表情识别(含源码,可实时检测) 1.面部表情识别方法 2.人脸检测方法 3.面部表情识别模型训 ...

  8. 戴眼镜检测和识别3:Android实现戴眼镜检测和识别(含源码,可实时检测)

    Android实现戴眼镜检测和识别(含源码,可实时检测) 目录 Android实现戴眼镜检测和识别(含源码,可实时检测) 1.戴眼镜检测和识别方法 2.戴眼镜人脸检测 3.戴眼镜识别模型训练 4.戴眼 ...

  9. 基于百度AL平台人体检测实现人体关键点检测代码

    本文通过OpenCV模块调用摄像头,利用百度开放的人体关键点检测API,实现了实时对人体的关键点检测. 一.百度API获取 使用百度的API,首先要在百度AI的官网上注册帐号,然后在人体关键点识别功能 ...

最新文章

  1. Oracle必知基础总结
  2. 有的OUTLOOK不能自动加载归档ARCHIVE邮件的问题
  3. java 轻量级 web 框架,Fast-FrameWork
  4. 【赠书】快速入门自动机器学习!自动机器学习(AutoML):方法、系统与挑战 图书赠送!...
  5. [转]卓越科技回应所谓的最牛,最受歧视的招聘
  6. 谁能给我提供一个类似下面的网站模板,先谢了
  7. [中国剩余定理]【学习笔记】
  8. 湖南师大计算机学信网,湖南师范大学有计算机专业硕士吗?
  9. 课节5:图神经网络算法(二):GraphSage实践
  10. java 显示数据库_java连接数据库并显示数据
  11. python selenium下载窗口 ie_用Python+selenium打开IE浏览器和Chrome浏览器的问题
  12. linux文件系统 ext3,Linux环境中使用Ext3文件系统
  13. 我的世界逆时空服务器怎么注册密码,我的世界1.7.10服务器逆时空
  14. 2001-2019各省产业结构高级化指数(三产与二产比值)
  15. WinZip 6 for Mac(压缩压解工具)附注册码 v6.5.4149破解版
  16. ShardingJdbc SQLFeatureNotSupportedException: isValid
  17. 生物信息学数据库导航
  18. # Android12 wifi和4G同时使用
  19. 【移动安全高级篇】————2、浅谈Android软件安全自动化审计
  20. 今年最后一场组队学习!

热门文章

  1. 微信公众号服务号申请-模板消息发送-自定义菜单-测试账号指南
  2. 免费快速提升网站流量之方法大结合(转摘有修改)
  3. python+vue 税务申报系统
  4. Android系统完整的启动流程
  5. 商用密码应用与安全性评估之(四)密码应用安全性评估实施要点
  6. 从淘宝服务器IP地址服务获取IP地址信息的方法
  7. 12-Azido-1-dodecanol,57395-51-4,12-叠氮-1-十二醇点击化学试剂结构式分析
  8. Node 开发一个多人对战的射击游戏(实战长文)
  9. 理工男的网红生意, 6000万月活50万条日更的背后, 内容链还能这样操作?
  10. php00截断原理,burpsuite上传截断及截断原理介绍