Thanks for the info, Sachin.
We have an app on Firebase that uses these models for real-time object detection from the device's camera. We're using re-trained YOLOv3 models. On older devices, we use Tiny YOLO for significantly faster inference time. On newer devices, such as those now coming with special neural chips like the new iPhones, we use the full YOLO model. From our testing, these newer phones are able to run these large models really fast.
The objects our app is detecting are pretty small. YOLOv3 works well for this because it runs the input image at several scales that are good at finding especially large/small objects. Tiny YOLO is good at this, but full YOLO is great at this. For phones with more powerful hardware, we want to use the full model.
Here is our ideal use-case we want to use ML Kit for:
- We ship Tiny YOLO with the app binary. Tiny YOLO is ~35MB.
- On first app session, we use Tiny YOLO to benchmark inference time.
- We have a target for FPS that we want our users' devices to run at. If the FPS on Tiny YOLO far exceeds this target, i.e., the user has a new phone with powerful GPU or neural processor, and they opt-in to the large download, then we download the full YOLO model (~240MB) and switch to that. Otherwise, we continue using Tiny YOLO for inference.
For more details specific to our models, I'd be happy to talk offline with you.
Thanks,
Will