Detecting faces in images
Face detection is currently at the Preview stage.
To detect faces in a photo, use the Face Detection feature.
In the batchAnalyze method, set the type
property to FACE_DETECTION
.
Examples
Before getting started
To use the examples, install cURL and get the authorization data for your account:
- On the billing page, make sure that your billing account status is
ACTIVE
orTRIAL_ACTIVE
. If you don't have a billing account, create one. - Get an IAM token required for authentication.
- Get the ID of any folder that your account is granted the
editor
role or higher for.
-
Select the authentication method:
-
Get an IAM token used in the examples.
-
Create an API key. Pass the API key in the
Authorization
header in the following format:Authorization: Api-Key <API key>
-
-
Assign the
editor
role or a higher role to the service account for the folder where it was created.Don't specify the folder ID in your requests: the service uses the folder where the service account was created.
-
Use the CLI to get an IAM token required for authentication:
$ yc iam create-token
-
Get the ID of any folder that your account is granted the
editor
role or higher for.
Find faces in an image
-
Prepare an image file that meets the requirements:
-
Supported file formats: JPEG, PNG, PDF.
You specify the MIME type of the file in the
mime_type
property. The default isimage
. -
Maximum file size: 1 MB.
-
Image size should not exceed 20 MP (length x width).
Note
Need an image? Download a sample.
-
-
Encode the file as Base64:
UNIXWindowsPowerShellPythonNode.jsJavaGo$ base64 -i input.jpg > output.txt
C:> Base64.exe -e input.jpg > output.txt
[Convert]::ToBase64String([IO.File]::ReadAllBytes("./input.jpg")) > output.txt
# Импортируйте библиотеку для кодирования в Base64 import base64 # Создайте функцию, которая кодирует файл и возвращает результат. def encode_file(file): file_content = file.read() return base64.b64encode(file_content)
// Считайте содержимое файла в память. var fs = require('fs'); var file = fs.readFileSync('/path/to/file'); // Получите содержимое файла в формате Base64. var encoded = Buffer.from(file).toString('base64');
// Импортируйте библиотеку для кодирования в Base64. import org.apache.commons.codec.binary.Base64; // Получите содержимое файла в формате Base64. byte[] fileData = Base64.encodeBase64(yourFile.getBytes());
import ( "bufio" "encoding/base64" "io/ioutil" "os" ) // Откройте файл f, _ := os.Open("/path/to/file") // Прочитайте содержимое файла. reader := bufio.NewReader(f) content, _ := ioutil.ReadAll(reader) // Получите содержимое файла в формате Base64. base64.StdEncoding.EncodeToString(content)
-
Create a file with the request body (for example,
body.json
). In thecontent
property, specify a Base64-encoded image:body.json:
{ "folderId": "b1gvmob95yysaplct532", "analyze_specs": [{ "content": "iVBORw0KGgo...", "features": [{ "type": "FACE_DETECTION" }] }] }
-
Send a request using the batchAnalyze method and save the response in a file, such as
output.json
:$ export IAM_TOKEN=CggaATEVAgA... $ curl -X POST \ -H "Content-Type: application/json" \ -H "Authorization: Bearer ${IAM_TOKEN}" \ -d '@body.json' \ https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze > output.json
Ready-to-use function for sending requests in bash
-
If you don't have the Yandex.Cloud command line interface yet, install and initialize it.
-
Copy the function to the terminal:
vision_face_detection() { curl -H "Authorization: Bearer `yc iam create-token`" \ "https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze" \ -d @<(cat << EOF { "folderId": "`yc config get folder-id`", "analyze_specs": [{ "content": "`base64 -i $1`", "features": [{ "type": "FACE_DETECTION" }] }] } EOF ) }
Explanations:
yc iam create-token
: get an IAM token.-d @<(cat EOF ... EOF)
: create a request body.yc config get folder-id
: get the ID of the default folder selected in the CLI.base64 -i $1
: Base64 encoding of the image passed in the function arguments.
-
Now you can call this function by passing the image path in the arguments:
vision_face_detection path/to/image.jpg