免责声明:在 Windows 上运行 MediaPipe 目前处于实验阶段。1
-
安装MSYS2并设置环境变量
1.1 官方下载MSYS2并安装(本文安装在D:\ProgramFiles\msys64);
1.2 设置环境变量:将D:\ProgramFiles\msys64\usr\bin;添加到系统变量%PATH%;
1.3 通过命令行pacman --version
能看到版本号就成功了;
1.4 通过命令行安装必要的软件包pacman -S git patch unzip
。 -
安装Python并设置环境变量(网上教程很多,略,本文采用的是3.12.4版本)
2.1 通过命令行python --version
能看到版本号就成功了;
2.2 若之前没装过numpy的话,可以在这里先装pip install numpy
,最后一步要用。 -
安装 Visual C++ Build Tools 2022(2019也可以) 和 WinSDK
3.1 官方下载Visual Studio 2022 生成工具并安装(本文安装在D:\ProgramFiles\Microsoft Visual Studio\2022\BuildTools);
3.2 官方下载WinSDK并安装,安装成功后在“控制面板-程序和功能”看到“Window Software Development Kit - Windows 10.0.22621.3233”就成功了。 -
安装Bazel并设置环境变量(本文使用6.1.1版本,若使用7版本则最后一步会报错:Error: ‘apple_common’ value has no field or method ‘multi_arch_split’)
4.1 官方下载bazel-6.1.1-windows-x86_64.exe ,下载好后不需要双击安装,而是放在一个目录(本文放在D:\ProgramFiles\Bazel),等待调用(为方便调用将bazel-6.1.1-windows-x86_64.exe改为bazel.exe);
4.2 设置环境变量:将D:\ProgramFiles\Bazel;添加到系统变量%PATH%,并新建5个系统变量;变量名 变量值 描述 BAZEL_SH D:\ProgramFiles\msys64\usr\bin\bash.exe 若无这个系统变量,则在最后一步会报错:An error occurred during the fetch of repository ‘local_execution_config_python’ 2 BAZEL_VC D:\ProgramFiles\Microsoft Visual Studio\2022\BuildTools\VC BAZEL_VC_FULL_VERSION 14.40.33807 在D:\ProgramFiles\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\目录能看到数字目录14.40.33807 BAZEL_VS D:\ProgramFiles\Microsoft Visual Studio\2022\BuildTools BAZEL_WINSDK_FULL_VERSION 10.0.22621.0 WinSDK的版本号为10.0.22621.3233,小版本号要改为0,否则最后一步会报错:Compiling src/google/protobuf/stubs/common.cc [for tool] failed: (Exit 2)3 4.3 通过命令行
bazel --version
能看到版本号就成功了。 -
检出 MediaPipe代码库(本文放在D:\Develepments)
git clone --depth 1 https://github.com/google/mediapipe.git
- 安装OpenCV
6.1 官方下载opencv-4.10.0-windows.exe并安装;
6.2 将上一步检出的MediaPipe代码库的WORKSPACE文件的这部分内容改为自己安装OpenCV的位置。new_local_repository( name = "windows_opencv", build_file = "@//third_party:opencv_windows.BUILD", path = "C:\\opencv\\build", )
- Bazel构建并运行Hello World! in C++ 示例
7.1 进入到MediaPipe代码检出位置打开命令行(能看到WORKSPACE的那层,本文D:\Develepments\mediapipe);
7.2 通过命令行构建Hello World:
(注:默认构建在C盘用户目录,若不想占用C盘宝贵空间,可使用–output_user_root=“D:\Caches\Bazel”,构建过程可能会因网络问题中断,多试几次,有时候关魔法反而更好);bazel --output_user_root="D:\\Caches\\Bazel" build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH="D:\\ProgramFiles\\Python\\Python312\\python.exe" mediapipe/examples/desktop/hello_world
7.3
7.4set GLOG_logtostderr=1
看到输出Hello World就成功了。bazel-bin\mediapipe\examples\desktop\hello_world\hello_world.exe
Windows下编译Mediapipe,C++版本 by Mike_666 ↩︎