MediaPipe介绍

2023-10-27

MediaPipe介绍

1. MediaPipe简介

Mediapipegoogle的一个开源项目,可以提供开源的、跨平台的常用机器学习(machine learning)方案。Mediapipe实际上是一个集成的机器学习视觉算法的工具库,包含了人脸检测、人脸关键点、手势识别、头像分割和姿态识别等各种模型。

2. MediaPipe

1)支持各种平台和语言,包括IOSAndroidC++PythonJAVAScriptCoral等;
2)速度快,各种模型基本上可以做到实时运行。

3. 依赖库

MediaPipe依赖OpenCV来处理视频,FFMPEG来处理音频数据。它还有其他依赖项,如OpenGL/MetalTensorflowEigen等。

4.应用产品

Netcom的感知系统、谷歌镜头的目标检测、增强现实广告、谷歌图片、谷歌Home、Gmail、云视觉API等。

5. MediaPipe中的计算器类型

预处理计算单元是图像和媒体处理计算单元族。上图中的ImageTransform和imagetotensor就属于这一类;

推理计算单元允许与Tensorflow和Tensorflow Lite进行ML推理的本地集成;

后处理计算单元执行ML后处理任务,如检测、分割和分类。TensorToLandmark是一个后处理计算单元;

计算单元工具是执行任务的一类计算单元。

6. MediaPipe中Solutions

Solutions是基于特定的预训练TensorFlowTFLite模型的开源预构建示例。它一共提供了16Solutions人脸检测Face Mesh(面网)虹膜姿态人体人物分割头发分割目标检测Box Tracking(方格追踪)Instant Motion Tracking实时运动跟踪3D目标检测特征匹配AutoFlip(视频裁剪)MediaSequence(媒体序列)YouTube-8M(视频标签比赛)。

7.MediaPipe的框架

框架是用c++JavaObj-C编写的,包含以下api

  • Calculator API (C++).
  • Graph construction API (Protobuf).
  • Graph Execution API (C++, Java, Obj-C).

Graphs

MediaPipe感知管道称为Graph。让我们以第一个solution为例,汉兹。我们输入一串图像作为输入,然后在图像上呈现手的landmarks

 

下面的流程图代表MP(简称MediaPipe)hand solution graph

 

8.MediaPipe的应用

Mediapipe手势识别

  1. OpenCV调用摄像头;
  2. 调用mediapipe中的hands模块;
  3. demo示例。

手势识别

基于mediapipe我们已经能够获取手指关键点的坐标位置了,进一步只需要判断每根手指的开合状态即可得到手势。先贴以下关键点分布图:

Mediapipe姿态识别

1.OpenCV调用摄像头(同手势识别)
2.调用Mediapipe中的pose模块;

3.demo示例。

姿态估计模型主要有三类:

1.运动学模型:它是一种基于骨骼的模型,代表人体。

2.平面模型:平面模型是一种基于轮廓的模型,它使用人体周围的轮廓来表示人体形状。

3. 体积模型:体积模型创建人体的 3d 网格,表示人体的形状和外观https://img-blog.csdnimg.cn/6fe6cc81293344b9a722866ff07021af.png?x-oss-process=image/watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBAYmFzaGVuZGl4aWU1,size_20,color_FFFFFF,t_70,g_se,x_16

 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

