# Awesome TensorFlow Lite

TensorFlow Lite is a set of tools that help convert and optimize TensorFlow models to run on mobile and edge devices. It’s currently running on more than 4 billion devices! With TensorFlow 2.x, you can train a model with tf.Keras, easily convert a model to .tflite and deploy it; or you can download a pretrained TensorFlow Lite model from the model zoo.

This is an awesome list of TensorFlow Lite models with sample apps, helpful tools and learning resources - * Showcase what the community has built with TensorFlow Lite * Put all the samples side-by-side for easy reference * Share knowledge and learning resources

Please submit a PR if you would like to contribute and follow the guidelines here.

## Contents - Past announcements: - Models with samples - Computer vision - Classification - Detection - Segmentation - Style Transfer - Generative - Post estimation - Other - Text - Speech - Recommendation - Game - Model zoo - TensorFlow Lite models - TensorFlow models - Ideas and Inspiration - ML Kit examples - Plugins and SDKs - Helpful links - Learning resources - Blog posts - Books - Videos - Podcasts - MOOCs

## Past announcements:

Here are some past feature annoucements of TensorFlow Lite: * Announcement of the new converter - MLIR-based and enables conversion of new classes of models such as Mask R-CNN and Mobile BERT etc., supports functional control flow and better error handling during conversion. Enabled by default in the nightly builds. * Android Support Library - Makes mobile development easier (Android sample code). * Model Maker - Create your custom image & text classification models easily in a few lines of code. See below the Icon Classifier for a tutorial by the community. * On-device training - It is finally here! Currently limited to transfer learning for image classification only but it’s a great start. See the official Android sample code and another one from the community (Blog | Android). * Hexagon delegate - How to use the Hexagon Delegate to speed up model inference on mobile and edge devices. Also see blog post Accelerating TensorFlow Lite on Qualcomm Hexagon DSPs. * Model Metadata - Provides a standard for model descriptions which also enables Code Gen and Android Studio ML Model Binding.

## Models with samples

Here are the TensorFlow Lite models with app / device implementations, and references. Note: pretrained TensorFlow Lite models from MediaPipe are included, which you can implement with or without MediaPipe.

### Computer vision

#### Classification

Task | Model | App | Reference | Source
--- | --- | --- | ---
Classification | MobileNetV1 (download) | Android | iOS | Raspberry Pi | Overview | tensorflow.org
Classification | MobileNetV2 | Recognize Flowers on Android Codelab | Android | TensorFlow team
Classification | MobileNetV2 | Skin Lesion Detection Android | Community
Classification | MobileNetV2 | American Sign Language Detection | Colab Notebook | Android | Community
Classification | CNN + Quantisation Aware Training | Stone Paper Scissor Detection Colab Notebook | Flutter | Community
Classification | EfficientNet-Lite0 (download) | Icon Classifier Colab & Android | tutorial 1 | tutorial 2 | Community

#### Detection

Task | Model | App | Reference | Source
--- | --- | --- | ---
Object detection | Quantized COCO SSD MobileNet v1 (download) | Android | iOS | Overview | tensorflow.org
Object detection | YOLO | Flutter | Paper | Community
Object detection | YOLOv5 | Yolov5 Inference | Community
Object detection | MobileNetV2 SSD (download) | Reference | MediaPipe
Object detection | MobileDet (Paper) | Blog post (includes the TFLite conversion process) | MobileDet is from University of Wisconsin-Madison and Google and the blog post is from the Community
License Plate detection | SSD MobileNet (download) | Flutter | Community
Face detection | BlazeFace (download) | Paper | MediaPipe
Face Authentication | FaceNet | Flutter | Community
Hand detection & tracking | Palm detection & hand landmarks (download) | Blog post | Model card | Android | MediaPipe & Community

#### Segmentation

Task | Model | App | Reference | Source
--- | --- | --- | ---
Segmentation | DeepLab V3 (download) | Android & iOS | Overview | Flutter Image | Realtime | Paper | tf.org & Community
Segmentation | Different variants of DeepLab V3 models | Models on TF Hub with Colab Notebooks | Community
Segmentation | DeepLab V3 model | Android | Tutorial | Community
Hair Segmentation | Download | Paper | MediaPipe

#### Style Transfer

Task | Model | App | Reference | Source
--- | --- | --- | ---
Style transfer | Arbitrary image stylization | Overview | Android | Flutter | tf.org & Community
Style transfer | Better-quality style transfer models in .tflite | Models on TF Hub with Colab Notebooks | Community
Video Style Transfer | Download: Dynamic range models) | Android | Tutorial | Community
Segmentation & Style transfer | DeepLabV3 & Style Transfer models | Project repo | Android | Tutorial | Community

#### Generative

