Windows下编译MediaPipe

文章目录

1. 安装 MSYS2

1.1 下载

下载地址: MSYS2
Windows下编译MediaPipe

1.2 安装

(1) 使用默认安装目录安装,安装在目录 c:\msys64, 则添加目录 C:\msys64\usr\bin 到系统 Path 环境变量中;
(2) 安装完成后,打开MSYS,执行下面两步更新数据:

pacman -Syu
pacman -Su

Windows下编译MediaPipe
Windows下编译MediaPipe

(3)安装其他工具包:

pacman -S git patch unzip

Windows下编译MediaPipe


2. 安装Python

2.1 安装

下载地址:Python
安装时选择最下面的 添加到Path环境变量
Windows下编译MediaPipe
电脑上已经安装了Anaconda环境,也可以使用Anaconda的base环境 ,则这一步安装python可以省略

2.2 安装相关包

使用以下命令安装numpy和six这两个包

pip install numpy
pip install six

3. 安装Visual Studio

可以安装Visual Studio 2019 或者更新版本。 安装Visual Studio时注意要勾选添加WinSDK
经测试使用Visual Studio 2017编译MediaPipe的Hello_world示例时会报很多 LNK2005 的错误,改用Visual Studio 2019则没有这样的错误。其他更新版本的VS没测试。

Visual Studio 2019 下载地址: Visual Studio 2019
Windows下编译MediaPipe
下载社区版则可。

安装:
Windows下编译MediaPipe
单个组件栏下看看是否有勾选 Windows 10 SDK, 选哪个都行,只要勾选了就可以
Windows下编译MediaPipe


4. 安装Bazel

4.1 安装

下载地址: Bazel
下载最新版本,写文章时当前最新版本为下图这个版本
Windows下编译MediaPipe
下载完成后,建议把 bazel-6.0.0-pre.20220127.1-windows-x86_64.exe 重命名为 bazel.exe,然后放入一个文件夹中,并把这个文件夹添加到系统Path环境变量中。
例如我放到 C:\bazel 这个目录,则把 C:\bazel 添加到系统Path环境变量中。
Windows下编译MediaPipe
环境变量设置完后, 在cmd中使用 bazel version 查看版本,能查到版本信息则表示安装成功
Windows下编译MediaPipe

4.2 设置 Bazel 环境变量

BAZEL_VS
BAZEL_VC
BAZEL_VC_FULL_VERSION
BAZEL_WINSDK_FULL_VERSION
Windows下编译MediaPipe

4.2.1 BAZEL_VS

VS安装目录
(1)如果安装的Visual Studio Community 2019, 则设置 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
(2)如果安装的Visual Studio Enterprise 2019, 则设置 C:\Program Files (x86)\Microsoft Visual Studio\2019\Enterprise
(3)其他。 版本依照此规则填写,根据你实际安装的版本和目录来填写

4.2.2 BAZEL_VC

与BAZEL_VS类似,只是后面加一个 \VC

4.2.3 BAZEL_VC_FULL_VERSION

填写此文件夹下的目录名
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC Windows下编译MediaPipe

4.2.4 BAZEL_WINSDK_FULL_VERSION

有如下几种方法查找:
(1)安装VS时勾选的 Windows 10 SDK 版本;
(2)控制面板 -> 程序 -> 程序与功能,里面找到 Windows Software Development Kit,版本号如下图所示这里,不过版本号最后一位应该填写 0, 比如这里版本号是 10.0.19041.685,则应填写成 10.0.19041.0 , 有多个版本的情况下,填写其中一个则可
Windows下编译MediaPipe
(3)在目录 C:\Program Files (x86)\Windows Kits\10\bin 下查看
Windows下编译MediaPipe


5. 安装OpenCV

下载地址: OpenCV
目前MediaPipe使用的OpenCV版本为3.4.10,找到Windows版本下载安装即可


6. 下载MediaPipe

使用git指令下载:

git clone https://github.com/google/mediapipe.git

下载完后,打开 WORKSPACE 文件,修改 windows_opencv 的目录
Windows下编译MediaPipe
Windows下编译MediaPipe

7. 运行 Hello World

cd mediapipe
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="C:/Users/vm/AppData/Local/Programs/Python/Python310/python.exe" mediapipe/examples/desktop/hello_world

其中 PYTHON_BIN_PATH=“C:/Users/vm/AppData/Local/Programs/Python/Python310/python.exe” 为Python的安装目录,根据自己Python安装目录填
Windows下编译MediaPipe
Windows下编译MediaPipe
然后,运行hello_world.exe

set GLOG_logtostderr=1
bazel-bin\mediapipe\examples\desktop\hello_world\hello_world.exe

Windows下编译MediaPipe

8. 问题

8.1 Bazel couldn’t find a valid Visual C++ build tools installation on your machine

环境变量中 BAZEL_VS、BAZEL_VC 填写的路径错误,或BAZEL_VC_FULL_VERSION、BAZEL_WINSDK_FULL_VERSION 版本号填写错误

8.2 LNK1104

LNK1104无法打开文件“kernel32.lib”
BAZEL_WINSDK_FULL_VERSION 的 Windows 10 SDK 版本号填写错误

8.3 LNK2005

Windows下编译MediaPipe
建议更换VS试试,我这是用的VS2017编译的,报这样的错误,改用VS2019就没问题了

8.4 connect timed out

Windows下编译MediaPipe
网络原因,重新执行编译指令

上一篇:MySQL日志(redo log、binlog)刷盘策略


下一篇:linux安装python