เฟรมเวิร์ก MediaPipe บน Android

โปรดทําตามวิธีการด้านล่างเพื่อสร้างแอปตัวอย่าง Android ด้วยเฟรมเวิร์ก MediaPipe หากต้องการดูข้อมูลเพิ่มเติมเกี่ยวกับแอปตัวอย่างเหล่านี้ ให้เริ่มจากHello World! ใน Android

การสร้างแอปตัวอย่าง Android ด้วย Bazel

วิชาบังคับก่อน

  • ติดตั้งเฟรมเวิร์ก MediaPipe โดยทำตามวิธีการเหล่านี้
  • ตั้งค่ารันไทม์ Java
  • ตั้งค่า Android SDK เวอร์ชัน 30.0.0 ขึ้นไป
  • ตั้งค่า Android NDK เวอร์ชัน 26 ขึ้นไป

MediaPipe ขอแนะนำให้ตั้งค่า Android SDK และ NDK ผ่าน Android Studio (ดูการตั้งค่า Android Studio ได้ที่ด้านล่าง) อย่างไรก็ตาม หากต้องการใช้ MediaPipe โดยไม่ใช้ Android Studio โปรดเรียกใช้ setup_android_sdk_and_ndk.sh เพื่อดาวน์โหลดและตั้งค่า Android SDK และ NDK ก่อนสร้างแอปตัวอย่าง Android

หากติดตั้ง Android SDK และ NDK ไว้แล้ว (เช่น โดย Android Studio) ให้ตั้งค่า $ANDROID_HOME และ $ANDROID_NDK_HOME ให้ชี้ไปยัง SDK และ NDK ที่ติดตั้งไว้

export ANDROID_HOME=<path to the Android SDK>
export ANDROID_NDK_HOME=<path to the Android NDK>

และเพิ่มกฎ android_ndk_repository(), android_sdk_repository() และ bind() ลงในไฟล์ WORKSPACE ดังนี้

$ echo "android_sdk_repository(name = \"androidsdk\")" >> WORKSPACE
$ echo "android_ndk_repository(name = \"androidndk\", api_level=26)" >> WORKSPACE
$ echo "bind(name = \"android/crosstool\", actual = \"@androidndk//:toolchain\")" >> WORKSPACE

หากต้องการใช้เฟรมเวิร์กใน Android เวอร์ชันเก่า MediaPipe จะต้องเปลี่ยนไปใช้ Android API ระดับต่ำกว่า ซึ่งทำได้โดยระบุ api_level = $YOUR_INTENDED_API_LEVEL ใน android_ndk_repository() และ/หรือ android_sdk_repository() ในไฟล์ WORKSPACE

  1. หากต้องการสร้างแอปตัวอย่าง Android ให้สร้างแอปกับเป้าหมายการสร้าง android_binary ที่เกี่ยวข้อง ตัวอย่างเช่น สำหรับ MediaPipe Hands เป้าหมายคือ handtrackinggpu ในไฟล์ BUILD ดังนี้

    bazel build -c opt --config=android_arm64 mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu:handtrackinggpu
    
  2. ติดตั้งในอุปกรณ์ที่มี

    adb install bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/handtrackinggpu.apk