完整Demo下載地址
參考的文章
Mediapipe框架學(xué)習(xí)之三——構(gòu)建 MediaPipe 的 Android aar 包
Mediapipe框架在Android上的使用
寫一個(gè)Flutter手勢(shì)追蹤插件
Flutter 手勢(shì)識(shí)別(GPU)
mediapipemultihandstrackingapp
官方 mediapipe_multi_hands_tracking_aar_example注意點(diǎn)
In order to use MediaPipe on earlier Android versions, MediaPipe needs to switch
to a lower Android API level. You can achieve this by specifying `api_level =
$YOUR_INTENDED_API_LEVEL` in android_ndk_repository() and/or
android_sdk_repository() in the
[`WORKSPACE`](https://github.com/google/mediapipe/blob/master/WORKSPACE) file.
Note: To reduce the binary size, consider appending `--linkopt="-s"` to the
command below to strip symbols.
用的版本是V0.8.2, 之前的版本內(nèi)存管理不完善,在低端機(jī)上使用一段時(shí)間容易Crash.
- 主要步驟:
- 進(jìn)入目錄
cd /Users/xxx/StudioProjects/others/mediapipe-0.8.2
- 編譯
bazel build -c opt --fat_apk_cpu=arm64-v8a,armeabi-v7a mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example:mp_multi_hand_tracking_082.aar --linkopt="-s"
- 拷貝aar
cp bazel-bin/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_multi_hand_tracking_082.aar.aar /Users/xxx/StudioProjects/others/mediapipe-0.8.2/mediapipe/examples/android/src/java/com/google/mediapipe/apps/aar_example/mp_multi_hand_tracking_082.aar.aar
- 生成binarypb文件
bazel build -c opt //mediapipe/graphs/hand_tracking:hand_tracking_mobile_gpu_binary_graph
- 拷貝binarypb文件
cp bazel-bin/mediapipe/graphs/hand_tracking/hand_tracking_mobile_gpu.binarypb /Users/xxx/Desktop/hand_tracking_mobile_gpu.binarypb
- 拷貝其他文件
參考
mediapipe-0.8.2/mediapipe/examples/android/src/java/com/google/mediapipe/apps/handtrackinggpu/BUILD
里的assets清單,拷貝
"http://mediapipe/graphs/hand_tracking:hand_tracking_mobile_gpu.binarypb",
"http://mediapipe/modules/hand_landmark:handedness.txt",
"http://mediapipe/modules/hand_landmark:hand_landmark.tflite",
"http://mediapipe/modules/palm_detection:palm_detection.tflite",
到asset文件夾
- 配置Manifest
<meta-data android:name="cameraFacingFront" android:value="true"/>
<meta-data android:name="binaryGraphName" android:value="hand_tracking_mobile_gpu.binarypb"/>
<meta-data android:name="inputVideoStreamName" android:value="input_video"/>
<meta-data android:name="outputVideoStreamName" android:value="output_video"/>
<meta-data android:name="flipFramesVertically" android:value="true"/>
- 完整Demo下載地址
我在索尼手機(jī)上測(cè)試此Demo炸茧,發(fā)現(xiàn)啟動(dòng)會(huì)黑屏,但點(diǎn)擊home鍵后返回就好了易核。
Tip:
在線看模型的網(wǎng)址:https://netron.app/