Распознавание изображений с помощью нейронных сетей

Автор работы: Пользователь скрыл имя, 09 Сентября 2013 в 21:53, реферат

Описание работы

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

Файлы: 1 файл

РЕФЕРАТ.docx

— 1.38 Мб (Скачать файл)

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

 

 

 

 

ПРИМЕНЕНИЕ НЕЙРОННОЙ  СЕТИ ДЛЯ РАСПОЗНАВАНИЯ ЧАСТНЫХ  ПРИЗНАКОВ ЦИФРОВЫХ ДАКТИЛОСКОПИЧЕСКИХ ИЗОБРАЖЕНИЙ

 

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

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

                                 

Рисунок 1 – Координаты частных                      Рисунок 2 – Выборка областей изображения

                    признаков                                             для обучения сети с нулевым откликом

                                       

Рисунок 3 – Область изображения 9х9           Рисунок 4 – Результат работы нейронной сети    

                                                                                             с малым значением порога

                               

Рисунок 5 – Результат  работы НС                                  Рисунок 6 – Результат работы НС

       с малым значением порога                                         с большим значением порога

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

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

Были получены результаты работы программы на нескольких тестовых изображениях. Результаты приведены  на рис. 4-6. Синим цветом отмечены точки, в которых находятся частные признаки ДИ. Оранжевым цветом отмечены точки, в области которых нейронная сеть выдавала наибольший отклик. Красным цветом отмечены области, на которых нейронная сеть обучалась с нулевым откликом.

Очевидно, что нейронная  сеть обучается с некоторой ошибкой. На представленных рисунках видно, что  отклик сети в «красных» областях близок к нулю. Также есть некоторый  процент «попадания» в частные  признаки. Общая задача является достаточно сложной.

 

 

 

 

 

 

 

АЛГОРИТМ И  ПРОГРАММА ДЛЯ РАСПОЗНАВАНИЯ  ПОЛА ПО ФОТОГРАФИИ С ИСПОЛЬЗОВАНИЕМ ИНС

 

Одной из интересных задач распознавания  является распознавание лиц. Решение  этой задачи стало вычислительно  возможным буквально в последние  несколько лет. В конце 2011-го года фирмы Microsoft, Google и Apple анонсировали свои системы распознавания лиц. Благодаря этому стало возможным найти человека на Facebook или в Skype по его фотографии. Некоторые компании анонсировали ноутбуки, определяющие с помощью веб-камеры человека, работающего за ним. Производители утверждают, что система сможет распознать человека, даже если он снимет или наденет очки, сменит причёску. Это говорит о просто невероятных прорывах в области распознавания лиц.

Разработанная программа  для распознания пола по фотографии реализовывается на универсальной ЭВМ. Программа разработана в среде разработки программного обеспечения Microsoft Visual Studio 2010.

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

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

 Математический  алгоритм

Пусть к синапсам поступают  импульсы силы x1, x2, x3 соответственно, тогда после прохождения синапсов и дендритов к нейрону поступают импульсы w1x1, w2x2, w3x3. Нейрон преобразует полученный суммарный импульс x=w1x1+ w2x2+ w3x3 в соответствии с некоторой передаточной функцией f(x). Сила выходного импульса равна y=f(x)=f(w1x1+ w2x2+ w3x3). Таким образом, нейрон полностью описывается своими весами wk и передаточной функцией f(x). Получив набор чисел (вектор) xk в качестве входов, нейрон выдает некоторое число y на выходе. Схема нейрона приведена на рисунке 1.

Рисунок 1 – Схема нейрона

— входные сигналы, совокупность всех входных сигналов нейрона образует вектор x;

— весовые коэффициенты, совокупность весовых коэффициентов образует вектор весов w;

S – взвешенная сумма входных сигналов, значение NET передается на нелинейный элемент;

В качестве функции активации  был выбрана функция гиперболический  тангенс:

 

 

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

Схема алгоритма работы с  приложением приведена на рисунке 2

Рисунок 2 – Схема алгоритма  работы с приложением

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

Рисунок 8 – Результат  вычислительного эксперимента

После обучения сети и нажатия  кнопки "Результат" появляется окно, представленное на рисунке 9.

Рисунок 9 – Результат  вычислительного эксперимента

 

Первое число в окне показывает вероятность принадлежности лица на фотографии к мужскому полу(0.1668), второе - к женскому( 0.9114)

При загрузке другого изображения  и обучении сети результатом являются следующие показатели: вероятность  того, что на изображении мужчина = 0.8274, вероятность что это женщина = 0.3948. Результат вычислительного эксперимента приведен на рисунке 10.

Рисунок 10 – Результат  вычислительного эксперимента

 

ИСПОЛЬЗОВАНИЕ МНОГОСЛОЙНЫХ НЕЙРОННЫХ  СЕТЕЙ ДЛЯ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ

 

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

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

Рис. 1. Многослойная нейронная сеть для классификации изображений. Нейрон с максимальной активностью (здесь первый) указывает принадлежность к распознанному классу. 

 

