Исследование алгоритмов распознавания регистрационных номеров автомобилей

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



?резков. Определение увеличения ширины волны производится путем сравнения ширины очередной генерации волны и ее среднего значения за N предыдущих генераций (N задается заранее). Причем мы получаем две точки (A,B) трассируемого отрезка. После разделения волны на две полуволны, мы получаем еще две пары точек (C,D) и (E,F). Точка соединения отрезков лежит в шестиугольнике ABCDEF и первоначально устанавливается как центр масс этого многоугольника (рисунок 1.5,б). Коррекция возлагается на оптимизацию скелета изображения.

Рисунок 1.5 ? а) отслеживание линий изображения, б) определение места соединения отрезков

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

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

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

Наиболее часто встречающиеся искажения (рисунок 1.6,а) исправляются с помощью анализа прилежащих к выделенной точке (A) отрезков (AB1, B1C1, AB2, B2C2, AB3, B3C3).

Анализ заключается в поиске такой пары отрезков CxBx, CyBy из (B1C1, B2C2, B3C3), что CxBxByCy максимально коррелируются прямой. Тогда необходимо точку (A) переместить в точку пересечения прямых CxCy и AC2, а затем удалить из графа точки B1, B2, B3. (рисунок 1.6,б).

Другим вариантом искажения является случай соединения трех отрезков в одной точке (рисунок 1.6,в). В этом случае невозможно нахождение пары отрезков коррелируемых прямой. Точка (A) должна быть перенесена в центр треугольника, образуемого прямыми B1C1, B2C2 и B3C3.

Затем точки B1, B2, B3 необходимо удалить из графа (рисунок 1.6,г).

Рисунок 1.6 ? Оптимизация точки соединения отрезков

Само распознавание:

Для каждой особой точки полученного скелетного представления вычисляется множество топологических признаков, основными из которых являются:

.нормированные координаты особой точки (вершина графа);

.длина ребра до следующей вершины в процентах от длины всего графа;

.нормированное направление из данной точки на следующую особую точку;

.нормированное направление входа в точку, выхода из точки;

.кривизна дуги, точнее "левая" и "правая" кривизна дуги, соединяющей особую точку со следующей вершиной (кривизна слева и справа). Кривизна вычисляется как отношение максимального расстояния от точек дуги (находящихся соответственно слева/справа от прямой) до прямой, соединяющей вершины, к длине отрезка, соединяющего те же вершины.

Рисунок 1.7 ? Пример топологических признаков

На рисунке 1.7 условно показаны некоторые из топологических признаков. Граф имеет пять особых точек - a0, a1, a2, a3, a4. При обходе графа по маршруту a0 ==> a1 ==> a2... в вершине a1 условно показаны следующие признаки: вектор R1 - направление входа в точку, вектор R2 - направление выхода из точки, вектор R3 - глобальное направление на следующую особую точку. Двунаправленный вектор h показывает величину "левого" отклонения дуги (a1,a2) от прямой; "правое" отклонение равно нулю.

Для некоторых кодов число особых точек и, соответственно, число топологических признаков слишком мало. Так, для кода, соответствующего символу "0", топологических признаков вообще нет, т.к. нет ни одной особой точки. Поэтому могут вычисляться и использоваться следующие дополнительные признаки:

.размеры и положение компонент и дыр,

."черная" и "белая" ширина верхней половины символа,

.модифицированные прямые прогибы.

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

Символ определяется после сравнения его описания с кодами из базы данных, при этом выбирается самый близкий топологический код.

Если символ после прохода цикла распознавания остался нераспознанным, делается попытка улучшения изображения с помощью следующих операций:

.склеить концы линий по направлениям (рисунок 1.8); для этого рассмотреть направления всех концевых дуг скелетного представления, и если направления каких-либо линий сходны (с точностью до знака), и указывают друг на друга, можно попытаться их соединить - возможно, это была сплошная линия, разорвавшаяся вследствие недостаточного уровня сканирования или исходных дефектов написания;

.склеить точки скелета, находящиеся на минимальном расстоянии одна от другой;

.отбросить самую короткую линию (дугу графа); излишние короткие дуги (линии) нередко возникают при рукописном написании;

Рисунок 1.8 ? Попытка улучшения изображения символа. а) исходное изображение символа; б) символ со склеенными линиями