MediaPipe介绍 的相关文章

  • 在 Python 中将列表元素作为单独的项目返回

    Stackoverflow 的朋友们大家好 我有一个计算列表的函数 我想单独返回列表的每个元素 如下所示 接收此返回的函数旨在处理未定义数量的参数 def foo my list 1 2 3 4 return 1 2 3 4 列表中的元素数
  • NLTK 2.0分类器批量分类器方法

    当我运行此代码时 它会抛出一个错误 我认为这是由于 NLTK 3 0 中不存在batch classify 方法 我很好奇如何解决旧版本中的某些内容在新版本中消失的此类问题 def accuracy classifier gold resu
  • 在 Django Admin 中调整字段大小

    在管理上添加或编辑条目时 Django 倾向于填充水平空间 但在某些情况下 当编辑 8 个字符宽的日期字段或 6 或 8 个字符的 CharField 时 这确实是一种空间浪费 字符宽 然后编辑框最多可容纳 15 或 20 个字符 我如何告
  • 更好地相当于这个疯狂的嵌套 python for 循环

    for a in map for b in map a for c in map b for d in map c for e in map d print a b c d e 上面的代码用于创建图中一定长度的所有路径 map a 表示从
  • Tensorboard SyntaxError:语法无效

    当我尝试制作张量板时 出现语法错误 尽管开源代码我还是无法理解 我尝试搜索张量板的代码 但不清楚 即使我不擅长Python 我这样写路径C Users jh902 Documents logs因为我正在使用 Windows 10 但我不确定
  • 导入错误:没有名为flask.ext.login的模块

    我的flask login 模块有问题 我已经成功安装了flask login模块 另外 从命令提示符我可以轻松运行此脚本 不会出现错误 Python 2 7 r27 82525 Jul 4 2010 07 43 08 MSC v 1500
  • 通过Python连接到Bigquery:ProjectId和DatasetId必须非空

    我编写了以下脚本来通过 SDK 将 Big Query 连接到 Python 如下所示 from google cloud import bigquery client bigquery Client project My First Pr
  • pandas - 包含时间序列数据的堆积条形图

    我正在尝试使用时间序列数据在 pandas 中创建堆积条形图 DATE TYPE VOL 0 2010 01 01 Heavy 932 612903 1 2010 01 01 Light 370 612903 2 2010 01 01 Me
  • 将 Matlab 的 datenum 格式转换为 Python

    我刚刚开始从 Matlab 迁移到 Python 2 7 在读取 mat 文件时遇到一些问题 时间信息以 Matlab 的日期数字格式存储 对于那些不熟悉它的人 日期序列号将日历日期表示为自固定基准日期以来已经过去的天数 在 MATLAB
  • 如何使用 Python 3 检查目录是否包含文件

    我到处寻找这个答案但找不到 我正在尝试编写一个脚本来搜索特定的子文件夹 然后检查它是否包含任何文件 如果包含 则写出该文件夹的路径 我已经弄清楚了子文件夹搜索部分 但检查文件却难倒了我 我发现了有关如何检查文件夹是否为空的多个建议 并且我尝
  • Protobuf 如何编码 oneof 消息结构

    对于这个 python 程序 在编码时运行 protobuf 编码会给出以下输出 0a 10 08 7f8a 0104 08 02 10 0392 0104 08 02 10 03 18 01 我不明白的是为什么8a后面有一个01 为什么9
  • Spider 必须返回 Request、BaseItem、dict 或 None,已“设置”

    我正在尝试从以下位置下载所有产品的图像 我的蜘蛛看起来像 from shopclues items import ImgData import scrapy class multipleImages scrapy Spider name m
  • 带有 LSTM 的 GridSearchCV/RandomizedSearchCV

    我一直在尝试通过 RandomizedSearchCV 调整 LSTM 的超参数 我的代码如下 X train X train reshape X train shape 0 1 X train shape 1 X test X test
  • 如何使用 AWS Lambda Python 读取 AWS S3 存储的 Word 文档(.doc 和 .docx)文件内容?

    我的场景是 我尝试使用 python 实现从 Aws Lambda 读取 AWS 存储的 S3 word 文档 doc 和 docx 文件内容 下面的代码是我使用的 我的问题是我可以获取文件名 但无法读取内容 def lambda hand
  • 如果 PyPy 快 6.3 倍,为什么我不应该使用 PyPy 而不是 CPython?

    我已经听到很多关于PyPy http en wikipedia org wiki PyPy项目 他们声称它比现有技术快 6 3 倍CPython http en wikipedia org wiki CPython口译员开启他们的网站 ht
  • 每当使用 import cv2 时 OpenCV 都会出错

    我在终端上使用 pip3 install opencv contrib python 安装了 cv2 并且它工作了 但是每当我尝试导入 cv2 或运行导入了 cv2 的 vscode 文件时 在 python IDLE 上它都会说 Trac
  • 制作一份 Python 文档的 PDF 文件

    Python 官方网站提供 PDF 文档下载 但它们是按章节分隔的 我下载了源代码并构建了 PDF 文档 这些文档也是单独的 PDF 我怎么能够从源代码中的 Makefile 构建一个 PDF 文件 我认为这样阅读起来会更方便 如果连接单独
  • 等待子进程使用 os.system

    我用了很多os system在 for 循环内调用创建后台进程 如何等待所有后台进程结束 os wait告诉我没有子进程 ps 我使用的是Solaris 这是我的代码 usr bin python import subprocess imp
  • 如何在 Flask 中的视图函数/会话之间传递复杂对象

    我正在编写一个 Web 应用程序 当 且仅当 用户登录时 该应用程序从第三方服务器接收大量数据 这些数据被解析为自定义对象并存储在list 现在 用户在应用程序中使用这些数据 调用不同的视图 例如发送不同的请求 我不确定什么是最好的模式在视
  • pytest找不到模块[重复]

    这个问题在这里已经有答案了 我正在关注pytest 良好实践 https docs pytest org en latest explanation goodpractices html test discovery或者至少我认为我是 但是

