Нейронные сети в искусстве (проект): различия между версиями

Материал из Wiki - Факультет компьютерных наук
Перейти к навигации Перейти к поиску
Нет описания правки
Нет описания правки
 
(не показано 10 промежуточных версий 3 участников)
Строка 1: Строка 1:
{{Карточка_проекта
{{Карточка_проекта
|image=http://s17.postimg.org/dt35su5wf/Auu_Zve_A0p9_DN_1500x1500_mtdh_GWCw_png_500_500_20.jpg
|name=Нейронные сети в искусстве
|name=Нейронные сети в искусстве
|mentor=Слинько Игорь
|mentor=Слинько Игорь
Строка 10: Строка 9:
|categorize=yes
|categorize=yes
}}
}}
http://s17.postimg.org/dt35su5wf/Auu_Zve_A0p9_DN_1500x1500_mtdh_GWCw_png_500_500_20.jpg


=== Что это за проект? ===
=== Что это за проект? ===
Строка 25: Строка 25:


=== Какие начальные требования? ===
=== Какие начальные требования? ===
Из предыдущего пункта понятно, что есть несколько перпендикулярных задач. Будет здорово, если вы знакомы с нейронными сетями, Python (numpy, scipy, deeppy, PIL), JS, CSS, HTML, Photoshop
Из предыдущего пункта понятно, что есть несколько перпендикулярных задач. Будет здорово, если вы знакомы с:
 
* нейронными сетями;
 
* Python (numpy, scipy, deeppy, PIL);
 
* JS;
 
* CSS;
 
* HTML;
 
* Photoshop.


=== Какие будут использоваться технологии? ===
=== Какие будут использоваться технологии? ===
Пока что я заказал виртуалку у Яндекса, которую можно превратить в хостинг, но, вполне вероятно, нам понадобится какой-нибудь облачный сервис, который умеет обсчитывать на видеокартах, например Amazon Web Services такое умеет.<br />
* Пока что я заказал виртуалку у Яндекса, которую можно превратить в хостинг, но, вполне вероятно, нам понадобится какой-нибудь облачный сервис, который умеет обсчитывать на видеокартах, например Amazon Web Services.<br />


Шаблон сайта возьмем, например, с wix.com<br />
* API Яндекс.Диска


Возможно, потребуется поднять Nginx.<br />
* Шаблон сайта возьмем, например, с wix.com<br />


Познакомимся с PIL - пакетом для обработки изображений на Python
* Познакомимся с PIL - пакетом для обработки изображений на Python.
 
* Познакомимся с http-сервером на Python.
 
* Возможно, потребуется поднять Nginx.<br />


=== Темы вводных занятий ===
=== Темы вводных занятий ===
Строка 40: Строка 56:


=== Направления развития ===
=== Направления развития ===
Можно добавить функцию оплаты на сайте. <br />
* Можно добавить функцию оплаты на сайте. <br />
Можно попробовать сделать видео и запилить такую функцию. <br />
 
Можно попробовать делать большие и качественные изображения.
* Можно попробовать сделать видео и запилить такую функцию. <br />
 
* Можно попробовать делать большие и качественные изображения.


=== Критерии оценки ===
=== Критерии оценки ===
4-5: Сайт с формой загрузки и ссылками - историей результатов. На бэкэнде нужно реализовать очередь.<br />
4-5: На бэкэнде нужно реализовать очередь, которая будет скачивать из определенной папки Яндекс.Диска фотки, обрабатывать и загружать в соседнюю папку <br />


6-7: Красивый сайт с формой загрузки, оценкой веремени, отображением промежуточного результата и возможностью отменить рассчет, не дожидаясь окончания. Возможность загрузить сразу несколько фотографий и несколько стилей.<br />
6-7: Cайт с формой загрузки, оценкой веремени, отображением промежуточного результата и возможностью отменить рассчет, не дожидаясь окончания.<br />


