Распознавание лиц и сверка с документами

Метод /face

Dbrain предоставляет 3 метода работы по распознаванию лиц:

  • Метод /face/detectпринимает на вход 1 изображение, на котором производит поиск лиц людей, и возвращает в ответе их координаты. Лица людей во входном изображении могут быть представлены в т. ч. на документах, например, на фото паспорта.

  • Метод /face/distance принимает на вход 2 изображения, на каждом из которых находит лицо человека, после чего производит их сравнение и возвращает в ответе вероятность несовпадения лиц distance.

  • Метод /face/selfie принимает на вход 1 изображение — "селфи" человека с разворотом документа с фотографией; на изображении производится поиск лица человека и его фотографии в документе, после чего происходит сравнение двух найденных лиц. В качестве ответа возвращается параметр same_face, который принимает значение true, если на фото и в документе лицо одного и того же человека, и значение false в обратном случае.

Вероятность совпадения лиц "distance"

Параметр distanceв ответе показывает вероятность несовпадения двух обнаруженных лиц во входных данных:

  • 0.50-1.00 — лица не совпадают, это разные люди (same_face= "false")

  • 0.00-0.49 — лица совпадают, это один человек (same_face= "true")

API-спецификация

Ниже представлена API-спецификация для 3 методов распознавания лиц. Подробнее о том, как составить запрос, в разделе Подключение и тестирование.

detect

POST https://latest.dbrain.io/face/detect

Query Parameters

NameTypeDescription

return_crops

boolean

true (по умолчанию) — в ответе вернутся вырезанные из изображения области с лицами в формате base64 false — отключает возврат вырезанных областей с лицами

async

boolean

true — запрос в асинхронном режиме, см. «Асинхронный режим» в разделе «Подключение» false — запрос в синхронном режиме

priority

integer

Приоритет задачи, по умолчанию принимает значение «

task_tags

array

Массив строк, который позволяет присваивать запросу дополнительные идентификаторы. Например можно передавать id пакета документов для биллинга на стороне Dbrain

Request Body

NameTypeDescription

image

string

Файл, в котором требуется найти лица людей

{
  "detail": [], // техническая информация
  "items": [
    {
      "reason": null, // здесь отображаются пояснения в случае ошибки
      "faces": [
        {
          "confidence": 0.699973, // уровень уверенности в том, что вырезанная область действительно лицо
          "description": "face", // описание найденной области, в методе detect всегда "face"
          "type": "face", // тип найденной области, в методе detect всегда "face"
          "page": 1, // номер страницы, на которой найдено лицо
          "rotation": 0, // ориентация лица по горизонтали и вертикали
          "coords": [ // координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              176,
              1385
            ],
            [
              427,
              1385
            ],
            [
              427,
              1696
            ],
            [
              176,
              1696
            ]
          ],
          "coords_relative": [ // относительные координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              0.11278792692613185,
              0.6767922235722964
            ],
            [
              0.2732327243844321,
              0.6767922235722964
            ],
            [
              0.2732327243844321,
              0.8286755771567436
            ],
            [
              0.11278792692613185,
              0.8286755771567436
            ]
          ],
          "crop": "data:image/jpeg;base64,<...>" // вырезанный из изображения прямоугольник в бинарном формате
        }
      ]
    }
  ],
  "task_id": null, // внутренний id задачи
  "code": null, // код ошибки
  "message": null, // сообщение об ошибке в рамках объекта
  "errno": null, // номер ошибки
  "traceback": null, // сообщение об ошибке в рамках объекта
  "fake": null, // не используется в данном методе
  "pages_count": null, // не используется в данном методе
  "docs_count": null // не используется в данном методе
}

distance

POST https://latest.dbrain.io/face/distance

Query Parameters

NameTypeDescription

return_crops

string

true (по умолчанию) — в ответе вернутся вырезанные из изображения области в формате base64 false — отключает возврат вырезанных областей с лицами

async

boolean

true — запрос в асинхронном режиме, см. «Асинхронный режим» в разделе «Подключение» false — запрос в синхронном режиме

priority

integer

Приоритет задачи, по умолчанию принимает значение «

task_tags

array

Массив строк, который позволяет присваивать запросу дополнительные идентификаторы. Например можно передавать id пакета документов для биллинга на стороне Dbrain

Request Body

NameTypeDescription

image1

string

1 файл, в котором требуется найти лицо человека

image2

string

2 файл, в котором требуется найти лицо человека

{
  "detail": [], // техническая информация
  "items": [
    {
      "distance": 0.9033318, // вероятность несовпадения двух обнаруженных лиц во входных данных
      "reason": null, // здесь отображаются пояснения в случае ошибки
      "same_face": false, // вердикт Dbrain являются ли лица одинаковыми
      "faces1": [
        {
          "confidence": 0.7, // уровень уверенности в том, что вырезанная область действительно лицо
          "description": "face", // описание найденной области, в методе distance всегда "face"
          "type": "face", // тип найденной области, в методе distance всегда "face"
          "page": 1, // номер страницы, на которой найдено лицо
          "rotation": 0, // ориентация лица по горизонтали и вертикали
          "coords": [ // координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              420,
              273
            ],
            [
              1236,
              273
            ],
            [
              1236,
              1434
            ],
            [
              420,
              1434
            ]
          ],
          "coords_relative": [ // относительные координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              0.18108974358974358,
              0.0885009030704395
            ],
            [
              0.5328525641025641,
              0.0885009030704395
            ],
            [
              0.5328525641025641,
              0.4647802528597231
            ],
            [
              0.18108974358974358,
              0.4647802528597231
            ]
          ],
          "crop": "data:image/jpeg;base64,<...>" // вырезанный из изображения прямоугольник в бинарном формате
        }
      ],
      "faces2": [
        {
          "confidence": 0.7,
          "description": "face",
          "type": "face",
          "page": 1,
          "rotation": 0,
          "coords": [
            [
              211,
              35
            ],
            [
              576,
              35
            ],
            [
              576,
              523
            ],
            [
              211,
              523
            ]
          ],
          "coords_relative": [
            [
              0.2813333333333333,
              0.035
            ],
            [
              0.768,
              0.035
            ],
            [
              0.768,
              0.523
            ],
            [
              0.2813333333333333,
              0.523
            ]
          ],
          "crop": "data:image/jpeg;base64,<...>"
        }
      ]
    }
  ],
  "task_id": null, // внутренний id задачи
  "code": null, // код ошибки
  "message": null, // сообщение об ошибке в рамках объекта
  "errno": null, // номер ошибки
  "traceback": null, // сообщение об ошибке в рамках объекта
  "fake": null, // не используется в данном методе
  "pages_count": null, // не используется в данном методе
  "docs_count": null // не используется в данном методе
}

