Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИИ.docx
Скачиваний:
57
Добавлен:
06.06.2018
Размер:
9.56 Mб
Скачать

3 Моделирование искусственной нейронной сети для распознавания образов

3.1 Постановка задачи

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

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

Наиболее универсальным решением является использование альтернатив, которые позволяют самонастраивать модели под новые объекты.

Для достижения указанной цели использована гибридная программная модель. Модель апробированна на примере распознавания арабских цифр.

При этом, модель не привязана к какому конкретному набору символов. Следовательно она может быть применена для любых алфавитов и контурных изображений [5].

При ассоциации новых изображений с объектами из БД, возможны проблемы, связанные с неопределенностями, из-за которых сложно человеку или машине дать однозначный ответ

Очевидным примером трудно классифицируемых образов могут быть символы, не попавшие в замкнутые области, приведенные на рисунке 3.1.

Рисунок 3.1 – Искажения образов

Часть фигур, изображенных на рисунке можно распознать и как «3», и как «5». Для исключения неоднозначности, можно заложить в программу границы. Согласно которым фигура будет распознаваться как «3» или «5».

Из рисунка видно, как последовательными и небольшими изменениями превратить цифру три в пять и далее либо в шесть, либо в восемь.

Изображение символов одного класса могут существенно отличаться друг от друга. При этом, мы имеем дело с одним и тем же образом. К примеру, цифра четыре имеет двоякое символьное изображение: “треугольное” и “четырехугольное”.

При определении символа, нужно использовать сверки с каждым классом. Если проверяемое значение близко к виду “прямоугольного” или “треугольного” способа написания четверки, программа ассоциирует символы с четверкой (рисунок 3.2).

Рисунок 3.2 – Различное представление одних и тех же символов

При начертании от руки, один и тот же символ может иметь различное изображение. В данном случае целесообразно разделить базу указанных образов на несколько классов (рисунок 3.3).

Рисунок 3.3 – примеры прописных и печатных символов

Необходимо также разделять заглавные и строчные символы в случае латинского алфавита на два независимых класса, так как, например, изображение буквы “A” и “a” различны. Разбивка на классы позволяет определять символы более точно и эффективно (рисунок 3.4).

Рисунок 3.4 – Примеры изображений заглавных и строчных букв

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

Удачный выбор структуры сети и механики ее функционирования, модель, схожая по свойствам с нейронной моделью Хопфилда, может быть использована.

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

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

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

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

Более того, существующие программные продукты, как правило, взаимодействуют с определенными шрифтами. Это является ощутимым недостатком, так как сужает круг задач распознавания.

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

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

При номинальном количестве эталонных экземпляров для одного символа и разрешении 120х160, объем информации занимает 4800000 точек.

Следовательно, достоинство метода заключается в том, что вместо 480 000 000 вносимых точек. Для работы с такой базой необходимо использование труда большого количества операторов. Нам необходимо работать с 192 000 точками, что на 479 808 000 меньше для ввода изображений, тем не менее позволяет достичь высокие результаты.

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

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

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

Таким образом, получается что в результате произведения 12 колонок по вертикали и 16 клеток по горизонтали.

На рисунке представлен пример заполнения поля рецептора точками. Результат работы – изображение цифры семь (рисунок 3.5).

Рисунок 3.5 – Матрица рецепторов

Подобный вид разрешения является невысоким, но, при этом, достаточным для различения символов. Увеличение количества точек матрицы рецепторов, позвлит более точно провести анализ и идентификацию признаков символов.

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

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

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

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

Рисунок 3.6 – Примеры введенных символов

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

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

Рисунок 3.7 – Схема зондов

Из рисунка видно, что традиционный метод позволяет использовать семь различных зондов для определения цифр. Количество пересечений определяет отношение к определенной цифре.

Поимо этого, метод является очень чувствительным к искажениям, даже достаточно слабым. К примеру, при удлинении кончика цифры два получается 5 пересечений вместо четырех (рисунок 3.8).

Рисунок 3.8 – Пример искажения

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

