Рубрика:
Карьера/Образование /
Пятая пара
|
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|
ВСЕВОЛОД ВИКУЛИН, студент 6-го курса ВМК МГУ имени М. В. Ломоносова (кафедра математических методов прогнозирования), сотрудник проекта Поиск Mail.Ru Group
БОРИС КОПИН, выпускник аспирантуры ВМК МГУ имени М. В. Ломоносова (кафедра математических методов прогнозирования), сотрудник компании Blackmoon
ДЕНИС КУЗЬМИН, студент 6-го курса ВМК МГУ имени М. В. Ломоносова (кафедра алгоритмических языков), сотрудник проекта Поиск Mail.Ru Group
Проект «Яркая память»: опыт использования нейросетей для колоризации черно-белых фотографий
В статье рассматриваются особенности разработки приложения для колоризации снимков военного времени
Проект «Яркая память» был разработан в рамках подготовки выпускного проекта студентами образовательного проекта Техносфера Mail.Ru Group.
Приложение «Яркая память» предназначено для колоризации черно-белых снимков, сделанных в период Великой Отечественной войны. Веб-приложение, доступное в десктопной версии социальной сети Одноклассники, позволяет пользователям загрузить фотографию с компьютера или из личного альбома в социальной сети и сделать ее цветной.
Используется нейронная сеть, прошедшая обучение на наборе данных, в который входило 600 000 фотографий. После обработки пользователь может сохранить цветную фотографию в личный альбом в социальной сети, скачать на компьютер или опубликовать в своей ленте новостей.
Разработкой приложения занималась команда студентов Техносферы в составе Всеволода Викулина, Бориса Копина и Дениса Кузьмина под руководством менторов учебного проекта. Первоначально идея заключалась в создании сервиса для ретуширования изображений с опцией колоризации черно-белых фотографий. В ходе обсуждения проекта с менторами, а затем с командой социальной сети Одноклассники идея проекта трансформировалась: было решено запустить специальное приложение с функцией колоризации черно-белых снимков времен войны.
Для этого предстояло спроектировать архитектуру нейронной сети, сформировать набор фотографий для обучения модели и запустить приложение на платформе Одноклассников. Команда протестировала множество готовых реализаций нейронных сетей, но ни одна из них не обеспечивала достаточного уровня качества. В связи с этим было решено создать собственную нейросеть. Разработанная командой нейросеть на первом этапе пыталась предсказывать RGB-версию изображения по черно-белому каналу, однако результат был признан неудовлетворительным, поскольку нейросеть стремилась раскрашивать все в серые тона (см. рис. 1).
Рисунок 1. Пример работы исходной нейронной сети
Тогда было решено использовать вторую, заранее обученную нейронную сеть. С ее помощью удалось извлекать признаки как из оригинальной цветной фотографии, так и из той, что была раскрашена первой нейросетью. Так нейросеть обучили понимать, какие цвета присущи объектам в реальной жизни (цвет неба – голубой, цвет травы – зеленый и так далее). Для реализации нейронных сетей использовался популярный фреймворк PyTorch (см. рис. 2).
Рисунок 2. Новая архитектура нейронной сети
На следующем этапе необходимо было научить модель подбирать максимально реалистичные оттенки для лиц людей. Для обучения требовались наборы данных, в которых представлены крупные фото лиц на естественном фоне. Среди существующих наборов подходящих не нашлось, поэтому команда сформировала датасет самостоятельно. Для этого был составлен список из 5000 знаменитостей, затем их имена были использованы в качестве поисковых запросов по вертикали изображений в ряде поисковых систем. С помощью методов распознавания лиц отсеивались картинки, не содержащие лиц вообще, а на оставшихся фотографиях выделялись наиболее подходящие фрагменты. Таким образом, был собран отвечающий требованиям проекта набор из 600 000 снимков с лицами людей в разных ракурсах и при различном освещении.
На снимках военного времени преобладают люди в форме – соответственно, команде проекта нужно было научить нейросеть колорировать форму. Для этого искусственным образом генерировались картинки, на которых была изображена военная форма с различными медалями и орденами. Также использовались кадры из цветных фильмов военной тематики.
В результате объединения этих материалов с популярным набором снимков общего плана команда получила 2,5 млн фотографий для обучения нейросети (см. рис. 3).
Рисунок 3. Примеры фотографий из набора данных для обучения
После подготовки рабочего прототипа нейронной сети оставалось запустить полноценное приложение на платформе Одноклассников. Разработку фронтенда веб-приложения полностью взяла на себя команда Одноклассников, в то время как команда студентов Технопарка разрабатывала бэкенд. В качестве основы бэкенда была использована архитектура проекта Artisto – разработанного Mail.Ru Group приложения для художественной обработки видео с помощью нейросетей. Для этого команда портировала код нейронной сети на фреймворк Torch на Lua и внедрила его в окружение (см. рис. 4).
Рисунок 4. Интерфейс приложения в ОК
9 мая «Яркая память» стала доступна многомиллионной аудитории Одноклассников. О приложении написали несколько крупных изданий.
Приложение, созданное ко Дню Победы, решено было оставить доступным. На сегодняшний день его установили уже более 250 тысяч пользователей.
Рисунок 5. Реальные примеры работы нейронной сети на тестовых фотографиях
Ключевые слова: нейронные сети, проект, обучение, тестирование.
Facebook
Мой мир
Вконтакте
Одноклассники
Google+
|