由于MediaPipe只能在linux下编译,所有需要搭建linux的系统环境,
在window系统中WindowsSubsystemLinux 是最方便快捷的linux 子系统了,开搞~~~
mediapipe 官方M的文档:Hello World! on Android - mediapipe
安装wls(WindowsSubsystemLinux)
1、在Microsoft Store 中搜索wls,会出现很多的应用,选择一个ubuntu的系统就可以了,这里我先择了18.04的,下载安装
就可以安装完成
2、然后输入用户名和密码,这个自己设置,
更改镜像源,改为阿里的
我们要经常安装软件,国外的速度很慢
C:\Users\Mr.tian\AppData\Local\Packages\CanonicalGroupLimited.Ubuntu18.04onWindows_79rhkp1fndgsc\LocalState\rootfs\etc\apt
在系统中的这个位置
把原来的文件sources.list 拷贝出来为sources.list_backup,原来的文件输入下面的内容
# 阿里巴巴开源镜像站-OPSX镜像站-阿里云开发者社区
deb Index of /ubuntu/ bionic main restricted universe multiverse
deb Index of /ubuntu/ bionic-security main restricted universe multiverse
deb Index of /ubuntu/ bionic-updates main restricted universe multiverse
deb Index of /ubuntu/ bionic-proposed main restricted universe multiverse
deb Index of /ubuntu/ bionic-backports main restricted universe multiverse
# 仿照清华镜像源,注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
# deb-src Index of /ubuntu/ xenial main restricted universe multiverse
# deb-src Index of /ubuntu/ xenial-security main restricted universe multiverse
# deb-src Index of /ubuntu/ xenial-updates main restricted universe multiverse
# deb-src Index of /ubuntu/ xenial-proposed main restricted universe multiverse
# deb-src Index of /ubuntu/ xenial-backports main restricted universe multiverse
然后执行
sudo apt-get update sudo apt-get upgrade sudo apt-get install build-essential sudo apt-get install unzip sudo apt-get install zip sudo apt-get install adb sudo apt-get install android-tools-adb |
配置java环境
sudo apt-get install openjdk-8-jdk
配置环境变量
打开/etc/profile文件
在最下面追加下面变量,可以根据自己调整
#set Java environment
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
sudo chmod 777 /etc/profile //读写权限
source /etc/profile //环境变量生效
echo $JAVA_HOME 测试下是否可以输出
安装Bazel
mediapipe是用bazel来编译的,所以必须要安装这个环境
echo"deb [arch=amd64] http://storage.googleapis.com/bazel-apt stable jdk1.8"|sudo tee /etc/apt/sources.list.d/bazel.list
curl https://bazel.build/bazel-release.pub.gpg|sudo apt-key add -
安装并更新bazel
sudo apt-get update && sudo apt-get install bazel
安装完成后,您可以使用以下命令升级到较新版本的Bazel
sudo apt-get install --only-upgrade bazel
在~/.bashrc 里面添加export PATH="$PATH:$HOME/bin"
source ~/.bashrc
最后可以在/usr/bin/bazel-3.7.2 这个可执行文件了
查看版本
bazel version
下载Mediapipe库到本地
由于GitHub - google/mediapipe: Cross-platform, customizable ML solutions for live and streaming media.的地址在国外,不好下载
所以我们就有gitee上的镜像地址了mediapipe: MediaPipe 是一个基于图形的跨平台框架,用于构建多模式(视频,音频和传感器)应用的机器学习管道
我们把源码放到/home/用户下/
执行git clone mediapipe: MediaPipe 是一个基于图形的跨平台框架,用于构建多模式(视频,音频和传感器)应用的机器学习管道 /home/tian/mediapipe
等待...完成
配置opencv环境
我们cd 到mediapipe目录,然后可以看到setup_opencv.sh 这个是mediapipe给我们的配置的 安装脚本
给它赋值读写权限
sudo chmod 777 setup_opencv.sh
然后执行它
sudo apt-get update && ./setup_opencv.sh
如果setup_opencv.sh 里的opencv的地址很慢就换源gitee
opencv_contrib:https://gitee.com/idledo/opencv_contrib.git
替换地址就可以了,然后执行
配置android sdk和ndk环境
sudo chmod 755 setup_android_sdk_and_ndk.sh
sudo apt-get update && ./setup_android_sdk_and_ndk.sh
export ANDROID_HOME=/home/tian/Android/Sdk
export ANDROID_NDK_HOME =/home/tian/Android/Sdk/ndk-bundle/android-ndk-r18b
export PATH=$ANDROID_HOME/bin:$PATH
export PATH=$ANDROID_NDK_HOME/bin:$PATH
添加到profile,然后执行
sudo chmod 775 /etc/profile
source /etc/profile
配置python库
pip的安装
sudo apt install python3-pip
然后安装mediapipe下面requirements里的python库
sudo pip3 install absl-py
pip3 install attrs
pip3 install dataclasses
pip3 install numpy
pip3 install protobuf
pip3 install wheel
pip3 install scikit-build
pip3 install --upgrade pip
pip3 install opencv-contrib-python
编译android的example中的Basic
执行
sudo ./build_android_examples.sh
这个是把examples中的所有app 都编译成了apk 特别耗时,而且很占用空间,慎重!