Довідник API оцінювання віку
Це переклад для зручності. Контракт API визначає англомовна версія довідника; у разі розбіжностей чинною є вона.
API оцінювання віку за обличчям від Rigr AI приймає зображення й повертає оціночний вік для кожного виявленого обличчя разом з обмежувальною рамкою, показником впевненості виявлення та каліброваним значенням невизначеності. Поточна модель (v3) має середню абсолютну похибку близько 1,6 року на нашому еталонному наборі даних.
Вік на вигляд, який повертає сервіс, — це візуальна оцінка. Вони не підтверджують особу й не встановлюють юридичного віку людини. Рішення з високим ризиком і рішення в межових випадках мають передбачати належну перевірку людиною.
API доступний як хмарний сервіс або як Docker-контейнер для розгортання у власній інфраструктурі, зокрема в ізольованому середовищі (air-gapped). Ви можете отримати безкоштовний ключ API, щоб випробувати сервіс, прочитати огляд можливості — що робить модель і де її застосовують, — або завантажити цей довідник у форматі PDF (англ.).
Оцінювання віку входить і до Media Examiner. Якщо на зображенні видно придатне для аналізу обличчя, один виклик Media Examiner повертає результати виявлення оголеності, інтимних частин тіла та сексуального контенту і вік на вигляд із каліброваною невизначеністю — надсилати зображення двічі не потрібно. Якщо вам потрібна саме така інтеграція, див. довідник API Media Examiner. На цій сторінці описано окремий сервіс оцінювання віку, який і далі працює та підтримується.
Rigr AI брала участь в австралійському випробуванні технологій встановлення віку (Australian Age Assurance Technology Trial, 2025) — незалежному оцінюванні на замовлення уряду Австралії, яке провела Age Check Certification Scheme на наборі даних, створеному для цього випробування. За його висновками, Rigr показала сильні результати щодо технічної готовності, узгодженості з принципами захисту приватності та зручності використання, а також низьку частку хибнопозитивних результатів у реальних сценаріях.
Швидкий старт
Хмарний API доступний за адресою https://api.age.rigr.ai.
# Перевірка стану (автентифікація не потрібна)
curl https://api.age.rigr.ai/healthz
# Перевірити ключ API й отримати інформацію про сервер
curl -H "X-API-KEY: YOUR_KEY" https://api.age.rigr.ai/api/info
# Оцінити вік за зображенням
IMG_B64=$(base64 -w0 photo.jpg)
curl -X POST https://api.age.rigr.ai/api/image \
-H "Content-Type: application/json" \
-H "X-API-KEY: YOUR_KEY" \
-d "{\"images\": [\"${IMG_B64}\"]}"
Якщо контейнер хмарного API масштабовано до нуля, перший запит може мати затримку
холодного старту в кілька секунд. Наступні запити обробляються швидко. У разі
розгортання у власній інфраструктурі замініть хост адресою свого сервера (наприклад,
http://localhost:8000).
Автентифікація
Кожен ендпоінт, крім /healthz, вимагає ключа API в заголовку
X-API-KEY. Ключі видає Rigr AI — запросити ключ можна через
форму самостійної реєстрації.
X-API-KEY: your_api_key_here Ендпоінти
GET /healthz
Полегшена перевірка стану, яка підтверджує, що сервер доступний. Не потребує автентифікації й у хмарному розгортанні не пробуджує контейнер, тож її безпечно використовувати для моніторингу доступності. Якщо сервіс працює справно, повертає HTTP 200.
POST /api/image
Надішліть одне або кілька зображень, закодованих у base64, щоб оцінити вік.
| Поле | Тип | Обов’язкове | Опис |
|---|---|---|---|
images | list[string] | Так | Зображення, закодовані в base64. Потрібно щонайменше одне. |
detection_threshold | float | Ні | Поріг впевненості виявлення облич (від 0 до 1). Замінює стандартне значення сервера. |
max_dets_per_image | int | Ні | Максимальна кількість виявлених облич, які повертаються для одного зображення. Замінює стандартне значення сервера. |
Кожне виявлене обличчя повертається як об’єкт FaceResult:
| Поле | Тип | Опис |
|---|---|---|
idx | int | Індекс обличчя в межах зображення. |
age | float | Оціночний вік у роках. |
uncertainty | float | Калібрована невизначеність оцінки, у роках. Що більше значення, то нижча впевненість моделі. |
bbox | list[int] | Обмежувальна рамка виявленого обличчя у форматі [x0, y0, x1, y1], у пікселях. |
score | float | Показник впевненості виявлення обличчя (від 0 до 1). |
source | string | Ім’я вихідного файлу, якщо воно доступне. |
Приклад відповіді:
{
"error": null,
"results": [
{
"idx": 0,
"error": null,
"results": [
{ "idx": 0, "age": 25.3, "uncertainty": 1.2,
"bbox": [175, 133, 364, 378], "score": 0.9998, "source": "" },
{ "idx": 1, "age": 10.5, "uncertainty": 2.1,
"bbox": [633, 234, 725, 347], "score": 0.9993, "source": "" }
]
}
]
} GET /api/info
Повертає поточну конфігурацію конвеєра обробки — версію моделі, обмеження на розмір пакета й зображень, а також моделі детектора та оцінювача й пристрої, на яких вони працюють. Потребує автентифікації.
{
"version": "v3",
"max_batch_size": 20,
"max_img_mb": 50.0,
"min_img_px": 24,
"max_img_px": 6000,
"detector_model": "retinaface_resnet50",
"detector_device": "cuda",
"estimator_device": "cuda",
"estimator_model": "rigr_age_v3"
} GET /api/stats
Повертає статистику пропускної здатності для етапу виявлення, етапу оцінювання та конвеєра загалом — середній час виконання завдання, кількість елементів за секунду, загальну кількість оброблених елементів і кількість завдань. Потребує автентифікації.
Вимоги до зображень
| Обмеження | Значення |
|---|---|
| Підтримувані формати | PNG, JPEG, JPG, BMP, GIF, WebP |
| Кодування | Base64 |
| Максимальний розмір файлу | 50 МБ на зображення |
| Максимальна роздільна здатність | 6000 × 6000 пікс. |
| Мінімальна роздільна здатність | 24 × 24 пікс. |
Обробка помилок
Помилки повертаються як структуровані JSON-об’єкти з полями type,
message і detail на двох рівнях: помилка верхнього рівня, через
яку не вдалося обробити весь запит, і помилка окремого зображення, яка стосується лише
цього зображення, тоді як решта зображень усе одно обробляється. Помилка окремого зображення може
з’являтися поряд із результатами — неповне (обрізане) зображення все одно обробляється,
а поле помилки вказує на проблему.
| Код | HTTP | Опис |
|---|---|---|
base64_decoding | 400 | Наданий рядок не є коректним base64. |
image_loading | 400 | Не вдалося завантажити або декодувати зображення. |
image_is_truncated | 400 | Зображення неповне (обрізане). Його все одно обробляють, але це може вплинути на результати. |
batch_size_exceeded | 413 | Кількість зображень перевищує максимальний розмір пакета. |
empty_images | 422 | У запиті немає жодного зображення. |
image_size_error | 422 | Розмір файлу зображення перевищує максимально допустимий. |
image_too_large | 422 | Роздільна здатність зображення перевищує максимально допустимі розміри. |
image_too_small | 422 | Роздільна здатність зображення менша за мінімально потрібні розміри. |
model_runtime | 500 | Під час інференсу моделі сталася помилка. |
model_loading | 500 | Не вдалося завантажити модель. |
invalid_api_key | 401 | Наданий ключ API недійсний або строк його дії минув. |
missing_api_key | 401 | Заголовок X-API-KEY не надіслано. |
Якщо тіло запиту не відповідає очікуваній схемі, сервіс повертає HTTP 422 з помилкою
RequestValidationError, у якій перелічено кожне некоректне поле.
Розгортання
Хмара (для випробування). Найшвидший спосіб випробувати сервіс —
хмарний екземпляр за адресою https://api.age.rigr.ai; налаштовувати
інфраструктуру не потрібно. Хмарне розгортання використовує полегшений контейнер
(lite: лише ONNX, CPU).
Власна інфраструктура та ізольоване середовище. Готові образи Docker підтримують інференс на CPU і GPU (CUDA). Усі образи надають той самий API на порту 8000, тож змінюється лише хост. Зв’яжіться з нами, щоб отримати доступ до реєстру, теги образів і рекомендації щодо розгортання.
| Образ | Розмір | Призначення |
|---|---|---|
rigrage-api:v3-cuda-12.9.1 | ~8 ГБ | Інференс на GPU (найвища пропускна здатність) |
rigrage-api:v3-cpu | ~5 ГБ | Інференс на CPU з PyTorch |
rigrage-api:v3-cpu-lite | ~1,6 ГБ | Інференс на CPU, лише ONNX (найменший образ, найшвидший холодний старт) |
Як отримати доступ
Отримати безкоштовний ключ API Обговорити розгортання
Також доступні: огляд можливості оцінювання віку, сторінка рішення для команд з безпеки контенту (trust & safety) про робочі процеси, у яких матеріали спрямовують на перевірку людиною, і цей довідник у форматі PDF (англ.).