Face detection
Stay organized with collections
Save and categorize content based on your preferences.

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. Note that the API
detects faces, it does not recognize people .
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.
iOS
Android
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 unique detected face.
The identifier is consistent across invocations, so you can
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 |
Left eye |
(945.869323730469, 211.867126464844) |
Right eye |
(971.579467773438, 247.257247924805) |
Bottom of mouth |
(907.756591796875, 259.714477539062) |
... etc.
|
Feature probabilities |
Smiling |
0.88979166746139526 |
Left eye open |
0.98635888937860727 |
Right eye open |
0.99258323386311531 |
|
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 it:
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.) |
|
Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.
Last updated 2025-08-29 UTC.
[null,null,["Last updated 2025-08-29 UTC."],[[["\u003cp\u003eML Kit's Face Detection API can detect faces and their features in images and videos, but it does not recognize individuals.\u003c/p\u003e\n"],["\u003cp\u003eIt can be used for tasks such as adding effects to photos, creating avatars, and building interactive applications that respond to facial expressions.\u003c/p\u003e\n"],["\u003cp\u003eThe API provides facial feature coordinates, contours, expression detection (like smiling), and face tracking across video frames.\u003c/p\u003e\n"],["\u003cp\u003eFace detection happens on the device and is fast enough for real-time applications.\u003c/p\u003e\n"]]],[],null,["With ML Kit's face detection API, you can detect faces in an image, identify\nkey facial features, and get the contours of detected faces. Note that the API\n*detects faces* , it does not *recognize people* .\n\nWith face detection, you can get the information you need to perform tasks like\nembellishing selfies and portraits, or generating avatars from a user's photo.\nBecause ML Kit can perform face detection in real time, you can use it in\napplications like video chat or games that respond to the player's expressions.\n\n[iOS](/ml-kit/vision/face-detection/ios)\n[Android](/ml-kit/vision/face-detection/android)\n\nKey capabilities\n\n- **Recognize and locate facial features** Get the coordinates of the eyes, ears, cheeks, nose, and mouth of every face detected.\n- **Get the contours of facial features** Get the contours of detected faces and their eyes, eyebrows, lips, and nose.\n- **Recognize facial expressions** Determine whether a person is smiling or has their eyes closed.\n- **Track faces across video frames** Get an identifier for each unique detected face. The identifier is consistent across invocations, so you can perform image manipulation on a particular person in a video stream.\n- **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.\n\nExample results\n\nExample 1\n\nFor each face detected:\n\n| Face 1 of 3 ||\n|---------------------------|----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Bounding polygon** | (884.880004882812, 149.546676635742), (1030.77197265625, 149.546676635742), (1030.77197265625, 329.660278320312), (884.880004882812, 329.660278320312) |\n| **Angles of rotation** | Y: -14.054030418395996, Z: -55.007488250732422 |\n| **Tracking ID** | 2 |\n| **Facial landmarks** | |---------------------|--------------------------------------| | **Left eye** | (945.869323730469, 211.867126464844) | | **Right eye** | (971.579467773438, 247.257247924805) | | **Bottom of mouth** | (907.756591796875, 259.714477539062) | ... etc. |\n| **Feature probabilities** | |--------------------|---------------------| | **Smiling** | 0.88979166746139526 | | **Left eye open** | 0.98635888937860727 | | **Right eye open** | 0.99258323386311531 | |\n\nExample 2 (face contour detection)\n\nWhen you have face contour detection enabled, you also get a list of points\nfor each facial feature that was detected. These points represent the shape of\nthe feature. The following image illustrates how these points map to a face.\nClick the image to enlarge it:\n\n[](/static/ml-kit/vision/face-detection/images/face_contours.svg)\n\n| Facial feature contours ||\n|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| **Nose bridge** | (505.149811, 221.201797), (506.987122, 313.285919) |\n| **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) |\n| **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) |\n| (etc.) | |"]]