Face Detection
With ML Kit's face detection API, you can detect faces in an image, identify key facial features, and get the contours of detected faces.
With face detection, you can get the information you need to perform tasks like embellishing selfies and portraits, or generating avatars from a user's photo. Because ML Kit can perform face detection in real time, you can use it in applications like video chat or games that respond to the player's expressions.
If you're a Flutter developer, you might be interested in FlutterFire, which includes a plugin for Firebase's ML Vision APIs.
Key capabilities
Recognize and locate facial features | Get the coordinates of the eyes, ears, cheeks, nose, and mouth of every face detected. |
Get the contours of facial features | Get the contours of detected faces and their eyes, eyebrows, lips, and nose. |
Recognize facial expressions | Determine whether a person is smiling or has their eyes closed. |
Track faces across video frames | Get an identifier for each individual person's face that is detected. This identifier is consistent across invocations, so you can, for example, perform image manipulation on a particular person in a video stream. |
Process video frames in real time | Face detection is performed on the device, and is fast enough to be used in real-time applications, such as video manipulation. |
Example results
Example 1
For each face detected:
Face 1 of 3 | |||||||
---|---|---|---|---|---|---|---|
Bounding polygon | (884.880004882812, 149.546676635742), (1030.77197265625, 149.546676635742), (1030.77197265625, 329.660278320312), (884.880004882812, 329.660278320312) | ||||||
Angles of rotation | Y: -14.054030418395996, Z: -55.007488250732422 | ||||||
Tracking ID | 2 | ||||||
Facial landmarks |
... etc. |
||||||
Feature probabilities |
|
Example 2 (face contour detection)
When you have face contour detection enabled, you also get a list of points for each facial feature that was detected. These points represent the shape of the feature. The following image illustrates how these points map to a face (click the image to enlarge):
Facial feature contours | |
---|---|
Nose bridge | (505.149811, 221.201797), (506.987122, 313.285919) |
Left eye | (404.642029, 232.854431), (408.527283, 231.366623), (413.565796, 229.427856), (421.378296, 226.967682), (432.598755, 225.434143), (442.953064, 226.089508), (453.899811, 228.594818), (461.516418, 232.650467), (465.069580, 235.600845), (462.170410, 236.316147), (456.233643, 236.891602), (446.363922, 237.966888), (435.698914, 238.149323), (424.320740, 237.235168), (416.037720, 236.012115), (409.983459, 234.870300) |
Top of upper lip | (421.662048, 354.520813), (428.103882, 349.694061), (440.847595, 348.048737), (456.549988, 346.295532), (480.526489, 346.089294), (503.375702, 349.470459), (525.624634, 347.352783), (547.371155, 349.091980), (560.082031, 351.693268), (570.226685, 354.210175), (575.305420, 359.257751) |
(etc.) |