Windows10编译Mediapipe(C++版本)

Windows10编译Mediapipe(C++版本)

参考网站:https://www.stubbornhuang.com/1555/

一、MSYS2环境配置

  • MSYS2官网:https://www.msys2.org/ 下载MSYS2

  • 安装路径可以换,其他默认安装即可

  • 配置环境变量,选择系统变量的PATH
    Windows10编译Mediapipe(C++版本)_第1张图片

  • 打开MSYS2 MSYS
    Windows10编译Mediapipe(C++版本)_第2张图片

命令行输入

pacman -Syu

然后等待各种包下载升级安装即可

  • 升级MSYS2基础数据库

继续输入

pacman -Su

等待升级完成

  • 下载必要的包unzip

由于MSYS2没有内置unzip,故需要手动安装,打开cmd.exe,直接输入:

pacman -S git patch unzip

等待安装即可,MSYS2配置完成

二、Python环境配置

需要在电脑上安装Python,Anaconda并配置系统环境。在Python环境中需要装好tensorflow cpu,如果准备编译GPU版本需要安装gpu版本的tensorflow。建议安装PyCharm,Python需要的库可以在里面直接添加

三、安装VS和WinSDK

WinSDK在VS安装的时候会自动安装

VS官网:https://visualstudio.microsoft.com/zh-hans/free-developer-offers/

四、配置Bazel

  • 下载

    下载地址:https://github.com/bazelbuild/bazel/releases,这个是国外的网站,需要一些技术手段(这里就不说了)

    还有一个国内网站:https://mirrors.huaweicloud.com/bazel/

    下载的版本需要是3.7.2版本以上的

    例如:bazel-3.7.2-windows-x86_64.exe

  • 配置环境变量

    把下载的exe文件放到指定盘下,直接复制过去就可以,改个名,将路径配置到环境变量的系统变量里
    Windows10编译Mediapipe(C++版本)_第3张图片
    Windows10编译Mediapipe(C++版本)_第4张图片

    这个路径一定要准确,bazel尽量不要存于桌面,我第一次进行编译的时候因为放到桌面造成了路径混乱,分不清了。

    打开cmd,输入bazel
    Windows10编译Mediapipe(C++版本)_第5张图片

    若出现以上结果便是安装成功

五、设置Bazel变量

  • 打开MSYS,输入:

      # Please find the exact paths and version numbers from your local version.
      C:\> set BAZEL_VS=C:\Program Files\Microsoft Visual Studio\2022\Community
      C:\> set BAZEL_VC=C:\Program Files\Microsoft Visual Studio\2022\Community\VC
      C:\> set BAZEL_VC_FULL_VERSION=
      C:\> set BAZEL_WINSDK_FULL_VERSION=
    
    • BAZEL_VS: VS的安装路径,这里有个注意的地方,如果你的安装路径是在Program Files (x86)下,这个括号需要进行转义,所以应该变成Program Files \(x86\)

    • BAZEL_VC: VS安装目录下C++主要目录

    • BAZEL_VC_FULL_VERSION: VS中VC版本号,可以在C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Redist\MSVC下找到,如图

      Windows10编译Mediapipe(C++版本)_第6张图片

      14.30.30704便是版本号

    • BAZEL_WINSDK_FULL_VERSION:WinSDK的版本号,这可以在控制面板-程序-程序和功能中查看,找到Windows Software Development Kit,后面跟的数字就是WinSDK的版本号,如下图所示。

      Windows10编译Mediapipe(C++版本)_第7张图片

    完整的:

      set BAZEL_VS=C:\Program Files\Microsoft Visual Studio\2022\Community
      set BAZEL_VC=C:\Program Files\Microsoft Visual Studio\2022\Community\VC
      set BAZEL_VC_FULL_VERSION=14.29.30036
      set BAZEL_WINSDK_FULL_VERSION=10.0.19041.685
    

六、下载opencv:https://opencv.org/releases/

下载运行exe,解压到自己想要的路径(不要用中文路径),防止后边编译出错

七、Mediapipe仓库克隆以及bazel的编译文件WORKSPACE的修改

git迁移Mediapipe官方仓库,cmd.exe执行

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

迁移完成之后,打开该仓库根目录下的WORKSPACE文件,并在该文件中搜索“windows_opencv”,并将OpenCV的路径修改为你本地保存OpenCV的路径

修改后:

new_local_repository(
    name = "windows_opencv",
    build_file = "@//third_party:opencv_windows.BUILD",
    path = "C:\\Program Files\\opencv\\build",
)

八、编译运行hello world

打开cmd,切换到Mediapipe仓库根目录下

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

其中PYTHON_BIN_PATH是Python的安装路径

编译完成后看到如下信息:

Windows10编译Mediapipe(C++版本)_第8张图片

我在这遇见了缺少numpy模块,该模块是python用来存储和运算大型矩阵的。

解决方案:

打开PyCharm,在工作空间中加载Mediapipe仓库根目录,将整个文件夹导入。
依次点击File-Settings-Project:mediapipe-Python Interpreter。选择 + 号,搜索numpy,将找到的选中后点击Install Package,等待出现Successfully即可解决。
Windows10编译Mediapipe(C++版本)_第9张图片
Windows10编译Mediapipe(C++版本)_第10张图片

九、运行

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

运行结果如下:

Windows10编译Mediapipe(C++版本)_第11张图片

如果运行成功,那么就说明Mediapipe的Windows C++编译环境配置完成

你可能感兴趣的:(c++)