This sample app performs object detection on live camera input.
The app aims to showcase an example of combining streaming camera, TFLite, and OpenCV.
- Clone this repository with Git-LFS enabled.
- Download Android Studio. Version 2023.1.1 or newer is required.
- Enable USB debugging on your Android device.
- Download or export a compatible model from AI Hub Models.
- Copy the
.tflitefile tosrc/main/assets/detector.tflite - Copy the labels file (see list below) to
src/main/assets/labels.txt - Open this folder in Android Studio, run gradle sync, and build the
OBjectDetectiontarget.
By default, this app supports the following hardware:
Comments have been left in TFLiteHelpers.java and AIHubDefaults.java to guide you on how to add support for additional TF Lite delegates that could target other hardware.
- TensorFlow Lite (.tflite)
| INPUT | Description | Shape | Data Type |
|---|---|---|---|
image |
An RGB image | [1, Height, Width, 3] | float32 input expecting inputs normalized to [0, 1] |
| OUTPUT | Description | Shape | Data Type |
|---|---|---|---|
boxes |
Bounding Boxes | [1, Anchors, 4] | float32 boxes (x0, y0, x1, y1) in pixel space |
scores |
Class Scores | [1, Anchors] | float32 class logit predictions |
class_idx |
Class Index | [1, Anchors] | uint8 or int32 class index |
The app is developed to work best with a Width/Height ratio of 1.
Compatible AI Hub Models
The app is currently compatible with the TFLite float variant of these models:
- 91-class COCO (coco_labels_91.txt)
- 80-class COCO (coco_labels.txt)
Each AI Hub profile or inference job, once completed, will contain a Runtime Configuration section.
Modify TFLiteHelpers.java according to the runtime configuration applied to the job. Comment stubs are included to help guide you (search for TO REPLICATE AN AI HUB JOB...)
Note that if your job uses delegates other than QNN NPU, GPUv2, and TFLite, then you'll also need to add support for those delegates to the app.
This app is released under the BSD-3 License found at the root of this repository.
All models from AI Hub Models are released under separate license(s). Refer to the AI Hub Models repository for details on each model.
The QNN SDK dependency is also released under a separate license. Please refer to the LICENSE file downloaded with the SDK for details.
