windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程

本次编译使用windows10+bazel5.2.0+mediapipe0.8.10.2+vs20191、

  1. MSYS2下载安装与环境配置

MSYS2下载

MSYS2官网

https://www.msys2.org/windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第1张图片

可以默认安装位置,也可以自定义安装。

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第2张图片MSYS2环境配置:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第3张图片 

安装至默认路径。

注:我这里安装到默认位置。

2.升级msys2包数据库

搜索打开MSYS2

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第4张图片

 

 

 输入:

pacman –Syu

点击回车即开始升级。

等待升级完成即可。

升级msys2基础包:

同样搜索打开MSYS2,输入

pacman –Su

进行基础包升级。如下:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第5张图片 等待升级完成即可。

3.下载必要的安装包:unzip

由于MSYS2没有内置的unzip,所以这里需要手动安装。

Win+R打开输入cmd,打开cmd.exe

输入:

 pacman -S git patch unzip

 windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第6张图片

安装成功:

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

进入官网直接搜索需要的版本号就行:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第7张图片

如:本次我需要5.2.0版本直接搜索就行。

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第8张图片

所需要的bazel5.2.0在这里,点击左侧黑三角,即可展开。

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第9张图片 

直接点击,浏览器就会进行自动下载。下载完成后我们所得到的是一个bazel-5.2.0-windows-x86_64.exe为了方便使用建议重命名为bazel.exe;这样以后使用时直接输入bazel就好,避免输入原始的那后边一串东西。

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第10张图片 

我这里放到一个单独的bazel的文件夹下。

bazel环境配置

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第11张图片 

测试环境是否配置成功:

打开cmd.exe。输入bazel,点击回车。

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第12张图片

配置成功。

7.设置bazel变量:

根据官方文档,需要设置bazel变量:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第13张图片

其中:

BAZEL_VS:VS2019的安装目录,如我的安装目录为:D:\ProgramData\VS2019;

BAZEL_VC:VS2019安装目录下的C++的主要目录,如我的则为:

D:\ProgramData\VS2019\VC

BAZEL_VC_FULL_VERSION:VS2019中VC的版本号。该版本号可以在VS2019的安装目录下找到,如我的为:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第14张图片

图片中14.29.30133

BAZEL_WINSDK_FULL_VERSION:WinSDK的版本号,这个可以在“控制面板->程序和功能”中找到。如我的为:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第15张图片

    假如电脑上有多个版本的VS那么就会有多个SDK版本号,有的教程中提到选取任意一个即可,这里建议为了避免出现不必要的错误,尽量选择对应VS的SDK的版本号。

找到以上这些信息后,搜索打开MSYS2进行bazel的设置:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第16张图片

注:如果在安装VS的时候选择安装在了,默认的路径下,这里有一个坑,需要避免:Program Files (x86)的这个括号需要进行转义,所以应该变成Program Files \(x86\)

8.opencv下载安装:

官方文档指出目前使用的为opencv3.4.10,所以下载3.4.10即可。

Opencv下载地址:

https://opencv.org/releases/

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第17张图片

下载安装即可。

注:在解压安装过程中不要出现中文路径,不然后面会出现编译错误。

9.mediapipe仓库克隆及bazel的编译文件WORKSPACE的修改

使用Git迁移mediapipe官方仓库:

打开cmd.exe,输入

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

 进行迁移即可。

本人不建议这种方式,可以考虑直接进入mediapipe的官方GitHub直接下载源码。

下载网址:

https://github.com/google/mediapipe

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第18张图片

在克隆或下载源码后,打开该仓库中的WORKSPACE文件,搜索“windows_opencv”,并将opencv路径改为本地保存的路径。

修改后:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第19张图片

另除去现在网上大部分教程要修改的这里外,还有一个地方需要修改。

那就是下载下来的仓库中opencv的相关内容:

找到自己保存的仓库,打开“third_party”文件夹找到其中的opencv_windows.BUILD文件。如下:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第20张图片

打开opencv_windows.BUILD文件,找到如下位置:

修改前:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第21张图片

修改后:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第22张图片

我这里使用的是opencv3.4.2,所以里的”OPENCV_VERSION”就改为“342”;而下面的“opt_build”和“dbg_build”则根据自己的opencv中的dll文件进行修改。如我的为:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第23张图片 

10.编译并运行hello_world

官方文档提示,如果在windows上编译mediapipe需要添加python路径。

--action_envPYTHON_BIN_PATH="C://path//to//python.exe"

 

在编译命令行中,这里的PYTHON_BIN_PATH就是上述步骤中所安装的python路径,配置好即可。

编译hello_world:

使用cmd.exe目录切换到mediapipe的根目录下

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第24张图片

然后输入以下命令:

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错误。

出现以下信息说明编译成功:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第25张图片

运行hello_world:

编译完成之后,继续在cmd.exe中输入以下命令:

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

成功运行:

windows10编译mediapipe C++ 版本 新鲜出炉保姆级别教程_第26张图片 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(windows)