随机推荐

  • 制作精良讲解清晰的Lumen原理

    老奇 阴差阳错 撼动世界的游戏引擎 哔哩哔哩 bilibili 推荐一个制作精良讲解清晰的Lumen原理视频给大家 这种有营养但又很可口的技术科普视频 来之不易啊
  • WPF,如何让TextBox中的文字垂直居中

    VerticalContentAlignment Center
  • 基础算法题——位运算之谜(数论)

    位运算之谜 题目链接 数论 a b a xor b 2 a b 变式可得 a xor b a b 2 a b 另外还要排除两种不能被组成的情况 a b 2 a b lt 0 a xor b最小为0 不存在小于0的值 a b a b 2 a
  • WebRTC 用例和性能

    WebRTC 用例和性能 实现低延迟 点对点传输是一项艰巨的工程挑战 有 NAT 遍历和连接检查 信令 安全 拥塞控制和无数其他细节需要处理 WebRTC 代表我们处理以上所有内容 这就是为什么它可以说是自网络平台成立以来最重要的补充之一
  • undefined symbol: cublasLtGetStatusString, version libcublasLt.so.11

    三段式 现象 分析 总结 方法 是理解提升能力的最佳思维模式 1 现象 在cuda 版本是最新的11 8 运行torch写的模型 import torch报出来的错误 2 分析 网上很多是说torch版本和cuda版本不一致 去官网按照版本
  • FatFS的文件操作

    1 文件操作 1 1 f open 打开 创建文件 FRESULT f open FIL fp OUT Pointer to the file object structure const TCHAR path IN File name B
  • WEB前端网页设计-Bootstrap 按钮下拉菜单

    目录 Bootstrap 按钮下拉菜单 分割的按钮下拉菜单 按钮下拉菜单的大小 按钮上拉菜单 Bootstrap 按钮下拉菜单 本章将讲解如何使用 Bootstrap class 向按钮添加下拉菜单 如需向按钮添加下拉菜单 只需要简单地在一
  • c# 简单httpGet、httpPost方法以及http提交Form表单

    httpGet和httpPost public static class HttpHelper
  • 安装Nginx教程(CentOS8)

    这件事是不是神迹 并不重要 重要的是神感动了我 低俗小说 此文针对centos8操作 1 centos8安装完毕后安装基本工具 yum install gcc openssl openssl devel pcre pcre devel zl
  • postman重新安装后collection数据恢复

    目录 前言 恢复collection数据 前言 记录postman重新安装后collection数据恢复的方法 恢复collection数据 1 登录postman账号后 选择My Workspace 点击import 2 点击Upload
  • Linux Polkit权限提升漏洞(CVE-2021-4034)

    漏洞描述 Linux Polkit权限提升漏洞 CVE 2021 4034 是由于pkexec无法正确处理调用参数 从而将环境变量作为命令执行 具有任意用户权限的攻击者都可以在默认配置下通过修改环境变量来利用此漏洞 从而获得受影响主机的ro
  • 猜数字小游戏

    猜数字小游戏 有随机数 保底机制玩法 package pxc cn import java util Random import java util Scanner public class sc public static void ma
  • MATLAB仿真噪声信号、单多音信号、LFM、2ASK、2FSK、BPSK、16QAM

    文章目录 背景 1 高斯白噪声 2 噪声调幅信号 3 噪声调频信号 4 单音信号 5 多音信号 6 线性扫频信号 7 2ASK信号 8 2FSK信号 9 BPSK信号 10 16QAM信号 缩略对照表 背景 临近毕业整理毕业论文的资料时 看
  • 登录框漏洞

    继上次登陆框引起的血案这个文章之后 时隔一个月笔者又写了续集 呃 升华版 0 00 文章内容结构图 0 01 信息泄露 利用泄露的信息可以大大增加我们的可测试点 从而增加我们的成功率 1 HTML源代码 必看的肯定要属HTML源代码了 源代
  • JavaScript学习笔记:动态集合

    DOM是JavaScript中重要部分之一 在DOM中有一个动态集合 这个动态集合包含节点的集合 NodeList 元素属性的集合 NamedNodeMap 和HTML元素的集合 HTMLCollection 这三个对象都是类数组 Arra
  • 从AD域获取用户AD信息

    public static Dictionary
  • 一个失败的项目

    转眼间 入职已经一年了 在这一年里 我一直在一个项目组 至今这个项目还没有结束 其实说起来这也是一个不大的项目 可是做起来却令人非常头疼 我的同事已经有好几个离开这个项目组了 对于公司来说 这个项目也像是一个鸡肋 首先 这个项目的需求做得不
  • 数据挖掘作业5(个数据库有5个事务,如下表所示。设min_sup=60%,min_conf=80%)

    5 7一个数据库有5个事务 如下表所示 设min sup 60 min conf 80 1 分别用Apriori算法和FP growth算法找出所有频繁项集 比较两种挖掘方法的效率 2 比较穷举法和Apriori算法生成的候选项集的数量 3
  • Qt基础:三、模态和非模态对话框

    QDialog类是所有对话框窗口类的基类 对话框窗口是一个经常用来完成短小任务或者和用户进行简单交互的顶层窗口 按照运行对话框时是否还可以和该程序的其他窗口进行交互 对话框常被分为两类 模态的 modal 阻塞 和非模态的 modeless
  • MediaPipe介绍

    MediaPipe介绍 1 MediaPipe简介 Mediapipe是google的一个开源项目 可以提供开源的 跨平台的常用机器学习 machine learning 方案 Mediapipe实际上是一个集成的机器学习视觉算法的工具库