MediaPipe是谷歌开源的机器学习框架,用于处理视频、音频等时间序列数据。
MediaPipe Solutions提供了16个Solutions: 人脸检测、Face Mesh(面部网格)、虹膜、手势、姿态、人体、人物分割、头发分割、目标检测、Box Tracking、Instant Motion Tracking、3D目标检测、特征匹配等。
本周刚开始学习MediaPipe框架,所以今天先记录一下部分准备工作和遇到的一下疑难杂症~
-
# 在Mac上安装Homebrew
-
/bin/bash -c
"$(curl -fsSL \
-
https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
-
//国内用户可用一键安装脚本:
-
/bin/zsh -c
"$(curl -fsSL https://gitee.com/cunkai/HomebrewCN/raw/master/Homebrew.sh)"
-
-
# 安装Xcode及命令行工具
-
xcode-select --install
-
-
# 安装Bazelisk,
-
brew install bazelisk
-
-
# 克隆MediaPipe库文件
-
git
clone https://github.com/google/mediapipe.git
-
cd mediapipe
-
-
# 安装OpenCV
-
brew install opencv@3
当你在执行 brew install opencv@3 时,你肯定会遇到类似下面的问题:
这是因为缺少对应的依赖库,上面就是缺少了 harfbuzz 库,所以下载好对应的库就可以解决,执行:brew install harfbuzz
之后再遇见一样的错误,还是执行:brew install (缺少的库),直到下载依赖库不再报错,或者执行完一次:1、brew install (缺少的库),无论结果如何,接着执行:2、brew install opencv@3,看opencv@3结果缺少哪个库,然后多次执行1、2两个终端命令,直到执行:brew install opencv@3 不再error,那么执行
brew info opencv@3 # 查看opencv的版本及信息
显示结果如图:
之后下载python3的six库,一定要注意,在终端上将python3设置为默认,下载完成后,查看安装结果
-
# 安装 six库
-
pip
3 install --user six
-
-
# 查验安装结果
-
# cd 到 mediapipe 所在的目录,执行下面操作
-
-
export GLOG_logtostderr
=
1
-
/
/ 需要bazel设置环境变量
'MEDIAPIPE_DISABLE_GPU=1',因为桌面GPU当前不受支持
-
bazel
run --define MEDIAPIPE_DISABLE_GPU
=
1 \
-
mediapipe
/examples
/desktop
/hello_world:hello_world
此时如果你很顺利的输出了以下结果,那么恭喜你,最初的配置已经成功。
但是很不幸的是,我遇到了下面的大坑,
问题很明显是缺少了numpy库
-
ERROR: Analysis
of target
'//mediapipe/examples/desktop/hello_world:hello_world' failed; build aborted: Problem getting numpy include path.
-
Traceback (most recent
call
last):
-
File
"<string>",
line
1,
in
<module
>
-
ModuleNotFoundError:
No module named
'numpy'
-
Is numpy installed?
于是我就使用各种终端命令安装numpy,命令显示已经安装上了,然后再执行hello_world语句,依然是相同的报错,然后 import numpy 导入库,发现竟然没有,最后使用下面命令安装:
python3 -m pip install numpy
报错如下:
查看了各种英文,各种尝试都不管用,最后终于在github上理解了原因是什么:Failed pip install for numpy in python 3.9 on macOS using conda,这是一个python的bug!!!在这个版本上安装会失败!!!Failed pip install for numpy in python 3.9 on macOS using conda · Issue #17569 · numpy/numpy · GitHub
于是我更新了python3.10.5的版本:https://www.python.org/ftp/python/3.10.5/python-3.10.5-macos11.pkg
然后再次执行
python3 -m pip install numpy
成功效果如下:
最后再次执行操作语句:
-
export GLOG_logtostderr
=
1
-
/
/ 需要bazel设置环境变量
'MEDIAPIPE_DISABLE_GPU=1',因为桌面GPU当前不受支持
-
bazel
run --define MEDIAPIPE_DISABLE_GPU
=
1 \
-
mediapipe
/examples
/desktop
/hello_world:hello_world
终于让我看到了世界语言:
-
INFO: Analyzed target
/
/mediapipe
/examples
/desktop
/hello_world:hello_world (
81 packages loaded,
1836 targets configured).
-
INFO: Found
1 target...
-
Target
/
/mediapipe
/examples
/desktop
/hello_world:hello_world up-to-date:
-
bazel-bin
/mediapipe
/examples
/desktop
/hello_world
/hello_world
-
INFO: Elapsed
time:
575.843s, Critical Path:
487.45s
-
INFO:
776 processes:
156 internal,
620 darwin-sandbox.
-
INFO: Build completed successfully,
776 total actions
-
INFO: Build completed successfully,
776 total actions
-
I
20221013
17:
40:
34.163226
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165056
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165071
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165081
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165088
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165097
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165105
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165114
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165122
179693056 hello_world.cc:
57] Hello World!
-
I
20221013
17:
40:
34.165131
179693056 hello_world.cc:
57] Hello World!
真是遇到了一个大坑啊,第一步大坑已经迈过去了,距离胜利越来越近了,未完待续~~
整理不易,转载请注明,谢谢