8-10: Качественное улучшение алгоритма, предобсчет миниатюры, обсчет на видеокартах (реализация уже есть), форма оплаты, возможность обсчета больших изображений, возможность обрабатывать видео, пред- и пост-обработка
8-10: Качественное улучшение алгоритма, предобсчет миниатюры, обсчет на видеокартах (реализация уже есть), форма оплаты, возможность обсчета больших изображений, возможность обрабатывать видео, пред- и пост-обработка.


=== Ориентировочное расписание занятий ===
=== Ориентировочное расписание занятий ===
Пока не знаю
Уточняется

Текущая версия от 13:13, 28 июля 2017

Ментор Слинько Игорь
Учебный семестр Весна 2016
Учебный курс 1-й курс
Проект можно развивать на летней практике
Максимальное количество студентов, выбравших проект: 10


Auu_Zve_A0p9_DN_1500x1500_mtdh_GWCw_png_500_500_20.jpg

Что это за проект?

Улучшенный клон http://deepart.io/latest/

Этой осенью Gatys, Ecker и Bethge опубликовали статью, в которой описано, как обучить нейронную сеть рисовать картины. Статью можно почитать здесь: http://arxiv.org/pdf/1508.06576v2.pdf

Сейчас на гитхабе пара десятков репозиториев, которые реализуют этот алгоритм: https://github.com/search?utf8=✓&q=neural-style . Функциональность довольно простая: берем картину как стиль, берем фотку с котиком, ждем пару часов - и вот у нас уже получися котик, нарисованный Ван Гогом. Недавно появилось первое видео, нарисованное нейронными сетями: https://www.youtube.com/watch?v=0uCdJKVjPmQ . Пока еще не создали Марио "со вкусом" Эдварда Мунка. Сфера новая и понятно, что она будет развиваться. Уже скоро мы будем иметь в фотошопе соответствующие "фильтры", кинематограф будет обрабатывать свои картины новыми инструментами, художники начнут создавать картины больше задавая стиль, а детали оставляя компьютеру.

Хочется сделать сервис, который позволял бы удобно создавать такие картины/видео

Чему вы научитесь?

Познакомимся с нейросетями и с конкретной релизацией. Напишем бэкэнд на Python (без сложных фреймворков типа Jango). Напишем "ручки" на JavaScript и доверстаем (скорее всего уже готовый) шаблон

Какие начальные требования?

Из предыдущего пункта понятно, что есть несколько перпендикулярных задач. Будет здорово, если вы знакомы с:

  • нейронными сетями;
  • Python (numpy, scipy, deeppy, PIL);
  • JS;
  • CSS;
  • HTML;
  • Photoshop.

Какие будут использоваться технологии?

  • Пока что я заказал виртуалку у Яндекса, которую можно превратить в хостинг, но, вполне вероятно, нам понадобится какой-нибудь облачный сервис, который умеет обсчитывать на видеокартах, например Amazon Web Services.
  • API Яндекс.Диска
  • Шаблон сайта возьмем, например, с wix.com
  • Познакомимся с PIL - пакетом для обработки изображений на Python.
  • Познакомимся с http-сервером на Python.
  • Возможно, потребуется поднять Nginx.

Темы вводных занятий

Покажу, что получилось сделать на сегодняшний момент у меня и что получилось сделать у других. Расскажу о проблемах, которые ожидают на пути.

Направления развития

  • Можно добавить функцию оплаты на сайте.
  • Можно попробовать сделать видео и запилить такую функцию.
  • Можно попробовать делать большие и качественные изображения.

Критерии оценки

4-5: На бэкэнде нужно реализовать очередь, которая будет скачивать из определенной папки Яндекс.Диска фотки, обрабатывать и загружать в соседнюю папку

6-7: Cайт с формой загрузки, оценкой веремени, отображением промежуточного результата и возможностью отменить рассчет, не дожидаясь окончания.

8-10: Качественное улучшение алгоритма, предобсчет миниатюры, обсчет на видеокартах (реализация уже есть), форма оплаты, возможность обсчета больших изображений, возможность обрабатывать видео, пред- и пост-обработка.

Ориентировочное расписание занятий

Уточняется