栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

2021-10-04

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

2021-10-04

python利用 mediapipe库做人体关健点检测
 mediapipe库是对人体33个关键点做检测并标记的一个功能库,其33个人体关键点如下图所示


该库的具体用法如下

1.对静态图像标记
import mediapipe as mp    #引入库
mp_pose = mp.solutions.pose
    # 导入绘制函数
    mp_drawing = mp.solutions.drawing_utils
    self.cv_show("s",img)
    pose =  mp_pose.Pose(static_image_mode=True,  # 静态图片
                         model_complexity=1, # 选择模型 0 1 2 性能逐渐增强
                         smooth_landmarks=True,  # 平滑关键点
                         enable_segmentation=True,  # 是否人体抠图
                         min_detection_confidence=0.5,  # 置信度阈值
                         min_tracking_confidence=0.5  # 追踪阈值
                        )
```python
 #检测结果
        result=pose.process(img_rgb)  #利用对象的process方法得到检测结果
         #可视化结果
        mp_drawing.draw_landmarks(img,result.pose_landmarks,mp_pose.POSE_CONNECTIONS)#result.pose_landmarks表示图片上的关键点,pose_connections表示将关键点连在一起
2.对动态视频进行关键点检测
 利用opencv库读取视并得到每一帧的图片,再利用mediapipe库对每一帧图片进行关键点检测,得到结果。
 mp_pose=mp.solutions.pose
    mp_drawing=mp.solutions.drawing_utils
    mp_drawing_styles = mp.solutions.drawing_styles
    pose = mp_pose.Pose(static_image_mode=False,  # False表示是连续帧视频
                        model_complexity=2,  # 选择模型 0 1 2 性能逐渐增强
                        smooth_landmarks=True,  # 平滑关键点
                        enable_segmentation=True,  # 是否人体抠图
                        min_detection_confidence=0.5,  # 置信度阈值
                        min_tracking_confidence=0.9  # 追踪阈值
                        )

利用该方法得到的人体33个关键点的坐标都保存在 result,landmarks中,如果要查看具体某个关键点的信息,则可以用result.landmarks.landmark[i],i即对应上图的关键点展示图 。

3.后续展望
 如上所示,能得到每个关键点的具体信息  ,可以展望利用这些信息结合运动学,人体生物学等相关知识,来进行
 诸如运动(深蹲,俯卧撑计数)等的检测或者运动动作规范等应用
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/294130.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号