Искусственный интеллект Smart Engines позволяет определить возраст пользователя по фотографии с паспортом, водительским удостоверением, ID-картой, ВНЖ или любым другим удостоверением личности. Все вычисления выполняются локально: система не обращается к биометрическим базам данных, не сохраняет изображения документов и не передает информацию в облачные сервисы. Технология интегрируется в мобильные и веб-приложения, а также в мини-приложения мессенджеров Telegram и MAX.
Система Smart Engines проверяет возраст покупателя при онлайн-продаже товаров и предоставлении услуг с возрастными ограничениями. Распознавание документа выполняется непосредственно на устройстве пользователя и может быть реализовано в браузере с помощью WebAssembly — без передачи изображений и персональных данных во внешние сервисы. На выходе платформа получает только необходимый возрастной атрибут, например, подтверждение того, что пользователь старше 18 лет.
Для проверки возраста пользователю достаточно сделать одну фотографию с паспортом, водительским удостоверением, ID-картой или другим удостоверением личности. Искусственный интеллект распознает поле с датой рождения, рассчитывает возраст и сопоставляет лицо предъявителя с фотографией в документе, возвращая численную метрику уверенности в сходстве лиц. Весь процесс проходит за одну пользовательскую сессию и не требует обращения к биометрическим базам данных.
Решение распознает паспорта, загранпаспорта, визы, ID-карты, водительские удостоверения, виды на жительство и другие документы из 210+ стран и юрисдикций. Система поддерживает более 100 языков и мгновенно находит поле с датой рождения вне зависимости от страны выпуска и типа документа. Это позволяет использовать единый механизм проверки возраста для пользователей с удостоверениями личности разных государств.
WASM-модуль Smart Engines встраивается непосредственно в код веб-страницы и выполняет проверку возраста прямо в браузере пользователя. Технология извлекает дату рождения и сопоставляет лицо предъявителя с фотографией в документе без выделения биометрии. Это позволяет маркетплейсам, интернет-магазинам и другим онлайн-сервисам проверять возраст пользователей прямо на своем веб-сайте или в мини-приложениях Telegram и MAX без привлечения внешних вычислительных мощностей.
Система Smart Engines распознает удостоверения личности на фотографиях и сканах, полученных в реальных условиях. Алгоритмы устойчивы к неравномерному освещению, теням, бликам, съемке под углом, а также к износу и повреждениям. Технология автоматически находит документ в кадре, корректирует геометрические искажения и извлекает дату рождения и другие необходимые данные.
Система подтверждает достижение установленного возрастного порога без передачи изображения удостоверения личности предъявителя третьим лицам. Все вычисления выполняются локально — на мобильном телефоне, планшете или компьютере пользователя. Решение не использует внешние вычислительные ресурсы, а при сверке лиц не создает биометрические шаблоны.
Решение позволяет подтверждать возраст пользователя без раскрытия персональных данных. Онлайн-сервис получает только необходимую информацию — отдельное поле документа, например, дату рождения или готовый возрастной атрибут вида «18+». Это дает возможность выстроить полностью анонимный сценарий проверки, при котором платформа узнает только факт достижения требуемого возраста без сведений о личности пользователя.
Система Smart Engines работает полностью автономно и не требует обращения к облачным API, внешним базам данных или зарубежным сервисам. Распознавание документа, извлечение даты рождения и небиометрическая сверка лиц выполняются локально — на устройстве пользователя или в защищенном ИТ-контуре заказчика. Такой подход обеспечивает стабильную работу сервиса и снижает риски, связанные с передачей данных третьим лицам.
Программный продукт позволяет подтверждать возраст пользователя по фотографии документа или селфи с документом без передачи и сохранения персональных данных во внешние сервисы и без использования биометрии. Наше ПО работает прямо в браузере и мобильном приложении, сообщает только факт достижения необходимого возраста. Технология поддерживает документы более 210 стран мира, выявляет дипфейки, муляжи документов, пересъемку с экранов и другие попытки обхода возрастных ограничений. Автоматическая проверка подлинности документа, небиометрическая сверка лица и полностью автономная работа помогают защитить цифровые сервисы от мошенничества и соблюдать требования по защите персональных данных.
IdEngine engine = IdEngine.Create((<PATH_TO_CONFIGURATION_FILE>, true);
IdSessionSettings settings = engine.CreateSessionSettings();
settings.SetCurrentMode("singleshot");
settings.AddEnabledDocumentTypes("rus.passport.national");
settings.SetOption("common.faceControlCheckEnabled", "true");
IdSession session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>);
Image image = Image.FromFile(<PATH_TO_IMAGE>);
IdResult result = session.Process(image);
String type = result.GetDocumentType();
for (IdTextFieldsMapIterator it = result.TextFieldsBegin(); !it.Equals(result.TextFieldsEnd()); it.Advance()) {
IdTextField field = it.GetValue();
String name = field.GetName();
String value = field.GetValue().GetFirstString().GetCStr();
}
std::unique_ptr<se::id::IdEngine> engine(se::id::IdEngine::Create(<PATH_TO_CONFIGURATION_FILE>, true));
std::unique_ptr<se::id::IdSessionSettings> settings(engine->CreateSessionSettings());
settings->SetCurrentMode("singleshot");
settings->AddEnabledDocumentTypes("rus.passport.national");
settings.SetOption("common.faceControlCheckEnabled", "true");
std::unique_ptr<se::id::IdSession> session(engine->SpawnSession(*settings, <PERSONALIZED_SIGNATURE>));
std::unique_ptr<se::common::Image> image(se::common::Image::FromFile(<PATH_TO_IMAGE>));
const se::id::IdResult& result = session->Process(*image);
std::string type = result.GetDocumentType();
for (auto it = result.TextFieldsBegin(); it != result.TextFieldsEnd(); ++it) {
const se::id::IdTextField& field = it.GetValue();
std::string name = field.GetName();
std::string value = field.GetValue().GetFirstString().GetCStr();
}
IdEngine engine = IdEngine.Create(<PATH_TO_CONFIGURATION_FILE>);
IdSessionSettings settings = engine.CreateSessionSettings();
settings.SetCurrentMode("singleshot");
settings.AddEnabledDocumentTypes("rus.passport.national");
settings.SetOption("common.faceControlCheckEnabled", "true");
IdSession session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>);
Image image = Image.FromFile(<PATH_TO_IMAGE>);
IdResult result = session.Process(image);
String type = result.GetDocumentType();
for (IdTextFieldsMapIterator i = result.TextFieldsBegin(); !i.Equals(result.TextFieldsEnd()); i.Advance()) {
IdTextField field = i.GetValue();
String name = field.GetName();
String value = field.GetValue().GetFirstString().GetCStr();
}
engine = pyidengine.IdEngine.Create(<PATH_TO_CONFIGURATION_FILE>, True)
settings = engine.CreateSessionSettings()
settings.SetCurrentMode("singleshot")
settings.AddEnabledDocumentTypes("rus.passport.national")
settings.SetOption("common.faceControlCheckEnabled", "true")
session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>)
image = pyidengine.Image.FromFile(<PATH_TO_IMAGE>)
session.Process(image)
result = session.GetCurrentResult()
type = result.GetDocumentType()
iterator = result.TextFieldsBegin()
while(iterator != result.TextFieldsEnd()):
field = iterator.GetValue()
name = field.GetName()
value = field.GetValue()
iterator.Advance()
Уверенность распознавания, координаты объектов, вырезание полей и документов
Возврат зоны принятия решения для проверок подлинности