Skip to content

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

License

Notifications You must be signed in to change notification settings

terryky/android_tflite

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published