Система Smart Engines с точностью до 99,9% распознает полный спектр документов юридических лиц и ИП, включая регистрационные, учредительные, финансовые, бухгалтерские и отчетные документы. Алгоритмы ИИ построены на научных принципах достоверности и интерпретируемости — по каждому извлеченному символу можно получить численную оценку уверенности.
Решение Smart Engines автоматизирует распознавание финансовой и бухгалтерской отчетности и других документов, необходимых для кредитного скоринга и принятия решений. ИИ извлекает данные из более чем 80 преднастроенных шаблонов российский документов, включая бухгалтерский баланс, налоговые декларации и отчеты о движении денежных средств.
ИИ Smart Engines помогает построить кредитный конвейер и создать единую точку ввода данных из любых кредитных документов вне зависимости от типа. Система автоматически находит и классифицирует документы на фото и сканах и распознает даже многостраничные формы.
Система Smart Engines является мультиплатформенным программным продуктом, доступным на любых устройствах. Решение интегрируется на сервера, десктопы и мобильные устройства, включая смартфоны и планшеты. Благодаря модулю WebAssembly распознавание также можно запустить в браузере и мини-приложениях мессенджеров.
Система Smart Engines снимает до 100% нагрузки банка в части ввода и проверки данных из бумажных документов и поступающих по ЭДО сканов. Это позволяет снять операционные барьеры, повысить пропускную способность кредитного конвейера, а также исключить ошибки человеческого фактора.
Технология Smart Engines масштабируется под любые объемы бизнеса без усложнения операционных процессов и ИТ-ландшафта. Система обрабатывает до 600 тысяч страниц в сутки на одном сервере и до 16 млн страниц на кластере без использования графических процессоров (GPU). Даже в пиковых нагрузках решение обеспечивает непревзойденное качество и высочайшую скорость извлечения данных.
Система Smart Engines с высокой точностью распознает печатные, рукопечатные и рукописные реквизиты в документах вне зависимости от шрифта, начертания и почерка. ИИ мгновенно извлекает надписи и пометки, сделанные с помощью любых пишущих инструментов. Алгоритмы ИИ распознают даже сложные и трудночитаемые рукописные слова — без использования словарей и языковых моделей.
Решение Smart Engines извлекает данные из документов, снятых при любых условиях, и не требует идеального ракурса съемки. Качество распознавания остается высоким даже при зашумленности изображения, неравномерном освещении и произвольных углах наклона документа в кадре. Это позволяет использовать систему для надежного ввода данных кредитных документов в мобильных сценариях.
Система Smart Engines работает локально в ИТ-инфраструктуре заказчика (on-premise). В процессе обработки изображения и данные из документов не покидают защищенный контур банка и не отправляются на внешние сервера и в облачные сервисы. Решение не требует интернет-соединения, не использует графические вычислительные ресурсы и краудсорсинг. Это обеспечивает полную конфиденциальность обработки данных.
Система распознает регистрационные документы ИП и ЮЛ, финансовую и бухгалтерскую отчетность, кредитные анкеты и иные материалы заемщика. Извлечение реквизитов выполняется из фото, сканов и PDF, включая изображения низкого качества. Система распознает тексты, таблицы, отметки, штрихкоды. Обеспечивается высокоточное распознавание печатного, рукописного и смешанного текста. Обучение системы на исключительно синтетических данных позволяет избежать лингвистических галлюцинаций в задачах высокой ответственности. Система автоматически классифицирует документы и проверяет правильность их оформления. ПО работает полностью в контуре заказчика, на смартфонах, в вебе, PWA, десктопе и на сервере, обеспечивает производительность до 16 млн страниц в сутки без GPU.
DocEngine engine = DocEngine.Create(<PATH_TO_CONFIGURATION_FILE>, true);
DocSessionSettings settings = engine.CreateSessionSettings();
settings.SetCurrentMode("primary_accounting");
settings.AddEnabledDocumentTypes("*");
DocSession session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>);
DocProcessingSettings proc_settings = session.CreateProcessingSettings();
Image image = Image.FromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image, proc_settings);
DocResult result = session.GetCurrentResult();
Document document = result.DocumentsBegin().GetDocument();
for (DocTextFieldsIterator iterator = doc.TextFieldsBegin(); !iterator.Equals(doc.TextFieldsEnd()); iterator.Advance()) {
String name = iterator.GetField().GetBaseFieldInfo().GetName();
String value = iterator.GetField().GetOcrString().GetFirstString().GetCStr();
}
std::unique_ptr<se::doc::DocEngine> engine(se::doc::DocEngine::Create(<PATH_TO_CONFIGURATION_FILE>, true));
std::unique_ptr<se::doc::DocSessionSettings> settings(engine->CreateSessionSettings());
settings->SetCurrentMode("primary_accounting");
settings->AddEnabledDocumentTypes("*");
std::unique_ptr<se::doc::DocSession> session(engine->SpawnSession(*settings, <PERSONALIZED_SIGNATURE>));
std::unique_ptr<se::doc::DocProcessingSettings> proc_settings(session->CreateProcessingSettings());
std::unique_ptr<se::common::Image> image(se::common::Image::FromFile(<PATH_TO_IMAGE>));
session->ProcessImage(*image, proc_settings.get());
const se::doc::DocResult& result = session->GetCurrentResult();
const se::doc::Document& doc = result.DocumentsBegin().GetDocument();
for (auto iterator = doc.TextFieldsBegin(); iterator != doc.TextFieldsEnd(); ++iterator) {
std::string name = iterator.GetFieldPtr()->GetBaseFieldInfo().GetName();
std::string value = iterator.GetFieldPtr()->GetOcrString().GetFirstString().GetCStr();
}
DocEngine engine = DocEngine.Create(<PATH_TO_CONFIGURATION_FILE>, true);
DocSessionSettings settings = engine.CreateSessionSettings();
settings.SetCurrentMode("primary_accounting");
settings.AddEnabledDocumentTypes("*");
DocSession session = engine.SpawnSession(session_settings, <PERSONALIZED_SIGNATURE>);
DocProcessingSettings proc_settings = session.CreateProcessingSettings();
Image image = Image.FromFile(<PATH_TO_IMAGE>);
session.ProcessImage(image, proc_settings);
DocResult result = session.GetCurrentResult();
doc_it = recog_result.DocumentsBegin()
Document doc = recog_result.DocumentsBegin().GetDocument();
for (DocTextFieldsIterator iterator = doc.TextFieldsBegin(); !iterator.Equals(doc.TextFieldsEnd()); iterator.Advance()) {
String name = iterator.GetField().GetBaseFieldInfo().GetName();
String value = iterator.GetField().GetOcrString().GetFirstString().GetCStr());
}
engine = pydocengine.DocEngine.Create(<PATH_TO_CONFIGURATION_FILE>)
settings = engine.CreateSessionSettings()
settings.SetCurrentMode("primary_accounting")
settings.AddEnabledDocumentTypes("*")
session = engine.SpawnSession(settings, <PERSONALIZED_SIGNATURE>)
proc_settings = session.CreateProcessingSettings()
image = pydocengine.Image.FromFile(<PATH_TO_IMAGE>)
session.ProcessImage(image, proc_settings)
result = session.GetCurrentResult()
doc_it = recog_result.DocumentsBegin()
doc = recog_result.DocumentsBegin().GetDocument()
iterator = doc.TextFieldsBegin()
while(iterator != doc.TextFieldsEnd()):
name = iterator.GetField().GetBaseFieldInfo().GetName()
value = iterator.GetField().GetOcrString().GetFirstString().GetCStr()
iterator.Advance()
Автовыбор документов из списка, отсеивание ненужных документов
Уверенность распознавания, координаты объектов, вырезание полей и документов
Возврат зоны принятия решения для проверок подлинности