Thư viện MediaPipe Framework Android Archive (AAR) là một cách thuận tiện để sử dụng Khung MediaPipe với Android Studio và Gradle. Khung MediaPipe không xuất bản một AAR chung mà mọi dự án đều có thể sử dụng. Thay vào đó, nhà phát triển cần để tạo mục tiêu mediapipe_aar() nhằm tạo một tệp AAR tuỳ chỉnh cho riêng chúng dự án. Điều này là cần thiết để bao gồm các tài nguyên cụ thể như Các máy tính MediaPipe cần thiết cho mỗi dự án.
Các bước xây dựng AAR Khung MediaPipe
Tạo mục tiêu mediapipe_aar().
Trong thư mục MediaPipe, hãy tạo mục tiêu mediapipe_aar() mới trong tệp BUILD . Bạn cần tìm ra máy tính nào được sử dụng trong biểu đồ và cung cấp các phần phụ thuộc của máy tính cho mediapipe_aar(). Ví dụ: để hãy tạo một AAR cho biểu đồ phát hiện khuôn mặt, bạn có thể đặt mã sau đây vào 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 = "mediapipe_face_detection", calculators = ["//mediapipe/graphs/face_detection:mobile_calculators"], )
Chạy lệnh bản dựng Bazel để tạo AAR.
bazel build -c opt --strip=ALWAYS \ --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \ --fat_apk_cpu=arm64-v8a,armeabi-v7a \ --legacy_whole_archive=0 \ --features=-legacy_whole_archive \ --copt=-fvisibility=hidden \ --copt=-ffunction-sections \ --copt=-fdata-sections \ --copt=-fstack-protector \ --copt=-Oz \ --copt=-fomit-frame-pointer \ --copt=-DABSL_MIN_LOG_LEVEL=2 \ --linkopt=-Wl,--gc-sections,--strip-all \ //path/to/the/aar/build/file:aar_name.aar
Đối với mục tiêu AAR phát hiện khuôn mặt mà chúng ta đã thực hiện ở bước 1, hãy chạy:
bazel build -c opt --strip=ALWAYS \ --host_crosstool_top=@bazel_tools//tools/cpp:toolchain \ --fat_apk_cpu=arm64-v8a,armeabi-v7a \ --legacy_whole_archive=0 \ --features=-legacy_whole_archive \ --copt=-fvisibility=hidden \ --copt=-ffunction-sections \ --copt=-fdata-sections \ --copt=-fstack-protector \ --copt=-Oz \ --copt=-fomit-frame-pointer \ --copt=-DABSL_MIN_LOG_LEVEL=2 \ --linkopt=-Wl,--gc-sections,--strip-all \ //mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mediapipe_face_detection.aar # It should print: # Target //mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mediapipe_face_detection.aar up-to-date: # bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mediapipe_face_detection.aar
(Không bắt buộc) Lưu AAR vào vị trí bạn muốn.
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mediapipe_face_detection.aar /absolute/path/to/your/preferred/location
Các bước sử dụng AAR Khung MediaPipe trong Android Studio bằng Gradle
Khởi động Android Studio và chuyển đến dự án của bạn.
Sao chép AAR vào app/libs.
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mediapipe_face_detection.aar /path/to/your/app/libs/
Tạo ứng dụng/src/main/Asset và sao chép các thành phần (biểu đồ, mô hình, v.v.) vào app/src/main/assets.
Tạo biểu đồ nhị phân MediaPipe rồi sao chép tài sản vào app/src/main/assets (ví dụ: đối với biểu đồ phát hiện khuôn mặt), bạn cần tạo và sao chép tệp nhị phân biểu đồ và mô hình tflite phát hiện khuôn mặt.
bazel build -c opt mediapipe/graphs/face_detection:face_detection_mobile_gpu_binary_graph cp bazel-bin/mediapipe/graphs/face_detection/face_detection_mobile_gpu.binarypb /path/to/your/app/src/main/assets/ cp mediapipe/modules/face_detection/face_detection_short_range.tflite /path/to/your/app/src/main/assets/
Sửa đổi app/build.gradle để thêm các phần phụ thuộc MediaPipe và MediaPipe AAR.
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:latest.release' implementation 'com.google.flogger:flogger-system-backend:latest.release' implementation 'com.google.code.findbugs:jsr305:latest.release' implementation 'com.google.guava:guava:27.0.1-android' implementation 'com.google.protobuf:protobuf-javalite:3.19.1' // CameraX core library def camerax_version = "1.0.0-beta10" implementation "androidx.camera:camera-core:$camerax_version" implementation "androidx.camera:camera-camera2:$camerax_version" implementation "androidx.camera:camera-lifecycle:$camerax_version" // AutoValue def auto_value_version = "1.8.1" implementation "com.google.auto.value:auto-value-annotations:$auto_value_version" annotationProcessor "com.google.auto.value:auto-value:$auto_value_version" }
Làm theo các ví dụ về ứng dụng Android để sử dụng MediaPipe trong Android Studio cho trường hợp sử dụng. Nếu bạn đang tìm kiếm ví dụ, một ví dụ về tính năng phát hiện khuôn mặt có thể là đã tìm thấy tại đây và bạn có thể xem ví dụ về thiết bị theo dõi nhiều tay tại đây.