需要在实时音视频中实现虚拟背景,或者在人像上进行贴纸。希望在Google开源的MediaPipe中找到解决方案,本文章介绍MediaPipe在MacOS中的环境搭建,以及编译AAR。后续会补充机械学习相关在Android平台上的使用
环境搭建
- 获取源码
https://github.com/google/mediapipe.git
- 安装bazel
brew install bazel
- 科学上网
编译脚本
- 创建相关文件夹、BUILD文件
cd mediapipe/examples/android/src/java/com/google/mediapipe/apps/ mkdir buid_aar && cd buid_aar touch BUILD
|
- 编写编译脚本,指定需要编译的模型和计算单元,输出的文件名
load("//mediapipe/java/com/google/mediapipe:mediapipe_aar.bzl", "mediapipe_aar") mediapipe_aar( name = "mediapipe_portrait_segmentation", calculators = ["//mediapipe/graphs/portrait_segmentation:mobile_calculators"], )
|
- 指定需要的cpu架构,执行编译
bazel build --cxxopt='--std=c++14' -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a examples/android/src/java/com/google/mediapipe/apps/buid_aar:mediapipe_portrait_segmentation --host_crosstool_top=@bazel_tools 生成的aar路径: bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/buid_aar/mediapipe_portrait_segmentation.aar
|
- 生成Mediapipe二进制图,
bazel build -c opt mediapipe/graphs/portrait_segmentation:portrait_segmentation_mobile_gpu_binary_graph
|