Ясно, что подобная структура позволит лучше идентифицировать изображение по сравнению с “разжиженными” зондами. Но, при искажении символа, в случае, если мы имеем дело с непечатными знаками, вопрос остается открытым.

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

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

Но, это не решает полностью вопрос с распознаванием не строго формализованных изображений.

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

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

Убирание погрешностей и добавление контрастности. Рассмотрим, проблемы, которые могут появиться после сканирования цифры. Какие механизмы должны быть использованы. Удаление погрешностей должно происходить перед структурным анализом изображения [3].

Изображение должно содержать погрешности, различного типа, такие как пыль, отпечатки пальцев, и царапины, размазанность картинки, изгибы, неровность поверхности и др.

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

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

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

Рисунок 3.9 – Отсечение контуров символа

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

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

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

Формат BMP представляет различные разновидности цветовой палитры:

  • монохромный;

  • 16-цветный;

  • 256-ти цветовой;

  • 24-ех битный (16.4 миллионов цветов).

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

Далее приведена таблица (рисунок), позволяющая описать структуру, необходимую при построении графического изображения в 16-ти цветовом формате BMP (рисунок 3.10).

Рисунок 3.10 – Структура изображения

На примере созданного или отсканированного изображения “0” (рисунок) рассмотрим содержание и структуру графического файла BMP (рисунок 3.11).

Рисунок 3.11 – Отсканированное изображение

Анализ изображения должен быть проведен с помощью декодирования в более доступный для его восприятия вид [3]. Применяя таблицу (рисунок) структуры BMP файла.

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

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

Последовательность должна принять вид «0» и «1» (белых и черных точек, однозначно определяющих изображение) табличного массива. Т.е. декодировать это изображение для проведения дальнейшего анализа. Представим изображение в виде матрицы 12x16.

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

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

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

Изображение начинается с блока кода с индексом 118 в НЕХ-формате. Но, преобразование из кодированного изображения в доступный вид, должно учитывать множество нюансов. Указанные нюансы связанны с кодированием изображения в файле.

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

Процедура всех этих преобразований, декодирования, удаления служебных блоков, транспонирования матрицы и отображения приведены в листинге 1 программы.

Листинг 1 – Процедура трансформации графического изображения в 2-ух мерный массив.

procedure TForm.Btn

Clck(S er: Object);

var From: file;

FilFrm : strin;

NRead: Wod;

Buff: arr[1..1024] of Byte;

p, j, t, l, m, cout: int;

pw, ph : int;

FilFr = 'obj.bmp';

AssignFile(FomF, FilFrom);

Rest(From, 1);

NRead = 5;

BlkRead(From, Buf, SizeOf(Buff), coun);

p = Buffer[19];

p = Buffer[23];

label.capt = InttStr(Buff[19]);

label.capt = IntoSr(Buff[23]);

CloseFle(From) ; k=0; i=1; j=0;

for i=1 to size

do

while j<pw

do //

for j=1 to 28

do

j= j+2;

Form.StringGrid.Cell[j,i] = Intttr(Buff[118+k+j]);

m = trunc(j/2);

if Buff[118+m]=0

Form.StringGrid.Cells[j-1,p+1-i] = '1';

Form.StringGrid.Cells[j,h+1-i] = '1';

;

if Buff[118+k+m]=15

Form.StringGrid.Cells[j-1,p+1-i] = '1';

Form.StringGrid.Cells[j,h+1-i] = '0'; ;

if Buff[118+k+m]=240

Form.StringGrid.Cels[j-1,ph+1-i] = '0';

Form.StringGrid.Cels[j,ph+1-i] = '1';

;

if Buff[118+k+m]=255

Form.StringGrid.Cels[j-1,ph+1-i] = '0';

Form.StringGrid.Cel[j,ph+1-i] = '0';

;

;

Form.StringGrid.Cell[j,i] = Inttr(Buff[118+k+j]);

k=k+truc(pw/2)+2;

j=0;

;

;

Рисунок 3.11 – Преобразование изображения из графического вида в цифровой табличный массив

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