谷歌Mediapipe安装部署教程

2024-06-20 13:20

本文主要是介绍谷歌Mediapipe安装部署教程,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

MediaPipe Solutions 提供了一套库和工具,可帮助您在您的应用中快速应用人工智能 (AI) 和机器学习 (ML) 技术。您可以立即将这些解决方案插入到您的应用中,根据需要对其进行自定义,并在多个开发平台上使用。MediaPipe Solutions 是 MediaPipe 开源项目的一部分,因此您可以进一步自定义解决方案代码以满足您的应用需求。MediaPipe 解决方案套件包括以下内容:

MediaPipe 解决方案、Studio 和 Model Maker 的示意图

以下库和资源提供了每个 MediaPipe 解决方案的核心功能:

  • MediaPipe Tasks:用于部署解决方案的跨平台 API 和库。
  • MediaPipe 模型:预训练、可直接运行的模型,可与每个解决方案搭配使用。

借助以下工具,您可以自定义和评估解决方案:

  • MediaPipe Model Maker:为使用你的数据的解决方案自定义模型
  • MediaPipe Studio:在浏览器中直观呈现、评估解决方案并对其进行基准测试。请添加图片描述

可用的解决方案

MediaPipe 解决方案适用于多个平台。每个解决方案都包含一个或多个模型,您也可以为某些解决方案自定义模型。以下列表显示了适用于每个受支持平台的解决方案,以及您是否可以使用 Model Maker 自定义模型:

解决方案Android网站PythoniOS自定义模型
LLM Inference API √ \surd √ \surd √ \surd √ \surd
对象检测 √ \surd √ \surd √ \surd √ \surd √ \surd
图片分类 √ \surd √ \surd √ \surd √ \surd √ \surd
图像分割 √ \surd √ \surd √ \surd
交互式分割 √ \surd √ \surd √ \surd
手部特征点检测 √ \surd √ \surd √ \surd √ \surd
手势识别 √ \surd √ \surd √ \surd √ \surd √ \surd
图片嵌入 √ \surd √ \surd √ \surd
人脸检测 √ \surd √ \surd √ \surd √ \surd
人脸特征点检测 √ \surd √ \surd √ \surd
人脸风格化 √ \surd √ \surd √ \surd √ \surd
姿势特征点检测 √ \surd √ \surd √ \surd
图片生成 √ \surd √ \surd
文本分类 √ \surd √ \surd √ \surd √ \surd √ \surd
文本嵌入 √ \surd √ \surd √ \surd
语言检测器 √ \surd √ \surd √ \surd
音频分类

安装

Python

pip安装mediapipe软件包

安装使用 mediapipe pip 软件包。您可以使用以下命令安装所需的软件包:

$ python -m pip install mediapipe

导入以下类来验证安装结果:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
运行示例

安装验证无误后,运行以下示例。

# STEP 1: Import the necessary modules.
import numpy as np
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision# STEP 2: Create an ObjectDetector object.
base_options = python.BaseOptions(model_asset_path='efficientdet.tflite')
options = vision.ObjectDetectorOptions(base_options=base_options,score_threshold=0.5)
detector = vision.ObjectDetector.create_from_options(options)# STEP 3: Load the input image.
image = mp.Image.create_from_file(IMAGE_FILE)# STEP 4: Detect objects in the input image.
detection_result = detector.detect(image)# STEP 5: Process the detection result. In this case, visualize it.
image_copy = np.copy(image.numpy_view())
annotated_image = visualize(image_copy, detection_result)
rgb_annotated_image = cv2.cvtColor(annotated_image, cv2.COLOR_BGR2RGB)
cv2_imshow(rgb_annotated_image)

