MediaPipe window环境下编译指南(1)

由于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

oepncv:opencv: OpenCV 是 Intel 开源的计算机视觉库。它由一系列 C 函数和少量 C++ 类构成,实现了图像处理和计算机视觉方面的很多通用算法。OpenCV 拥有包括 300 多个 C 函数的跨平台的中、高层 API

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 特别耗时,而且很占用空间,慎重!

猜你喜欢

转载自blog.csdn.net/fagawee/article/details/121225120