首页 > 其他分享 >基于mediapipe的单人人体骨架细节提取

基于mediapipe的单人人体骨架细节提取

时间:2023-08-10 23:22:34浏览次数:113  
标签:mediapipe holistic 单人 cv2 image 骨架 mp time drawing

MediaPipe 是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。在谷歌,一系列重要产品,如 、Google Lens、ARCore、Google Home 以及 ,都已深度整合了 MediaPipe。本文将介绍的为基于mediapipe的人体骨架提取方案。

1、mediapipe的安装

安装指令如下:

pip install mediapipe

官网地址:https://developers.google.cn/mediapipe
如果需要除了人体骨架提取以外的mediapipe的功能,可以参照官网内的demo进行编写。

2、demo编写

参照官网给的demo进行简要的更改,如下是对视频进行骨架提取,可根据需求更改为摄像头摄像或者照片。

import cv2
import time
import mediapipe as mp

mp_drawing = mp.solutions.drawing_utils
mp_drawing_styles = mp.solutions.drawing_styles
mp_holistic = mp.solutions.holistic

cap = cv2.VideoCapture('1_demo2.mp4')  # 替换为视频路径
fps_start_time = time.time()
fps = 0
with mp_holistic.Holistic(
        min_detection_confidence=0.5,
        min_tracking_confidence=0.5) as holistic:
    while cap.isOpened():
        success, image = cap.read()
        if not success:
            print("Video was ended.")
            break

        image.flags.writeable = False
        image = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)
        results = holistic.process(image)
        # 画图
        image.flags.writeable = True
        image = cv2.cvtColor(image, cv2.COLOR_RGB2BGR)
        # 脸部骨架绘制
        mp_drawing.draw_landmarks(
            image,
            results.face_landmarks,
            mp_holistic.FACEMESH_CONTOURS,
            landmark_drawing_spec=None,
            connection_drawing_spec=mp_drawing_styles
                .get_default_face_mesh_contours_style())
        # 姿势绘制
        mp_drawing.draw_landmarks(
            image,
            results.pose_landmarks,
            mp_holistic.POSE_CONNECTIONS,
            landmark_drawing_spec=mp_drawing_styles
                .get_default_pose_landmarks_style())
        # 左右手绘制
        mp_drawing.draw_landmarks(image, results.left_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
        mp_drawing.draw_landmarks(image, results.right_hand_landmarks, mp_holistic.HAND_CONNECTIONS)
        cv2.imshow('MediaPipe Holistic', cv2.flip(image, 1))
        fps_end_time = time.time()
        time_diff = fps_end_time - fps_start_time
        if time_diff >= 1:
            fps = int(1 / time_diff)
            fps_start_time = time.time()
        cv2.putText(image, f"FPS: {fps}", (10, 30), cv2.FONT_HERSHEY_SIMPLEX, 1, (0, 255, 0), 2)
        if cv2.waitKey(5) & 0xFF == 27:
            break
# cap.release()
cv2.destroyAllWindows()

运行结果如下:
image

3、总结

几个人体骨架提取方案中准确率最高的,且细节成分最多的,但是受限于单人的应用场景无法像多人应用场景一样的泛用。

标签:mediapipe,holistic,单人,cv2,image,骨架,mp,time,drawing
From: https://www.cnblogs.com/tlott/p/17621868.html

相关文章

  • 基于轻量级OpenPose的人体骨架提取
    1、项目源码及权重文件下载项目源码:https://github.com/Daniil-Osokin/lightweight-human-pose-estimation.pytorch/blob/master/demo.py权重文件:https://download.01.org/opencv/openvino_training_extensions/models/human_pose_estimation/checkpoint_iter_370000.pth需要注......
  • 基于YoloV8的人体骨架提取代码编写时遇到的问题
    1、获取骨架端点的xy轴位置在最初进行编写的时候,我借鉴了网上的代码,其中出现最多的便是bboxes_keypoints=results[0].keypoints.cpu().numpy().astype('uint32'),但是实际运行时往往会报错AttributeError:'Keypoints'objecthasnoattribute'astype'.Seevalidattributes......
  • 基于YOLO V8的人体骨架提取
    题外话:我记得没错的话,最多两年前,当时YOLO系列才出到V5,怎么现在都出到V8了啊。1、前言YOLOv8是ultralytics公司在2023年1月10号开源的YOLOv5的下一个重大更新版本,目前支持图像分类、物体检测和实例分割任务,该公司同样也是YOLOV5的提出者,本文将面对YOLOV8-pose的本地部署......
  • mediapipe ios framework
    实现“mediapipeiosframework”教程介绍在本教程中,我将教你如何实现“mediapipeiosframework”。Mediapipe是Google开发的一款用于构建机器学习、计算机视觉和图像处理应用程序的框架。该框架提供了许多预训练的模型和工具,以帮助开发者快速构建和部署各种应用。整体流程下......
  • 骨架屏
    简介骨架屏本质上就是页面的loading,与一般loading不同的是,它是页面初始化的loading,而不是某个操作的loading(比如接口请求时显示的loading)。技术实现上也没有特别高大上,就是得自己编写一个骨架屏组件(有的方案可以自动根据页面生成,但稍微看了下,觉得不好),然后在页面数据未加载完时显......
  • 深度学习(六)——神经网络的基本骨架:nn.Module的使用
    一、torch.nn简介官网地址:torch.nn—PyTorch2.0documentation1.torch.nn中的函数简介Containers:神经网络的骨架ConvolutionLayers:卷积层Poolinglayers:池化层PaddingLayers:PaddingNon-linearActivations:非线性激活NormalizationLayers:正则化层......
  • WinUI(WASDK)使用MediaPipe检查人体姿态关键点
    前言之前有用这个MediaPipe.NET.NET包装库搞了手势识别,丰富了稚晖君的ElectronBot机器人的第三方上位机软件的功能,MediaPipe作为谷歌开源的机器视觉库,功能很丰富了,于是就开始整活了,来体验了一把人体姿态关键点检测。所用框架介绍1.WASDK这个框架是微软最新的应用开发框架,我......
  • Mediapipe实时3D目标检测和跟踪(自动驾驶实现)
    ......
  • PS新手教程-如何使用PS把双人照变成单人照?
    如何使用PS把双人照变成单人照?给大家介绍如何使用PS把双人照变成单人照,一起来看看吧。1.打开PS,导入素材图片,用套索工具将合照其中一人圈起来。2.点击编辑-内容识别填充,把不被识别的人物擦去。3.按回车键即可,就从双人照变成单人照啦。以上就是如何使用PS把双人照变成单人照的全部内容......
  • 【pytorch】土堆pytorch教程学习(六)神经网络的基本骨架——nn.module的使用
    torch.nn是pytorch的一个神经网络库(nn是neuralnetwork的简称)。Containerstorch.nn构建神经网络的模型容器(Containers,骨架)有以下六个:ModuleSequentialModuleListModuleDictParameterListParameterDict本博文将介绍神经网络的基本骨架——nn.module的使用。......