Uploaded by Ilyos Xujayorov

v17-1222

advertisement
Санкт-Петербургский политехнический университет Петра Великого
Институт компьютерных наук и технологий
Кафедра информационных и управляющих систем
Работа допущена к защите:
Зав. кафедрой ИУС
П.Д. Дробинцев
«
»
2016 г.
ДИПЛОМНАЯ РАБОТА
Тема: Разработка системы распознавания трёхмерных
объектов по облакам точек на основе поля оптического
потока с применением многослойной нейросети
Профиль подготовки: 230102 – Автоматизированные системы обработки информации и управления
Выполнил студент гр. 63504/1 Эстерлейн С.Ю.
Руководитель к.т.н., доцент Сараджишвили С.Э.
Санкт-Петербург
2016
САНКТ-ПЕТЕРБУРГСКИЙ ПОЛИТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ПЕТРА ВЕЛИКОГО
Институт компьютерных наук и технологий
Кафедра «Информационные и управляющие системы»
УТВЕРЖДАЮ
«_______»
__________________ 2016 г.
Зав кафедрой П.Д.Дробинцев
_________________________
ЗАДАНИЕ
на дипломное проектирование
студенту гр. 63504/1 Эстерлейн Станиславу Юрьевичу
1. Тема работы: Разработка системы распознавания трёхмерных объектов по облакам точек на основе поля оптического потока с применением многослойной нейросети.
Утверждена
распоряжением
по
ИКНТ
_________________________№___________.
2
от
2.
Срок
сдачи
студентом
законченной
работы
__________________________________.
3. Исходные данные к работе: Имеется входящий поток
полезной нагрузки с фото- и видеокамер БЛА. Требуется
реализовать проектную часть системы, обрабатывающей
поток для обнаружения объектов военной техники и военной инфраструктуры в условиях недостаточной видимости, низкой частоты кадров, невысокой разрешающей
способности регистрирующего оборудования и шумов
различного происхождения.
Литература.
3.1. Форсайт Д.А., Понс Ж. Компьютерное зрение. Современный подход. - М.: Вильямс, 2004г. – ? с.
3.2. Уоссермен Ф. Нейрокомпьютерная техника: Теория
и практика. - М.: Мир, 1992.- ? с.
4. Содержание расчетно-пояснительной записки (перечень подлежащих разработке вопросов)
4.1. Обзор принципов работы и сферы применения современных методов машинного обучения и распознавания
образов.
3
4.2. Разработка алгоритма системы на основе ансамбля
нейронных сетей. Разработка подсистемы формирования
трёхмерной структуры объекта на основе детерминистского алгоритма сопровождения особых точек.
4.3 Разработка подсистемы распознавания на основе двумерных изображений и трёхмерной структуры объектов
с использованием двух обученных искусственных многослойных нейронных сетей свёрточного типа, включающее формирование обучающих и тестовых выборок,
обучение нейросетей.
4.4. Проведение испытаний системы распознавания на
тестовых выборках, исследование поведения нейросетей.
Представление экспериментальных результатов.
5. Перечень графического материала (с точным указанием
обязательных чертежей)
______________________________________________
______________
6. Консультанты по проекту (с указанием относящихся к
ним разделов работы)
_____________________________________________
______________
7. Дата выдачи задания
4
_____________________________________________
______________
Руководитель_____________доц., к.т.н.Сараджишвили С.Э.
Задание принял к исполнению____________Эстерлейн С.Ю.
(дата)
__________________________
(подпись студента)
5
Реферат
Ключевые слова: искусственный интеллект, машинное обучение, распознавание образов, компьютерное
зрение, искусственная нейронная сеть, свёрточная
нейронная сеть, неокогнитрон, глубокое обучение, deep
learning, преобразование Гаусса, особые точки, SIFT,
SURF, structure from motion, bundle adjustment, оптический поток, метод Лукаса-Канаде, субдискретизация,
max-pooling, softmax, ReLU, LeNet, AlexNet, GoogLeNet,
VGG, ResNet, Inception, Torch, Theano, Caffe, Tensor
Flow.
Объектом исследования в данной работе являются
современные методы машинного обучения и распознавания образов.
Цель работы:
разработка основы для интегрированной автоматизированной гибридной системы обнаружения объектов многофункционального беспилотного комплекса «Орлан10», входящего в состав системы управления тактическим звеном ЕСУ ТЗ и комплекса радиоэлектронной
борьбы РБ-341В «Леер-3».
При выполнении работы были решены следующие задачи:
1. Выполнен обзор принципов работы и сферы применения современных методов машинного обучения, распознавания образов и компьютерного зрения.
6
2. Разработан алгоритм системы на основе нейронных сетей. Разработана подсистема формирования трёхмерной структуры объекта на основе детерминистского алгоритма сопровождения особых точек.
3. Сформированы обучающие выборки, произведено обучение классификаторов.
4. Проведены испытания системы распознавания на
тестовых выборках, исследовано поведение классификаторов.
7
Оглавление
Реферат ......................................................................................... 6
Обозначения и сокращения ...................................................... 13
Введение ..................................................................................... 14
1. Обзор классических методов в проблематике дисциплин
машинного обучения,
компьютерного зрения
и распознавания образов ........................................................... 16
1.1. Введение в машинное обучение ....................................16
1.2. Введение в теорию распознавания образов .................17
1.3. Введение в компьютерное зрение .................................19
1.4. Классические методы машинного обучения,
распознавания образов и компьютерного зрения ...............20
1.4.1. Фильтрация ............................................................. 21
1.4.1.1. Бинаризация по порогу, выбор области
гистограммы .................................................................. 21
1.4.1.2. Преобразование Фурье ................................... 22
1.4.1.3. Фильтры частот ................................................ 22
1.4.1.4. Вейвлет-преобразование ................................ 23
1.4.1.5. Вычисление показателей корреляции ........... 23
1.4.1.6. Фильтры функций ............................................ 24
1.4.1.7. Фильтры контуров ........................................... 24
1.4.1.8. Другие фильтры ............................................... 25
1.4.2. Анализ ...................................................................... 25
1.4.2.1. Математическая морфология ......................... 26
1.4.2.2. Контурный анализ............................................ 26
8
1.4.2.3. Поиск особых точек (feature detection) .......... 28
1.4.2.4. Детектор MSER (Maximally Stable Extremal
Regions) .......................................................................... 28
1.4.2.5. DoG (Difference of Gaussian) ............................ 29
1.4.2.6. Детекторы углов Моравеца и Харриса .......... 29
1.4.2.7. SUSAN (Smallest Univalue Segment Assimilation
Nucleus) .......................................................................... 31
1.4.2.8. Оператор Тряковица ........................................ 32
1.4.2.9. CSS (Curvature Scale Space) .............................. 32
1.4.2.10. Детектор FAST (Features from Accelerated Test)
........................................................................................ 33
1.4.2.11. Другие детекторы .......................................... 35
1.4.2.12. Дескрипторы особых точек ........................... 35
1.4.2.13. Дескриптор SIFT (Scale Invariant Feature
Transform) ...................................................................... 36
1.4.2.14. Дескрипторы PCA-SIFT, GLOH и DAISY .......... 38
1.4.2.15. Дескриптор SURF (Speeded Up Robust
Features) ......................................................................... 39
1.4.2.16. Другие детекторы и дескрипторы особых
точек............................................................................... 40
1.4.2.17. SFM (Structure from Motion) .......................... 41
1.4.2.18. Оптический поток .......................................... 41
1.4.2.19. Bundle Adjustment .......................................... 42
1.5. Искусственная нейронная сеть ......................................42
1.5.1. Архитектура ИНС ..................................................... 43
1.5.2. Виды многослойных ИНС ....................................... 44
9
1.5.2.1. Перцептрон ...................................................... 45
1.5.2.2. Нейронная сеть Кохонена ............................... 47
1.5.2.3. Когнитрон и неокогнитрон, свёрточная
нейронная сеть ............................................................. 48
1.5.2.4. Рекуррентная нейронная сеть ........................ 52
1.5.2.5. Современные глубокие нейронные сети ...... 52
1.5.3. Функции активации нейронов ............................... 53
1.5.3.1. Пороговая функция активации ....................... 53
1.5.3.2. Линейная функция активации ........................ 54
1.5.3.3. Сигмоидальная функция активации............... 54
1.5.3.4. Гиперболический тангенс ............................... 55
1.5.3.5. ReLU (Rectified Linear Unit) .............................. 55
1.5.4. Обучение нейронных сетей ................................... 56
1.5.4.1. Обучение с учителем ....................................... 57
1.5.4.2. Обучение без учителя ..................................... 57
1.5.4.3. Метод обратного распространения ошибки
(Backprop) ...................................................................... 58
1.5.4.4. Генетические алгоритмы................................. 60
1.5.4.5. Дополнительные методы, используемые при
обучении сети ............................................................... 60
1.5.4.6. Dropout ............................................................. 60
1.5.4.7. Другие методы регуляризации....................... 61
1.5.5. Современные гибридные архитектуры глубокого
обучения ............................................................................ 61
1.5.5.1. Softmax-слои .................................................... 61
10
1.5.5.2. Субдискретизация, Max-Pooling-слои ............ 62
1.5.5.3. LeNet ................................................................. 62
1.5.5.4. AlexNet .............................................................. 63
1.5.5.5. GoogLeNet, Inception ........................................ 63
1.5.5.6. ResNet (Residual Network), Inception-ResNet .. 64
1.5.6. Сравнение библиотек глубокого обучения .......... 65
1.5.6.1. Torch .................................................................. 65
1.5.6.2. Theano ............................................................... 66
1.5.6.3. Caffe .................................................................. 66
2. Разработка системы распознавания ..................................... 67
2.1. Общее описание параллельного алгоритма .................67
2.2. Описание алгоритма взаимодействия двух нейросетей,
работающих с данными разных размерностей ...................69
2.3. Выбор архитектуры нейросетей ....................................70
2.3.1. Модель Caffe ........................................................... 70
2.3.2. Базовая архитектура нейросети ............................ 72
2.3.3. Архитектура нейросети для двухмерных данных 75
2.3.4. Архитектура нейросети для трёхмерных данных 75
2.4. Описание алгоритма SFM для
формирования
трёхмерных данных...............................................................75
2.4.1. Bundler SFM ............................................................. 76
3. Реализация алгоритмов и обучение
нейросетей ............. 77
3.1. Используемое оборудование и программное
обеспечение............................................................................77
3.2. Выбор моделей для проведения
эксперимента
.................................................................................................77
11
3.3. Подготовка обучающей выборки для первой нейросети
.................................................................................................80
3.4. Подготовка обучающей выборки для второй нейросети
.................................................................................................81
3.5. Обучение классификаторов ...........................................82
4. Результаты испытания системы ........................................... 83
Заключение ............................................................................84
Список использованных источников ...................................85
12
Обозначения и сокращения
ИНС – искусственная нейронная сеть
НС1 – нейронная сеть номер один для двухмерных данных
НС2 – нейронная сеть номер два для трёхмерных данных
БЛА, БПЛА – беспилотный летательный аппарат
БПФ – быстрое преобразование Фурье
13
Введение
Одними из важнейших областей исследований и
разработок современной кибернетики являются области
машинного обучения, распознавания образов и компьютерного зрения. Ускоряющиеся темпы развития технологий информационного общества, развитие робототехники, развитие концепций «умный дом» и «умный город», развитие интернета вещей и систем искусственного
интеллекта определяют этой области особое место в современном научном знании. Во многих прикладных задачах в практике современного программирования используются методы сбора данных, кластеризации и классификации, методы статистического вывода. В повседневную жизнь, как и в корпоративную, и в промышленную среды начинают внедрятся технологии, постепенно
стирающие грань между реальным и виртуальным пространством, что требует нового качественного уровня
повсеместно внедряемых технологий распознавания, чья
область применения в последние годы выросла колоссально: считавшиеся сложнейшими ранее задачи распознавания сегодня круглосуточно решаются мобильными
устройствами рядовых граждан. Компьютеризированные
пространства с выраженной топологией, такие как «умный дом» рядового пользователя, многопользовательская дополненная и многопользовательская виртуальная
реальности различной степени погружения, усложняющийся искусственный интеллект в компьютерных играх
различного назначения требуют новых идей и подходов,
нового уровня точности и скорости распознавания образов.
14
Эффективность распознавания образов в процессе
роботизации экономики и производства, роботизации
спасательных мероприятий, роботизации вооружённых
сил и частных армий, действующих в интересах государства и других корпоратократических объединений, становится вопросом сохранения человеческих жизней.
Целью данной работы является разработка проекта эффективной многоступенчатой системы обнаружения объектов военной техники и военной инфраструктуры, определение их параметров в условиях недостаточной видимости, шумов различного происхождения, низкой частоты кадров и невысокой разрешающей способности регистрирующего оборудования. Система должна
быть разработана для комплексов разведывательных беспилотных летательных аппаратов, выполняющих групповые задачи в автономном режиме.
В процессе выполнения поставленной задачи
необходимо:
1. Рассмотреть основные принципы и существующие методы решения задач машинного обучения, распознавания образов и компьютерного
зрения, провести анализ доступных существующих
систем.
2. Разработать алгоритм и подробно описать
предложенный подход к решению поставленной задачи с использованием моделей.
3. Обучить классификатор с использованием
моделей.
4. Провести испытания предложенной подсистемы распознавания с использованием моделей.
15
1. Обзор классических методов в проблематике
дисциплин машинного обучения,
компьютерного зрения
и распознавания образов
1.1. Введение в машинное обучение
Машинное обучение – это обширный подраздел
теории искусственного интеллекта, строгая математическая дисциплина, использующая разделы математической статистики, численных методов оптимизации, теории вероятностей [7].
Существует два типа машинного обучения: обучение по прецедентам (индуктивное обучение), основанное
на эмпирических данных, и дедуктивное обучение, предполагающее формализацию знаний и формирование
базы знаний. Дедуктивное обучение принято относить к
области экспертных систем, поэтому в теории и практике
машинного обучения фактически рассматривается обучение по прецедентам.
Раздел машинного обучения возник в результате
разделения науки о нейронных сетях в рамках науки об
искусственном интеллекте на методы обучения сетей и
виды топологий архитектуры сетей, вобрав в себя некоторые другие области, такие как методы математической
статистики и теорию дискретного анализа [7]. Этим обусловлена специфика рассматриваемых способов обучения в рамках дисциплины:
16
• Обучение с учителем – для каждого прецедента существует пара «ситуация, решение»
• Обучение без учителя – система группирует объекты в кластеры и понижает размерность
входной информации, используя данные о попарном сходстве
• Обучение с подкреплением – для каждого
прецедента существует пара «ситуация, реакция
среды» (обучение с подкреплением можно считать
частным случаем обучения с учителем, так и частным случаем обучения без учителя)
Существуют также другие, менее распространённые способы обучения, например, активное обучение
(обучаемый алгоритм имеет возможность назначить следующую исследуемую ситуацию), частичное привлечение учителя, трансдуктивное обучение, многозадачное и
многовариантное обучение, но отличия в этих способах
несущественны в рамках рассматриваемой проблемы.
Все перечисленные способы можно использовать для
классификации традиционных методов машинного обучения и для классификации алгоритмов обучения
нейронных сетей, реализующих любой из них.
Современное машинное обучение сталкивается с
острой проблемой универсальности, поскольку практически не существует однородного пространства алгоритмов и метода общего решения проблемы индукции [4].
1.2. Введение в теорию распознавания образов
17
Теория распознавания образов существует как
раздел информатики и смежных дисциплин, развивающий методы классификации и идентификации объектов
различной природы: сигналов, ситуаций, предметов, характеризуемых конечным множеством некоторых признаков [8].
Проблема распознавания образов также оказывается в поле междисциплинарных исследований – в том
числе в связи с работой по созданию искусственного интеллекта, а также часто используется при решении практических задач области компьютерного зрения, к чему
относится и рассматриваемый случай.
При постановке классической задачи распознавания образов принято использовать строгий математический язык, основываясь на логических рассуждениях и
математических доказательствах. В противоположность
этому подходу, существуют методы распознавания образов с использованием машинного обучения и искусственных нейронных сетей, сформированные не столь строго
формализованными подходами к распознаванию, но, как
будет показано далее, демонстрирующие не худший, а в
некоторых случаях значительно превосходящий классические методы результат.
Характер проблематики распознавания образов
также ограничивает область применения различных традиционных методов узкими специализированными
направлениями, в каждом из которых наиболее эффективными оказываются одни методы и неэффективными
другие. Этот фактор обуславливает сложность общего
решения проблемы индукции и в этой дисциплине.
18
1.3. Введение в компьютерное зрение
Область компьютерного зрения, в свою очередь,
развивается как теория и технология создания машин,
производящих обнаружение, отслеживание и классификацию объектов. Как научная дисциплина, компьютерное зрение тесно связано с машинным обучением и теорией распознавания образов, но относится к более специализированной сфере теории и технологии создания искусственных систем, получающих информацию и оперирующих информацией из изображений [9]. Автоматическое планирование или принятие решений на основе подсистем компьютерного зрения так же занимает важную
часть в области искусственного интеллекта, поскольку
автономные системы достаточно сложного уровня организации, выполняющие некоторые механические действия (например, перемещение робота через некоторую
среду), нуждаются в высокоуровневых данных, представляющих информацию о среде, в которой они функционируют. Поэтому компьютерное зрение, как и распознавание образов, тесно связано с обработкой сигналов,
ведь многие методы обработки одномерных сигналов могут быть естественным путём расширены для обработки
двумерных или многомерных сигналов в рамках теории
компьютерного зрения, использующей статистику, методы оптимизации и геометрии.
Компьютерное зрения также тесно связано с областями обработки изображений и машинного зрения. Область обработки изображений сосредоточена на анализе
и преобразованиях одних изображений в другие с использованием математических методов. Область машин19
ного зрения, часто рассматриваемая как раздел более общей теории компьютерного зрения, сосредоточена на
технологиях промышленного применения. Существуют
также и другие более узкие области, связанные, зависящие или возникшие на основе теории компьютерного
зрения, такие как, например, область визуализации, сосредоточенная на процессе создания изображений, их обработкой и анализом [9].
Теория компьютерного зрения исследует методы
обработки не только двухмерных изображений, но и работает с трёхмерными сценами, что будет продемонстрировано в рамках данной работы.
В данный момент не существует ни стандартной
формулировки проблемы компьютерного зрения, ни
формулировки того как должна решаться проблема компьютерного зрения, вместо чего разработана масса методов для решения различных строго определённых задач,
при этом используемые методы редко обобщаются для
широкого круга применения. Как и в рассмотренных
выше двух крупных теориях, исследуемых и применяемых в данной работе, этот фактор порождает сложности
при решении общей проблемы индукции в теории компьютерного зрения.
1.4. Классические методы машинного обучения,
распознавания образов и компьютерного зрения
Здесь и далее теория компьютерного зрения, теория распознавания образов, теория машинного обучения
и обработка изображений будут рассматриваться в
20
смысле распознавания образов в компьютерном зрении.
В ином случае будет указан другой смысл. В целях краткости может упоминаться только одна из этих дисциплин
в зависимости от контекста.
Классические методы компьютерного зрения, распознавания образов и машинного обучения можно
условно разделить на три группы:
• Методы фильтрации
• Методы анализа
• Методы обучения
Основные классические методы реализованы в
библиотеке OpenCV, написанной на C/C++, и занимающей доминирующее положение при решении задач компьютерного зрения с использованием классических подходов.
1.4.1. Фильтрация
В задачах компьютерного зрения фильтрация
чаще всего используется для предварительной обработки
изображения перед анализом его внутренних морфологических признаков, но встречаются и задачи, в которых
достаточным и желательным будет использование
только фильтрации как таковой (например, в задачах машинного зрения).
1.4.1.1. Бинаризация по порогу, выбор области гистограммы
Для RGB изображения и изображения в градациях
серого порогом является значение цвета. Выбор порога,
21
по которому происходит бинаризация, во многом определяет процесс бинаризации. Обычно бинаризация осуществляется с помощью адаптивного алгоритма, выбирающего порог. Таким алгоритмом может являться выбор
математического ожидания, моды или пиков гистограммы. При работе с гистограммой бинаризация эффективна для сегментации цветов.
1.4.1.2. Преобразование Фурье
Преобразование Фурье (БПФ) почти не используется при обработке изображений в чистом виде, поскольку для анализа изображений одномерного преобразования обычно не хватает и возникает необходимость
использования куда более ресурсоёмкого двумерного
преобразования. Этот метод применяется только в случае
если необходим анализ спектра, поскольку использование свёртки интересующей области с уже готовым фильтром оказывается быстрее и проще в реализации. Тем не
менее, одномерное преобразование Фурье применяется
при компрессии изображений [6].
1.4.1.3. Фильтры частот
Простейший пример фильтра низких частот –
фильтр Гаусса, фильтра высоких частот – фильтр Габора.
Для каждой точки изображения выбирается окно, в рамках которого выполняется произведение исходных данных с фильтром того же размера (свёртка). Такой подход
получил достаточно широкое распространение в практике, позволяя выделять на изображении интересующую
22
информацию, редуцируя лишнюю информацию. В частности, подход распространён как одна из реализаций
быстрого шумоподавления во многих областях науки и
техники [6].
1.4.1.4. Вейвлет-преобразование
Для свёртки с сигналом (областью изображения)
используется некая характеристическая функция, называемая вейвлетом, что определяется как вейвлет-преобразование. Вейвлеты – это семейства функций, локальных по времени и по частоте, в которых все функции получаются из одной посредством её сдвигов и растяжений
по оси времени. Существует набор классических функций, используемых в вейвлет-анализе. К ним относятся
вейвлет Хаара, вейвлет Морле, вейвлет MHat, вейвлет
Добеши. На практике вейвлет-анализом называется поиск произвольного паттерна на изображении при помощи свёртки изображения с моделью этого паттерна.
Классические вейвлеты используются для сжатия или
классификации изображений [6].
1.4.1.5. Вычисление показателей корреляции
Вычисление корреляции, лежащей в основе
вейвлет-преобразования, само по себе является незаменимым инструментом в системах компьютерного зрения
и часто используется в своём естественном виде, например, для нахождения сдвигов или оптических потоков
(корреляция видеопотока). На основе разностного коррелятора реализуется простейший детектор сдвига [6].
23
1.4.1.6. Фильтры функций
В этом подходе используются математические
фильтры, позволяющие обнаруживать простые математические функции на изображении, для чего формируется аккумулирующее изображение (накопительное пространство), в котором для каждой точки исходного изображения строится множество порождающих её функций.
Классическим примером является обобщённое преобразование Хафа, применяемое к бинаризованным изображениям, позволяющее находить на изображении любые
параметризируемые функции. Модифицированное преобразование Хафа позволяет искать любые фигуры, но в
обработке изображений его использование связано с недостаточной стабильностью: высокая чувствительность
к качеству бинаризации и низкая скорость работы заставляют искать этому методу более эффективные альтернативы. Аналогом преобразования Хафа для прямых является преобразование Радона, применяемое к небинаризованным изображениям и вычисляемое через БПФ, что
даёт значительный выигрыш в производительности на
больших массивах данных [5,6].
1.4.1.7. Фильтры контуров
Фильтры контуров очень полезны при решении
задач компьютерного зрения в случае если необходима
реализация обработки сложных объектов на изображении. Фильтрацию контуров реализует ряд алгоритмов,
таких как: оператор Кэнни, являющийся наиболее часто
используемым алгоритмом поиска контуров, оператор
Собеля, оператор Лапласа, оператор Прюитт, оператор
24
Робертса. Алгоритм Кэнни реализует понятие подавления немаксимумов, означающее, что пикселями границ
объявляются пиксели, в которых достигается локальный
максимум градиента в направлении вектора градиента. В
компьютерном зрении и обработке изображений при поиске границ объектов кроме особенных частных случаев
трудно найти детектор, который бы работал существенно
лучше, чем детектор Кэнни.
1.4.1.8. Другие фильтры
Модификации вышеуказанных фильтров позволяют решить подавляющее число задач фильтрации на
уровне классических методов, но кроме них существуют
десятки более специализированных алгоритмов фильтрации, на практике используемых значительно реже.
Наиболее интересными являются итерационные фильтры, такие как активная модель внешнего вида, риджлетпреобразование, курвлет-преобразование, возникшие на
основе классических вейвлет-функций и анализа в поле
преобразования Радона, бимлет-преобразование, реализующее отчасти задачу фильтрации, отчасти – задачу
анализа, позволяющее находить контуры объектов. Эти
фильтры обладают редкой спецификой и в силу своей узкой направленности не будут рассматриваться в рамках
данной работы подробнее.
1.4.2. Анализ
С помощью фильтрации можно получить набор
пригодных для обработки данных, но большинство задач
25
области компьютерного зрения требуют анализа внутренней структуры изображения и морфологических признаков изображённых объектов, для чего исследуются и
внедряются методы логического анализа изображений.
1.4.2.1. Математическая морфология
Методы математической морфологии являются
результатом теории и техники анализа и обработки геометрических структур, основанных на теории множеств,
топологии и случайных функциях. Эти методы реализуются базовыми операциями переноса, наращивания и
эрозии двоичных изображений, а также производными
операциями [10]. Операции двоичной морфологии являются некоторым преобразованием упорядоченного множества или подмножества (области изображения) с помощью структурного элемента. Структурным элементом
является двоичное изображение произвольного размера
и произвольной структуры, но чаще всего используются
симметричные элементы, как прямоугольник фиксированного размера или круг фиксированного диаметра. Результатом преобразования также является двоичное
изображение.
Методы математической морфологии позволяют
удалять шумы из двоичных изображений, а также реализуют алгоритмы поиска контуров, но на практике эти методы используются в связке с другими алгоритмами [6].
1.4.2.2. Контурный анализ
Контурный анализ – это мощный математический
аппарат, позволяющий описывать, хранить и находить
26
объекты, находящиеся в форме внешних абрисов. Выше
рассматривались фильтры контуров, в частности, оператор Кэнни, результатом применения которого естественным образом являются контуры объектов на изображении без применения дополнительной бинаризации. В
контурном анализе предварительные стадии фильтрации
и дополнительной бинаризации являются обязательными
прикладными задачами. Предполагается, что контур содержит необходимую информацию о форме объекта, а
внутренние точки во внимание не принимаются, что
ограничивает область применимости алгоритмов контурного анализа, но полученные с его помощью контуры
позволяют перейти от двухмерного пространства образа
к пространству контуров, в некоторых задачах значительно уменьшая алгоритмическую сложность [5]. Методы контурного анализа инвариантны относительно переноса, поворота и масштабирования изображения объекта. Среди методов контурного анализа можно выделить отслеживающие алгоритмы, в которых контур объекта отслеживается и векторизуется; сканирующие алгоритмы, основанные на просмотре всего изображения и
выделении контурных точек без отслеживания; алгоритмы отслеживания контуров на полутоновых изображениях, выделение линеаментов, кусочно-линейную аппроксимацию, аппроксимацию сплайнами и исследование функции кривизны.
На практике методы контурного анализа достаточно чувствительны к условиям среды, что может затруднить их использование в реальных условиях для
большинства задач компьютерного зрения, однако они
полезны в задачах машинного зрения, когда условия
среды достаточно строго определены. В таких ситуациях
27
методы контурного анализа являются непревзойдёнными лидерами по быстродействию, обладая понятной и
предсказуемой логикой, что обуславливает удобство их
использования в специализированных областях [6].
1.4.2.3. Поиск особых точек (feature detection)
Для решения вспомогательной прикладной задачи
в данной работе будет применён один из алгоритмов feature detection, поэтому на этой теме стоит остановиться
подробнее. Поиск особых точек является одним из
наиболее распространённых методов в классическом
компьютерном зрении. Особые точки предоставляют
уникальные характеристики объекта, позволяя сравнивать различные изображения одного объекта или одного
класса объектов между собой. Поэтому на практике особые точки наиболее актуальны в задачах, в которых возможным решением является обработка серии изображений или видеопотока и последующий анализ полученных
массивов особых точек. Алгоритмы feature detection
можно условно классифицировать по степени стабильности точек при переходах от одного изображения (кадра)
объекта или класса объектов к другому. Сложность алгоритмов поиска возрастает с требуемым уровнем стабильности искомых точек.
1.4.2.4. Детектор MSER (Maximally Stable Extremal Regions)
28
Детектор MSER выделяет множество различных
регионов с экстремальными свойствами функции интенсивности внутри региона и на его внешней границе. Бинаризация и функция порога интенсивности позволяют
алгоритму построить дерево, описывающее иерархию
связанных компонент на бинаризованных изображениях.
Поиск локальных минимумов для всех компонент и сравнение их наборов для каждой компоненты позволяет получить набор локальных минимумов, соответствующих
экстремальным регионам на исходном изображении. Детектор MSER обладает свойством инвариантности к
афинным преобразованиям интенсивностей, обладает
достаточной устойчивостью, одновременно детектирует
области разного масштаба и обладает высокой вычислительной эффективностью [5].
1.4.2.5. DoG (Difference of Gaussian)
Разность гауссианов вычисляется путём попиксельного вычитания одного гауссиана исходного изображения из гауссиана этого изображения с другим радиусом размытия. Набор получаемых гауссиан образует масштабируемое пространство, обладающее свойством линейности, инвариантности относительно сдвигов, вращений, масштаба, отсутствия смещений локальных экстремумов. Точка считается особой если она является локальным экстремумом разности гауссианов.
1.4.2.6. Детекторы углов Моравеца и Харриса
29
Особые точки, остающиеся стабильными на протяжении нескольких секунд потока применяются для детектирования объекта между несколькими десятками соседних кадров видео или набора изображений. На практике эти алгоритмы часто применяются для сведения
изображения с соседних камер наблюдения. К базовым
методам этих алгоритмов относятся: поиск локальных
максимумов изображения, детектирование углов на
изображении, поиск максимумов дисперсии, поиск определённых градиентов.
Одним из наиболее распространённых типов особых точек являются углы на изображении, так как в отличие от рёбер углы на паре изображений можно однозначно сопоставить. Расположение углов определяется с
помощью локальных детекторов. Входом локальных детекторов является чёрно-белое изображение, а выходом
– матрица с элементами, значения которых определяют
степень правдоподобности нахождения угла в соответствующих пикселях изображения. Далее выполняется отсечение пикселей со степенью правдоподобности
меньше заданного порога.
Самым простым детектором углов является детектор Моравеца, измеряющий изменение интенсивности
пикселя посредством смещения небольшого квадратного
окна на один пиксель по изображению в каждом из
восьми принципиальных направлений (горизонтальных,
вертикальных, диагональных). Для детектора Моравеца
характерна анизотропия по всем направлениям и основными его недостатками являются отсутствие инвариантности к преобразованиям типа «поворот» и возникновение ошибок детектирования при наличии большого количества диагональных рёбер.
30
Детектор Харриса и Стефана является улучшением детектора Моравеца. В его основе лежит рассмотрение производных по некоторым принципиальным
направлениям, разложение функции интенсивности в ряд
Тейлора, в результате чего характеристикой интенсивности является автокорреляционная матрица Харриса, в которой выбирается взвешенная свёртка с весовыми коэффициентами Гауссова ядра, что значительно превосходит
детектор Моравеца по количеству вычислений. Детектор
Харриса и Стефана обладает свойством анизотропии
вдоль горизонтального и вертикального направлений,
инвариантен относительно поворотов, а количество ошибок детектирования углов невелико за счёт введения
свёртки с Гауссовыми весовыми коэффициентами. Детектор Харриса обладает достаточно высокой чувствительностью к шуму, а результаты детектирования зависят от масштаба изображения [5,6].
1.4.2.7. SUSAN (Smallest Univalue Segment Assimilation
Nucleus)
Алгоритм SUSAN определяет углы сегментацией
окрестностей в схожие и несхожие участки. Для каждого
пикселя рассматривается круговая область фиксированного радиуса. Центр пикселя называется ядром, значение
его интенсивности запоминается. Все остальные пиксели
разделяются на две категории по критерию схожести.
Углы находятся там, где относительная площадь схожих
участков (similar USAN) достигает локального минимума
ниже определенного порога. Для повышения устойчивости алгоритма ближайшим к ядру пикселям присваиваются более высокие весовые коэффициенты.
31
Алгоритм демонстрирует достаточно высокую
точность на чётких изображениях, но неустойчив на размытых изображениях.
1.4.2.8. Оператор Тряковица
Алгоритм Тряковица и Хедли реализуется в двух
видах: как 4-х связный и как 8-ми связный. Алгоритм
сканирует области вокруг текущего пикселя путём сравнения диаметрально противоположных пикселей, лежащих на окружности с центром в текущем. Вводится
функция отклика CRN (Corner Request Function), возрастающая в ситуации, когда нет направления, в котором
центральный пиксель близок по интенсивности к двум
рассматриваемым на окружности.
В сравнение с детектором Харриса частота повторяемости оператора Тряковица хуже, однако локализация сравнима с определением L-связных углов и превосходит на других видах углов. Также к недостаткам следует отнести то, что 4-связный оператор ложно реагирует
на диагональные края и чувствителен к шуму, поэтому на
практике используется 8-связная версия оператора Тряковица, которая, тем не менее, всё еще находит ложные
углы на некоторых диагональных гранях объекта, плохо
проявляет себя на искусственных изображениях.
1.4.2.9. CSS (Curvature Scale Space)
Алгоритм CSS основан на кривизне масштабируемого пространства и обнаруживает углы на плоских
прямых. CSS подходит для извлечения инвариантных
32
геометрических особенностей на плоской кривой в различных масштабах. Алгоритм определяет особые точки,
используя несколько масштабов одного и того же изображения. Однако он является вычислительно сложным и
обнаруживает ложные углы на круговых областях. На
первой стадии работы алгоритма применяется оператор
Кэнни, после чего из бинарной карты выделяются контуры границ и вычисляются их значения кривизны на
наибольшем масштабе. Начальные значения инициализируются локальными максимумами кривизны. Полученные углы сортируются по убыванию масштаба с целью улучшения свойств локализации.
Алгоритм использует наибольший масштаб изображения для определения числа углов и набор меньших
масштабов изображения для улучшения свойств локализации, в результате чего алгоритм пропускает углы или
обнаруживает ложные на крайних значениях масштаба.
Существует несколько развитий идеи алгоритма
CSS, демонстрирующих лучшие результаты. Последним
и наиболее успешным является детектор CPDA.
1.4.2.10. Детектор FAST (Features from Accelerated Test)
Описанные выше детекторы особых точек применяют некоторую модель или алгоритм напрямую к пикселям исходного изображения. Альтернативный подход
состоит в том, чтобы использовать алгоритмы машинного обучения для тренировки классификатора точек на
некотором множестве изображений, что даёт возможность построить деревья решений для классификации
пикселей.
33
В оригинальном алгоритме FAST рассматривается окружность из 16 пикселей, полученная с использованием алгоритма Брезенхема, с центром в данном пикселе-кандидате. Угол считается найденным в случае существования вокруг центрального пикселя некоторого
числа пикселей, интенсивности которых больше или
меньше определённого порога, для чего пикселям, занимающим позиции вокруг центрального, присваиваются
определённые номера, после чего их значения интенсивности проверяются на набор простых условий.
Существует ряд модификаций изначальной версии алгоритма FAST-12 (число в названии характеризует
сумму пикселей, интенсивности которых пересекают порог по одному из условий детектирования) – древовидные Tree Based FAST-9 и Tree Based FAST-12, использующие машинное обучение и лишённые ряда недостатков
оригинального FAST-12, таких как обнаружение вблизи
некоторой окрестности нескольких особых точек из-за
ошибок, связанных со свойством анизотропности алгоритма, эффективность которого достаточно сильно зависит от порядка обработки изображения и распределения
пикселей.
В древовидных модификациях FAST происходит
разделение множества всех пикселей тренировочного
набора на три подмножества по степени интенсивности
относительно текущего пикселя, на основе чего выполняется построение дерева решений согласно определённому алгоритму. На каждом уровне дерева решений множество, соответствующее узлу дерева, разбивается на
подмножества посредством выбора наиболее информа34
тивной точки (пикселя с наибольшей энтропией). Построенное дерево решений в результате используется для
определения углов на тестовых изображениях.
В последней модификации FAST-ER (Features
from Accelerated Test - Enhanced Repeatability) используется широкое кольцо окружности, алгоритм ID3 для
классификации особых точек также с помощью деревьев
решений. Алгоритм ID3 оптимизирует порядок, в котором обрабатываются пиксели, в результате чего FASTER является наиболее вычислительно эффективным детектором.
Алгоритм FAST-ER детектирует особые точки
точнее FAST, но требует больших вычислительных ресурсов, кроме того, на практике FAST-ER является лучшим алгоритмом в отношении свойства повторяемости
[5].
1.4.2.11. Другие детекторы
Кроме рассмотренных, существует множество
других детекторов точек, углов и контуров, таких как
лапласиан гауссиана (LoG, Laplacian of Gaussian), гистограмма ориентированных градиентов (HOG, Histogram of
Oriented Gradients) и др. Рассмотрение всего многообразия выходит за рамки данной работы.
1.4.2.12. Дескрипторы особых точек
Результатом работы вышеуказанных детекторов
является множество особых точек, в частности, углов,
35
для которых необходимо построить математическое описание. Формирование математического описания – это
задача дескриптора. Многие дескрипторы одновременно
решают задачи поиска особых точек и построения описателей этих точек с помощью встроенных существующих
алгоритмов или оригинальным способом. Признаки
(описатели) строятся на основе информации об интенсивности, цвете и текстуре особых точек.
1.4.2.13. Дескриптор SIFT (Scale Invariant Feature Transform)
Метод SIFT относится к алгоритмам, решающим
две задачи: поиск особых точек и построение их описателей. Первый этап работы алгоритма SIFT включает в
себя вычисление разностей гауссианов (алгоритм DoG).
Полученное масштабируемое пространство разбивается
на октавы, при этом часть масштабируемого пространства, занимаемого следующей октавой, в два раза больше
части, занимаемой предыдущей октавой. На основе полученных наборов гауссианов и наборов разностей гауссианов, формирующих октавы, строятся пирамиды гауссианов и их разностей (рис.1.1). Далее аналогично алгоритму DoG вычисляются кандидаты особых точек, которые затем подлежат уточнению путём вычисления координат точек-кандидатов с субпиксельной точностью,
проверки на малость, проверке на границу объекта или
низкую освещённость объекта в точке.
36
Рис.1.1 Пирамиды гауссианов и разностей гаусианов
Далее алгоритм SIFT вычисляет значения ориентации и магнитуды каждой из полученных особых точек
исходя из направлений градиентов соседних. Магнитуды
градиентов при этом учитываются с весами, пропорциональными значению функции плотности нормального
распределения с математическим ожиданием в рассматриваемой особой точке и стандартным отклонением, равным половине ширины окрестности. После чего в квадратах определённого размера вычисляется гистограмма
ориентированных градиентов путем добавления взвешенного значения магнитуды градиента к одному из бинов гистограммы, причём для увеличения точности вычислений используется билинейная интерполяция.
Направление особой точки получается из гистограммы
направлений, и все вычисленные гистограммы объединяются в один вектор (рис.1.2). Дескриптор ключевой
точки в методе SIFT – это вектор, состоящий из всех полученных гистограмм. Для нивелирования возможных
37
ошибок вычислений полученный дескриптор нормализуется, после чего отсекается по некоторому порогу и нормализуется вновь.
Рис.1.2 Построение дескриптора SIFT
На практике дескриптор SIFT является одним из
самых широко применяемых. Он инвариантен относительно поворота изображения, инвариантен относительно масштаба, достаточно устойчив к шуму и изменениям освещения и обладает высокой вычислительной эффективностью [5].
1.4.2.14. Дескрипторы PCA-SIFT, GLOH и DAISY
Дескрипторы PCA-SIFT (Principal Component
Analysis - Scale Invariant Feature Transform), GLOH (Gradient Location-Orientation Histogram) и DAISY основаны
на алгоритме SIFT.
Метод PCA-SIFT является прямой модификацией
SIFT, работающей с окрестностями больших размеров и
выполняющей построение карты градиентов вдоль вертикального и горизонтального направлений. PCA-SIFT
38
осуществляет снижение размерности результирующих
векторов посредством анализа главных компонент
(PCA).
Метод GLOH использует полярную сетку разбиения окрестности на бины – радиальные блоки. Размерность результирующего вектора также снижается посредством анализа главных компонент.
Цель разработки метода DAISY заключается в решении задачи сопоставления изображений в случае их
значительных отличий. Метод DAISY работает на плотном множестве пикселей всего изображения, в его основу заложены идеи построения SIFT и GLOH дескрипторов – выбирается круговая окрестность особой точки,
но бины представляются не частными секторами, а
окружностями. На плотном множестве точек дескриптор
DAISY по скорости работы превосходит SIFT в несколько десятков раз [5].
1.4.2.15. Дескриптор SURF (Speeded Up Robust Features)
Метод SURF также решает две задачи: поиск особых точек и построение их дескрипторов. Особые точки
и дескрипторы SURF инвариантны к изменению масштаба и поворота. На первом этапе для поиска особых
точек используется матрица Гессе (FAST-Hessian
detector). Детерминант матрицы Гессе (гессиан) достигает экстремума в точках максимального изменения яркости. Метод SURF использует разномасштабные фильтры для нахождения гессианов, поскольку гессиан не инвариантен относительно масштаба. В большинстве реализаций SURF использует свёртку с Гауссовым ядром
39
для нахождения точек, в которых достигается максимальное значение детерминанта матрицы Гессе, достигающего экстремума при максимальном изменении градиента яркости. Для каждой ключевой точки вычисляется
градиент с помощью фильтров Хаара и масштаб.
После нахождения ключевых точек, метод SURF
формирует их дескрипторы. Дескриптор каждой точки
представляет собой набор из 64 (128) чисел, репрезентирующих флуктуации градиента вокруг ключевой точки.
Поскольку ключевые точки являются максимумами гессиана, в окрестности точек существуют участки с разными градиентами, чем обеспечивается дисперсия дескрипторов для разных ключевых точек и инвариантность дескриптора относительно поворота. Размер области дескриптора определяется масштабом матрицы
Гессе, что обеспечивает инвариантность относительно
масштаба.
На практике метод SURF является ближайшим
конкурентом метода SIFT, также обладая свойствами инвариантности относительно поворота и масштаба изображения, высокой вычислительной эффективностью. Из
ограничений SURF, учитывая особенности метода,
можно выделить недостаточную устойчивость при работе с объектами простой формы [5].
1.4.2.16. Другие детекторы и дескрипторы особых точек
Кроме вышеуказанных детекторов существует
ряд алгоритмов, таких как детектор BRIEF, детектор ШиТомази, детектор PCBR (Principal Curvature-Based
Region), оператор Собеля, детектор Фёстнера и Гёлча,
40
EBR (Edge-Based Region), дескриптор SISF (ScaleInvariant Shape Features) и других, возникших на основе
рассмотренных или в некоторой степени являющихся
развитием их главных идей. Всего существует несколько
десятков таких алгоритмов, зачастую предназначенных
для узкоспециализированного применения, и рассмотрение всех выходит за рамки поставленной задачи.
1.4.2.17. SFM (Structure from Motion)
Сегодня в реализации SFM-алгоритмов применяется несколько классических методов, основанных на
различных алгоритмах сопровождения особых точек.
Методы сопровождения особых точек можно разделить
на детерминистские и вероятностные методы.
Детерминистские методы используют качественные эвристики движения, и задача сопровождения сводится к минимизации функции соответствия наборов точек. Типичными представителями детерминистских методов являются методы, основанные на вычислении
плотного и разрежённого оптического потока, и методы
сопоставления дескрипторов ключевых точек, наибольшее распространение из которых получили сегодня методы bundle adjustment.
1.4.2.18. Оптический поток
Существует множество разновидностей методов
вычисления оптического потока, таких как фазовая корреляция, блочные методы, дискретные методы оптимиза41
ции, но в рамках данной работы стоит упомянуть дифференциальные методы, вычисляющие движение между
кадрами в каждом пикселе на основе приближения сигнала отрезком ряда Тейлора, используя частные производные по времени и пространственным координатам, в
результате чего формирующие поле скоростей. Методы
различаются с точки зрения универсальности, точности
и плотности получаемого векторного поля. В основе
большинства современных дифференциальных методов
вычисления оптического потока лежат идеи метода Лукаса-Канаде.
1.4.2.19. Bundle Adjustment
В основе методов bundle adjustment лежит поиск и
сопоставление особых точек путём нахождения минимумов функций соответствия. Первым этапом подобных
методов обычно является вычисление дескрипторов особых точек. Методы bundle adjustment учитывают проекционные матрицы, для чего требуется наличие пар параметров, включающих фокусное расстояние, угол обзора
и размер матрицы регистрирующего оборудования.
1.5. Искусственная нейронная сеть
Искусственная нейронная сеть является концептуальной моделью биологической нейронной сети и состоит из связанных различным образом слоёв искусственных нейронов, организующих общую активную
структуру и функционально влияющих на работу друг
42
друга. В большинстве архитектур ИНС активность
нейрона определяется преобразованием внешнего суммарного воздействия других нейронов на данный нейрон
[2].
С момента своего зарождения технологии искусственных нейронных сетей развивались достаточно
обособленным от классических методов путём, нередко
в корне меняя представление о предмете в совокупной
проблематике теорий машинного обучения и распознавания образов, оказывая значительное влияние на теоретический, терминологический и методологический аппараты этих дисциплин. С этого времени в научном сообществе произошло несколько спадов и подъёмов интереса к этому направлению, но, благодаря некоторым прорывам в теории ИНС, широкое практическое применение
нейросетевые технологии получили сравнительно недавно.
Спустя некоторое время после развития базовых
моделей ИНС, произошло принципиальное разделение
объемлющей науки о нейросетях на виды топологий архитектуры сетей и методы обучения сетей.
1.5.1. Архитектура ИНС
В большинстве архитектур ИНС передаточные
функции активации нейронов фиксированы, а веса синапсов являются параметрами сети. Некоторые входы
нейронов являются внешними входами совокупной сети,
а некоторые выходы нейронов – выходами совокупной
43
сети. Работа нейросети состоит в преобразовании входного вектора в выходной вектор, осуществляемом весами
и топологией сети.
Существуют различные классификации ИНС по
ряду признаков. По одному из топологических признаков
ИНС можно классифицировать как:
• Полносвязные ИНС – каждый нейрон связан с остальными нейронами в сети, включая себя
самого
• Слоистые ИНС – нейроны объединяются в
слои, нейроны предыдущего слоя связаны с нейронами следующего слоя
• Слабосвязные ИНС – нейроны расположены в узлах прямоугольной или гексогональной
решётки
1.5.2. Виды многослойных ИНС
Различия вычислительных процессов в нейронных сетях часто обусловлены способом взаимосвязей
нейронов. По совокупности критериев на сегодняшний
день многослойные архитектуры ИНС можно разделить
на статические и динамические. Каждый из классов архитектур нейронных сетей может включать множество
подклассов, реализуя различные подходы, ниже будут
приведены основные из них.
К статическим архитектурам относят сети прямого распространения, в которых реализована однонаправленная связь между слоями, отсутствуют динамические элементы и обратная связь, а выход обученной ИНС
44
однозначно определяется входом и не зависит от предыдущих состояний сети [3].
Статические ИНС прямого распространения:
• Перцептрон
• Нейронная сеть Кохонена
• Когнитрон
• Неокогнитрон
• Современная свёрточная нейронная сеть
В противоположность статическим архитектурам,
существуют динамические архитектуры ИНС, реализующие рекуррентную структуру с использованием обратных связей, благодаря чему состояние сети в каждый момент времени зависит от предшествующего состояния.
Рекуррентные ИНС как правило базируются на многослойном перцептроне.
Динамические рекуррентные ИНС с обратными
связями:
• Нейронная сеть Хопфилда
• Нейронная сеть Коско
• Нейронная сеть Джордана
• Нейронная сеть Элмана
1.5.2.1. Перцептрон
Элементарный перцептрон организуется на основе сенсорных данных на входе – S-элементов, ассоциативных элементов – A-элементов, и реагирующих элементов на выходе – R-элементов. Набор S-элементов,
связанный с A-элементом образует ассоциацию, и A45
элемент активизируется после того как достигнуто определённое число сигналов от S-элементов. A-элемент передаёт взвешенный сигнал на суммирующий R-элемент,
и в зависимости от того, превышает ли взвешенная сумма
некоторый порог, R-элемент выдаёт результат работы
перцептрона (рис.1.3).
Многослойный перцептрон организуется с дополнительными скрытыми слоями A-элементов, расположенными между S-элементами и R-элементами. Принципиальная сложность задач, решаемых многослойным
перцептроном, является наивысшей для класса перцептронов.
Обучение элементарного и многослойного перцептрона состоит в изменении весовых коэффицентов
связей A – R. Перцептрон способен работать в режиме
распознавания или обобщения.
46
Рис.1.3 Перцептрон
В однослойном перцептроне входные элементы
напрямую соединены с выходными с помощью системы
весов, связи S – A организованы по принципу однозначного соответствия. Однослойный перцептрон является
частным случаем классического элементарного перцептрона, простейшей сетью прямого распространения – линейным классификатором, и имеет множество принципиальных ограничений, таких как невозможность реализации функции XOR.
1.5.2.2. Нейронная сеть Кохонена
Нейронные сети Кохонена организуются из слоёв
Кохонена, состоящих из формальных нейронов – адап47
тивных линейных сумматоров. Слой Кохонена преобразует наибольший входной сигнал в единичный, а остальные сигналы в ноль. Нейронные сети Кохонена различаются по классам решаемых ими задач и по способам
настройки входных весов сумматоров. Наиболее известными являются сети векторного квантования и самоорганизующиеся карты Кохонена.
На практике нейронные сети Кохонена используются в задачах кластерного анализа, задачах моделирования, прогнозирования и сжатия информации.
1.5.2.3. Когнитрон и неокогнитрон, свёрточная нейронная сеть
Когниторон был разработан на основе строения
биологической зрительной коры, имеет иерархическую
принципиально многослойную архитектуру. Нейроны
между слоями когнитрона связаны только локально, и
каждый слой реализует различные уровни обобщения:
входные слои воспринимают простые образы, в случае
изображений, такие как линии, крупные однородные
участки, их ориентацию и локализацию в пространстве
входных данных, в то время как глубокие слои воспринимают более сложные абстрактные структуры, независимые от локализации и других простых признаков образа [2].
Когнитрон организуется из иерархически связанных возбуждающих и тормозящих слоёв. Соотношение
возбуждающих и тормозящих сигналов на входе нейрона
определяет его состояние возбуждения. Существуют
48
упрощённые модели когнитрона, строящиеся из одномерных слоёв, но изначально когнитрон конструировался как каскад двумерных слоёв. Пресинаптическое
пространство сигналов определяет выходы предыдущего
слоя или плоскости нейронов, постсинаптическое пространство – входы следующего слоя или плоскости.
Нейрон когнитрона воспринимает не всё постсинаптическое пространство сигналов, а только его часть, чем реализуется принцип локальной связности. Область пресинаптического пространства сигналов, образующих постсинаптическое пространство сигналов, влияющих на состояние данного нейрона, называется его локальным рецептивным полем (рис.1.4). Рецептивные поля близких
друг к другу постсинаптических нейронов, называемые
зонами конкуренции, перекрываются, поэтому активность данного пресинаптического нейрона сказывается
на все более расширяющейся области постсинаптических нейронов следующих слоев иерархии. Размеры зон
конкуренции обуславливают количество воспринимаемых в пространственной области признаков.
Рис.1.4 Образ в рецептивных полях постсинаптических
нейронов
49
Когнитрон обучается на основе принципа самоорганизации, в классическом случае реализуется алгоритм
обучения без учителя.
Неокогнитрон является прямым развитием идей,
лежащих в основе когнитрона и точнее моделирует
структуру зрительной коры головного мозга и является
классификатором, способным к робастому распознаванию образов. Каждый слой неокогнитрона состоит из
плоскости простых S-нейронов и плоскости сложных Cнейронов, также организующих локальную связность.
Локальное рецептивное поле плоскости S-нейронов следующего слоя формируется пресинаптическими сигналами плоскости C-нейронов предыдущего слоя. Локальные признаки образа воспринимаются S-нейронами, а искажения локальных признаков компенсируются Cнейронами. В результате этого процесса каждый слой после входного имеет своим входом всё более обобщённую
картину, образованную C-нейронами предыдущих слоёв.
С каждым уровнем глубины первичные простые признаки детектируются во всё более сложных сочетаниях
(рис.1.5). Плоскость S-нейронов можно рассматривать
как один нейрон, веса которого определяют ядро
свёртки, применяемое к предыдущему слою во всех возможных позициях. Все S-нейроны реагирует на образ, соответствующий ядру свёртки, в их рецептивном поле, поэтому он детектируется инвариантно к его локализации
[3].
50
Рис.1.5 Сочетания признаков в неокогнитроне
Обучение оригинального неокогнитрона происходит так же без учителя. Как и в случае с когнитроном,
оно соответствует процедуре выделения набора факторов подобно методу главных компонент и происходит
естественным путём в процессе самоорганизации сети.
С высокой эффективностью неокогнитрон часто
применяется для распознавания рукописного текста, номеров автомобилей и домов.
Современные глубокие свёрточные нейронные
сети основаны на идеях, лежащих в основе неокогнитрона, и сегодня применяются для решения широкого
круга задач: от промышленных, корпоративных и исследовательских до повседневных бытовых, включая задачи, решаемые мобильными устройствами.
51
1.5.2.4. Рекуррентная нейронная сеть
Рекуррентные нейронные сети организуются в
различных архитектурах с различными видами обратной
связи от логически более удалённого элемента к логически менее удалённому. Наличие обратных связей позволяет реализовать систему, обладающую ассоциативной
памятью, что позволяет воспроизводить последовательности реакций на определённый стимул. Наиболее известными архитектурами рекуррентных нейронных сетей являются сети Хопфилда, сети Коско, сети Джордана
и сети Элмана. Широкие вариативные возможности
принципиальной архитектуры и сложности анализа реализующих механизмы ассоциативной памяти структур
приводят к тому, что большинство возможностей рекуррентных ИНС на данный момент изучены плохо. Тем не
менее, тема ассоциативной памяти весьма обширна и подробное рассмотрение рекуррентных ИНС выходит за
рамки данной работы.
1.5.2.5. Современные глубокие нейронные сети
В основе современных глубоких нейронных сетей, как правило, лежат архитектуры сетей свёрточного
типа, таких как когнитрон и неокогнитрон. Их эффективность и стремительное развитие обусловлено гибридным
подходом к архитектурным решениям, развитием мето-
52
дов обучения, дополнительных методов защиты от переобучения. Вследствие растущей популярности глубоких
свёрточных ИНС достигаются существенные успехи.
1.5.3. Функции активации нейронов
Для реализации нелинейности при активации
нейрона, его активность, помимо различных видов сумматоров и систем весов на входах, определяется функцией одного аргумента – функцией активации. Нейрон в
целом реализует скалярную функцию векторного аргумента, а выходной сигнал нейрона определяется видом
функции активации и может быть действительным или
целым. Функция активации применяется к взвешенной
сумме постсинаптических сигналов на входе нейрона.
Таким образом, активность нейрона полностью определяется его параметрами – весами и его функцией активации. Существует множество передаточных функций,
применяемых на практике использования нейронных сетей, некоторые из них служат для реализации нелинейности системы. Выбор той или иной функции активации часто зависит от условий задачи и структуры сети. Некоторые из рассматриваемых передаточных функций применяются только в устаревающих системах или в целях
обучения, но считаются классическими и упоминаются
всякий раз при изучении ИНС.
1.5.3.1. Пороговая функция активации
Пороговая функция Хевисайда является самой
простой кусочно-линейной передаточной функцией. Эта
53
функция использовалась в классическом перцептроне, в
данное время используется в основном в целях обучения
теории нейронных сетей.
1.5.3.2. Линейная функция активации
При использовании несложной кусочно-линейной
передаточной функции сигнал на выходе нейрона линейно связан со взвешенной суммой сигналов на его
входе. В данный момент линейная функция на практике
также используется очень редко.
1.5.3.3. Сигмоидальная функция активации
Сигмоид является монотонно возрастающей
всюду дифференцируемой S-образной нелинейной функцией с насыщением. Обеспечивает усиление слабых сигналов и предотвращает насыщение сильных сигналов.
Является одной из самых распространённых передаточных функций, часто используется в нейронных сетях по
сей день. Введение сигмоидальных функций было обусловлено недостаточной гибкостью классификаторов на
основе пороговых передаточных функций и позволило
перейти от жёсткой одноразрядной логики к более гибкому поведению и адаптивной параметризации нейронных сетей. Наиболее часто используемым примером сигмоидальной функции является логистическая передаточная функция.
(1.1)
54
𝜎𝜎 (𝑥𝑥) =
где 𝑥𝑥 – вход нейрона.
1
1 + 𝑒𝑒 −𝑥𝑥
1.5.3.4. Гиперболический тангенс
Функция гиперболического тангенса отличается
от рассмотренной выше логистической кривой тем, что
его область значений лежит в интервале (-1; 1), что в некоторых случаях может упростить задачу обучения ИНС.
(1.2)
2𝑥𝑥
𝑒𝑒 − 1
𝑥𝑥 = 2𝑥𝑥
𝑒𝑒 + 1
где 𝑥𝑥 – вход нейрона.
1.5.3.5. ReLU (Rectified Linear Unit)
В неглубоких ИНС используются нелинейные
функции активации. Часто встречаемые разновидности
сигмоидальных и тангенциальных передаточных функций являются нелинейными, но на практике обучения
глубоких ИНС такие функции могут привести к проблемам с затуханием или увеличением градиентов. Функция
ReLU является выпрямленной линейной функцией и на
данным момент считается гораздо более простым и эффективным с точки зрения вычислительной сложности
вариантом передаточной функции. Производная ReLU
равна либо 0, либо 1, отчего её применение предотвращает разрастание и затухание градиентов, и приводит к
55
прореживанию весов, что положительно сказывается на
вычислительной способности ИНС. Передаточная функция ReLU является одним из последних успехов в области методов настройки глубоких нейронных сетей.
(1.3)
𝑓𝑓(𝑥𝑥) = max(0, 𝑥𝑥)
где 𝑥𝑥 – вход нейрона.
Сегодня существует семейство различных модификаций ReLU, решающих проблемы надёжности этой
передаточной функции при прохождении через нейрон
больших градиентов: Leaky ReLU, Parametric ReLU, Randomized ReLU.
1.5.4. Обучение нейронных сетей
Процесс обучения ИНС рассматривается как
настройка архитектуры и весов связей между нейронами
(параметров) для эффективного выполнения поставленных перед ИНС задач. Существует два обширных класса
обучения ИНС: класс детерменированных методов и
класс стохастических методов.
В класс детерменированных методов входят методы, в основе которых лежит итеративная коррекция параметров сети, в ходе текущей итерации основывающаяся на текущих параметрах. Основным детерменированным методом и самым распространённым методом обучения ИНС сегодня вообще является метод обратного
распространения ошибки [4].
В класс стохастических методов входят методы,
изменяющие параметры сети случайным образом и сохраняющие только те изменения параметров, которые
56
привели к улучшению результатов. Стохастические алгоритмы обучения реализуются с помощью сравнения
ошибок и некоторые из них связаны с проблемой «ловушки локального минимума», решаемой с помощью некоторых усложнений стохастических алгоритмов.
1.5.4.1. Обучение с учителем
Во время обучения ИНС с учителем каждому примеру из обучающей выборки соответствует вектор, характеризующий однозначный правильный ответ, подаваемый сразу на выход сети в обход всей её архитектуры.
После получения собственного результата сети, алгоритм сравнивает результирующий вектор с правильным
ответом, на основе чего происходит коррекция дальнейшая ошибки. Правило коррекции по ошибке, на котором
основан метод обратного распространения ошибки, является классическим примером обучения с учителем.
1.5.4.2. Обучение без учителя
Обучение без учителя в случае ИНС реализуется
естественным образом в процессе обучения, когда автоматическая настройка параметров сетью приводит к появлению одинаковых результатов её функционирования
при достаточно близких входных значениях, что на практике можно сравнить с понижением размерности данных
в результате итерационного метода главных компонент.
Правило Хэбба, основанное на гипотезе об усилении свя57
зей между биологическими нейронами в случае их одновременного возбуждения, и методы обучения при соревновании нейронов путём сравнения интенсивности их реакции являются классическими примерами методов обучения без учителя.
1.5.4.3. Метод обратного распространения ошибки
(Backprop)
Метод является классическим методом обучения
с учителем, основан на правиле коррекции по ошибке и
был разработан как метод обучения многослойного перцептрона. Основная идея метода состоит в распространении сигналов ошибки после её вычисления (1.4) на выходе сети в направлении, обратном прямому распространении сигналов во время обычного вычислительного
процесса, от выходов сети к её входам. При обратном
проходе синаптические веса настраиваются с целью минимизации ошибки.
(1.4)
1
� (𝑡𝑡𝑘𝑘 − 𝑜𝑜𝑘𝑘 )2
𝐸𝐸��𝜔𝜔𝑖𝑖,𝑗𝑗 �� =
2
𝑘𝑘∈𝑂𝑂𝑂𝑂𝑂𝑂
где 𝐸𝐸 – функция ошибки;
𝜔𝜔𝑖𝑖,𝑗𝑗 – синаптический вес между нейронами 𝑖𝑖, 𝑗𝑗;
𝑂𝑂𝑂𝑂𝑂𝑂 – множество выходов сети;
𝑡𝑡𝑘𝑘 – правильные ответы сети, 𝑘𝑘 ∈ 𝑂𝑂𝑂𝑂𝑂𝑂;
𝑜𝑜𝑘𝑘 – выход 𝑘𝑘-го нейрона.
Фактически, реализуется стохастический градиентный спуск, происходит движение в многомерном про58
странстве весов до минимума ошибки в сторону, противоположную градиенту. На основании каждой группы
правильных ответов, настройка синаптических весов
осуществляется путём вычисления:
(1.5)
𝜕𝜕𝜕𝜕
∆𝜔𝜔𝑖𝑖,𝑗𝑗 = −𝜂𝜂
𝜕𝜕𝜔𝜔𝑖𝑖,𝑗𝑗
где 0 < 𝜂𝜂 < 1 – множитель скорости движения.
В процессе обучения циклически решаются однокритериальные задачи оптимизации. Для возможности
реализации метода передаточная функция нейронов
должна быть дифференцируема. Поскольку метод является модификацией классического метода градиентного
спуска, то может рассматриваться как градиентный
спуск по поверхности ошибки.
Несмотря на широкое успешное применение метода, он не лишён ряда недостатков, таких как крайне
низкая скорость обучения и принципиальная неудача
обучения сети (например, бесконечное обучение), возможная по ряду причин, среди которых паралич сети,
проблема локальных минимумов и проблема размера
шага.
Ряд этих недостатков устраняется различными
модификациями метода, к примеру, модификация RProp
(Resilient Propagation) значительно ускоряет процесс обучения за счёт вычисления только знаков частных производных для подстройки весовых коэффициентов, вместо
вычисления полных производных. RProp использует так
называемый метод обучения по эпохам.
59
Другие методы, ускоряющие процесс обучения:
QuickProp, метод сопряжённых градиентов, метод Левенберга-Маркара.
1.5.4.4. Генетические алгоритмы
Генетические алгоритмы являются разновидностью эволюционных вычислений, развиваясь как эвристические алгоритмы поиска. Подобные методы используются для решения задач моделирования и оптимизации
путём случайного подбора, алгоритмически реализуя базовые принципы теории эволюции. Генетические алгоритмы можно использовать для обучения нейронных сетей в редких случаях, где сложно или невозможно сформулировать задачу в виде, пригодном для значительно
более быстрых алгоритмов локальной оптимизации,
либо в случаях многоэкстремальной оптимизации или
оптимизации недифференцируемой функции.
1.5.4.5. Дополнительные методы, используемые при
обучении сети
Гиперпараметры – это все степени свободы алгоритма, которые алгоритм не оптимизирует напрямую.
Современные глубокие сети реализуют различные методы настройки гиперпараметров, в основном это различные методы регуляризации (контроля ёмкости).
1.5.4.6. Dropout
60
Dropout является простым и эффективным методом регуляризации и заключающийся в том, что в процессе обучения сети из её совокупной топологии многократно случайным образом выделяется подсеть, и очередное обновление весов происходит только в рамках
выделенной подсети. Каждый нейрон исключается из совокупной сети с некоторой вероятностью, которая называется коэффициентом dropout.
1.5.4.7. Другие методы регуляризации
Существуют другие методы регуляризации, принципиально основанные на ограничении или штрафе весов, такие как ограничение нормы вектора весов, L1 и L2регуляризация.
1.5.5. Современные гибридные архитектуры
глубокого обучения
С конца 90-х годов большое распространение получили гибридные архитектуры глубокого обучения на
основе неокогнитрона, добивающиеся впечатляющих
практических результатов. Эти архитектуры называеются свёрточными нейронными сетями.
1.5.5.1. Softmax-слои
В современных ИНС для моделирования вероятностного распределения используются softmax-слои,
61
включающие N нейронов по целевому количеству классов. Выход каждого нейрона зависит от сумматоров всех
остальных нейронов слоя.
1.5.5.2. Субдискретизация, Max-Pooling-слои
В современных ИНС используются субдискретизирующие (subsampling) слои, выполняющие уменьшение входной карты признаков. Чаще всего для этого используется метод выбора максимального элемента (maxpooling). Использование max-pooling позволяет сделать
сеть инвариантной к масштабным преобразованиям.
1.5.5.3. LeNet
LeNet - первая современная свёрточная нейросеть,
разработанная в 90-х годах Яном ЛеКуном, обучалась
для распознавания рукописных символов. Последняя
версия сети LeNet-5 демонстрировала на тот момент впечатляющие результаты за счёт реализации нескольких
новаторских идей. Основным отличием от неокогнитрона было включение субдискретизирующего max-pooling слоя после каждого свёрточного слоя и включение
полносвязных слоёв на выходе сети (рис. 1.6). С этого
момента свёрточные и max-pooling-слои становятся сердцем современных глубоких сетей.
62
Рис.1.6 Архитектура LeNet
1.5.5.4. AlexNet
В 2012 году произошло ещё одно поворотное событие: впервые в истории конкурс по классификации
изображений базы ImageNet на 1000 классов c превосходством по точности распознавания почти в два раза выиграла свёрточная нейросеть AlexNet, обученная Алексом Крижевским. Архитектура включала свёрточные
слои, max-pooling-слои, полносвязные слои на выходе
сети. Использовались методы dropout и локальной нормализации. В качестве функции активации использовалась функция ReLU. Обучение сети проходило на двух
мощных графических ускорителях в течение недели.
1.5.5.5. GoogLeNet, Inception
63
В 2014 году ImageNet Recognition Challenge выиграла нейросеть Google GoogLeNet, на основе первой Inception-архитектуры. В архитектуре был уменьшен размер свёртки, были параллельно включены небольшие
свёртки разного масштаба, удалены полносвязные слои
на выходе сети и вместо них включены слои, названные
global average pooling. Новая архитектура получила активное развитие благодаря своей эффективности. Inception-v3 – последняя реализация, включающая несколько
десятков слоёв (рис.1.7).
Рис.1.7 Архитектура Inception-v3
1.5.5.6. ResNet (Residual Network), Inception-ResNet
Inception-v3 должен был выиграть ImageNet 2015,
чего не произошло, поскольку появилась архитектура
ResNet от Microsoft, в основе которой лежит метод предсказания разницы между тем, что выдают предыдущие
слои и целью распознавание. Таким образом, глубокие
64
слои получают возможность обнулить веса или просто
пропустить сигнал. Архитектура получила дальнейшее
развитие, например, в виде высокоэффективной гибридной сети Inception-ResNet.
1.5.6. Сравнение библиотек глубокого обучения
Сегодня существует больше десятка библиотек
глубокого обучения, некоторые из которых обладают узкой спецификой. Основываясь на рекомендательной информации из широкого круга источников, для дальнейшего рассмотрения было выбрано три библиотеки: Torch,
Theano и Caffe.
1.5.6.1. Torch
Библиотека Torch разработана как библиотека для
вычислений в научных целях и поддерживает множество
технологий. Библиотека позволяет гибко работать с
нейросетями на достаточно низком уровне. Для реализации нейросети в Torch необходимо написать собственный цикл обучения, в котором объявляется функция замыкания, вычисляющая ответ сети. Это замыкание передаётся в функцию градиентного спуска для обновления
весов сети. Использование Torch не создаёт серьёзных
затрат по времени написания программного кода, кроме
того, сети Torch обладают превосходящей сети других
фреймворков скоростью классификации и самой обширной документацией.
65
1.5.6.2. Theano
Theano существует в первую очередь как расширение языка Python, позволяющее эффективно вычислять
математические выражения, содержащие многомерные
массивы. В библиотеке реализован базовый набор инструментов для построения ИНС. Процесс создания модели и определения её параметров требует написания
объёмного кода, включающего реализацию класса модели, самостоятельного определения её параметров, реализацию методов, определяющих функцию ошибки, правило вычисления градиентов, способ изменения весов.
Theano является самым гибким фреймворком для построения ИНС.
1.5.6.3. Caffe
Caffe реализована на C++ и имеет обёртки для Python и Matlab. Топология ИНС, исходные данные и способ обучения задаются с помощью конфигурационных
protobuf-файлов (технология и протокол сериализации
данных, превосходящий по эффективности xml и json) в
формате prototxt. Построение структуры сети выполняется с простотой, удобством и наглядностью. Из рассматриваемых библиотек является самой удобной в использовании, кроме того, превосходит другие рассматриваемые фреймворки в скорости обучения. Библиотека Caffe
поддерживается достаточно большим сообществом разработчиков и пользователей и на сегодняшний день является самой распространённой библиотекой глубокого
обучения широкого круга применения.
66
2. Разработка системы распознавания
Беспилотный комплекс «Орлан-10» оснащен высокоточным бортовым оборудованием, обеспечивающим видео- и фотосъёмку в сочетании с регистрацией текущих параметров телеметрии. БПЛА «Орлан-10» обладают криптозащищённым командно-телеметрическим
каналом и криптозащищённым каналом передачи фото(видео-) информации, включая координаты, высоту полёта и номер кадра. Некоторые алгоритмы, используемые в данной работе, уже реализованные в ПО, сопровождающем беспилотный комплекс, не будут описаны в
рамках работы, поскольку их рассмотрение вторично по
отношению к теме и потребовало бы объёмного изложения.
2.1. Общее описание параллельного алгоритма
Для реализации системы распознавания были выбраны современные ИНС свёрточного типа, поскольку
эффективность этих систем сегодня продемонстрирована
революционными практическими результатами. В ходе
работы над системой было установлено, что, несмотря на
точность современных ИНС, из-за особенностей регистрации окружающей обстановки с борта БЛА «Орлан10» с помощью гиростабилизированных камер средней
разрешающей способности или зеркальных камер высокой разрешающей способности со светосильными объек67
тивами и полнокадровыми матрицами, для системы остаются весьма характерными ошибки первого и второго
рода, что не допустимо ввиду специфики назначения
комплекса. Вследствие чего было принято решение опробовать смелые экспериментальные идеи для достижения
необходимого результата, а также не останавливаться в
развитии архитектуры сети.
Одним из опробованных решений, увеличивающих точность распознавания, стала разработка параллельного алгоритма из двух ИНС, работающих с данными разной размерности (рис.2.1).
Нейронная сеть НС1 для двухмерных данных организуется привычным сегодня образом и предназначена
для распознавания объектов на двумерных изображениях
или кадрах видеопотока. НС2 для трёхмерных данных
организована для распознавания объектов в трёхмерном
нормализованном облаке точек, восстановленном с помощью SFM-алгоритма на базе детерминистского метода
сопровождения особых точек. Фактически, НС2 необходима для уточнения и валидации результатов работы
НС1, что решает ряд возникающих проблем, связанных с
ошибками первого и второго рода.
68
Входные данные
Регистрация кандидата
Нейросеть
2D-формата
Запрос входных данных,
содержащих координаты
Нейросеть
3D-формата
Расчёт 3D-структуры
Первичные признаки
Локализация
Триггер
Вторичные признаки
Абстракция
Первичные признаки
Локализация
Вторичные признаки
Абстракция
Принятие решения
Рис.2.1 Блок-схема параллельного алгоритма
2.2. Описание алгоритма взаимодействия двух
нейросетей, работающих с данными разных
размерностей
Алгоритм системы использует свойство локализации первичных признаков поверхностных слоёв глубоких сетей. Локализуя первичные признаки, ИНС помогает определить кандидата на цель и сопоставить его ко69
ординаты с множеством координат каждого изображения во входных данных. Кандидату присваивается уникальный дескриптор, содержащий его предполагаемый
класс и координаты. На основе этого дескриптора, с учётом некоторой области вокруг данной точки, производится поиск кандидата на других изображениях или кадрах во входных данных. Найденная группа изображений
или кадров содержит обнаруженный объект или его
часть
2.3. Выбор архитектуры нейросетей
Для реализации ИНС была выбрана библиотека
Caffe ввиду её удобной и прозрачной структуры, высокой
скорости разработки при её использовании, достаточно
полной документации и возможности обращения к широкому сообществу разработчиков, знакомых с ней.
Кроме того, Caffe демонстрирует отличные результаты
тестирования производительности. Caffe поддерживает
CUDA, и сборка библиотеки с имплементацией кода для
Nvidia GPU даёт колоссальный прирост в скорости работы нейросети, поскольку многие вычислительные операции в процессе функционирования нейросетевых классификаторов реализуются в несколько раз или на порядок быстрее на графических чипах.
2.3.1. Модель Caffe
Элементарной логической единицей процесса в
Caffe является blob. На уровне представления blob – это
N-мерный массив, хранящийся в памяти в C70
совместимом стиле. Blob предоставляет унифицированный интерфейс для хранения любых данных, необходимых нейросети: входных данных, параметров модели,
инструментов оптимизации.
Обычный blob для хранения входных изображений – это четырёхмерный массив, состоящий из номера
N, канала K, высоты кадра H и ширины кадра W. Таким
образом, в четырёхмерном blob, значение с индексом (n,
k, h, w) физически располагается по индексу ((n * K + k)
* H + h) * W + w. Канал K – это K-мерное пространство
признаков, то есть для пикселя RGB-изображения K = 3.
Для описания моделей Caffe использует формат
Protocol Buffers. Ниже приведён пример, описывающий
свёрточный слой, его имя, тип, вход слоя, выход слоя и
параметры свёртки:
layer {
name: "conv1"
type: "Convolution"
bottom: "data"
top: "conv1"
# learning rate and decay multipliers for the
filters
param { lr_mult: 1 decay_mult: 1 }
# learning rate and decay multipliers for the
biases
param { lr_mult: 2 decay_mult: 0 }
convolution_param {
num_output: 96
# learn 96 filters
kernel_size: 11
# each filter is 11x11
stride: 4
# step 4 pixels between
each filter application
weight_filler {
type: "gaussian" # initialize the filters
from a Gaussian
std: 0.01
# distribution with stdev
0.01 (default mean: 0)
71
}
bias_filler {
type: "constant" # initialize the biases
to zero (0)
value: 0
}
}
}
Листинг 1. Представление модели слоя в Caffe
2.3.2. Базовая архитектура нейросети
Для реализации базовой архитектуры была выбрана и модифицирована архитектура нейронной сети
VGG-16 (рис.2.2). Данная сверхглубокая архитектура,
как и все ИНС последнего поколения, использует сверхмалые размеры свёрток, что позволяет сети с ростом количества слоёв до определённого уровня, увеличивая репрезентативную мощность, не терять колоссальные ресурсы на обучение.
Важным критерием выбора было удобство и скорость разработки. Хотя сегодня существуют более эффективные архитектуры сетей, VGG-16 достаточно легко
реализуется с помощью Caffe, что полностью подходит
для тестирования экспериментальной системы с перспективой дальнейшего усовершенствования.
Существует также более глубокая версия архитектуры – VGG-19, но, поскольку данные архитектуры разрабатывались для классификации по 1000 классам и обладают внушительным числом параметров при данной
глубине, в целях адекватности объёма сети имеющейся
обучающей выборке и адекватности репрезентативной
мощности сети целевому количеству классов, было ре72
шено реализовать менее объёмный вариант для предотвращения запоминания сетью входной выборки и потери
способности к классификации. VGG-16, как и VGG-19,
демонстрирует хорошие результаты на известных датасетах (таблица 1, таблица 2).
Таблица 1. Результаты VGG на ILSVRC-2012
Таблица 2. Результаты VGG на VOC и Caltech
73
Рис.2.2 Архитектура VGG-16
74
2.3.3. Архитектура нейросети для двухмерных
данных
Архитектура нейросети для двухмерных данных
полностью повторяет архитектуру VGG-16, за исключением полносвязных слоёв на выходе модели, число
нейронов в которых было уменьшено с 4096 до 96 и последнего полносвязного softmax-слоя, число нейронов в
котором было уменьшено для случая пяти классов объектов. VGG реализуется с функцией активации ReLU.
2.3.4. Архитектура нейросети для трёхмерных
данных
Архитектура ИНС для трёхмерных данных аналогична рассмотренной архитектуре для двухмерных данных во всём, кроме внутреннего устройства признаков в
канале blob и формата обрабатываемых данных. Помимо
рассмотренных RGB-признаков, для представления трёхмерных данных необходимо определить признаки трёх
пространственных измерений в поле input_shape при
настройке модели сети в Caffe. Данные, не относящиеся
к изображениям в привычном смысле, в нейросетях Caffe
отображаются через векторы, хранимые в бинарном формате HDF5.
2.4. Описание алгоритма SFM для
формирования трёхмерных данных
Для решения задачи построения трёхмерных моделей объектов был выбран детерминистский алгоритм
75
формирования трёхмерного облака точек на основе дескрипторов, ввиду достаточной эффективности подобных алгоритмов, их высокой производительности и простоты имплементации.
2.4.1. Bundler SFM
Bundler – это распространённая библиотека, реализующая достаточно надёжный SFM-алгоритм, в основе которого лежит дескриптор особых точек SIFT и метод bundle adjustment. Имея группу изображений и любую известную пару параметров – угол обзора объектива,
фокусное расстояние объектива и размер матрицы регистрирующего оборудования, с помощью bundler можно
получить детально параметризированные наборы точек
объекта в трёхмерном пространстве. Особенно хорошо
алгоритм работает с изображениями, снятыми в пространстве с выраженной топологией.
Рис.2.3 Использование Bundler с изображениями, полученными при съёмке с борта «Орлан-10»
76
3. Реализация алгоритмов и обучение
нейросетей
3.1. Используемое оборудование и программное
обеспечение
Разработка всех основных компонентов системы,
реализация классификаторов, обучение, тестирование и
валидация классификаторов производилась на высокопроизводительном компьютере под управлением операционной системы Arch Linux.
Из особенностей вычислительного процесса при
использовании нейросетевых классификаторов, можно
выделить требования к скорости многократного выполнения двухмерной свёртки, скорости матричных вычислений и гибкости параллельных вычислений. Поэтому
явным преимуществом при реализации системы будет
использование графического процессора, в частности
поддерживающего технологию CUDA. Для обучения, тестирования и проверки использовался графический ускоритель на базе Nvidia GPU GeForce GTX 980 Ti мощностью 5.6 терафлопс. Подробные технические характеристики платы представлены в таблице 3.
3.2. Выбор моделей для проведения
эксперимента
В результате отработки алгоритмов на моделях,
понимания всех деталей формирования обучающей выборки в конкретном случае, создания полноценной системы классификации с помощью дешёвого с точки зрения ресурсов виртуального моделирования, в будущем
77
можно определить успешную стратегию получения обучающих данных для реальных ситуаций, оптимизировав
процесс формирования выборок и минимизировав затраты.
Графический процессор
GeForce GTX 980 Ti
Базовая частота видеочипа
1000 МГц
Объем видеопамяти
6 Гб
Тип памяти
GDDR5
Эффективная частота памяти
7096 МГц
Разрядность шины памяти
384 бит
Таблица 3. Технические характеристики GPU
Для формирования выборки был выбран виртуальный мир многопользовательской компьютерной игры
Arma 3, обладающей встроенным редактором уровней,
что позволяет формировать выборку с учётом имитации
различных факторов в различных конфигурациях. С помощью редактора Eden Editor виртуальное пространство
игры наполняется объектами военной техники и военной
инфраструктуры, основанными на реальных прототипах,
к тому же существует возможность дополнительной загрузки в виртуальное пространство сторонних моделей,
что в условиях поставленной задачи придаёт игре большую ценность с точки зрения ресурса моделирования.
Eden Editor позволяет производить гибкую настройку
78
окружения виртуального мира, включая настройку времени, особенностей местности и погодных условий
(рис.2.3).
Рис.2.4 Настройка окружения виртуального пространства в Arma 3
После предварительной настройки окружения в
Eden Editor, осуществляется запуск уровня. Существуют
79
возможности отвязки камеры от персонажей и управления ею в режиме свободного полёта с помощью
джойстика, фиксации камеры на цели. Запись получаемых данных осуществляется с помощью программы захвата. Формирование обучающего набора путём экскапсуляции кадров, прореживания и выделения необходимой области кадров осуществлялось с помощью библиотеки ffmpeg. Используя данные методы, возможно получить тысячи примеров для обучающей выборки на основе моделей в течение часов (Рис.2.4).
Рис.2.5 Сравнение изображений.
Справа: изображение с борта БЛА «Орлан-10». Слева: изображение из Arma 3
3.3. Подготовка обучающей выборки для первой
нейросети
Для эксперимента было решено использовать пять
классов виртуальных объектов. Съёмка и кадрирование производились с варьированием масштаба и соотношения объектокружение (рис.2.5). В некоторых случаях на изображении для
выборки присутствует только часть объекта. Нормализация
данных осуществлялась с помощью Caffe в автоматическом
80
режиме. В результате дополнительных преобразований
(трансформации, наложение шума), размер обучающей выборки был увеличен в пять раз: с 400 примеров до 2000 примеров на объект.
Рис.2.6 Примеры из обучающей выборки
3.4. Подготовка обучающей выборки для второй
нейросети
Обучающая выборка для НС2 формировалась на
основе выборки для НС1 путём выбора разноракурсных
снимков одного и того-же объекта и восстановления
81
трёхмерного поля точек на основе этих изображений с
помощью Bundler. В результате привязки камеры к цели,
объект получается центрированным на проекции и, поскольку изменение ракурса при съёмке объекта осуществляется плавно с помощью джойстика, достаточно
определить некоторый шаг N на массиве кадров, с которым объект будет запечатлён с необходимого числа X достаточно отличающихся ракурсов съёмки. Таким образом, весь процесс также автоматизируется с помощью
скриптов, а размер обучающей выборки для трёхмерного
случая уменьшается в X раз. В данном случае размер обучающей выборки составил по 400 примеров на объект.
3.5. Обучение классификаторов
Валидационная выборка для контроля процесса
обучения формировалась исходя из отношения 1/4 от
обучающей выборки.
Благодаря включению dropout-слоёв, точность
классификатора НС1 на валидационной выборке достигла 91% на 84 эпохе, после чего начала снижаться.
Обучение было остановлено на 85 эпохе.
Точность классификатора НС2 на валидационной
выборке достигла 64% на 26 эпохе, после чего начала
снижаться. Обучение было остановлено на 27 эпохе.
Причины низкой точности НС2 на валидационной выборке будут рассмотрены далее.
82
4. Результаты испытания системы
Контрольная выборка формировались исходя из
отношения 1/4 от обучающей выборки, что с учётом дополнительных преобразований составило по 500 примеров на объект для НС1 и 100 примеров на объект для
НС2.
Результаты классификации на контрольной выборке НС1 оказались хорошими и вполне предсказуемыми. Точность классификатора составила 91% на контрольной выборке (граф.1). Данный показатель связан, в
первую очередь, с достаточно качественной обучающей
выборкой и некоторой однородностью среды, в которую
помещены объекты, если сравнивать выборку, представленную в данной работе, с известными датасетами, на
примере которых обычно демонстрируется работа классификаторов.
100
90
80
70
60
50
40
30
20
10
0
НС1
НС2
83
График 1. Точность распознавания на контрольной
выборке
Ошибка классификации НС2 для всех пяти объектов варьировалась в районе 40%, что можно считать
крайне неудовлетворительным. Данный показатель связан, в первую очередь, с особенностями работы SFMалгоритма при обработке изображений, полученных в
условиях слабо выраженной топологии, каковыми являются условия съёмки с борта БЛА в полёте.
Заключение
В ходе разработки системы с использованием виртуальных моделей была достигнута точность основного
классификатора, сравнимая с человеческой точностью.
Современные классификаторы, обучаемые на базах рукописных символов (MNIST) и других известных датасетах зачастую превосходят человека в точности и скорости распознавания. Достижение такого уровня точности
сетью с использованием для обучения виртуальных моделей говорит о возможности дальнейшего успешного
развития системы.
Неустойчивость и низкая точность второго классификатора связана, в первую очередь, с ошибками SFMалгоритма, учитывая специфику изображений, получаемых при съёмке с борта БЛА. Эта съёмка проходит в
условиях слабо выраженной топологии, что влияет на результат уже на первом этапе алгоритма – при поиске полезных для дальнейшего преобразования SIFTдескрипторов особых точек. Таким образом, со следую84
щими этапами алгоритма, ошибка продолжает прогрессивно расти, поэтому классификатор не получает на вход
действительно адекватной картины данных ни во время
обучения, ни на контрольной выборке.
Преодолеть указанную проблему можно двумя
путями: конструктивным и деструктивным.
Конструктивный путь заключается в том, чтобы
использовать более подходящий для данной задачи SFMалгоритм, например, оптический поток Лукаса-Канаде,
работающий с каждым пикселем исходного изображения, а не только с найденными особыми точками.
Деструктивный путь выглядит интереснее и заключается в том, чтобы полностью изменить существующий алгоритм: в роли основного классификатора может выступать одна нейросеть с кастомизированным интерфейсом входных данных. На основе получаемой трёхмерной структуры можно построить трёхмерный мэш,
текстурированный соответствующими этой структуре
изображениями. После дальнейших преобразований и
нормализации данных, на входе нейросети можно получить реальное изображение, со всеми присущими ему
преимуществами точности, имеющее в каждом пикселе
дополнительное значение высоты. Подобный подход может оказаться очень интересным, поскольку теоретически обладает высоким обучающим потенциалом, благодаря плотности входных данных.
Список использованных источников
1. Форсайт Д.А., Понс Ж. Компьютерное зрение. Современный подход. - М.: Вильямс, 2004. – 928 с.
85
2. Уоссермен Ф. Нейрокомпьютерная техника: Теория и практика. - М.: Мир, 1992. – 184 с.
3. Хайкин С. Нейронные сети: полный курс, 2-е издание. – М.: Вильямс, 2008. – 1103 с.
4. Флах П. Машинное обучение. Наука и искусство
построения алгоритмов, которые извлекают знания
из данных. – М.: ДМК Пресс, 2015. – 400 с.
5. Академия Intel: Введение в разработку мультимедийных приложений с использованием библиотек
OpenCV и IPP. Лекция 3: Детекторы и дескрипторы
ключевых точек. Алгоритмы классификации изображений. Задача детектирования объектов на изображениях
и
методы
её
решения.
–
URL:
http://www.intuit.ru/studies/courses/
10621/1105/lecture/17983?page=1
6. Пару слов о распознавании образов. – URL:
https://habrahabr.ru/post/208090/
7. Машинное обучение – URL: https://ru.wikipedia.org/wiki/ машинное_обучение
8. Теория
распознавания
https://ru.wikipedia.org/wiki/
ния_образов
86
образов
–
URL:
теория_распознава-
9. Компьютерное зрение – URL: https://ru.wikipedia.org/wiki/ компьютерное_зрение
10. Математическая
морфология
https://ru.wikipedia.org/wiki/
фология
87
–
URL:
математическая_мор-
Download