Распознавание автомобильных номеров методом сравнения с шаблонами

Автор работы: Пользователь скрыл имя, 25 Апреля 2012 в 22:59, научная работа

Описание

Целью проекта является - программа для распознавания автомобильных номеров методом сравнения с шаблонами. Программа должна выводить результат распознавания картинки с автомобильным номером, анализировать его и оценивать правильность(количество неверно распознанных символов). Картинки с номерами заведомо сгенерированы. Необходимо распознать 50 «чистых» и 50 «грязных»(имеют шумы, подобные грязи или дефектам на настоящих номерах) номеров, оценить эффективность разработанной программы.

Содержание

Постановка задачи………………………………………………………………………..3

Алгоритмическое обоснование метода. ………………………………………………...4
Программная реализация………………………………………………………………..5
Вывод……………………………………………………………………………………..7

Работа состоит из  1 файл

ПФЮЕФ.doc

— 477.00 Кб (Скачать документ)


ПЕТРОЗАВОДСКИЙ ГОСУДАРСТВЕННЫЙ УНИВЕРСИТЕТ

МАТЕМАТИЧЕСКИЙ ФАКУЛЬТЕТ

 

 

 

 

 

 

 

Интеллектуальные системы

Распознавание образов

Распознавание автомобильных номеров методом сравнения с шаблонами

 

 

 

 

 

 

 

 

 

 

Выполнили: 

студенты 5 курса, группа 22506

 

Уколов А. С.      __________

                                 подпись  

Смирнова Е. А. __________

                                   подпись  

 

 

 

 

 

 

 

 

 

 

 

 

Петрозаводск

2009


Содержание

Постановка задачи………………………………………………………………………..3

 

Алгоритмическое обоснование метода.              ………………………………………………...4

Программная реализация………………………………………………………………..5

Вывод……………………………………………………………………………………..7
Постановка задачи

 

Целью проекта является - программа для распознавания автомобильных номеров методом сравнения с шаблонами. Программа должна выводить результат распознавания картинки с автомобильным номером, анализировать его и оценивать правильность(количество неверно распознанных символов). Картинки с номерами заведомо сгенерированы. Необходимо распознать 50 «чистых» и 50 «грязных»(имеют шумы, подобные грязи или дефектам на настоящих номерах) номеров, оценить эффективность разработанной программы.


Алгоритмическое обоснование метода

Программа состоит из следующих основных функций:

      mono(bmp) – перевод картинки в черно-белый цвет;

      prepare(bmp) – функция удаляет шумы с номера;

      GetImageChars(bmp) – функция распознавания номера;

      GetChar(bmp) – функция вырезание символа с номера;

     GetDifferents(char, temple) – сравнение вырезанного символа с шаблоном

Для начала загруженное изображение номера переводится в черно-белый цвет при помощи функции mono(bmp), где bmp сам номер, т.к. дальше программа работает с картинкой, как с матрицей из 0 и 1.

Далее необходимо проверить, есть ли на изображении шумы. Вызывается функция prepare(bmp), где bmp – картинка с номером. Находятся не связные объекты с минимальной площадью черного цвета и переводятся в белый цвет.

После удаления шумов, на номере поочередно вырезаются символы функцией GetChar(bmp), где bmp – это номер. Т.е. каждая буква вписывается в прямоугольник, для последующего сравнения с шаблоном. Шаблоны генерируются при каждом старте программы. По такой формуле высчитывается размер шрифта шаблона:

SizeBegin:=Round(Bmp.Height*0.90); //начальный размер

SizeEnd:=Round(bmp.Height*1.10); //конечный размер

bmp.Height - это высота вырезанного символа с номера.

В цикле от SizeBegin до SizeEnd с шагом 1 генерируется шаблон соответственного размера, далее вызывается функция GetDifferents(char, pattern), где char – это вырезанный символ с номера, а pattern – это сгенерированный шаблон. Происходит построчное сравнение картинки с символом с картинкой шаблоном, и выявляется коэффициент соответствия, чем коэффициент выше, тем больше вероятность, что это тот символ. Такую процедуру проходит каждый вырезанный символ с номера.
Программная реализация

 

Для реализации программы был выбран язык Delphi.

В главном окне программы пользователю предлагается выбрать изображение с номером (Рис. 1). Изображение должно быть в формате .PNG, либо .BMP. Ширина равна 235 пикселей, высота 50 пикселей.

 

Рис. 1

 

После загрузки файла появляется его изображение. (Рис. 2). Далее необходимо нажать кнопку «Распознать» для начала распознавания номера.

Рис. 2

 

В результате распознавания в поле «Результат» будет записан распознанный номер в текстовом виде. Ниже будет  выведено количество неверно распознанных символов.

Рис. 3

 


Вывод

Выборка состояла из 50 «чистых» номеров и 50 «грязных» номеров (изображение с шумами). В среднем процент верного распознавания на «чистых» номерах равен 81%, на «грязных» 77%. В ходе анализа работы программы выявлены следующие погрешности:

      Символ «М» воспринимается как символ «Н»

      Символ «Е» воспринимается как символ «В»

      Символ «С» воспринимается как символ «О»

      Символ «О» воспринимается как символ «0»

      Символ «6» воспринимается как символ «8»

 

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

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



Чистый номер

Распознанный номер

Кол-во ошибок

Запачканный номер

Распознанный номер

Кол-во ошибок

A459YB47

1

A459YB47

1

K188T070

2

K1?8TO70

 

1

K183BB97

1

K18TBB97

2

K273HY71

1

K273H771

2

K384OB85

3

K384OB85

3

K727AK10

0

K727AK10

 

0

K805PB83

2

K805PE83

1

K853HH80

2

K85?HH80

 

3

H057HT28

 

3

H057HT28

3

H270PB47

1

H270PB47

1

H400HY37

1

H400H737

2

H482BH01

4

H482BH01

4

H770HH70

3

H770HH70

3

H8900X23

2

H8?00X23

3

H908KP03

1

H903KP3

4

0118HB72

2

O118H872

 

2

0188HT41

3

CT88HT4T

5

0335HY58

2

OT?5H75?

4

0348TH89

3

O?48TH89

3

0444KB25

2

O444KE25

 

0

0784TK91

2

0784TK91

2

P0320B80

2

P0T20960

 

3

P138A018

1

P438AC18

2

P195HP48

1

P195HP46

0

P248YK80

 

1

P2487K80

2

P777BH85

3

P777EH65

 

1

P958HY34

2

P958H734

3

P9990T17

1

P999OT17

0

T237PB33

 

1

T237PE33

 

0

T280HY183

 

3

T280H7183

4

T2850Y152

1

T2850Y152

1

T317HX125

0

T317HX125

0

T358HK75

0

TT58HK75

1

T4380Y93

2

T438C793

3

T983BO55

3

T98TBO55

4

X387HY35

0

X387HY35

0

X404HH44

2

X404HH44

2

X452HT58

0

Y452HT58

1

X473PY14

0

X47?PY14

 

1

X493OB83

3

X49TOE83

3

X7120P88

1

X7120P88

1

X872HH53

0

X872HH53

0

X918YP15

1

X918YP15

1

Y308BH82

1

7308BH82

0

Y385H0150

3

YT85HO150

3

Y378HP01

1

Y378HP01

1

Y418KB53

 

0

74T8KB53

2

Y539HX173

0

Y539HX173

0

Y5970B94

2

75970B94

3

Y839AA01

0

Y8?9AA01

1

 

 



Информация о работе Распознавание автомобильных номеров методом сравнения с шаблонами