谷歌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

相关文章

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

Linux系统中卸载与安装JDK的详细教程

《Linux系统中卸载与安装JDK的详细教程》本文详细介绍了如何在Linux系统中通过Xshell和Xftp工具连接与传输文件,然后进行JDK的安装与卸载,安装步骤包括连接Linux、传输JDK安装包... 目录1、卸载1.1 linux删除自带的JDK1.2 Linux上卸载自己安装的JDK2、安装2.1

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Java使用Curator进行ZooKeeper操作的详细教程

《Java使用Curator进行ZooKeeper操作的详细教程》ApacheCurator是一个基于ZooKeeper的Java客户端库,它极大地简化了使用ZooKeeper的开发工作,在分布式系统... 目录1、简述2、核心功能2.1 CuratorFramework2.2 Recipes3、示例实践3

springboot简单集成Security配置的教程

《springboot简单集成Security配置的教程》:本文主要介绍springboot简单集成Security配置的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,... 目录集成Security安全框架引入依赖编写配置类WebSecurityConfig(自定义资源权限规则

tomcat多实例部署的项目实践

《tomcat多实例部署的项目实践》Tomcat多实例是指在一台设备上运行多个Tomcat服务,这些Tomcat相互独立,本文主要介绍了tomcat多实例部署的项目实践,具有一定的参考价值,感兴趣的可... 目录1.创建项目目录,测试文China编程件2js.创建实例的安装目录3.准备实例的配置文件4.编辑实例的

MySQL Workbench 安装教程(保姆级)

《MySQLWorkbench安装教程(保姆级)》MySQLWorkbench是一款强大的数据库设计和管理工具,本文主要介绍了MySQLWorkbench安装教程,文中通过图文介绍的非常详细,对大... 目录前言:详细步骤:一、检查安装的数据库版本二、在官网下载对应的mysql Workbench版本,要是

SpringBoot配置Ollama实现本地部署DeepSeek

《SpringBoot配置Ollama实现本地部署DeepSeek》本文主要介绍了在本地环境中使用Ollama配置DeepSeek模型,并在IntelliJIDEA中创建一个Sprin... 目录前言详细步骤一、本地配置DeepSeek二、SpringBoot项目调用本地DeepSeek前言随着人工智能技

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

Linux安装MySQL的教程

《Linux安装MySQL的教程》:本文主要介绍Linux安装MySQL的教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录linux安装mysql1.Mysql官网2.我的存放路径3.解压mysql文件到当前目录4.重命名一下5.创建mysql用户组和用户并修