Task | Model | App | Reference | Source
--- | --- | --- | ---
GANs | U-GAT-IT (Selfie2Anime) | Project repo | Android | Tutorial | Community
GANs | White-box CartoonGAN (download) | Project repo | Android | Tutorial | Community
GANs - Image Extrapolation | Boundless on TF Hub | Colab Notebook | Original Paper | Community

#### Post estimation

Task | Model | App | Reference | Source
--- | --- | --- | ---
Pose estimation | Posenet (download) | Android | iOS | Overview | tensorflow.org
Pose Classification based Video Game Control | MoveNet Lightning (download) | Project Repository | Community

#### Other

Task | Model | App | Reference | Source
--- | --- | --- | ---
Low-light image enhancement | Models on TF Hub | Project repo | Original Paper | Flutter |
OCR | Models on TF Hub | Project Repository | Community

### Text

Task | Model | Sample apps | Source
--- | --- | --- | ---
Question & Answer | DistilBERT | Android | Hugging Face
Text Generation | GPT-2 / DistilGPT2 | Android | Hugging Face
Text Classification | Download | Android |iOS | Flutter | tf.org & Community
Text Detection | CRAFT Text Detector (Paper) | Download | Project Repository | Blog1-Conversion to TFLite | Blog2-EAST vs CRAFT | Models on TF Hub | Android (Coming Soon) | Community
Text Detection | EAST Text Detector (Paper) | Models on TF Hub | Conversion and Inference Notebook | Community

### Speech

Task | Model | App | Reference | Source
--- | --- | --- | ---
Speech Recognition | DeepSpeech | Reference | Mozilla
Speech Recognition | CONFORMER | Inference Android | Community
Speech Synthesis | Tacotron-2, FastSpeech2, MB-Melgan | Android | TensorSpeech
Speech Synthesis(TTS) | Tacotron2, FastSpeech2, MelGAN, MB-MelGAN, HiFi-GAN, Parallel WaveGAN | Inference Notebook | Project Repository | Community

### Recommendation

Task | Model | App | Reference | Source
--- | --- | --- | ---
On-device Recommendation | Dual-Encoder | Android | iOS | Reference | tf.org & Community

### Game

Task | Model | App | Reference | Source
--- | --- | --- | ---
Game agent | Reinforcement learning | Flutter | Tutorial | Community

## Model zoo

### TensorFlow Lite models

These are the TensorFlow Lite models that could be implemented in apps and things: * MobileNet - Pretrained MobileNet v2 and v3 models. * TensorFlow Lite models * TensorFlow Lite models - With official Android and iOS examples. * Pretrained models - Quantized and floating point variants. * TensorFlow Hub - Set “Model format = TFLite” to find TensorFlow Lite models.

### TensorFlow models

These are TensorFlow models that could be converted to .tflite and then implemented in apps and things: * TensorFlow models - Official TensorFlow models. * Tensorflow detection model zoo - Pre-trained on COCO, KITTI, AVA v2.1, iNaturalist Species datasets.

## Ideas and Inspiration

- E2E TFLite Tutorials - Checkout this repo for sample app ideas and seeking help for your tutorial projects. Once a project gets completed, the links of the TensorFlow Lite model(s), sample code and tutorial will be added to this awesome list.

## ML Kit examples

ML Kit is a mobile SDK that brings Google’s ML expertise to mobile developers. * 2019-10-01 ML Kit Translate demo - A tutorial with material design Android (Kotlin) sample - recognize, identify Language and translate text from live camera with ML Kit for Firebase. * 2019-03-13 Computer Vision with ML Kit - Flutter In Focus. * 2019-02-09 Flutter + MLKit: Business Card Mail Extractor - A blog post with a Flutter sample code. * 2019-02-08 From TensorFlow to ML Kit: Power your Android application with machine learning - A talk with Android (Kotlin) sample code. * 2018-08-07 Building a Custom Machine Learning Model on Android with TensorFlow Lite. * 2018-07-20 ML Kit and Face Detection in Flutter. * 2018-07-27 ML Kit on Android 4: Landmark Detection. * 2018-07-28 ML Kit on Android 3: Barcode Scanning. * 2018-05-31 ML Kit on Android 2: Face Detection. * 2018-05-22 ML Kit on Android 1: Intro.

## Plugins and SDKs

- Edge Impulse - Created by @EdgeImpulse to help you to train TensorFlow Lite models for embedded devices in the cloud.
- MediaPipe - A cross platform (mobile, desktop and Edge TPUs) AI pipeline by Google AI. (PM Ming Yong) | MediaPipe examples.
- Coral Edge TPU - Edge hardware by Google. Coral Edge TPU examples.
- TensorFlow Lite Flutter Plugin - Provides a dart API similar to the TensorFlow Lite Java API for accessing TensorFlow Lite interpreter and performing inference in flutter apps. tflite_flutter on pub.dev.

## Helpful links

