LINUX.ORG.RU

Neural Doodle превращает рисунки из Paint в художественные шедевры с помощью нейросетей

 , ,


18

4

Австрийский программист Alex J. Champandard создал программу, превращающую рисунки, нарисованные в графическом редакторе Paint, в художественные шедевры с помощью нейросетей. Анализируя алгоритмы рисования многих известных художников, программа обрабатывает рисунок, нарисованный пользователем, и стилизует его. На выходе получаются красивые картины.

>>> Подробности

★★★★★

Проверено: subwoofer ()
Последнее исправление: Deleted (всего исправлений: 2)
Ответ на: комментарий от cli

Можешь скинуть все исходники (образец стиля, вот это всё) и комманду которой запускал процесс? Хочу понять почему у меня лажа выходит.
Ну и какой проц, процы немножко разные бывают. Я на Intel i5-4200U гонял (1.60GHz). Результат на 300 итераций потребовал 304 минуты

Кстати по образцу от автора (Coastline_sem.png) генерит нормально. Вот например 40 итераций:
http://itmages.ru/image/view/3994218/3e41b7f0
Возможно целевые семантические карты надо как-то особенно рисовать, а может образец стиля правильно раскрашивать. В общем косяк видимо в непрограмной части. Или нейронная сеть хорошо обучена именно под конкретный образец стиля.

MrClon ★★★★★
()
Ответ на: комментарий от MrClon

Оно сильно не со всеми картинами работает, я пока не понял принцип, но похоже там надо, чтобы в размер матрицы нужных слоёв нейросетки влезали мелкие фрагменты картины, поэтому игры с масштабом, разрешением и выбором слоёв обычно приводят к более позитивным результатам. Из русских художников, кстати, неплохо переносится Айвазовский.

dn2010 ★★★★★
()
Ответ на: комментарий от dn2010

Ну точнее там если представление картины в нейросети удачное, в первых уровнях должно быть нечто похожее на часть базиса DCT в JPEG или набора самых часто представленных базисных вейвлетов в вейвлетном представлении, а для этого масштаб пространственных частот картины и размеры матрицы свёртки на первых уровнях должны правильно соотноситься.

dn2010 ★★★★★
()
Ответ на: комментарий от MrClon

Про оба на самом деле: скетч в пайнте у нас работает на последнем уровне нейросети куда какие лоскутки вставлять, сами лоскутки надёргиваются из образца стиля в размере, задаваемом матрицами свёртки на свёрточных уровнях нейросети. И вот если эти лоскутки получаются правильного размера, перенос работает хорошо, если они слишком большие или слишком маленькие, то получается наркоманство deepdreamа.

dn2010 ★★★★★
()
Ответ на: комментарий от MrClon

Сейчас ещё 1000 итераций гоняю, будет завтра если не закрешится.

Ого, неплохо!
А у меня видяха от amd, поэтому запустил на cpu, результата пока нет - 13 часов в работе, последняя запись в логе

Phase #2: resolution 800x600  scale 1.0
  - Style layer sem3_1: 11844 patches in 27,608kb.
  - Style layer sem4_1: 2852 patches in 13,219kb.
И это для 40(!) итераций, 800х600 вообще ппц...

fehhner ★★★★★
()
Ответ на: комментарий от MrClon

Можешь скинуть все исходники (образец стиля, вот это всё) и комманду которой запускал процесс? Хочу понять почему у меня лажа выходит. Ну и какой проц, процы немножко разные бывают. Я на Intel i5-4200U гонял (1.60GHz). Результат на 300 итераций потребовал 304 минуты

Мне кажется, я что-то делаю не так. На амд A6 (4 реальных ядра по 2100MHz), работает с 40 итерациями уже 13 часов, при этом грузит его на 30-50%. Хотя исходник не совсем корректно подготовил - там больше информации цветовой, чем надо.

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Может нормальная поддержка GPU есть только от Nvidia? AMD автор мог просто не учитывать.

karton1 ★★★★★
() автор топика
Последнее исправление: karton1 (всего исправлений: 1)
Ответ на: комментарий от fehhner

Глубокие сетки на CPU не работают (почти).

dn2010 ★★★★★
()
Ответ на: комментарий от fehhner

Один из процессов гонявших 1000 итераций засегфолтился

[62474.405159] python3[1804]: segfault at 10 ip afb402f6 sp bffe0f70 error 4 in m5c1e10e09b7904efda3c7e8fe5d09eed.so[afb3f000+4000]

Второй продолжает долбиться, сейчас на scale 0.5. Я параллельно несколько процессов запускаю что-бы оба ядра утилизировать (когда запускал не знал что программ умеет паралелиться).

Судя по тому что осталось от сдохшего процесса и предварительным результатам того который ещё жив смысла в таком раздувании количества итераций нет. Видимо качество зависит от исходника, о чём писал dn2010.

