技术笔记Android应用MediaPipe(一):Windows安装MediaPipe

news2025/8/12 15:49:57

一、MediaPipe概述

MediaPipe提供跨平台,为实时流媒体提供自定义的机器学习解决方案的应用框架。MediaPipe的主要特点:
(1)端对端的加速:内置快速机器学习推理和处理,使得在普通硬件中也能加速使用。
(2)构建一次,部署任何地方。统一解决方案,可以在Android、iOS、桌面、云端、Web和IoT上部署运行。
(3)即用型解决方案。即用型解决方案:展示框架全部功能的尖端 ML 解决方案
(4)免费和开源。框架和解决方案满足Apache2.0,可以扩展和自行定制。
MediaPipe提供机器学习的方案包括

(1)脸部识别 Face Detection
(2)脸部网格 Face Mesh
(3)虹膜识别 Iris
(4)手势识别 Hands
(5)姿态识别 Pose
(6)全身姿态识别 Holistic
(7)头发分割 Hair Segmentation
(8)3D物品的识别 Object Detection
(9)目标追踪 Box Tracking
(10)瞬时移动追踪 Instant Motion Tracking
(11)物品检测 Objectron

二、在Windows安装MediaPipe

因为构建MediaPipe Android移动应用不能运行在原生的Windows中,因此需要安装MSYS2
从“https://github.com/msys2/msys2-installer/releases/download/2022-10-28/msys2-x86_64-20221028.exe”中下载msys32-x86_64-20221028.exe软件,选择自定义的路径:例如:C:\msys64
然后在系统/设置中设置该路径到PATH路径中。

1.安装和配置MSYS2

(1)安装MSYS2
安装成功后,显示
安装MSYS2成功

(2)设置PATH环境变量

如果MSYS2安装到D:\msys64,则将D:\mysys64\usr\bin加入到PATH环境变量中。
设置Path路径

加入到Path环境变量中

(3).msys2安装必要的工具包

安装
C:> pacman -S git patch unzip

3.安装Python


并将Python可执行编辑到Path环境变量中

4.安装Visual C++ Build Tools 2022工具和WinSDK

Visual C++ Build Tools 2022工具包的地址是:https://aka.ms/vs/17/release/vs_BuildTools.exe
安装构建工具
在安装Visual C++ Build Tools 2022工具包时,也可以直接选择WinSDK工具包,可以在Visual Studio Install可选工具包中勾选Windows 11 SDK(也可以按照自身的操作系统进行设置),如下图所示:
在这里插入图片描述
也可以单独安装WinSDK工具包,WinSDK的地址是:
https://go.microsoft.com/fwlink/p/?linkid=2196241
5.安装Bazel或者Bazelis,并将Bazel安装的位置设置到Path环境变量中。
Bazel各种版本可以通过:https://github.com/bazelbuild/bazel/releases
进行选择。
因为官方网站下载速度比较慢,可以使用国内镜像源华为云的网站https://mirrors.huaweicloud.com/bazel/进行选择对应的版本进行下载。
本文选择了:
https://mirrors.huaweicloud.com/bazel/5.3.2/

Bazelis的下载位置:https://docs.bazel.build/versions/master/install-bazelisk.html
安装Bazel成功后,设置Bazel到Path环境变量中,

# Please find the exact paths and version numbers from your local version.
C:\> set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools
C:\> set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2019\BuildTools\VC
C:\> set BAZEL_VC_FULL_VERSION=<Your local VC version>
C:\> set BAZEL_WINSDK_FULL_VERSION=<Your local WinSDK version>

在笔者安装的Visual C++ Build Tools 2022的版本是 14.33.31629
Windows SDK 的版本是10.0.22621.0
如下列代码所示:

C:\>set BAZEL_VS=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools
C:\>set BAZEL_VC=C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC
C:\>set BAZEL_VC_FULL_VERSION=14.33.31629
C:\>set BAZEL_WINSDK_FULL_VERSION=10.0.22621.0

