本次编译使用windows10+bazel5.2.0+mediapipe0.8.10.2+vs20191、
MSYS2下载:
MSYS2官网
可以默认安装位置,也可以自定义安装。
安装至默认路径。
注:我这里安装到默认位置。
2.升级msys2包数据库
搜索打开MSYS2
输入:
pacman –Syu
点击回车即开始升级。
等待升级完成即可。
升级msys2基础包:
同样搜索打开MSYS2,输入
pacman –Su
进行基础包升级。如下:
3.下载必要的安装包:unzip
由于MSYS2没有内置的unzip,所以这里需要手动安装。
Win+R打开输入cmd,打开cmd.exe
输入:
pacman -S git patch unzip
安装成功:
4.Python安装及环境配置
需要在电脑上安装python并进行环境配置。我这里使用的为anaconda3的虚拟环境(mmd26)中的python。
5.下载安装VS2019和WinSDK
VS官网:
https://visualstudio.microsoft.com/zh-hans/free-developer-offers/
下载2019社区版本即可,下载安装过程中会自动安装WinSDK。
6.Bazel下载安装及环境配置:
根据mediapipe的GitHub官网资料,这里下载bazel5.2.0版本。
Bazel下载:
https://github.com/bazelbuild/bazel/releases
进入官网直接搜索需要的版本号就行:
如:本次我需要5.2.0版本直接搜索就行。
所需要的bazel5.2.0在这里,点击左侧黑三角,即可展开。
直接点击,浏览器就会进行自动下载。下载完成后我们所得到的是一个bazel-5.2.0-windows-x86_64.exe为了方便使用建议重命名为bazel.exe;这样以后使用时直接输入bazel就好,避免输入原始的那后边一串东西。
我这里放到一个单独的bazel的文件夹下。
bazel环境配置:
测试环境是否配置成功:
打开cmd.exe。输入bazel,点击回车。
配置成功。
7.设置bazel变量:
根据官方文档,需要设置bazel变量:
其中:
BAZEL_VS:VS2019的安装目录,如我的安装目录为:D:\ProgramData\VS2019;
BAZEL_VC:VS2019安装目录下的C++的主要目录,如我的则为:
D:\ProgramData\VS2019\VC
BAZEL_VC_FULL_VERSION:VS2019中VC的版本号。该版本号可以在VS2019的安装目录下找到,如我的为:
图片中14.29.30133
BAZEL_WINSDK_FULL_VERSION:WinSDK的版本号,这个可以在“控制面板->程序和功能”中找到。如我的为:
假如电脑上有多个版本的VS那么就会有多个SDK版本号,有的教程中提到选取任意一个即可,这里建议为了避免出现不必要的错误,尽量选择对应VS的SDK的版本号。
找到以上这些信息后,搜索打开MSYS2进行bazel的设置:
注:如果在安装VS的时候选择安装在了,默认的路径下,这里有一个坑,需要避免:Program Files (x86)的这个括号需要进行转义,所以应该变成Program Files \(x86\)
8.opencv下载安装:
官方文档指出目前使用的为opencv3.4.10,所以下载3.4.10即可。
Opencv下载地址:
https://opencv.org/releases/
下载安装即可。
注:在解压安装过程中不要出现中文路径,不然后面会出现编译错误。
9.mediapipe仓库克隆及bazel的编译文件WORKSPACE的修改
使用Git迁移mediapipe官方仓库:
打开cmd.exe,输入
git clone https://github.com/google/mediapipe.git
进行迁移即可。
本人不建议这种方式,可以考虑直接进入mediapipe的官方GitHub直接下载源码。
下载网址:
https://github.com/google/mediapipe
在克隆或下载源码后,打开该仓库中的WORKSPACE文件,搜索“windows_opencv”,并将opencv路径改为本地保存的路径。
修改后:
另除去现在网上大部分教程要修改的这里外,还有一个地方需要修改。
那就是下载下来的仓库中opencv的相关内容:
找到自己保存的仓库,打开“third_party”文件夹找到其中的opencv_windows.BUILD文件。如下:
打开opencv_windows.BUILD文件,找到如下位置:
修改前:
修改后:
我这里使用的是opencv3.4.2,所以里的”OPENCV_VERSION”就改为“342”;而下面的“opt_build”和“dbg_build”则根据自己的opencv中的dll文件进行修改。如我的为:
10.编译并运行hello_world
官方文档提示,如果在windows上编译mediapipe需要添加python路径。
--action_envPYTHON_BIN_PATH="C://path//to//python.exe"
在编译命令行中,这里的PYTHON_BIN_PATH就是上述步骤中所安装的python路径,配置好即可。
编译hello_world:
使用cmd.exe目录切换到mediapipe的根目录下
然后输入以下命令:
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_envPYTHON_BIN_PATH="D:\\ProgramData\\Anaconda3\\envs\\mmd26\python.exe"mediapipe/examples/desktop/hello_world:hello_world --verbose_failures
上述的PYTHON_BIN_PATH需要修改为你自己的python路径,编译过程中需要从Github上拉取一些库,所以最好科学上网,不然会出现can't fetch错误。
出现以下信息说明编译成功:
运行hello_world:
编译完成之后,继续在cmd.exe中输入以下命令:
set GLOG_logtostderr=1
bazel-bin\mediapipe\examples\desktop\hello_world\hello_world.exe
成功运行: