АННОТАЦИЯ 2
ВВЕДЕНИЕ 7
1 МЕТОДЫ РАСПОЗНАВАНИЯ ИЗОБРАЖЕНИЙ С ОБЪЕКТАМИ
1.1 История распознавания изображений 9
1.1.1 Вероятностное моделирование 9
1.1.2 Первые нейронные сети 10
1.1.3 Ядерный метод 11
1.1.4 Деревья решений 12
1.1.5 Нейронные сети 13
1.2 Существующие проекты 14
1.2.1 Приложение AI Scry 14
1.2.2 Система Im2Calories 15
1.2.3 Система FindFace 16
1.2.4 Система Cloud AutoML 17
1.3 Среда разработки Colaboratory 19
1.4 Библиотека TensorFlow и Keras 20
1.5 Выводы по главе 21
2 МАТЕМАТИЧЕСКАЯ МОДЕЛЬ РАСПОЗНАВАНИЯ НА ОСНОВЕ СВЕРТОЧНЫХ НЕЙРОННЫХ СЕТЕЙ
2.1 Исходные данные 22
2.1.1 База данных 22
2.1.2 Валидация 23
2.1.3 Нормализация значений 24
2.2 Математическая модель искусственной нейронной сети 24
2.3 Математическая модель сверточной нейронной сети 25
2.3.1 Сеть 25
2.3.2 Сверточный слой 26
2.3.3 Субдискретизирующий слой 28
2.3.4 Функция потери 29
2.3.5 Функция активации 30
3.3.6 Переоснащение 32
2.3.7 Отсев 33
2.3.8 Батч-нормализация 34
2.3.9 Регуляризация 35
2.3.10 Обучение методом стохастического градиентного спуска 36
2.3.11 Обучение методом Adadelta 37
2.4 Архитектуры сверточных сетей 38
2.4.1 Архитектура VGG16 38
2.4.2 Архитектура VGG19 39
2.4.3 Сверточная сеть Resnets 40
2.5 Выводы по главе 41
3 РАЗРАБОТАННАЯ АРХИТЕКТУРА СВЕРТОЧНОЙ НЕЙРОННОЙ СЕТИ И РЕЗУЛЬТАТ ЕЕ РАБОТЫ
3.1 Модификация нейронной сети 42
3.2 Описание архитектуры сверточной нейронной сети 43
3.3 Модификация реализованной модели VGG16 46
3.4 Анализ результатов обучения нейронной сети 49
3.5 Алгоритм системы распознавания 50
3.6 Результаты работы системы распознавания 51
3.7 Вывод по главе 53
ЗАКЛЮЧЕНИЕ 54
БИБЛИОГРАФИЧЕСКИЙ СПИСОК 55
ПРИЛОЖЕНИЕ 1 Исходный текст программы 58
Суть машинного обучения - научить программное обеспечение выполнять или не выполнять задачи, предоставив им пару примеров.
Анализ изображений и компьютерное зрение всегда были важны в промышленных и научных применениях. С популяризацией сотовых телефонов с мощными камерами и подключением к Интернету, потребители все чаще используют изображения. Следовательно, есть возможность применить компьютерное зрение, чтобы обеспечить лучший пользовательский интерфейс. В последние годы возросла технология распознавания изображений, внедряемых повсеместно в переводчиках, рекламе, мобильных устройствах, камерах видео наблюдения и в множестве других мест. Когда-то чтобы решать задачу распознавания объекта на изображении необходимо было содержать большой штат разработчиков, которые подбирали некие факторы чтобы распознавать детали, сейчас изрядная часть данной работы делается с помощью нейро-сетевых технологий, что сильно ускоряет процесс. Машинное обучение само по себе не является совершенно новой областью. Её успех в последние годы можно объяснить практическим подходом к использованию методов и знаний из других областей науки, таких как статистика. Процесс создания похода к машинному обучению не так прост. Приходится анализировать разные версии исходных данных для различных тестовых выборок. Язык Python является интерпретируемым языком программирования высокого уровня и очень удобен в реализации алгоритмов обучения, но работает медленнее, чем язык программирования CH или аналогичные статические типизированные языки программирования. При использовании простых библиотек, которые пишутся на Си, не придется терять скорость.
Цель данной работы - разработка системы распознавания изображений на основе аппарата искусственных нейронных сетей. Для достижения поставленной цели, необходимо решить следующие задачи:
1) провести обзор существующих реализаций систем распознавания изображений;
2) составить математическую модель системы распознавания;
3) спроектировать нейронную сеть;
4) подготовить и проанализировать данные;
5) написать и отладить программу, реализующую систему тестирования и оценку качества работы нейронной сети;
6) проверить работу на экспериментальных данных.
Данная работа посвящена разработке системы распознавания изображений на основе аппарата искусственных нейронных сетей с реализацией в виде компьютерной программы.
Разработанные алгоритмы были реализованы в виде подключаемого модуля для языка Python 3. Данный модуль можно использовать для других проектов, где требуется функционал распознавания изображений.
Цель была достигнута, то есть разработана система распознавания изображений на основе аппарата искусственных нейронных сетей и решены все поставленные задачи:
1) изучены и проанализированы методы, применяющиеся в современном машинном обучении;
2) составлена математическая модель системы;
3) выбрана база данных CIFAR-100;
4) разработана сверточная нейронная сеть на основе архитектуры VGG16;
5) написана компьютерная программа, реализующая систему распознавания изображений;
6) проверена работа системы на экспериментальных данных.