5.设置JDK

JDK需要安装和配置OpenJDK,过程略

6.安装MediaPipe

(1)从git中拷贝MediaPipe到本地
直接执行:git clone https://github.com/google/mediapipe.git
会出现fatal: unable to access ‘https://github.com/google/mediapipe.git/’: OpenSSL SSL_read: Connection reset by peer, errno 104问题。
这是因为:服务器的SSL证书没有经过第三方机构的签署,所以才报错。
因此,通过解除ssl安全验证,如下所示:
git config --global http.sslVerify “false”
再执行git拷贝命令获取mediapipe
git clone https://github.com/google/mediapipe.git
执行过程如下所示:
拷贝MediaPipe到本地

7.安装OpenCV并修改MediaPipe中OpenCV的设置

下载并安装OpenCV,网址为:https://opencv.org/releases/
目前使用的OpenCV的版本是OpenCV 4.6.
编辑MediaPipe中的WORKSPACE文件中关于OpenCV构建目录的,修改为:
new_local_repository(
name = “windows_opencv”,
build_file = “@//third_party:opencv_windows.BUILD”,
path = “C:\ \build”,
)
WORKSPACE文件的位置

8.测试bazel构建MediaPipe应用

然后测试是否bazel构建MediaPipe是否成功。
从网站下载hello_world.cc文件,网址如下所示:https://github.com/google/mediapipe/blob/master/mediapipe/examples/desktop/hello_world/hello_world.cc
将hello_world.cc文件拷贝到mediapipe的example目录下,如下图所示:

hello_world.cc

进入mediapipe的安装目录,再执行
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH=“D://anaconda3//python.exe” mediapipe/examples/desktop/hello_world:hello_world --sandbox_debug

如下图所示:
在这里插入图片描述
这里–action_env PYTHON_BIN_PATH需要修改为自己本机上的python.exe所在的位置。
执行bazel构建命令时,可能一些关于tensorflow的依赖不能在网站上找到,会导致404错误。类似如下内容:

WARNING: Download from http://mirror.tensorflow.org/github.com/bazelbuild/rules_closure/archive/cf1e44edb908e9616030cc83d085989b8e6cd6df.tar.gz failed: class java.io.FileNotFoundException GET returned 404 Not Found
WARNING: Download from https://storage.googleapis.com/mirror.tensorflow.org/github.com/tensorflow/runtime/archive/8700849191dea2ca9c12a3d26ec41fac0814671b.tar.gz failed: class java.io.FileNotFoundException GET returned 404 Not Found

如果发生这样的问题,可以根据官方的建议增加VPN或代理来解决问题。根据参考文献4可以:
bazel --host_jvm_args “-DsocksProxyHost=192.168.0.112 -DsocksProxyPort=1080” run --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hello_world:hello_world
构建成功后生成hello_world.exe文件,如下图所示:
构建成功的界面
运行hello_world.exe需要执行:

set set GLOG_logtostderr=1
hello_world.exe

运行结果如下图所示:
在这里插入图片描述

参考文献

1.MediaPipe https://google.github.io/mediapipe/

2.MSYS2 Software Distribution and Building Platform for Windows https://www.msys2.org/

3.Tool之Bazel:Bazel的简介、安装、使用方法之详细攻略 https://bbs.huaweicloud.com/blogs/detail/255296

4.Error encountered during installation https://github.com/google/mediapipe/issues/581#issuecomment-610356857

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/15097.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

电瓶车、汽车智慧充电站可提高运营利润,缩短投资回收周期!

安科瑞 李可欣 具体可咨询&#xff1a;Acrel_lkx 需求分析 传统充电站现状 充电站用户需求 建设智慧充电站&#xff0c;解决传统充电站痛点 安科瑞充电站解决方案 保障配电可靠&#xff0c;解决运维难的问题&#xff0c;降低人力成本 确保用电安全&#xff0c;及时切除隐患…

