Обнаружение объектов на фотографии

Чтобы обнаружить объект на фотографии, используйте следующий метод:

POST /detect

Тело запроса является обязательным и содержит multipart/form-data со следующими параметрами.

Название

Тип

Описание

photo

binary

Исходный файл изображения.

attributes

object

Объект, содержащий атрибуты, которые могут быть распознаны для объектов следующих типов: лицо (face), транспортное средство (car) и силуэт (body).

Поле attributes может быть пустым или содержать объекты face, car и body со следующими параметрами для каждого объекта:

Название

Тип

Описание

face

object

Объект, содержащий атрибуты лица.

age

boolean

Если true, в ответе будет указан предполагаемый возраст.

beard

boolean

Если true, определяется наличие бороды.

emotions

boolean

Если true, распознаются эмоции лица (удивление, грусть, счастье, нейтральное выражение, страх, отвращение, злость).

glasses

boolean

Если true, определяется наличие и тип очков.

gender

boolean

Если true, определяется пол.

medmask

boolean

Если true, определяется наличие медицинской маски и её неправильное положение на лице.

headpose

boolean

Если true, вычисляются углы поворота и наклона головы.

eyes_attrs

boolean

Если true, определяется состояние глаз (глаза открыты, глаза закрыты, глаза перекрыты).

car

object

Объект, содержащий атрибуты транспортного средства.

description

boolean

Если true, ответ будет содержать подробную информацию о транспортном средстве: тип кузова, марка, модель и цвет кузова.

license_plate

boolean

Если true, ответ будет содержать данные о номерном знаке транспортного средства: регистрационный номер, страна, регион и цвет регистрационного номера.

special_vehicle_type

boolean

Если true, в ответе будет указано, относится ли транспортное средство к специальной категории (например, taxi, route_transport).

category

boolean

Если true, в ответе будет указана категория транспортного средства (например, B, C).

weight_type

boolean

Если true, в ответе будет указана классификация транспортного средства по массе (например, B_heavy, D_light).

orientation

boolean

Если true, в ответе будет указан ракурс транспортного средства на фотографии (например, front, side, back).

body

object

Объект, содержащий атрибуты силуэта.

color

boolean

Если true, определяются цвета верха и низа одежды.

clothes

boolean

Если true, ответ будет включать подробную информацию об одежде: тип верха одежды, наличие и длина рукавов, низ одежды и головной убор.

bags

boolean

Если true, ответ будет указывать на наличие сумки в руке или на спине.

protective_equipment

boolean

Если true, определяется наличие жилета и каски, а также их цвет.

age_gender

boolean

Если true, определяется возрастная группа и пол.

fall

boolean

Если true, ответ будет указывать, упал человек или нет.

handface

boolean

Если true, распознаются следующие действия: курение, использование телефона и разговор по телефону.

phoneuse

boolean

Если true, распознается фотографирование с помощью телефона.

Прикрепите исходный файл изображения и отправьте POST-запрос.

CURL пример

curl -X POST "http://<findface-ip:port>/detect" \
-H "Authorization: Token <token>" \
-H "Content-Type: multipart/form-data" \
-F "photo=@sample_face.jpg" \
-F 'attributes={
 "face": {
   "age": true,
   "beard": true,
   "emotions": true,
   "glasses": true,
   "gender": true,
   "medmask": true,
   "headpose": true,
   "eyes_attrs": true
 },
 "car": {
   "description": false,
   "license_plate": false,
   "special_vehicle_type": false,
   "category": false,
   "weight_type": false,
   "orientation": false
 },
 "body": {
   "color": false,
   "clothes": false,
   "bags": false,
   "protective_equipment": false,
   "age_gender": false,
   "fall": false,
   "handface": false,
   "phoneuse": false
 }
}'

Совет

Замените sample_face.jpg на абсолютный путь к файлу, если он не находится в текущей рабочей директории. Пример: "photo=@/home/ubuntu/sample_face.jpg"

В случае успешного ответа (OK: 200) возвращается JSON-объект со следующими параметрами. Пример.

Название

Тип

Описание

orientation*

integer

Ориентация фотографии в формате EXIF.

objects

object

Объект, содержащий массивы данных. Каждый массив включает информацию об обнаруженных объектах определенного типа (лицо, силуэт или транспортное средство), а также их атрибуты, указанные в запросе.

Пример ответа

{
 "orientation": 1,
 "objects": {
   "face": [
     {
       "id": "d1uvcdskd5qs72mq52h0",
       "bbox": {
         "left": 722,
         "top": 31,
         "right": 801,
         "bottom": 132
       },
       "detection_score": 0.5006658,
       "low_quality": false,
       "features": {
         "age": 25,
         "beard": {
           "name": "none",
           "confidence": 0.052511778
         },
         "emotions": {
           "name": "neutral",
           "confidence": 0.9908866
         },
         "glasses": {
           "confidence": 0.89929795,
           "name": "none"
         },
         "gender": {
           "confidence": 0.99800926,
           "name": "female"
         },
         "medmask": {
           "confidence": 0.9999994,
           "name": "none"
         },
         "headpose_pitch": {
           "name": 6.227072,
           "confidence": 1
         },
         "headpose_yaw": {
           "name": 20.798172,
           "confidence": 1
         },
         "eyes_attrs": {
           "confidence": 0.8949018,
           "name": "opened"
         }
       }
     }
   ],
   "body": [
     {
       "id": "d1uvceskd5qs72mq52hg",
       "bbox": {
         "left": 522,
         "top": 5,
         "right": 933,
         "bottom": 792
       },
       "detection_score": 0.82396024,
       "low_quality": false,
       "features": {}
     }
   ]
 }
}

В ответе вы получите id объекта и координаты прямоугольника вокруг объекта (face — лица, car — транспортного средства, body — силуэта). Скопируйте значение id интересующего вас объекта, чтобы использовать его для добавления объекта в карточку или для поиска объекта.