Как нашим разработчикам удалось разбить сложные параметры OCR

Оптическое распознавание символов или OCR — сложная тема. Он состоит из множества различных частей, таких как предварительная обработка изображения, обучение шрифтам и, прежде всего, тестирование и разработка. Если вы хотите освежить свои знания об распознавании символов, ознакомьтесь с нашей статьей Что такое распознавание текста и почему оно облегчает вашу жизнь. Наши разработчики постоянно работают над этими разными и сложными частями. Они тестируют, разрабатывают, тестируют и разрабатывают, чтобы с каждым днем улучшать распознавание текста.
В частности, они тратят много времени на улучшение нашего модуля Anyline OCR SDK.
Этот модуль позволяет вам создать собственный вариант использования OCR. Он позволяет сканировать коды ваучеров, IBAN, серийные номера и многое другое! С его помощью мы разработали систему, которая автоматически настраивает все параметры предварительной обработки, оптического распознавания символов и проверки в соответствии с несколькими простыми настройками, которые вы можете установить в SDK, чтобы повысить качество сканирования!
Далее я расскажу вам об этих параметрах, чтобы вы знали, как можно быстро адаптировать все под свои нужды!
ПАРАМЕТРЫ OCR
SCANMODE: КАК РАСПОЛОЖЕНЫ ПЕРСОНАЖИ?
Line. Режим LINE оптимален для сканирования одной или нескольких строк переменной длины и/или шрифта (например, IBAN или адресов).

Сетка: режим СЕТКА оптимален для символов одинакового размера, размещенных в сетке, с постоянным шрифтом, фоном и количеством символов.

CHARHEIGHT: КАКОЙ РОСТ У ПЕРСОНАЖЕЙ?
minCharHeight: как вы можете видеть ниже, minCharHeight определяет минимальную высоту символа для сканирования в пикселях.

maxCharHeight: как вы можете видеть ниже, maxCharHeight определяет максимальную высоту сканируемого символа в пикселях.

VALIDATIONREGEX: КАКОЙ ФОРМАТ ИМЕЕТ СИМВОЛ?
validationRegex определяет регулярное выражение, по которому проверяется обнаруженный результат.
Действительное регулярное выражение: строка регулярного выражения для проверки результата. Недействительные результаты не возвращаются

Пример: IBAN
Недопустимое регулярное выражение: строка регулярного выражения для проверки результата. Недействительные результаты не возвращаются

TESSERACTLANGUAGES: КАКИЕ ЯЗЫКИ РАЗРЕШЕНЫ?
Компонент OCR в SDK использует так называемые файлы обученных данных, которые относятся к определенному шрифту и языку. Этот параметр сообщает модулю, какой файл обученных данных использовать при выполнении OCR.
Универсальный: общие языки для OCR.
Пользовательский: для использования индивидуального файла обучения установите значение «Пользовательский».
CHARWHITELIST: КАКИЕ ПЕРСОНАЖИ РАЗРЕШЕНЫ?
charWhiteList определяет белый список символов, которые разрешены в результате. Тщательная настройка этого параметра имеет то преимущество, что точность результата будет улучшена, и если вы используете его вместе с validationRegex, это предотвратит получение неправильных результатов.
ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ В РЕЖИМЕ LINE
Когда вы работаете в линейном режиме, есть дополнительные параметры, которые помогают улучшить результат. removeSmallContours определяет, что небольшие контуры в тексте не будут учитываться в процессе сканирования, если установлено значение true.
minSharpness определяет минимальную резкость, необходимую для дальнейшей обработки изображения в SDK.
removeWhitespaces удалит все пробелы, если установлено значение true.
ДОПОЛНИТЕЛЬНЫЕ НАСТРОЙКИ В РЕЖИМЕ СЕТКИ
CharCountX / CharCountY определяет количество символов в горизонтальном или вертикальном направлении в сетке.
CharPaddingXFactor / CharPaddingYFactor Определяет среднее расстояние по горизонтали или вертикали между двумя символами, измеряемое в процентах от ширины символов.
isBrightTextOnDark означает, что SDK ищет яркие символы на темном фоне. Если задать значение false, SDK будет искать темные символы на светлом фоне.
Я надеюсь, что это было хорошо понятно для вас. Если что-то осталось неясным, вы можете ознакомиться с документацией на Anyline или просто связаться с нами! Если вам нужна дополнительная помощь по внедрению Anyline SDK для вашего собственного варианта использования, посмотрите видеоролики Как интегрировать Anyline SDK для Android и Как импортировать Anyline Пример проекта в Android Studio! Ура!
Эта статья изначально была опубликована на blog.anyline.io.