- Netron - A tool for visualizing models.
- AI benchmark - A website for benchmarking computer vision models on smartphones.
- Performance measurement - How to measure model performance on Android and iOS.
- Material design guidelines for ML - How to design machine learning powered features. A good example: ML Kit Showcase App.
- The People + AI Guide book - Learn how to design human-centered AI products.
- Adventures in TensorFlow Lite - A repository showing non-trivial conversion processes and general explorations in TensorFlow Lite.
- TFProfiler - An Android-based app to profile TensorFlow Lite models and measure its performance on smartphone.
- TensorFlow Lite for Microcontrollers
- TensorFlow Lite Examples - Android - A repository refactors and rewrites all the TensorFlow Lite Android examples which are included in the TensorFlow official website.
- Tensorflow-lite-kotlin-samples - A collection of Tensorflow Lite Android example Apps in Kotlin, to show different kinds of kotlin implementation of the example apps

## Learning resources

Interested but not sure how to get started? Here are some learning resources that will help you whether you are a beginner or a practitioner in the field for a while.

### Blog posts

- 2021-11-09 On-device training in TensorFlow Lite
- 2021-09-27 Optical character recognition with TensorFlow Lite: A new example app
- 2021-06-16 https://blog.tensorflow.org/2021/06/easier-object-detection-on-mobile-with-tf-lite.html
- 2020-12-29 YOLOv3 to TensorFlow Lite Conversion - By Nitin Tiwari.
- 2020-04-20 What is new in TensorFlow Lite - By Khanh LeViet.
- 2020-04-17 Optimizing style transfer to run on mobile with TFLite - By Khanh LeViet and Luiz Gustavo Martins.
- 2020-04-14 How TensorFlow Lite helps you from prototype to product - By Khanh LeViet.
- 2019-11-08 Getting Started with ML on MCUs with TensorFlow - By Brandon Satrom.
- 2019-08-05 TensorFlow Model Optimization Toolkit — float16 quantization halves model size - By the TensorFlow team.
- 2018-07-13 Training and serving a real-time mobile object detector in 30 minutes with Cloud TPUs - By Sara Robinson, Aakanksha Chowdhery, and Jonathan Huang.
- 2018-06-11 - Why the Future of Machine Learning is Tiny - By Pete Warden.
- 2018-03-30 - Using TensorFlow Lite on Android) - By Laurence Moroney.

### Books

- 2021-12-01 AI and Machine Learning On-Device Development (early access) - By Laurence Moroney (@lmoroney).
- 2020-10-01 AI and Machine Learning for Coders - By Laurence Moroney (@lmoroney).
- 2020-04-06 Mobile Deep Learning with TensorFlow Lite, ML Kit and Flutter: Build scalable real-world projects to implement end-to-end neural networks on Android and iOS (GitHub) - By Anubhav Singh (@xprilion) and Rimjhim Bhadani (@Rimjhim28).
- 2020-03-01 Raspberry Pi for Computer Vision (Complete Bundle | TOC) - By the PyImageSearch Team: Adrian Rosebrock (@PyImageSearch), David Hoffman, Asbhishek Thanki, Sayak Paul (@RisingSayak), and David Mcduffee.
- 2019-12-01 TinyML - By Pete Warden (@petewarden) and Daniel Situnayake (@dansitu).
- 2019-10-01 Practical Deep Learning for Cloud, Mobile, and Edge - By Anirudh Koul (@AnirudhKoul), Siddha Ganju (@SiddhaGanju), and Meher Kasam (@MeherKasam).

### Videos

- 2021-10-06 Contributing to TensorFlow Lite with Sunit Roy (Hacktoberfest 2021)
- 2020-07-25 Android ML by Hoi Lam (GDG Kolkata meetup).
- 2020-04-01 Easy on-device ML from prototype to production (TF Dev Summit 2020).
- 2020-03-11 TensorFlow Lite: ML for mobile and IoT devices (TF Dev Summit 2020).
- 2019-10-31 Keynote - TensorFlow Lite: ML for mobile and IoT devices.
- 2019-10-31 TensorFlow Lite: Solution for running ML on-device.
- 2019-10-31 TensorFlow model optimization: Quantization and pruning.
- 2019-10-29 Inside TensorFlow: TensorFlow Lite.
- 2018-04-18 TensorFlow Lite for Android (Coding TensorFlow).

### Podcasts

- 2020-08-08 Talking Machine Learning with Hoi Lam.

### MOOCs

- Introduction to TensorFlow Lite - Udacity course by Daniel Situnayake (@dansitu), Paige Bailey (@DynamicWebPaige), and Juan Delgado.
- Device-based Models with TensorFlow Lite - Coursera course by Laurence Moroney (@lmoroney).
- The Future of ML is Tiny and Bright - A series of edX courses created by Harvard in collaboration with Google. Instructors - Vijay Janapa Reddi, Laurence Moroney, and Pete Warden.

tensorflowlite.md Github