Алгоритмы распознавания и библиотеки по распознаванию текста

Ключевым параметром для распознавания какого-либо номера является качество изображения. Для получения хорошего изображения необходимо использовать оборудование, способное выполнять высококачественную съемку [5]. Чем лучше оборудование, тем больше шансов распознать номер правильно. Даже самый продвинутый алгоритм не способен распознать номер на фотографии без четко снятого изображения.

Первым пунктом алгоритма будет предварительный поиск изображения. Предварительный поиск номера – это обнаружение области, в которой содержится номер. Далее необходимо нормализовать номер. Нормализация номера – это определение точных границ номера, нормализация контраста. После обнаружения номера и его нормализации необходимо распознавать текст. Поэтому следующий пункт — это распознавание текста [6].

Существует большое количество алгоритмов распознавания, как символов, так и целых текстов. Часть из них является платными. Но все эти алгоритмы можно разбить на два класса:

1. Структурные методы – основанные на морфологии и анализе контура,

2. Растровые методы – основанные на анализе непосредственного изображения.

В России для автомобильных номеров используются стандартный шрифт, что позволяет использовать алгоритмы, распознающие OCR алгоритмы, но большинство алгоритмов не могут работать с неточными буквами и цифрами, т.е. номер, запачканный грязью невозможно распознать большинством алгоритмов [8].

Tesseract OCR является открытым алгоритмом, выполняющим распознавание как текста та и отдельного символа. Он легко обучается, подходит для различных ОС, а также стабилен. Необходимо учитывать, что грязный номер распознается с небольшой точностью.

K-nearest является методом, распознающим символы. Алгоритм его состоит в том, что:

1 Создаем обучающую выборку, в которой изображения символов корректно разбито на классы;

2 Необходимо ввести меру расстояния между символами;

3 При распознании сравниваем расстояние между символами и символами в базу. Среди k ближайших соседей, возможно, будут представители различных классов. Естественно, представителей, какого класса больше среди соседей, к тому классу стоит отнести распознаваемый символ.

В итоге для корректной работы данного метода необходимо собрать огромную базу с примерами символов. И для распознания использовать бинаризацию, что влечет за собой проблемы с распознанием неточных или грязных номеров.

Корреляционный – этот подход в отличие от остальных использует математический аппарат теории вероятности. Данный метод сводится к операции расчета ковариации входного сигнала с гипотетическим (с учетом заданных смещений и поворотов): Алгоритмы распознавания и библиотеки по распознаванию текста - student2.ru , где X – входной сигнал, Y – гипотеза, E – математическое ожидание. Минусом данного метода является его большая вычислительная затратность [7].

Нейросети – их принято делить на два класса поколения. Первое – классические 2-3х-слойные нейросети, обучающиеся градиентными методами с обратным распространением ошибок Второе – deep-learning нейросети и сверточные сети [10].

Сети второго поколения с легкостью распознают рукописный текст, и имеется открытая база изображений рукописных цифр. Для распознания печатных шрифтов можно использовать простую однослойную или двухслойную сеть, которые не сильно и отличаются от сетей второго поколения. Этот метод является самым сложным и диагностика аномального поведения в многослойных сетях просто невозможна [12].

Наши рекомендации