5. Реализация
Лично я использую для реализации различных алгоритмов, от которых не требуется функционирование в реальном времени Matlab. Это очень удобный пакет, M-язык которого позволяет сосредоточиться на самом алгоритме не заботясь о выделении памяти, операциях в/в и т.д. Кроме того, множество различных тулбоксов позволяет создавать поистине междисциплинарные приложения в кротчайшие сроки. Можно, например, с помощью Image Acquisition Toolbox подключить вебкамеру, с помощью Image Processing Toolbox обрабатывать изображение с нее, с помощью Neural Network Toolbox формировать траекторию движения робота, а с помощью Virtual Reality Toolbox и Control Systems Toolbox моделировать движение робота. Кстати о Neural Network Toolbox — это довольно гибкий набор инструментов, позволяющий создавать множество нейронных сетей различных типов и архитектур, но, к сожалению, не сверточные НС. Все дело в разделяемых весах. В NN toolbox возможность задавать разделяемые веса отсутствует. Чтобы устранить этот недостаток мною был написан класс, позволяющий реализовать СНС произвольной архитектуры и применять их к различным задачам. Скачать класс можно здесь. Сам класс был написан так, чтобы тому, кто им пользуется была максимальная видна структура сети. Все очень обильно прокомментировано, на названии переменных не экономил. Скорость симуляции сети неплоха и составляет доли секунды. Скорость обучения пока не велика (>10 ч), но следите за обновлениями, в ближайшее время планируется ускорение на порядки. Кого интересует реализация СНС на С++, могут найти ее здесь и здесь.
6. Результаты
В
программе на matlabcentral прилагается файл
уже натренированной нейросети, а также
GUI для демонстрации результатов работы.
Ниже приведены примеры распознавания:
По
ссылке
имеется таблица сравнения методов
распознавания на базе MNIST. Первое место
за сверточными нейросетями с результатом
0.39% ошибок распознавания [4]. Большинство
из этих ошибочно распознанных изображений
не каждый человек правильно распознает.
Кроме того в работе [4] были использованы
эластические искажения входных
изображений, а также предварительное
обучение без учителя. Но об этих методах
как нибудь в другой статье.
Алгоритмы распознавания образов
Теория технического зрения существует не первый день, по этому в литературе можно найти достаточно подходов и решений. Для начала перечислю некоторые из них: 1 Алгоритм скелетизации. В кратце, это некий метод распознавания одинарных бинарных образов, основанный на построение скелетов этих образов и выделения из скелетов ребер и узлов. Далее по соотношению ребер, их числу и числу узлов строится таблица соответствия образам. Так, например, скелетом круга будет один узел, скелетом буквы П - три ребра и два узла, причем ребра относятся как 2:2:1. В программировании данный метод имеет несколько возможных реализаций, подробнее информацию по методу скелетезации можно найти ниже в разделе ссылки. 2 Нейросетевые структуры. Направление было очень модным в 60е-70е годы, в последствии интерес к ним немного поубавился, т.к солидное число нейронов требует солидные вычислительные мощности, которые обычно отсутствуют на простеньких мобильных платформах. Однако надо иметь ввиду, что нейросети иногда дают весьма интересные результаты, засчет своей нелинейной структуры, более того некоторые нейросети способны распознавать образы инвариантные относительно поворота без какой либо внешней предобработки. Так например сети на основе неокогнейтронов способны выделять некоторые характерные черты образов, и распознавать их как бы образы не были повернуты. Подробнее про эти структуры можено узнать в разделе ссылки. 3 Инвариантрые числа. Из геометрии образов можно выделить некоторые числа, инвариантные относительно размера и поворота образов, далее можно составить таблицу соответствия этих чисел конкретному образу(почти как в алгоритме скелетезации). Примеры инвариантных числе - число эллера, экцентриситет, ориентация(в смысле расположения главной оси инерции относительно чего-нить тоже инвариантного). Некоторую информацию и мат. часть можно найти в разделе ссылки ниже. 4 Поточечное процентное сравнение с эталоном. Здесь должна быть некотороя предобработка, для получения инвариантности относительно размера и положения, затем осуществляется сравнение с заготовленной базой эталонов изображений - если совпадение больше чем какая-то отметка, то считаем образ распознанным.
РАСПОЗНАВАНИЕ ВИДЕООБРАЗОВ
Распознавание видеообразов уже долгое время остается популярной областью [120], привлекающей возможности самых разных областей математики, средств вычислительной техники и методов программирования. Наиболее распространенными методами распознавания изображений являются экстремально-корреляционные, статистические, структурно-лингвистические, геометрических инвариантов [2]. Прежде чем показать связь этих подходов с машинной графикой, дадим их общую краткую характеристику, определим те причины, которые задерживают методы распознавания в рамках лабораторий и оставляют проблему далекой от широкого практического применения.
Идея
экстремально-корреляционного решения
сводится к вычислению корреляционной
функции
исходного
изображения
и
изображения эталона
.
Вычислительные аспекты этого процесса
изучены в [42,45]. Если в исходном изображении
найдется фрагмент, идентичный
,
то в этом месте
возникнет
локальный экстремум. Все поле корреляционной
функции подвергают высокочастотной
фильтрации для подавления шумов, размытых
пиков и пороговым методом селектируют
положение эталонного объекта. Недостатками
экстремально-корреляционного метода
являются высокая чувствительность к
несовпадению масштаба, ориентации,
яркости и значительный объем вычислений.
Последний недостаток преодолевают
путем параллельных вычислений на
множестве специализированных
микропроцессоров, достигая высокой
скорости из-за потери универсальности
вычислителя. Метод может давать "ложные
тревоги" в случае отсутствия поискового
объекта в исходном изображении, и, кроме
того, имеется субъективизм в выборе
порога, вида высокочастотного фильтра
и некоторых других параметров.
Положительной чертой метода является
то, что он работает непосредственно с
изображением, а не с производными
признаками.
Статистические методы [55] основываются на идее сходства некоторых статистических характеристик (математического ожидания, дисперсии, моментов высшего порядка, гистограмм ...) изображения эталона и их проявлений на анализируемом изображении. Такой подход пригоден для решения задачи распознавания после того, как объект обнаружен, что само по себе остается проблемой. Кроме того, метод анализирует лишь часть содержащейся на изображении информации, игнорируя такие важные характеристики, как форма и структура. Метод оперирует небольшим числом сравнительно просто вычисляемых признаков, что делает его пригодным в частных случаях.
Сущность структурных методов заключается в выделении на распознаваемом и эталонном изображениях некоторых признаков и их связей, кодировании признаков и связей на формальном языке и решении задачи идентичности семантических образов эталона и анализируемого изображения. В качестве признаков, например, могут использоваться фрагменты контурной линии изображения объекта, такие как прямые и дуги определенных направлений. Описываемый подход инвариантен к масштабу, повороту, яркости, однако сам процесс извлечения признаков из изображения остается проблемным и обычно решается субъективным вмешательством.
Метод геометрических инвариантов оперирует такими признаками изображения, как площадь фигуры и площадь выпуклой оболочки, длина периметра, величины углов смежных контурных линий, и их соотношениями в различных сочетаниях. Для выделения этих признаков эталон и анализируемое изображение подвергают бинаризации. Метод может быть применен только в частных случаях.
Все перечисленные методы объединяет общая идея сравнения эталонного и анализируемого изображений непосредственно или через вторичные признаки. Вне зависимости от метода качество сравнения в сильной степени зависит от идентичности условий освещения и наблюдения анализируемого и эталонного изображений.
Бинарное изображение.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
