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

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

Подготовка и нормализация данных

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

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


Глава 2

Описание программного средства

 

2.1 Алгоритм

Программа основана на наборе матриц (9 матриц – по одной на каждую цифру [1..9]), содержащих набор координат. Совокупность координат матрицы формирует образ цифры.

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

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

При использовании функции запоминания в работу вступает нейросеть. Первоначально нейросеть нормализует входящие данные, а далее в файле Bank.bnk производит перезапись координат в эталонных матрицах, допуская бесконечно малую погрешность, для того, чтобы при распознавании последующих образов устанавливалось не 100% соответствие, по которому нельзя распознавать различные образы. Тем самым, погрешность соответствия в программе допускает написание разными людьми абсолютно разных по характеру написания цифр.

2.2 Техническая реализация

Программа реализована на языке программирования Borland Delphi 2003, с помощью классов. 4 прилагающихся к программе шаблона (подложки к рабочему окну) разработаны в программе Adobe Photoshop. Шаблоны находятся в одной папке с исходным кодом программы, и в данной реализации подложка под главное окно программы выбирается самим программистом-разработчиком. В дальнейшем, возможно, предусмотреть выбор подложки пользователем программы.

Шаблоны исходных матриц находятся в одной папке с исходным кодом программы в файле Bank.bnk.

2.3 Описание пользовательского интерфейса

При запуске файла Neuro_40.exe пользователь видит главное окно программы. Подложкой главного окна программы является один из шаблонов, прилагающихся к программе. В центре окна находится окно для рисования цифр. Внизу этого окна располагаются три кнопки: Запомнить, Распознать, Очистить. С помощью кнопки Распознать пользователь может обучить свою программу, т.е. научить распознавать её данный образ цифры. С помощью кнопки Распознать пользователь может распознать нарисованный им образ, а с помощью кнопки Очистить пользователь может очистить окно для рисования.

Рис. 1 Главное окно программы


Пользователь может рисовать цифры в окне для рисования с помощью мыши или графического планшета.

Рис. 2 Результат распознавания цифры

Рис. 3 Различные подложки для программы

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


Рис. 4 Процесс запоминания цифры


Заключение

Безусловно, существует множество направлений по развитию данной программы. Возможно, осуществить распознавание не только цифр, но и других символов, причём следующих подряд (т.е. распознавание чисел или текста), по аналогичному алгоритму, так же существует потенциал по изменению способов ввода символов, например, имитируя написание на бумаге или вырезания их на дереве, т.е. возможно имитировать различные текстуры и написание символов на данных текстурах различными предметами. Следовательно, программа станет ещё более привлекательной для пользователя и конкурентоспособной на современном рынке.

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


Приложение 1

Техническое описание программы

1). Класс T8Bit - восьмибитная картинка

Методы:

Pixels – считывание попиксельно параметров картинки

Init – инициализация

Clear – удаление информации о пикселях картинки

Свойства:

Pixels – параметры картинки

2). TNeuro – резервная матрица, в которую считываются координаты

пикселей картинки из главного окна программы

Методы:

Clear – очистка матрицы

Normalize – нормализация

MemoryFrom – считывание значений

CompareWith – проверка на совместимость с шаблонами

GetFromBitmap – получение данных о картинке

3). TNeuroBank - совокупность матриц-шаблонов

ClearAll – удаление всех значений

SaveToFile – сохранение в файл

LoadFromFile – загрузка из файла


Список литературы

1.         http://www.recognition.mccme.ru/pub/RecognitionLab.html/methods.html

2.         http://daily.sec.ru/dailypblshow.cfm?rid=18&pid=4326


Информация о работе «Распознавание образов (на примере цифр)»
Раздел: Информатика, программирование
Количество знаков с пробелами: 23868
Количество таблиц: 0
Количество изображений: 4

Похожие работы

Скачать
43718
0
0

... , бистабильность восприятия. В дальнейшем планируется разработка программных моделей более сложных нейронных сетей и их комбинаций с целью получения наиболее эффективных алгоритмов для задачи распознавания образов. Литераура. 1.Горбань А.Н.,Россиев Д.А..Нейронные сети на персональном компьюере. 2. Минский М.Л.,Пайперт С..Персепроны.М.: Мир.1971 3. Розенблатт Ф.Принципы ...

Скачать
126460
2
0

... его, человек высказывает гипотезы, продвигающие его к знанию распознающей деятельности в природе, что позволяет ему успешно решать стоящие задачи. Рассматриваемый курс “Основы построения систем распознавания образов” и должен научить пониманию того, что лежит в основе современных гипотез распознавательной деятельности и как на этой основе упомянутые задачи решаются.1.1.2. Краткая история вопроса ...

Скачать
32565
0
15

... буквами. При превышении некоторого порога слово "вырезается" из строки. Процесс продолжается до конца строки. Алгоритм сегментации текста представлен в графической части 2.2 Алгоритм распознавания слова. Персептрон Распознавание слова "Указ" в разработанном приложении, реализовано на базе персептрона. Алгоритм обучения персептрона – без учета правильности ответа. Персептрон построен по ...

Скачать
68552
0
0

... мнению академика Российской академии медицинских наук Сергея Колесникова, на показатели смертности влияет множество природных и социальных факторов. «Прежде всего это образ жизни, который формирует 50% состояния здоровья, генетические данные, экология и медицинская помощь», рассказал он в интервью газете ВЗГЛЯД. «И если в рамках нацпроекта «Здравоохранение» власти стали уделять внимание сердечно- ...

0 комментариев


Наверх