Введение 5
2. Постановка задачи 7
3. Обзор 8
3.1. Предметная область 8
3.1.1. Нейронные сети 8
3.1.2. Перцептрон 8
3.1.3. Сверточные нейронные сети 9
3.1.4. Решение задач компьютерного зрения с помощью
сверточных нейронных сетей 10
3.1.5. Порождающие состязательные нейронные сети . . 10
3.1.6. Обучение нейронной сети 11
3.1.7. Трансферное обучение 12
3.2. Существующие решения 12
4. Алгоритм отбора и разметки фотографий 14
4.1. Распознавание лиц и их ключевых точек 14
4.1.1. Выбор библиотеки для поиска лиц на фотографиях 14
4.1.2. Выбор библиотеки для детекции ключевых точек
лица 15
4.1.3. Синтез алгоритма распознавания лиц и их ключевых точек 16
4.1.4. Уточнение положения области закрытых глаз нейросетевыми методами 17
4.2. Классификация лиц с открытыми и закрытыми глазами 20
5. Алгоритм исправления дефекта закрытых глаз 22
5.1. Основной алгоритм вставки открытых глаз в фотографию с закрытыми глазами 22
5.2. Использование GAN для улучшения полученных результатов 24
5.3. Результаты 27
6. Веб приложение ’’Amazing eye-opener” 30
6.1. Возможные варианты приложения 30
6.2. Финальный вариант приложения 31
Список литературы 34
В современном мире, полном различных гаджетов и технических
новинок, люди постоянно делают фотографии. По версии [31] в социальной сети Instagram в 2016 году выкладывалось около 95 миллионов
фотографий каждый день.
Тем не менее, не всегда фотографии получаются удачно и многие из
них требуют дополнительной обработки. Например, распространенной
является ситуация, когда лицо человека на фотографии получилось
хорошо, за исключением одного дефекта — глаза у фотографируемого
оказались закрыты. Такое может произойти по различным причинам,
например, если фотографируются сразу много людей, в таких случаях
очень сложно подловить момент, чтобы глаза были открыты у каждого.
С другой стороны, очень обидно, вернувшись из далекого путешествия,
обнаружить, что на фотографии в важном для Вас месте получились
закрытые глаза, а поскольку путешествие закончилось, переснять снимок уже не получится.
Чаще всего неудачные, но важные фотографии обрабатываются с
помощью специальных приложений – фоторедакторов, например, Adobe
Photoshop, Photoscape, Movavi Photo Editor. Обработка фотографий с
помощью этих средств может занимать большое количество времени, а
также бывает слишком сложна для неподготовленного пользователя.
Сейчас появляется все больше и больше автоматизированных способов обработки изображений, существуют приложения для придания
изображению особой текстуры – стилизации, например [1], или для автоматического раскрашивания черно-белых изображений, например [2].
Существует также отдельный класс редакторов для исправления фотографий лиц людей, такие как [7] и [18], они помогают автоматически
редактировать целый набор различных дефектов, например, эффект
красных глаз, лишние блики, морщины и проблемы на коже лица. Тем
не менее, в сети интернет нет доступного средства для исправления
закрытых глаз на фотографиях.
Поэтому возникла идея помочь людям с обработкой таких фото-
5графий и создать приложение, способное автоматически исправлять
дефект закрытых глаз. Это приложение сможет дополнить ряд уже
существующих редакторов фотографий лиц людей, поможет как профессиональным фотографам, так и обычным людям.
Из возможных вариантов приложения была выбрана реализация в
виде веб-приложения. Был создан базовый сервер на Python с использованием веб-фреймворка Django, а также frontend на javascript.
Полученное приложение позволяет пользователю осуществить базовый сценарий работы, который включает в себя следующие действия.
• Пользователь может зарегистрироваться и авторизоваться (рис.
16), при этом все данные пользователя будут сохраняться в базе
данных SQLite.
• Авторизованный пользователь имеет возможность загружать свои
удачные фотографии с открытыми глазами в галерею фотографий.
• Авторизованный пользователь имеет возможность загрузить свою
неудачную фотографию на странице ”Fix my photo” (рис. 17).
• После загрузки своей неудачной фотографии пользователь имеет
возможность нажать кнопку ”Find my face”, что приведет к обработке загруженной фотографии алгоритмами описанными выше,
а полученный результат будет предоставлен пользователю.
• После получения первого результата у пользователя появляется
возможность отредактировать текущий результат, изменив размер и/или положение наложенных глаз (рис. 18).
• Отредактировав текущий результат, пользователь может нажать
кнопку ”Readjust”, что приведет, повторному применению описанного выше алгоритма вставки с учетом внесенных пользователем
правок. Финальный результат будет отображен на экране пользователя (рис. 19).
• Также авторизованный пользователь имеет возможность получить
доступ ко всем предыдущим полученным результатам в галерее
результатов