人体骨骼关键点检测的算法

文章目录

老铁们✌,重要通知🙌!福利来了!!!😉

【计算机视觉 复习流程剖析及面试题详解 】
【深度学习算法 最全面面试题(30 页)】
【机器学习算法 最全面面试题(61页)】

1.相关算法

1.1 AlphaPose

属于 自上而下的算法,也就是 先检测倒人体再得到关键点和骨架
优点:它被遮挡部分的关键点不会任意获取(即可以只显示看得到的部分)
它的 准确率AP值要比openpose高。
缺点: 随着图片上的人数增加,他的计算量增大,速度变慢。
可实时全身多人姿势估计与跟踪系统
https://github.com/MVIG-SJTU/AlphaPose.git

人体骨骼关键点检测的算法
git clone -b pytorch https:
python demo.py --indir examples/demo --outdir examples/res --sp
python video_demo.py --video D:/cpl.mp4 --outdir examples/result --save_video --sp
python webcam_demo.py --webcam 0 --outdir examples/result --vis

1.2 pytorch-openpose

手和身体姿势估计, 基于Openpose的pytorch实现:
https://github.com/Hzzone/pytorch-openpose

人体骨骼关键点检测的算法

; 1.3 PoseC3D

基于 3D-CNN 的 骨骼行为识别框架,同时具备良好的识别精度与效率,在包含 FineGYM, NTURGB+D, Kinetics-skeleton 等多个骨骼行为数据集上达到了 SOTA。不同于传统的基于人体 3 维骨架的 GCN 方法,PoseC3D 仅使用 2 维人体骨架热图堆叠作为输入,就能达到更好的识别效果。
https://github.com/open-mmlab/mmaction2(刚刚开源)
https://zhuanlan.zhihu.com/p/395588459

人体骨骼关键点检测的算法

; 1.4 ST-GCN

基于动态骨骼的动作识别方法ST-GCN(时空图卷积网络模型)
https://github.com/yysijie/st-gcn

1.5 MobilePose

作为 轻量级网络来识别 人体关键点,适用于: 单人姿态估计
源码里面包括ResNet18、MobileNetV2、ShuffleNetV2、SqueezeNet1.1几个轻量级的网络。
官方是直接对摄像头进行裁剪,只有中间一部分,(放得下一个人的位置)。而且即使没有框住人,也会生成骨架信息。

https://github.com/YuliangXiu/MobilePose-pytorch

人体骨骼关键点检测的算法

; 2.动作比对

人体的不同特征部位可抽象为 18个特征点,由这些特征点组成的人体骨架即可反映此刻人体的姿态。
而特定关节间的 角度值可以为判断一个人动作的准确性提供参考。
技术思路:
对标准动作图片进行处理,得出该图片人体骨架的关节角度值,作为比对范本。之后输入需要进行评判的训练者动作图片,同样得出关节角度值。
两者角度值进行分析即可得出训练者动作是否标准,达到动作比对的效果。
方法:两点之间的长度可以通过计算 欧氏距离得出,再使用 余弦定理计算得出反映人体动作的特定关节间夹角的角度值。

其他文章
基于计算机视觉深度学习算法的姿态评估打分方法和系统与流程

3.姿态估计 vs 行为识别

3.1 姿态估计

理解:在图像和视频中对人体 关节的定位问题。
姿态估计的 任务:重建人的关节和肢干,其难点:降低模型分析算法的复杂程度,并能够适应各种多变的情况、环境。
姿态估计的输出:是一个 高维的姿态向量,而不是某个类别的类标;需要学习的是一个从高维观测向量到高维姿态向量的映射。

人体骨骼关键点检测的算法

; 3.2 行为识别

可借助姿态估计的相关研究成果来实现,比如 HDM05这类姿态库就提供了每一帧视频中人的骨架信息,可以基于 骨架信息判断运动类型。

人体骨骼关键点检测的算法

4.数据集

4.1 MSR 3d action

记录了人体动作序列,共包含20个动作类型,10个被试者,每个被试者执行每个动作2或3次。
采用 Kinect 提取动作数据
https://zhuanlan.zhihu.com/p/63133269

人体姿态识别这9个数据集:
HiEve、MPII Human Pose、CrowdPose、Human3.6M、
PedX、SURREAL、Mo2Cap2、DensePose、PoseTrack
https://zhuanlan.zhihu.com/p/392326330

4.2 UCF-101

该数据集上评测指标已经达到了98.5%,但是视频的分类目前远没有图像分类成熟,面临着巨大的 类内方差,相机运动和背景干扰,数据不足等难题。
解决方向:
1. 多模态信息融合。即不只是采用图像信息,还可以融合语音等信息。
2. 多标签视频分类。与多标签图像分类类似,现实生活中的视频可能有多个标签。
3. 行为定位。一段视频中的行为有开始和结束,如何定位到真正有效的片段是之后的视频分类的重要前提。

**打分对比:
https://github.com/ParitoshParmar/MTL-AQA

参考
40个姿态估计优秀开源项目汇总
姿态估计与行为识别(行为检测、行为分类)的区别

5.标注工具

最常用深度学习图像/视频数据标注工具:
LabelImg、 Labelme
https://blog.csdn.net/weixin_39737947/article/details/111619277

VOTT
标记图像或视频帧的工具。
Download地址:
https://github.com/Microsoft/VoTT/releases
每帧图片添加bbox的转化code: main.py

6.实战项目

6.1 站立、走路、跌倒行为识别

技术分析: yoloV3进行人的侦测,再用SPPE( Alphapose)进行骨架提取,再用连续30帧的 ST-GCN进行行为识别。
https://github.com/GajuuzZ/Human-Falling-Detect-Tracks

6.2 基于PyTorch实现C3D模型的视频行为识别

代码:
E:\Project\C3D_recogn
https://github.com/Niki173/C3D
数据集: UCF-101 下载地址
使用教程: https://zhuanlan.zhihu.com/p/348402763
博客: https://blog.csdn.net/sinat_28371057/article/details/113405431
备注: 有 预训练模型
2D卷积网络输入图像会产生图像,输入视频输出的也是图像;
3D卷积网络输入视频会输出另外一个视频, 保留输入的时间信息

人体骨骼关键点检测的算法

; 7.部署

基于 TensorFlow lite 在移动端部署模型:
https://zhuanlan.zhihu.com/p/111616352

基于TensorFlow lite部署 的 API:
https://tensorflow.google.cn/lite/examples?hl=zh-cn
课件:https://edu.51cto.com/course/23363.html

人体骨骼关键点检测的算法

Original: https://blog.csdn.net/cc13186851239/article/details/120678967
Author: cc13186851239
Title: 人体骨骼关键点检测的算法

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/706549/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球