Object Detection and Tracking
This page describes an old version of the Object Detection and Tracking API, which was part of ML Kit for Firebase. Development of this API has been moved to the standalone ML Kit SDK, which you can use with or without Firebase.Learn more.
SeeObject Detection and Tracking for the latest documentation.

With ML Kit's on-device object detection and tracking API, you can localizeand track in real time the most prominent objects in an image or live camerafeed. You can also optionally classify detected objects into one of severalgeneral categories.
Object detection and tracking with coarse classification is useful for buildinglive visual search experiences. Because object detection and tracking happensquickly and completely on the device, it works well as the front end of a longervisual search pipeline. After you detect and filter objects, you can pass themto a cloud backend, such asCloud Vision Product Search,or to a custom model, such as one you trained usingAutoML Vision Edge.
This is a beta release of ML Kit for Firebase. This API might be changed in backward-incompatible ways and is not subject to any SLA or deprecation policy.Key capabilities
| Fast object detection and tracking | Detect objects and get their location in the image. Track objects across images. |
| Optimized on-device model | The object detection and tracking model is optimized for mobile devices and intended for use in real-time applications, even on lower-end devices. |
| Prominent object detection | Automatically determine the most prominent object in an image. |
| Coarse classification | Classify objects into broad categories, which you can use to filter out objects you're not interested in. The following categories are supported: home goods, fashion goods, food, plants, places, and unknown. |
Example results
Tracking the most prominent object across images
![]() |
| ||||||||
![]() |
| ||||||||
![]() |
|
Photo: Christian Ferrer [CC BY-SA 4.0]
Multiple objects in a static image

| Object 0 | |
|---|---|
| Bounds | (1, 97), (332, 97), (332, 332), (1, 332) |
| Category | FASHION_GOOD |
| Classification confidence | 0.95703125 |
| Object 1 | |
| Bounds | (186, 80), (337, 80), (337, 226), (186, 226) |
| Category | FASHION_GOOD |
| Classification confidence | 0.84375 |
| Object 2 | |
| Bounds | (296, 80), (472, 80), (472, 388), (296, 388) |
| Category | FASHION_GOOD |
| Classification confidence | 0.94921875 |
| Object 3 | |
| Bounds | (439, 83), (615, 83), (615, 306), (439, 306) |
| Category | FASHION_GOOD |
| Classification confidence | 0.9375 |
Except as otherwise noted, the content of this page is licensed under theCreative Commons Attribution 4.0 License, and code samples are licensed under theApache 2.0 License. For details, see theGoogle Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2026-01-21 UTC.


