jackweiwang / android_tflite

GPU Accelerated TensorFlow Lite applications on Android NDK. Higher accuracy face detection, Age and gender estimation, Human pose estimation, Artistic style transfer

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

GPU Accelerated TensorFlow Lite applications on Android NDK.

Run and measure the performance of TensorFlow Lite GPU Delegate on Android NDK.

1. Applications

  • Lightweight Face Detection.
  • Higher accurate Face Detection.
  • Image Classfication using Moilenet.
  • Object Detection using MobileNet SSD.
  • Hair segmentation and recoloring.
  • 3D Handpose Estimation from single RGB images.
  • Eye position estimation by detecting the iris.
  • Pose Estimation.
  • Assign semantic labels to every pixel in the input image.
  • Human portrait drawing by U^2-Net.
  • Create new artworks in artistic style.

2. How to Build & Run

2.1 setup environment

$ mkdir ~/Android/
$ mv ~/Download/android-ndk-r20b-linux-x86_64.zip ~/Android
$ cd ~/Android
$ unzip android-ndk-r20b-linux-x86_64.zip
  • Download and install bazel.
$ wget https://github.com/bazelbuild/bazel/releases/download/3.1.0/bazel-3.1.0-installer-linux-x86_64.sh
$ chmod 755 bazel-3.1.0-installer-linux-x86_64.sh
$ sudo ./bazel-3.1.0-installer-linux-x86_64.sh

2.2 build TensorFlow Lite library and GPU Delegate library

  • run the build script to build TensorFlow Library
$ mkdir ~/work
$ git clone https://github.com/terryky/android_tflite.git
$ cd android_tflite/third_party/
$ ./build_libtflite_r2.4_android.sh

(Tensorflow configure will start after a while. Please enter according to your environment)


$ ls -l tensorflow/bazel-bin/tensorflow/lite/
-r-xr-xr-x  1 terryky terryky 3118552 Dec 26 19:58 libtensorflowlite.so*

$ ls -l tensorflow/bazel-bin/tensorflow/lite/delegates/gpu/
-r-xr-xr-x 1 terryky terryky 80389344 Dec 26 19:59 libtensorflowlite_gpu_delegate.so*

2.3 Download the needed assets

$ cd ~/work/android_tflite
$ ./download_all_assets.sh

2.4 Build Android Applications

$ cd ${ANDROID_STUDIO_INSTALL_DIR}/android-studio/bin/
$ ./studio.sh
  • Install NDK 20.0 by SDK Manager of Android Studio.
  • Open application folder (eg. ~/work/android_tflite/tflite_posenet).
  • Build and Run.

3. Tested Environment

Host PC Target Device
x86_64 arm64-v8a
Ubuntu 18.04.4 LTS Android 9 (API Level 28)
Android NDK r20b

4. Related Articles

5. Acknowledgements

About

GPU Accelerated TensorFlow Lite applications on Android NDK. Higher accuracy face detection, Age and gender estimation, Human pose estimation, Artistic style transfer

License:MIT License


Languages

Language:C++ 61.1%Language:C 24.0%Language:CMake 7.4%Language:Java 7.3%Language:Shell 0.1%