Лучшие практики
Общие практики
- Чтобы получить максимальную отдачу от нашего SDK, ознакомьтесь со справочным руководством по основному интерфейсу библиотеки C++. Наши обертки созданы на его основе, и в руководстве можно найти описание полезных функций.
- Инициализация движка распознавания может занять некоторое время. Однако следует учитывать, что в процессе распознавания движок остается неизменным. Его можно инициализировать только один раз, после чего из одного и того же движка можно запустить несколько сеансов распознавания. Сеансы могут создаваться параллельно, не оказыая влияния друг на друга.
- Судить об уверенности системы в результате распознавания мы рекомендуем по значению флага isAccepted. Для более точного понимания уровня уверенности, вы можете ориентироваться на значение Confidence каждого текстового поля.
- Избегайте предварительной обработки входных изображений. Наши продукты лучше всего работают с изображениями, полученными непосредственно с устройства захвата (камеры или сканера).
- Избегайте слишком больших изображений. Не всегда высокое разрешение изображение влияет на качество его распознавания, а только увеличивает время обработки.
Мобильный SDK
Не храните свою персонализированную подпись в читаемом виде (т.е. в ресурсах). Всегда храните ее либо закодированной в бинарном файле приложения, либо подгружайте удаленно.
В мобильных SDK работайте с интерфейсом библиотеки асинхронно. Совмещайте инициализацию библиотеки и создание сессии до момента или вместе с открытием камеры. Это позволит сделать доступной кнопку сканирования документов практически сразу.
Инициализацию экземпляра движка распознавания следует выполнять один раз. Поскольку это самая ресурсоемкая операция, включая анализ изображений, инициализацию следует проводить вне UI-потока.
В мобильных SDK по умолчанию включена ленивая инициализация библиотеки. Рекомендуется оставить ее включенной и в ваших решениях.
Если вы точно знаете, какой документ должен отсканировать пользователь, начертите рамку на экране сканирования в пользовательском интерфейсе. Это поможет пользователю выровнять документ по отношению к камере и ускорит процесс распознавания.
Бандл находится отдельно от библиотеки, поэтому для минимизации размера приложения его можно загружать со своих серверов по требованию.
Рекомендуется добавить дополнительную кнопку сканирования на экран, который появляется после открытия превью каменры. Это поможет пользователю лучше выровнять документ и подождать, пока камера сфокусируется, прежде чем начать распознавание. А также ускорит процесс съемки, поскольку движок будет обрабатывать меньше пустых кадров.
Используйте флаг
GetAcceptFlag()
для выделения полей, распознанных с низкой степенью уверенности.Прежде чем сделать доступной функцию сканирования документа, инициализируйте механизм распознавания во вспомогательном фоновом потоке. В этом случае пользователю не придется тратить время на ожидание инициализации данного механизма.
Серверный SDK
Можно отключить внутреннюю многопоточность механизма распознавания, что заставит библиотеку загружать все ресурсы одновременно. Это позволит эффективно измерить максимальное потребление памяти.
Если вы загружаете изображения из файла, убедитесь, что загруженные файлы размещены на высокопроизводительном дисковом устройстве. На некоторых устройствах время загрузки изображения из файла может превышать время самого распознавания.
В серверных SDK по умолчанию отключена ленивая инициализация библиотеки. Рекомендуется оставить ее отключенной и в ваших решениях. Это сократит потребление памяти.
Если вы загружаете изображения из файла, убедитесь, что загруженные файлы размещены на высокопроизводительном дисковом устройстве: на некоторых компьютерах время, необходимое для загрузки изображения из файла, может превышать время самого распознавания.
Избегайте предварительной обработки входных изображений: наши продукты лучше всего работают с изображениями, полученными непосредственно с устройства захвата (камеры или сканера).