C++


  1. 安装 Bazelisk。

    Step 1: Add Bazel distribution URI as a package source

       sudo apt install apt-transport-https curl gnupg -ycurl -fsSL https://bazel.build/bazel-release.pub.gpg | gpg --dearmor >bazel-archive-keyring.gpgsudo mv bazel-archive-keyring.gpg /usr/share/keyringsecho "deb [arch=amd64 signed-by=/usr/share/keyrings/bazel-archive-keyring.gpg] https://storage.googleapis.com/bazel-apt stable jdk1.8" | sudo tee /etc/apt/sources.list.d/bazel.list```The component name "jdk1.8" is kept only for legacy reasons and doesn't relate to supported or included JDK versions. Bazel releases are Java-version agnostic. Changing the "jdk1.8" component name would break existing users of the repo.```### Step 2: Install and update Bazel```shsudo apt update && sudo apt install bazel```
    Once installed, you can upgrade to a newer version of Bazel as part of your normal system updates:```sh
    sudo apt update && sudo apt full-upgrade
    

    The bazel package always installs the latest stable version of Bazel. You can install specific, older versions of Bazel in addition to the latest one, such as this:

    sudo apt install bazel-1.0.0
    

    This installs Bazel 1.0.0 as /usr/bin/bazel-1.0.0 on your system. This can be useful if you need a specific version of Bazel to build a project, for example because it uses a .bazelversion file to explicitly state with which Bazel version it should be built.

    Optionally, you can set bazel to a specific version by creating a symlink:

    sudo ln -s /usr/bin/bazel-1.0.0 /usr/bin/bazel
    bazel --version  # 1.0.0
    

  1. 检出 MediaPipe 代码库。

    $ cd $HOME
    $ git clone --depth 1 https://github.com/google/mediapipe.git# Change directory into MediaPipe root directory
    $ cd mediapipe
    

配置opencv编译选项,打开mediapipe-master/third_party/opencv_linux.BUILD。取消注释,若为手动编译安装opencv, 应该选择最后一项,例如include/opencv4/

# Description:
#   OpenCV libraries for video/image processing on Linuxlicenses(["notice"])  # BSD licenseexports_files(["LICENSE"])# The following build rule assumes that OpenCV is installed by
# 'apt-get install libopencv-core-dev libopencv-highgui-dev \'
# '                libopencv-calib3d-dev libopencv-features2d-dev \'
# '                libopencv-imgproc-dev libopencv-video-dev'
# on Debian Buster/Ubuntu 18.04.
# If you install OpenCV separately, please modify the build rule accordingly.
cc_library(name = "opencv",hdrs = glob([# For OpenCV 4.x#"include/aarch64-linux-gnu/opencv4/opencv2/cvconfig.h",#"include/arm-linux-gnueabihf/opencv4/opencv2/cvconfig.h",#"include/x86_64-linux-gnu/opencv4/opencv2/cvconfig.h","include/opencv4/opencv2/**/*.h*",]),includes = [# For OpenCV 4.x#"include/aarch64-linux-gnu/opencv4/",#"include/arm-linux-gnueabihf/opencv4/",#"include/x86_64-linux-gnu/opencv4/","include/opencv4/",],linkopts = ["-l:libopencv_core.so","-l:libopencv_calib3d.so","-l:libopencv_features2d.so","-l:libopencv_highgui.so","-l:libopencv_imgcodecs.so","-l:libopencv_imgproc.so","-l:libopencv_video.so","-l:libopencv_videoio.so",],visibility = ["//visibility:public"],
)
运行 [Hello World! in C++ 示例](https://ai.google.dev/edge/mediapipe/framework/getting_started/hello_world_cpp.md?hl=zh-cn)。```bash
$ export GLOG_logtostderr=1# if you are running on Linux desktop with CPU only
$ bazel run --define MEDIAPIPE_DISABLE_GPU=1 \mediapipe/examples/desktop/hello_world:hello_world# If you are running on Linux desktop with GPU support enabled (via mesa drivers)
$ bazel run --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \mediapipe/examples/desktop/hello_world:hello_world
```

在 GPU 上运行

注意 :此命令目前仅适用于 Linux,请先按照在 Linux 桌面上设置 OpenGL ES 进行操作。

  1. 例如,如需构建带 GPU 的旧版 MediaPipe 手部检测解决方案的 C++ 示例应用,请运行以下命令:

    bazel build -c opt --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11 \mediapipe/examples/desktop/hand_tracking:hand_tracking_gpu
    
  2. 如需运行该应用,请执行以下操作:

    GLOG_logtostderr=1 bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_gpu \--calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_live_gpu.pbtxt
    

    只要摄像头已连接并开启,这就会打开摄像头。出现任何错误都可能是因为无法访问摄像头,或 GPU 驱动程序未正确设置。

这篇关于谷歌Mediapipe安装部署教程的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1078253

相关文章

Python中Tkinter GUI编程详细教程

《Python中TkinterGUI编程详细教程》Tkinter作为Python编程语言中构建GUI的一个重要组件,其教程对于任何希望将Python应用到实际编程中的开发者来说都是宝贵的资源,这篇文... 目录前言1. Tkinter 简介2. 第一个 Tkinter 程序3. 窗口和基础组件3.1 创建窗

jdk1.8的Jenkins安装配置实践

《jdk1.8的Jenkins安装配置实践》Jenkins是一款流行的开源持续集成工具,支持自动构建、测试和部署,通过Jenkins,开发团队可以实现代码提交后自动进行构建、测试,并将构建结果分发到测... 目录Jenkins介绍Jenkins环境搭建Jenkins安装配置Jenkins插件安装Git安装配

python版本切换工具pyenv的安装及用法

《python版本切换工具pyenv的安装及用法》Pyenv是管理Python版本的最佳工具之一,特别适合开发者和需要切换多个Python版本的用户,:本文主要介绍python版本切换工具pyen... 目录Pyenv 是什么?安装 Pyenv(MACOS)使用 Homebrew:配置 shell(zsh

mysql_mcp_server部署及应用实践案例

《mysql_mcp_server部署及应用实践案例》文章介绍了在CentOS7.5环境下部署MySQL_mcp_server的步骤,包括服务安装、配置和启动,还提供了一个基于Dify工作流的应用案例... 目录mysql_mcp_server部署及应用案例1. 服务安装1.1. 下载源码1.2. 创建独立

Nginx服务器部署详细代码实例

《Nginx服务器部署详细代码实例》Nginx是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务,:本文主要介绍Nginx服务器部署的相关资料,文中通过代码... 目录Nginx 服务器SSL/TLS 配置动态脚本反向代理总结Nginx 服务器Nginx是一个‌高性

Python中Request的安装以及简单的使用方法图文教程

《Python中Request的安装以及简单的使用方法图文教程》python里的request库经常被用于进行网络爬虫,想要学习网络爬虫的同学必须得安装request这个第三方库,:本文主要介绍P... 目录1.Requests 安装cmd 窗口安装为pycharm安装在pycharm设置中为项目安装req

windows下安装Nginx全过程

《windows下安装Nginx全过程》文章介绍了HTTP和反向代理服务器的概念,包括正向代理和反向代理的区别,并详细描述了如何安装和配置Nginx作为反向代理服务器... 目录概念代理正向代理反向代理安装基本属性nginx.conf查询结构属性使用运行重启停止总结概念是一个高性能的HTTP和反向代理we

JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)

《JavaWeb项目创建、部署、连接数据库保姆级教程(tomcat)》:本文主要介绍如何在IntelliJIDEA2020.1中创建和部署一个JavaWeb项目,包括创建项目、配置Tomcat服务... 目录简介:一、创建项目二、tomcat部署1、将tomcat解压在一个自己找得到路径2、在idea中添加

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

Spring IOC核心原理详解与运用实战教程

《SpringIOC核心原理详解与运用实战教程》本文详细解析了SpringIOC容器的核心原理,包括BeanFactory体系、依赖注入机制、循环依赖解决和三级缓存机制,同时,介绍了SpringBo... 目录1. Spring IOC核心原理深度解析1.1 BeanFactory体系与内部结构1.1.1