МНС так же используется для непосредственной классификации изображений –  на вход подаётся или само изображение  в каком-либо виде, или набор ранее  извлечённых ключевых характеристик  изображения, на выходе нейрон с максимальной активностью указывает принадлежность к распознанному классу (рис. 1). Если эта активность ниже некоторого порога, то считается, что поданный образ не относится ни к одному из известных классов. Процесс обучения устанавливает соответствие подаваемых на вход образов с принадлежностью к определённому классу. Это называется обучением с учителем. В применении к распознаванию человека по изображению лица такой подход хорош для задач контроля доступа небольшой группы лиц. Такой подход обеспечивает непосредственное сравнение сетью самих образов, но с увеличением числа классов время обучения и работы сети возрастает экспоненциально. Поэтому для таких задач, как поиск похожего человека в большой базе данных, требует извлечения компактного набора ключевых характеристик, на основе которых можно производить поиск.

Свёрточная НС (СНС) обеспечивает частичную устойчивость к изменениям масштаба, смещениям, поворотам, искажениям. Архитектура СНС состоит из многих слоёв, каждый из которых имеет несколько плоскостей, причём нейроны следующего слоя связаны только с небольшим числом нейронов предыдущего слоя из окрестности локальной области (как в зрительной коре человека). Веса в каждой точке одной плоскости одинаковы (свёрточные слоя). За свёрточным слоем следует слой, уменьшающий его размерность путём локального усреднения. Затем опять свёрточный слой, и так далее. Таким образом, достигается иерархическая организация. Более поздние слои извлекают более общие характеристики, меньше зависящие от искажений изображения. Обучается СНС стандартным методом обратного распространения ошибки. СНС имеет существенные преимущества перед МНС как по скорости, так и по надёжности классификации. Полезным свойством СНС является и то, что характеристики, формируемые на выходах верхних слоёв иерархии, могут быть применимы для классификации по методу ближайшего соседа (например, вычисляя евклидово расстояние), причём СНС может успешно извлекать такие характеристики и для образов, отсутствующих в обучающем наборе. Для СНС характерны быстрая скорость обучения и работы. При тестировании СНС на базе данных ORL, содержащей изображения лиц с небольшими изменениями освещения, масштаба, пространственных поворотов, положения и различными эмоциями, показало приблизительно 98% точность распознавания, причём для известных лиц, предъявлялись варианты их изображений, отсутствующие в обучающем наборе. Такой результат делает эту архитектуру перспективной для дальнейших разработок в области распознавания изображений пространственных объектов.

МНС применяются и для обнаружения  объектов определённого типа. Кроме  того, что любая обученная МНС  в некоторой мере может определять принадлежность образов к “своим”  классам, её можно специально обучить  надёжному детектированию определённых классов. В этом случае выходными  классами будут классы, принадлежащие и не принадлежащие к заданному типу образов. В [11] применялся нейросетевой детектор для обнаружения изображения лица во входном изображении. Изображение сканировалось окном 20х20 пикселей, которое подавалось на вход сети, решающей принадлежит ли данный участок к классу лиц. Обучение производилось как с использованием положительных примеров (различных изображений лиц), так и отрицательных (изображений, не являющихся лицами). Для повышения надёжности детектирования использовался коллектив НС, обученных с различными начальными весами, вследствие чего НС ошибались по-разному, а окончательное решение принималось голосованием всего коллектива.

 

 

РАСПОЗНАВАНИЕ ЦИФР С ПОМОЩЬЮ СЕТЕЙ  ХОПФИЛДА 

В реализации сети Хопфилда, распознающей цифры, заданы в качестве эталона цифры от 1 до 9. Они представлены векторами размерности 81, содержащими 1 или -1. Эта размерность векторов была выбрана не случайно, так как сеть Хопфилда способна распознать примерно 0,15*N образов, здесь N – число нейронов в сети и соответственно размерность вектора образа. Алгоритм обучения следующий: если сеть в конечном состоянии имеет на выходе вектор, не являющийся точной копией одного из эталонных, но очень похожий на некоторый эталонный образ, то программа «узнает» его. То есть, на выходе сеть может иметь вектор, который не в точности является одним из эталонных, а в каком-то приближении. Конечная реализация распознает только цифры от 1 до 5, чтобы оставить наименее похожие друг на друга эталонные образы.

 

Рис. 6. Распознавание цифр сетью  Хопфилда

 

А вот наименее удачные  попытки распознавания:

 
Рис. 7. Неудачный пример работы сети Хопфилда.

 

 

ПРОГРАММА, СПОСОБНАЯ  РАСПОЗНАВАТЬ ГРАФИЧЕСКИ ПРЕДСТАВЛЕННЫЕ СИМВОЛЫ В ВИДЕ РАСТРОВОГО ИЗОБРАЖЕНИЯ  И ПРЕОБРАЗОВЫВАТЬ В ОБЫЧНЫЙ  ТЕКСТ

 

Этап 1. Выделение контура  объекта, определение его границ.

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

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

Информация о работе Распознавание изображений с помощью нейронных сетей