数云融合丨重构传统商贸数字化解决方案

随着5G技术的高速发展&#xff0c;我们迎来了数字化的新阶段&#xff0c;中国也正在加快步入新的消费时代。 数字化的发展带来的多元下消费力的提升&#xff0c;让传统商贸行业迎来数字化产业升级的十字路口&#xff0c;今天我们就来聊一聊数字化对传统商贸的重构。 传统商贸面…

LQ0204 振兴中华【递归】

题目来源&#xff1a;蓝桥杯2013初赛 C A组C题 题目描述 本题为填空题&#xff0c;只需要算出结果后&#xff0c;在代码中使用输出语句将所填结果输出即可。 小明参加了学校的趣味运动会&#xff0c;其中的一个项目是&#xff1a;跳格子。 地上画着一些格子&#xff0c;每个…

这些编程语言你需要了解一下

2022 年最受欢迎的语言 1、Python Python 位居 2022 年最受欢迎的语言榜首&#xff0c;并且鉴于多种原因成为最适合学习的编程语言之一。Python 是一种通用的服务器端编程语言&#xff0c;可用于从简单的脚本和自动化到复杂的 Web 应用程序和人工智能的许多方面。此外&#xf…

电科大离散数学-3-谓词逻辑-1

目录 3.1 谓词的引入 3.1.1 个体词 3.1.2 谓词 3.1.3 复合命题的谓词符号化 3.2 量词的引入 3.2.1 量词 3.2.2 谓词逻辑符号化的两条规则 3.2.3 量词相关的真值确定 3.2.4 谓词翻译和真值 3.2.5 个体域有限的情况 3.3 谓词符号化举例 3.3.1 谓词逻辑符号化示例一 …

gdb调试的插件安装——gef插件

以下博客中的链接都是大佬们提供的链接 gef插件源地址&#xff1a;https://github.com/hugsy/ 根据要求&#xff1a; gdb必须得8.0以上&#xff0c;python得3.6以上&#xff0c;但是一般裸机的gdb都是7.2&#xff0c;python是2.7。我们需要下载更高版本的gdb和python 先将系统…

15、volume

Volume 的生命周期独立于容器&#xff0c;Pod 中的容器可能被销毁和重建&#xff0c;但 Volume 会被保留。本质上&#xff0c;Kubernetes Volume 是一个目录。当Volume被mount到Pod&#xff0c;Pod中的所有容器都可以访问这个Volume。Kubernetes Volume 也支持多种 backend 类型…

菊风入选2022·爱分析保险科技厂商报告,为保险行业数智化转型赋能

随着数字化转型加速及大数据、人工智能等技术的日益精进&#xff0c;保险公司纷纷布局互联网赛道&#xff0c;采取“保险”与“科技”相结合的双引擎战略&#xff0c;赋予客户更快“速度”更暖“温度”的服务体验。可以说&#xff0c;保险科技作为保险和科技融合创新的成果与生…

如何给视频加水印标记?分享三个好用方法给你

现在给视频加水印已经不再单单是起到一个防盗的作用了&#xff0c;还可以是标明视频的出处或者著作权&#xff0c;甚至是打广告等作用&#xff0c;尤其是要上传到一些视频网站的视频&#xff0c;更应该打上自己专属的水印。那你们知道怎么给视频加水印吗&#xff1f;还不知道的…

Git commit校验工具commitlint的配置与使用

前端环境要求 node&#xff1a; 16.x npm&#xff1a; 8.x Tip&#xff1a;npm版本须大于等于 7.24.2&#xff0c;过低的话可能会导致下面有的命令无法使用&#xff0c;需要手动在 package.json 中自行设置。 工具 husky 操作 git 钩子的工具 commitlint commit 信息校验工…

[附源码]java毕业设计农贸产品交易系统

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

【freeRTOS】操作系统之六-低功耗模式

