MediaPipe Framework Android Arkivi

Biblioteka MediaPipe Framework Android Archive (AAR) është një mënyrë e përshtatshme për të përdorur MediaPipe Framework me Android Studio dhe Gradle. MediaPipe Framework nuk publikon një AAR të përgjithshme që mund të përdoret nga të gjitha projektet. Në vend të kësaj, zhvilluesit duhet të krijojnë një objektiv mediapipe_aar() për të gjeneruar një skedar të personalizuar AAR për projektet e tyre. Kjo është e nevojshme për të përfshirë burime specifike si kalkulatorët MediaPipe të nevojshme për çdo projekt.

Hapat për të ndërtuar një MediaPipe Framework AAR

  1. Krijo një objektiv mediapipe_aar().

    Në drejtorinë MediaPipe, krijoni një objektiv të ri mediapipe_aar() në një skedar BUILD. Ju duhet të kuptoni se çfarë kalkulatorësh përdoren në grafik dhe t'i jepni varësitë e kalkulatorit mediapipe_aar(). Për shembull, për të ndërtuar një AAR për një grafik të zbulimit të fytyrës, mund të vendosni kodin e mëposhtëm në 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"],
    )
    
  2. Ekzekutoni komandën e ndërtimit të Bazel për të gjeneruar 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
    

    Për objektivin AAR të zbulimit të fytyrës që bëmë në hapin 1, ekzekutoni:

    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
    
  3. (Opsionale) Ruani AAR në vendndodhjen tuaj të preferuar.

    cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mediapipe_face_detection.aar
    /absolute/path/to/your/preferred/location
    

Hapat për të përdorur një MediaPipe Framework AAR në Android Studio me Gradle

  1. Nisni Android Studio dhe shkoni te projekti juaj.

  2. Kopjoni AAR-in në aplikacion/libs.

    cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mediapipe_face_detection.aar
    /path/to/your/app/libs/
    

    Pamja e ekranit

  3. Krijoni aplikacionin/src/kryesor/asetet dhe kopjoni asetet (grafiku, modeli, etj.) në aplikacion/src/kryesore/pasuri.

    Ndërtoni grafikun binar MediaPipe dhe kopjoni asetet në app/src/main/assets, p.sh., për grafikun e zbulimit të fytyrës, duhet të ndërtoni dhe kopjoni grafikun binar dhe modelin tflite të zbulimit të fytyrës.

    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/
    

    Pamja e ekranit

  4. Modifiko app/build.gradle për të shtuar varësitë MediaPipe dhe 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"
    }
    
  5. Ndiqni shembujt e aplikacionit tonë Android për të përdorur MediaPipe në Android Studio për rastin tuaj të përdorimit. Nëse jeni duke kërkuar për një shembull, një shembull i zbulimit të fytyrës mund të gjendet këtu dhe një shembull i gjurmimit me shumë duar mund të gjendet këtu .