MrClon ★★★★★
()
Ответ на: комментарий от Evgueni

CUDA есть только у карт Nvidia — это ихний проприетарный стандарт.

Аналог от AMD - OpenCL, у меня правда пакет с поддержкой не установлен, но не знаю, насколько это необходимо - я ни слова в инфе по пакету о его поддержке не заметил...

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

Аналог от AMD - OpenCL

Аналог от AMD они только начали делать в виде своего компилятора куды, через OpenCl ни одной либы ускорения нейросетей не работает, и сам opencl скорей мёртвенький в опенсорсе, хотя есть две открытые реализации, которыми разработчики тех проектов, которые всё-таки сделали поддержку opencl (darktable, например) рекомендуют не пользоваться.

dn2010 ★★★★★
()

Я делал похожее 20 лет назад на редакторе Fauve Matiss, который потом умер (сам по себе умер, не от моих действий). На первопне. На 4 мегабайтах оперативы.

anonymous
()
Ответ на: комментарий от anonymous

Но ведь там не было столько бесполезных вычислений!

anonymous
()

Вот оно чудное «преимущество» питона. Как вот собрать это туеву хучу зависимых библиотек в единый, переносимый пакет? Пешите на питоне, да.

anonymous
()
Ответ на: комментарий от fehhner

Аналог от AMD - OpenCL

Нет. OpenCL от Эппла. NVIDIA умеет OpenCL, но пропихивает собственный закрытый CUDA. AMD умеет только OpenCL, да и тот не сильно хорошо.

yuran ★★
()
Ответ на: комментарий от yuran

Нет. OpenCL от Эппла. NVIDIA умеет OpenCL, но пропихивает собственный закрытый CUDA. AMD умеет только OpenCL, да и тот не сильно хорошо.

Игрушки со стима норм идут. Не думал при покупке, что стоит делать выбор в пользу нвидии из-за всяких таких плюшек((

fehhner ★★★★★
()
Ответ на: комментарий от fehhner

OpenCL аналог для _всего_. Проблема одна — стандарт появился позже CUDA. Транслятора CUDA в OpenCL не существует, поэтому чтобы программа работала с OpenCL — её нужно дорабатывать.

Evgueni ★★★★★
()
Ответ на: комментарий от fehhner

Игрушки используют OpenCL? С OpenGL не путаешь?

MrClon ★★★★★
()
Ответ на: комментарий от fehhner

Игрушки со стима не используют ни OpenCL ,ни CUDA. Не рациональная трата ресурсов ГП. Если конечно в твоем текстолите не стопицот ядер или у тебя несколько видеокарт, но все равно, смысла абсолютно все вычисления перекладывать на ГП нет. Все-таки видеокарта предназначена для обработки графония и вывода картинки. Единственная плюшка невидии — аппаратное ускорение PhysX. Хотя люди с форумов иногда заявляют, что на ЦП обработка физикса быстрее. Так что обработка физике на видеокарте весьма спорно, учитывая то, что в современных играх ее (физики) совсем немного, если и совсем нет. Речь конечно идет о ААА, а не о всяких инди-песочницах.

Unicode4all ★★★★★
()
Последнее исправление: Unicode4all (всего исправлений: 1)

Torch - тоже нейросети - умеет OPENCL

anonymous
()
Ответ на: комментарий от crutch_master

классика жанра. Ставишь после подозрительных вызовов print («я еще жив 001»)

И смотришь выхлоп

AVL2 ★★★★★
()
Ответ на: комментарий от hikikomori

Очень просто, читаем ридми и делаем как там просят.

Нужно поставить python3 и pip из репозитариев.

И запустить pip3 install -r requirenments.txt

Он сам все подгрузит и установит. Мне потребовалось только поставить libpng-devel и turbojpeg-devel и еще пару расчетных либ.

AVL2 ★★★★★
()
Ответ на: комментарий от AVL2

У меня Ununtu 14.04 и так стоит 3й: $ python3 Python 3.4.3 (default, Oct 14 2015, 20:28:29) [GCC 4.8.4] on linux

ридми не очень понял. Скажем первая же строка выдала ошибку:

Отказано в доступе @ error/blob.c/OpenBlob/2638

Можно пошаговую инструкцию? Был бы признателен.

hikikomori ★★★
()
Ответ на: комментарий от anonymous

Линакс не готов к real-world задачам.

anonymous
()
Ответ на: комментарий от devl547

Конечно же все обосрались кроме вас.

anonymous
()
Ответ на: комментарий от hikikomori

apt-cache search pip3

apt-get install найденое что-то типа python3-pip

и всего одна команда от рута

pip3 install -r requirements.txt

Если сборк вываливается, смотреть, чего не хватает и доставлять.

AVL2 ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.