Mediapipe官方文档
Mediapipe框架学习之一——Win10安装Mediapipe环境
Mediapipe框架学习之二——Android SDK and NDK 配置
Mediapipe框架学习之三——构建 MediaPipe 的 Android aar 包
Mediapipe框架学习之四——利用 Mediapipe aar 包,在AS中构建基于 Mediapipe 的手势识别App
附上工程文件: handtrackinggpu.zip
如:mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/BUILD.
load("//mediapipe/java/com/google/mediapipe:mediapipe_aar.bzl", "mediapipe_aar")
mediapipe_aar(
name = "mp_face_detection_aar",
calculators = ["//mediapipe/graphs/face_detection:mobile_calculators"],
)
cd mediapipe
chmod -R 755 mediapipe/
bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a \
//mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mp_face_detection_aar
#应该打印:
# Target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mp_face_detection_aar up-to-date:
# bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_face_detection_aar.aar
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_face_detection_aar.aar //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example
bazel build -c opt mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu:binary_graph
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/facedetectiongpu/facedetectiongpu.binarypb //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example
cp mediapipe/models/face_detection_front.tflite //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example
cp mediapipe/models/face_detection_front_labelmap.txt //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example
dependencies {
implementation fileTree(dir: 'libs', include: ['*.jar', '*.aar'])
implementation 'androidx.appcompat:appcompat:1.0.2'
implementation 'androidx.constraintlayout:constraintlayout:1.1.3'
testImplementation 'junit:junit:4.12'
androidTestImplementation 'androidx.test.ext:junit:1.1.0'
androidTestImplementation 'androidx.test.espresso:espresso-core:3.1.1'
// MediaPipe deps
implementation 'com.google.flogger:flogger:0.3.1'
implementation 'com.google.flogger:flogger-system-backend:0.3.1'
implementation 'com.google.code.findbugs:jsr305:3.0.2'
implementation 'com.google.guava:guava:27.0.1-android'
implementation 'com.google.guava:guava:27.0.1-android'
implementation 'com.google.protobuf:protobuf-lite:3.0.0'
// CameraX core library
def camerax_version = "1.0.0-alpha06"
implementation "androidx.camera:camera-core:$camerax_version"
implementation "androidx.camera:camera-camera2:$camerax_version"
}
handtrackinggpu_aar -> assets
------------------------------> libs
------------------------------> jniLibs
如:mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar /BUILD.
load("//mediapipe/java/com/google/mediapipe:mediapipe_aar.bzl", "mediapipe_aar")
mediapipe_aar(
name = "mp_face_detection_aar",
calculators = ["//mediapipe/graphs/hand_tracking:mobile_calculators"],
)
添加手势识别的计算单元,mediapipe/graphs/face_detection/BUILD文件已声明手势识别的计算单元
cd mediapipe
chmod -R 755 mediapipe/
bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a //mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar:mp_face_detection_aar
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/mp_face_detection_aar.aar //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/libs
bazel build -c opt mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:binary_graph
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.binarypb //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/assets
cp mediapipe/models/hand_landmark.tflite //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/assets
cp mediapipe/models/palm_detection.tflite //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/assets
cp mediapipe/models/palm_detection_labelmap.txt //home/bot/mediapipe/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu_aar/assets
将 arm64-v8a、armeabi-v7a、x86、x86_64 文件夹复制到新建文件夹(jniLibs)中