MediaPipe 2019年开源,是一款由 Google Research 开发并开源的多媒体机器学习模型应用框架。在谷歌,一系列重要产品,如 、Google Lens、ARCore、Google Home 以及 ,都已深度整合了 MediaPipe。
1. 安装 MSYS2
https://www.msys2.org
这里下载的是 msys2-x86_64-20220603.exe (当前最新版)
1>安装在目录 c:\msys64, 则添加目录 C:\msys64\usr\bin 到系统 Path 环境变量中;
2>安装完成后,打开MSYS,执行下面两步更新数据:
pacman -Syu
pacman -Su
3>安装其他工具包:
pacman -S git patch unzip
2: 安装python
https://www.python.org/downloads/windows/
这里下载的是 3.10.5 (当前最新版) 64bit,win7 用3.8版本(3.9不支持win7)
1>安装相关包
使用以下命令安装numpy和six这两个包
pip install numpy
pip install six
3:vs2019(c++)
SDK win10 10.0.19
已装过了,装时选择的是10.0.18 感觉也可以吧
4. 安装 Bazel
https://github.com/bazelbuild/bazel/releases
这里选择的是 bazel-5.2.0-windows-x86_64.exe (5.2是release 最新版)
建议把 bazel-4.2.2-windows-x86_64.exe 重命名为 bazel.exe,然后放入一个文件夹中,并把这个文件夹添加到系统Path环境变量中。这里目录为是 D:\software\MediaPipe_install_soft_reademe
设置 Bazel 环境变量
BAZEL_VS
BAZEL_VC
BAZEL_VC_FULL_VERSION
BAZEL_WINSDK_FULL_VERSION
1>BAZEL_VS VS安装目录
(1)如果安装的Visual Studio Community 2019, 则设置 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community
2>BAZEL_VC
与BAZEL_VS类似,只是后面加一个 \VC
3>BAZEL_VC_FULL_VERSION
C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Tools\MSVC 目录下的 14.29.30133 这样的版本目录
4> BAZEL_WINSDK_FULL_VERSION
3种方式查看
1>>安装VS时勾选的 Windows 10 SDK 版本 eg:10.0.19041.685
2>>控制面板 -> 程序 -> 程序与功能,里面找到 Windows Software Development Kit,版本号如下图所示这里,不过版本号最后一位应该填写 0, 比如这里版本号是 10.0.19041.685,则应填写成 10.0.19041.0 , 有多个版本的情况下,填写其中一个则可
3>>在目录 C:\Program Files (x86)\Windows Kits\10\bin 下查看
这里是10.0.18362.1 -> 10.0.18362.0
5>安装 OpenCV OpenCV – 3.4.10 (windows)
目前MediaPipe使用的OpenCV版本为3.4.10
6> 下载 MediaPipe
git clone https://github.com/google/mediapipe.git
当前最新版 v0.8.10.2 发布时间 30 Jun 2022
1>修改WORKSPACE文件 在mediapipe目录下
…
new_local_repository(
name=“windows_opencv”,
build_file=“@//third_party:opencv_windows.BUILD”,
path=“c:\opencv\build”, ####这里的c:\opencv\build 修改成自己的对应的目录
)
…
7> 运行hello word
官方编译运行说明
https://google.github.io/mediapipe/getting_started/cpp.html#option-2-running-on-gpu
1>Running on CPU
1>>To build, for example, MediaPipe Hands, run:
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu
2>>To run the application:
GLOG_logtostderr=1
bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_cpu
–calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_live.pbtxt
2: Running on GPU
Note: This currently works only on Linux, and please first follow OpenGL ES Setup on Linux Desktop.
1>>To build, for example, MediaPipe Hands, run:
bazel build -c opt --copt -DMESA_EGL_NO_X11_HEADERS --copt -DEGL_NO_X11
mediapipe/examples/desktop/hand_tracking:hand_tracking_gpu
2>>To run the application:
GLOG_logtostderr=1
bazel-bin/mediapipe/examples/desktop/hand_tracking/hand_tracking_gpu
–calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_mobile.pbtxt
自己实践运行:
(1):编译 “D:/Python/Python310/python.exe” 自己安装的python.exe 目录,自行替换
cd mediapipe
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH=“D:/Python/Python310/python.exe” mediapipe/examples/desktop/hello_world
手势识别的
bazel build -c opt --define MEDIAPIPE_DISABLE_GPU=1 --action_env PYTHON_BIN_PATH=“D:/Python/Python310/python.exe” mediapipe/examples/desktop/hand_tracking:hand_tracking_cpu
(2)运行hello_world.exe
set GLOG_logtostderr=1
bazel-bin\mediapipe\examples\desktop\hello_world\hello_world.exe
运行手势识别的 制定加载视屏文件d:/temp/hand.mp4 调用摄像头 自行去掉 input_video_path=d:/temp/hand.mp4 这部分
bazel-bin\mediapipe\examples\desktop\hand_tracking\hand_tracking_cpu --calculator_graph_config_file=mediapipe/graphs/hand_tracking/hand_tracking_desktop_live.pbtxt --input_video_path=d:/temp/hand.mp4
外部传参
按照如下形式进行传参:
–str_absl=str0228 --port_MainServer=1234
int port = absl::GetFlag(FLAGS_port_MainServer);
std::string str_absl = absl::GetFlag(FLAGS_str_absl);
8>重要,下载包 放本地
本地包格式 自行替换目录
“file:///C:/Downloads/rules_swift.0.24.0.tar.gz”
http_archive(
name = “libedgetpu”,
sha256 = “14d5527a943a25bc648c28a9961f954f70ba4d79c0a9ca5ae226e1831d72fe80”,
strip_prefix = “libedgetpu-3164995622300286ef2bb14d7fdc2792dae045b7”,
urls = [
“https://github.com/google-coral/libedgetpu/archive/3164995622300286ef2bb14d7fdc2792dae045b7.tar.gz”
],
)
假如https://github.com/google-coral/libedgetpu/archive/3164995622300286ef2bb14d7fdc2792dae045b7.tar.gz 下载不下来
本地下载后 这样就可以了
urls = [
“file:///C:/Users/peng/Downloads/rules_swift.0.24.0.tar.gz”
“https://github.com/google-coral/libedgetpu/archive/3164995622300286ef2bb14d7fdc2792dae045b7.tar.gz”,
]
9>下一章 windows 手势识别