This android application uses YOLOv2 model for object detection. It uses tensorflow mobile to run neural networks. I would like to use tensorflow lite later. Probably, it is the first open source implementation of the second version of YOLO for Tensorflow on Android device. The demo application detects 20 classes of Pascal VOC dataset. Please read this paper for more information about the YOLOv2 model: YOLO9000 Better, Faster, Stronger.
Train YOLO for your own dataset
Please find more information about retraining the model on my site: https://sites.google.com/view/tensorflow-example-java-api/complete-guide-to-train-yolo. I've also added several Google Colab interactive sample for the step-by-step tutorial, so the training process can be tried out on Google virtual machines.
Steps to compile and run the application:
Prerequirements:
- Install the Android Studio;
- Android 6.0 (API level 23) or higher is required to run the demo application due to usage of Camera2 API;
Compile and run the project:
- Clone this repository with command:
git clone https://github.com/szaza/android-yolo-v2.git
; - Imort your project into the Android Studio;
- Optional: put your protobuff file and labels.txt into the assets folder, then change the settings properly in the Config.java file;
- Run the project from Android Studio;
How it works?
If you would like a more accurate solution, create a server application. See my related projects here:
The current solution doesn't support the YoloV3 model and unfortunately, I do not have time to implement it, however I would be very happy if I could help to implement and I could review a PR with this feture. For this reason I've started a new branch here: https://github.com/szaza/tensorflow-java-examples-spring/tree/feature/add-yolov3-support; If you are interested in this feature and you would like to be a collabortor, please add a comment for this thread: szaza/tensorflow-java-examples-spring#2;
Many-many thank for any support!