Часто задаваемые вопросы
1. Можно ли продукты Smart Engines встроить в любое решение?
Да. Наши продукты можно встроить в любое решение. Возможны разные варианты внедрения, в зависимости от инфраструктуры клиента.
2. Как установить и протестировать систему?
Можно скачать мобильные демо-приложения в Apple Store и Google Play по ссылкам:
в Google Play: https://play.google.com/store/apps/details?id=com.smartengines.se
в Apple Store: https://apps.apple.com/ru/app/smart-engines/id1593408182.
Для получения SDK под нужную вам операционную систему свяжитесь с нами по электронной почте sales@smartengines.ru или support@smartengines.ru, и мы подготовим подходящий SDK для тестирования интеграции.
3. Где можно найти описание вашего SDK?
Вся необходимая документация для интеграции и использования, включая подробные инструкции, собрана в SDK в папке /doc
.
4. Как протестировать вашу библиотеку?
Для тестирования нашей библиотеки достаточно установить и запустить любой из примеров интеграции, они находятся в папке /samples
.
5. У меня есть версия SDK для ОС Windows, но предстоит работать на ОС на основе ядра Linux. Как запустить систему для Linux?
Для разных платформ мы предоставляем разные SDK, наиболее точно подходящие для требуемой платформы. Свяжитесь с нами по почте sales@smartengines.ru или support@smartengines.ru, и мы передадим подходящий SDK.
6. У меня есть версия SDK для ОС Centos 7. При попытке запустить его на Ubuntu/Debian/Alpine, появляется много ошибок "undefined symbol". Почему?
SDK для различных семейств дистрибутивов ОС на основе ядра Linux могут отличаться друг от друга. Данная версия SDK несовместима с ядром вашей ОС.
Свяжитесь с нами по почте sales@smartengines.ru или support@smartengines.ru, и мы передадим подходящий SDK.
7. В мобильных примерах внутри SDK, когда открывается окно сканера, появляется кнопка запуска сканирования. Можно ли в нашем приложении сделать так, чтобы распознавание объектов в кадре начиналось автоматически при наведении камеры, без необходимости нажатия кнопки?
Данную кнопку можно скрыть. Но мы не рекомендуем это делать, по двум причинам:
- Пользователь нажимает на кнопку после того, как убедился, что документ находится в фокусе и в нужном положении. Это позволяет ускорить время распознавания, поскольку в начале распознавания мы не подаем “мусорные” кадры на анализ.
- Вместе с открытием экрана с камерой параллельно может происходить инициализация нашей библиотеки. Индикатором готовности системы служит кнопка.
8. Как использовать SDK, если необходимо отправлять запросы на распознавание с разных устройств? Имеются ли кейсы по распознаванию с нескольких устройств?
Если необходимо распознавать документы с разных устройств, возможны варианты:
- Распознавать непосредственно на клиентских устройствах, используя мобильный SDK или веб-SDK с поддержкой WASM. В случае веб-SDK работа осуществляется в браузерах устройств. Для этого необходима интеграция нашего SDK в вашу веб-инфраструктуру. Распознавание документов на клиентском устройстве позволяет получить множество изображений с камеры устройства за один сеанс распознавания. Это дает более качественные результаты в постоянно меняющихся условий съемки (блики, тени, смазы и т.п.).
- Отправлять изображения на сервер. В этом случае следует использовать серверный SDK.
9. Какие форматы изображений поддерживаются?
Нативно библиотека распознавания поддерживает:
- JPEG;
- PNG;
- TIFF;
- Буферы изображений в RGB;
- одноканальные/полутоновые base64, как в виде буфера, так и файла.
10. Что делать, если необходимо распознать изображение в формате PDF?
Поскольку PDF — это контейнерный формат, который поддерживает страницы с данными в виде растровых и векторных слоев, мы рекомендуем самостоятельно извлекать и преобразовывать страницы из PDF в растровый формат перед их распознаванием.
11. Как работать с форматом HEIC?
Поддержка формата HEIC в мобильных SDK не отличается от работы с другими форматами изображений: чтение HEIC осуществляется системными средствами.
В серверных SDK необходимо самостоятельно открыть HEIC формат сторонними средствами и конвертировать либо в один из поддерживаемых нами форматов, либо передать непосредственно сырые пиксели в виде RGB буфера.
12. Как можно определить, какой у нас формат изображения, перед началом распознавания?
Если вы не знаете, какой формат изображения у вас на входе, вы можете ориентироваться на его mime-type.
Если вы используете мобильный SDK, вы можете применять встроенные средства операционной системы, которые всегда будут возвращать изображения в формате Bitmap
в случае Android и UIImage в случае iOS.
Cоздание экземпляра класса se.common.image
из Bitmap и UIImage представлено в наших примерах.
13. Как понять, что распознавание выполнено правильно и с результатом можно работать?
Для оценки уверенности системы в распознавании каждого поля мы предлагаем опираться на два параметра: Confidence и isAccepted.
Confidence (конфиденс) — эвристическая оценка, означающая “уверенность” системы в результате.
Это характеристика, присущая почти всем инструментам нашей библиотеки: шаблону. Показывает, насколько система уверена, что в данной области находится соответствующий элемент; полей документа на изображении и так далее.
Confidence имеет значение от 0.0 до 1.0.
isAccepted — флаг, принимающий значения true/false
. Выставляется на основе порогов конфиденс для каждого поля нами индивидуально. Если конфиденс не ниже установленного порогового значения, значение флага isAccepted
устанавливается true
.
14. Можно ли измерить время распознавания?
Да. Метрики скорости распознавания добавлены в пример в SDK, но они не являются частью библиотеки распознавания. Они представляют из себя буквально разницу между двумя timestamp
. Время распознавания — время работы метода Process()
.
15. Как обновить библиотеку до новой версии?
Зависит от используемого SDK.
Для серверного SDK:
Замените библиотеки в папке /bin
, связи (в папке /bindings
) и бандл (файл *.se
в папке /data-zip
). Все это содержится в поставляемом SDK.
На ОС Android:
Распакуйте SDK. Обновите ваш проект Android в три шага:
- Binaries (бинарные файлы): найдите папку
jniLibs/
в вашем приложении и замените ее содержимое на содержимое папки/sample/app/src/main/jniLibs/
из SDK. - Wrapper (обертка): найдите файл
lib/*.jar
в вашем приложении и замените его на файлsample/app/src/main/libs/*.jar
из SDK. - Bundle (файл конфигурации): найдите файл
assets/data/*.se
в вашем приложении и замените его на файлsample/app/src/main/assets/data/*.se
из SDK.
На iOS:
Замените содержимое папок SESmartText
и SESmartTextCore
на содержимое соответствующих папок из SDK.