selfie

POST https://latest.dbrain.io/face/selfie

Query Parameters

NameTypeDescription

return_crops

boolean

true (по умолчанию) — в ответе вернутся вырезанные из изображения области с лицами в формате base64 false — отключает возврат вырезанных областей с лицами

simple

string

default (по умолчанию) — алгоритм сравнивает лицо на изображении с лицом на фотографии в целевом типе документа simple — алгоритм сравнивает два лица на изображении не проверяя наличие документа и его тип

doc_type

string

Название типа документа на селфи. Например, если целевой документ для сверки на селфи — паспорт РФ, то необходимо указать значениеpassport_main. Любой другой целевой документ указывается согласно наименованиям типов в спецификации (Раздел «Поддерживаемые документы»).

simple_cropper

boolean

false (по умолчанию) — упрощённый алгоритм вырезания документов из изображений не используется true — используется упрощённый алгоритм вырезания документов из изображений: он работает быстрее, но даёт менее точный результат. На изображениях со сложным фоном документы могут быть вырезаны менее аккуратно.

async

boolean

true — запрос в асинхронном режиме, см. «Асинхронный режим» в разделе «Подключение» false — запрос в синхронном режиме

priority

integer

Приоритет задачи, по умолчанию принимает значение «

task_tags

array

Массив строк, который позволяет присваивать запросу дополнительные идентификаторы. Например можно передавать id пакета документов для биллинга на стороне Dbrain

Request Body

NameTypeDescription

image

string

файл, в котором требуется сравнить лица

{
  "detail": [], // техническая информация
  "items": [
    {
      "distance": 0.35919100000000004, // вероятность несовпадения двух обнаруженных лиц во входных данных 
      "reason": null, // причина, по которой не обнаружено изображение лица
      "same_face": true, // = "true", если лица совпали; = "false" в обратном случае
      "faces": [
        {
          "confidence": 0.697779, // уровень уверенности в том, что вырезанная область действительно лицо
          "description": "face", // описание найденной области
          "type": "face", // тип найденной области
          "page": 1, // номер страницы, на которой найдено лицо
          "rotation": 0, // ориентация лица по горизонтали и вертикали
          "coords": [ // координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              1381,
              357
            ],
            [
              2104,
              357
            ],
            [
              2104,
              1243
            ],
            [
              1381,
              1243
            ]
          ],
          "coords_relative": [ // относительные координаты прямоугольника, описанного вокруг найденного лица на изображении
            [
              0.5397111913357401,
              0.18604651162790697
            ],
            [
              0.822503008423586,
              0.18604651162790697
            ],
            [
              0.822503008423586,
              0.6479550922213312
            ],
            [
              0.5397111913357401,
              0.6479550922213312
            ]
          ],
          "crop": "data:image/jpeg;base64,<...>"
        }
      ],
      "faces_on_document": [
        {
          "confidence": 0.69999,
          "description": "face_on_doc",
          "type": "face_on_doc",
          "page": 1,
          "rotation": 0,
          "coords": [
            [
              309,
              1206
            ],
            [
              525,
              1212
            ],
            [
              520,
              1462
            ],
            [
              304,
              1456
            ]
          ],
          "coords_relative": [
            [
              0.1208105501457182,
              0.6282101141561518
            ],
            [
              0.20510919790904614,
              0.6315200298424686
            ],
            [
              0.20321649818970494,
              0.7618871788939843
            ],
            [
              0.11892901155920069,
              0.7586366781394492
            ]
          ],
          "crop": "data:image/jpeg;base64,<...>"
        }
      ],
      "document": {
        "confidence": 1,
        "description": "document",
        "type": "passport_main",
        "page": 1,
        "rotation": 0,
        "coords": [
          [
            176,
            176
          ],
          [
            1347,
            213
          ],
          [
            1315,
            1828
          ],
          [
            145,
            1795
          ]
        ],
        "coords_relative": [
          [
            0.06875,
            0.09166666666666666
          ],
          [
            0.5261718750000001,
            0.1109375
          ],
          [
            0.513671875,
            0.9520833333333333
          ],
          [
            0.056640625,
            0.9348958333333334
          ]
        ],
        "crop": "data:image/jpeg;base64,<...>"
      }
    }
  ],
  "task_id": null, // внутренний id задачи
  "code": null, // код ошибки
  "message": null, // сообщение об ошибке в рамках объекта
  "errno": null, // номер ошибки
  "traceback": null, // сообщение об ошибке в рамках объекта
  "fake": null, // не используется в данном методе
  "pages_count": null, // не используется в данном методе
  "docs_count": null // не используется в данном методе
}

Last updated