六&#xff0c;低功耗模式 本章节为大家讲解 FreeRTOS 本身支持的低功耗模式 tickless 实现方法&#xff0c;tickless 低功耗机制是当前小型 RTOS 所采用的通用低功耗方法&#xff0c;比如 embOS&#xff0c;RTX 和 uCOS-III&#xff08;类似方法&#xff09;都有这种机制。ti…

深度学习 Day 19——数据增强

深度学习 Day 19——数据增强 文章目录深度学习 Day 19——数据增强一、前言二、我的环境三、前期工作1、导入依赖项并设置GPU2、加载数据3、配置数据集并进行归一化处理4、可视化数据四、数据增强五、数据增强方式1、将其签入model中2、在Dataset数据集中进行数据增强六、编译…

【金融】经济崛起之中的东南亚

由于全球范围内的重大危机事件&#xff0c;经济贸易摩擦加剧&#xff0c;地区局势动荡不安&#xff0c;全世界主要经济体的经济发展都受到了极大的冲击&#xff0c;但东南亚地区却在这一全球衰退的背景之下给出了即为亮眼的经济表现。东盟国家近年来保持着较高的经济增速&#…

792. 匹配子序列的单词数 : 常规预处理优化匹配过程

题目描述 这是 LeetCode 上的 792. 匹配子序列的单词数 &#xff0c;难度为 中等。 Tag : 「二分」、「哈希表」 给定字符串 s 和字符串数组 words, 返回 words[i] 中是 s 的子序列的单词个数 。 字符串的 子序列 是从原始字符串中生成的新字符串&#xff0c;可以从中删去…

初学者设计PCB,如何检查光绘文件的断头线

设计一款完整的PCB线路板&#xff0c;需要经过很多个繁琐而且复杂的工序。一般主要包括明确产品需求、硬件系统设计、器件选型、PCB绘制、PCB生产打样、焊接调试等步骤。 一般设计师都会有自己积累的设计质量检查清单&#xff0c;其中的条目部分来源于公司或部门的规范、另一部…

Linux开发工具VI/VIM

Linux开发工具VI/VIM 文章目录Linux开发工具VI/VIM一、Linux 软件包管理器 yum语法安装和卸载sl&#xff08;小火车跑动&#xff09;软件包二、编辑器VI/VIM1.基本介绍2.基础使用接下来介绍vim使用正常模式命令集末行模式命令集三、VIM优化总结一、Linux 软件包管理器 yum yum…

大学生个人网页模板 简单网页制作作业成品 极简风格个人介绍HTML网页设计(舞蹈培训网页)

⛵ 源码获取 文末联系 ✈ Web前端开发技术 描述 网页设计题材&#xff0c;DIVCSS 布局制作,HTMLCSS网页设计期末课程大作业 | 校园篮球网页设计 | 足球体育运动 | 体育游泳运动 | 兵乓球 | 网球 | 等网站的设计与制作 | HTML期末大学生网页设计作业&#xff0c;Web大学生网页 H…

大学生《Web课程谁》期末网页制作 HTML+CSS+JavaScript 网页设计实例 瑜伽网站企业网站制作

&#x1f389;精彩专栏推荐 &#x1f4ad;文末获取联系 ✍️ 作者简介: 一个热爱把逻辑思维转变为代码的技术博主 &#x1f482; 作者主页: 【主页——&#x1f680;获取更多优质源码】 &#x1f393; web前端期末大作业&#xff1a; 【&#x1f4da;毕设项目精品实战案例 (10…

单商户商城系统功能拆解32—营销中心—消费奖励

单商户商城系统&#xff0c;也称为B2C自营电商模式单店商城系统。可以快速帮助个人、机构和企业搭建自己的私域交易线上商城。 单商户商城系统完美契合私域流量变现闭环交易使用。通常拥有丰富的营销玩法&#xff0c;例如拼团&#xff0c;秒杀&#xff0c;砍价&#xff0c;包邮…