Yandex Cloud
Поиск
Связаться с намиПодключиться
  • Документация
  • Блог
  • Все сервисы
  • Статус работы сервисов
    • Популярные
    • Инфраструктура и сеть
    • Платформа данных
    • Контейнеры
    • Инструменты разработчика
    • Бессерверные вычисления
    • Безопасность
    • Мониторинг и управление ресурсами
    • Машинное обучение
    • Бизнес-инструменты
  • Все решения
    • По отраслям
    • По типу задач
    • Экономика платформы
    • Безопасность
    • Техническая поддержка
    • Каталог партнёров
    • Обучение и сертификация
    • Облако для стартапов
    • Облако для крупного бизнеса
    • Центр технологий для общества
    • Облако для интеграторов
    • Поддержка IT-бизнеса
    • Облако для фрилансеров
    • Обучение и сертификация
    • Блог
    • Документация
    • Контент-программа
    • Мероприятия и вебинары
    • Контакты, чаты и сообщества
    • Идеи
    • Истории успеха
    • Тарифы Yandex Cloud
    • Промоакции и free tier
    • Правила тарификации
  • Документация
  • Блог
Проект Яндекса
© 2025 ООО «Яндекс.Облако»
Yandex Vision OCR
  • Начало работы
  • Управление доступом
  • Правила тарификации
  • История изменений
  • Вопросы и ответы

В этой статье:

  • Примеры
  • Перед началом работы
  • Найдите лица на изображении
  • Готовая функция для отправки запросов в bash

Обнаружение лиц на изображении

Статья создана
Yandex Cloud
Улучшена
Fedor M.
Обновлена 21 апреля 2025 г.
  • Примеры
    • Перед началом работы
    • Найдите лица на изображении
    • Готовая функция для отправки запросов в bash

Важно

Описанные ниже возможности сервиса Vision OCR устарели и перестали поддерживаться 14 мая 2024 года.

Чтобы обнаружить лица на фото, воспользуйтесь возможностью Обнаружение лиц.

Для этого в методе batchAnalyze в свойстве type укажите FACE_DETECTION.

Примеры

Перед началом работы

Чтобы воспользоваться примерами, установите cURL.

Получите данные вашего аккаунта для аутентификации:

Аккаунт на Яндексе или федеративный аккаунт
Сервисный аккаунт
  1. Получите IAM-токен для аккаунта на Яндексе или федеративного аккаунта.

  2. Получите идентификатор каталога, на который у вашего аккаунта есть роль ai.vision.user или выше.

  3. При обращении к Vision OCR через API в каждом запросе передавайте полученные параметры:

    • Для Vision API и Classifier API:

      Указывайте IAM-токен в заголовке Authorization в следующем формате:

      Authorization: Bearer <IAM-токен>
      

      Идентификатор каталога указывайте в теле запроса в параметре folderId.

    • Для OCR API:

      • в заголовке Authorization указывайте IAM-токен;
      • в заголовке x-folder-id указывайте идентификатор каталога.
      Authorization: Bearer <IAM-токен>
      x-folder-id <идентификатор_каталога>
      

Vision OCR поддерживает два способа аутентификации с сервисным аккаунтом:

  • С помощью IAM-токена:

    1. Получите IAM-токен.

    2. Полученный IAM-токен передавайте в заголовке Authorization в следующем формате:

      Authorization: Bearer <IAM-токен>
      
  • С помощью API-ключей.

    Используйте API-ключи, если у вас нет возможности автоматически запрашивать IAM-токен.

    1. Получите API-ключ.

    2. Полученный API-ключ передавайте в заголовке Authorization в следующем формате:

      Authorization: Api-Key <API-ключ>
      

Не указывайте в запросах идентификатор каталога — сервис использует каталог, в котором был создан сервисный аккаунт.

Найдите лица на изображении

  1. Подготовьте файл изображения, соответствующий требованиям:

    • Поддерживаемые форматы файлов: JPEG, PNG, PDF. MIME-тип файла указывайте в свойстве mime_type. По умолчанию image.
    • Максимальный размер файла: 1 МБ.
    • Размер изображения не должен превышать 20 мегапикселей (длина × ширина).

    Примечание

    Нужно изображение? Скачайте пример.

  2. Кодируйте файл в формат Base64:

    UNIX
    Windows
    PowerShell
    Python
    Node.js
    Java
    Go
    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_path):
      with open(file_path, "rb") as fid:
          file_content = fid.read()
      return base64.b64encode(file_content).decode("utf-8")
    
    // Считайте содержимое файла в память.
    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)
    
  3. Создайте файл с телом запроса, например body.json:

    body.json:

    {
        "folderId": "b1gvmob95yys********",
        "analyze_specs": [{
            "content": "iVBORw0KGgo...",
            "features": [{
                "type": "FACE_DETECTION"
            }]
        }]
    }
    

    Где:

    • folderId – идентификатор любого каталога, на который у вашего аккаунта есть роль ai.vision.user или выше.
    • analyze_specs: content – изображение, кодированное в Base64.
  4. Отправьте запрос с помощью метода batchAnalyze и сохраните ответ в файл, например output.json:

    Bash
    CMD
    PowerShell
    export IAM_TOKEN=<IAM-токен>
    curl \
      --request POST \
      --header "Content-Type: application/json" \
      --header "Authorization: Bearer ${IAM_TOKEN}" \
      --data '@body.json' \
      https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze > output.json
    
    set IAM_TOKEN=<IAM-токен>
    curl ^
      --request POST ^
      --header "Content-Type: application/json" ^
      --header "Authorization: Bearer %IAM_TOKEN%" ^
      --data "@body.json" ^
      https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze > output.json
    
    $Env:IAM_TOKEN="<IAM-токен>"
    curl `
      --request POST `
      --header "Content-Type: application/json" `
      --header "Authorization: Bearer $Env:IAM_TOKEN" `
      --data '@body.json' `
      https://vision.api.cloud.yandex.net/vision/v1/batchAnalyze > output.json
    

    Где IAM_TOKEN — IAM-токен, полученный перед началом работы.

Готовая функция для отправки запросов в bash

Пример ниже разработан для выполнения в операционных системах MacOS и Linux. Чтобы выполнить его в системе Windows, ознакомьтесь с особенностями работы с Bash в Microsoft Windows.

  1. Если у вас еще нет интерфейса командной строки Yandex Cloud (CLI), установите и инициализируйте его.

  2. Скопируйте в терминал функцию:

    vision_face_detection() {
        curl --header "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
    )
    }
    

    Пояснения:

    • yc iam create-token — получить IAM-токен.
    • -d @<(cat << EOF ... EOF) — сформировать тело запроса.
    • yc config get folder-id — получить ID каталога, выбранного по умолчанию в CLI.
    • base64 -i $1 — кодировать в Base64 изображение, переданное в аргументах функции.
  3. Теперь вы можете вызывать эту функцию, передав путь к изображению в аргументах:

    vision_face_detection path/to/image.jpg
    

Была ли статья полезна?

Проект Яндекса
© 2025 ООО «Яндекс.Облако»