iOS开发之机器学习框架MediaPipe
Posted hbblzjy
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了iOS开发之机器学习框架MediaPipe相关的知识,希望对你有一定的参考价值。
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库
pip3 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
I20221013 17:40:34.163226 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165056 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165071 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165081 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165088 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165097 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165105 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165114 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165122 179693056 hello_world.cc:57] Hello World!
I20221013 17:40:34.165131 179693056 hello_world.cc:57] Hello World!
真是遇到了一个大坑啊,第一步大坑已经迈过去了,距离胜利越来越近了,未完待续~~
整理不易,转载请注明,谢谢
以上是关于iOS开发之机器学习框架MediaPipe的主要内容,如果未能解决你的问题,请参考以下文章