С месяц назад в блоге Google research появилась запись про визуализацию работы нейросети — мол, как она видит изображения при обработке, пестрящая картинками типа этой.
Народу стало интересно как такое можно сделать самостоятельно и спустя пару недель появилась новая запись с исходниками на гитхаб, которые позволяют все проделать самостоятельно.
Но нашлись те, кому быстро стало скучно, так что осторожно, подкатом психодел.
Настоящая КДПВ:
Берем исходники на гитхабе:
github.com/graphific/DeepDreamVideo
Как все это ставить и как удовлетворить те или иные зависимости можно узнать из подробного мануала на реддите:
www.reddit.com/r/deepdream/comments/3cawxb/what_are_deepdream_images_how_do_i_make_my_own
там же есть как все это запускать.
Собственно если натравить визуализатор на статические изображения — все не так уж плохо, действительно, картины начинают играть новыми красками
А люди новыми глазками:
Но если натравить визуализатор с обученной искать изображения животных нейросетью на колоритное видео, то… а впрочем смотрите сами:
Пока что авторы активно фиксят баги в репозитории и участвуют в обсуждении, так что присоединяйтесь к веселью.
По ссылке www.youtube.com/playlist?list=PL1z-xdY3wUl_yWU_KK49QLCe9UAp7_S3R можно найти остальные видео, обработанные с помощью #deepdream
UPD: На хабре появился перевод поста, с которого все и началось habrahabr.ru/company/io/blog/262267
Удачной пятницы!
Комментарии (35)
corvus
10.07.2015 02:49+12Схожесть с влиянием веществ на человеческий мозг поражает.
Может и вправду искусственный интеллект уже совсем рядом.sergku1213
10.07.2015 08:41+5У Вас не бывало такого, что смотришь на что-то очень необычное и не можешь разглядеть? И только разобравшись в изображении хорошенько, начинаешь видеть? Аналогичная история была у меня в юности с восприятием звука — разговор с первым встреченным иностранцем, болгарином, по-русски. Он мне 3 или 4 раза произносил своё имя, я не мог услышать. И только по буквам, понял. Оказалось — Пантелей. И тогда все стало ясно. Несколько другое произношение звуков — не как в русском, и мои паттерны не срабатывали. Да, похоже таки, ИИ близится. А тут восприятие лица, которое в жизни только животных и видало… логично и похоже.
dtestyk
10.07.2015 10:21+1если долго думать над значением слов, происходит что-то подобное, вот, например, словосочетание «таким образом»: каким образом? куда образом? при чем тут образ?
velezh
10.07.2015 11:14+8Лучше основательно задумайтесь над словом «таким». Через время можно вообще перестать понимать что происходит.
k0ldbl00d
11.07.2015 17:29+1Меня в детстве так часто накрывало. Для меня это было не очень приятное ощущение.
HurrTheDurr
10.07.2015 14:33+1Думаю, механизм такой же. Вещества нарушают работу мозга и некоторые сигналы начинают идти в обратную связь и усиливаться, вызывая псевдогаллюцинации и ошибки распознавания образов. Мышление, тем временем, тоже циклится на обдумывании величия бесконечномерной фрактальной вселенной или чего-то такого. Чем больше молекул употребил — тем больше коротких замыканий по всему мозгу. Если постоянно двигаться — ошибочные сигналы не успевают усилиться настолько, чтобы сильно влиять на действительность, но стоит только остановить взгляд на ковре… А если нейроны за время действия вещества установят стойкую обратную связь там, где не надо — человек заработает HPPD.
Единственное отличие — наши нейросети непрерывно учились распознавать вообще все подряд и не один десяток лет.
cjfynjy
10.07.2015 04:06+4Честно сказать, я удивлен, что на Гиктаймсе появилась статья про это только сейчас (да и на Хабре нету) — по большинству сколь-либо технологичных сообществ в интернете вообще и в рунете в частности волна постов и экспериментов с этой штукой прокатилась где-то еще с неделю назад. Ну это так, не критика автору, просто занятное наблюдение.
Добавлю, что те, кому лень развертывать у себя, могут воспользоваться веб-сервисами, развернутыми добрыми людьми:
deepdreams.zainshah.net — скорее мертв, чем жив, работает безумно медленно
deepdream.pictures — сам сайт работает шустро, но картинку выдает не сразу, а ставит в очередь, нужно ждать и потом искать в выдаче в «new» (перемалывает где-то 20 картинок в час, по словам автора)z0rgoyok
10.07.2015 04:57+3нейро-порно сплошное
1eqinfinity
11.07.2015 08:27Они смогли испортить нейро-сеть. Теперь она видит порно там, где его еще нет.
TheRaven
10.07.2015 09:22+1В копилку чудо-ссылок: nerd.d3.ru/algoritm-google-deep-dream-18-779758
Там же готовые контейнеры для докера.
radiolok Автор
10.07.2015 09:57+1Я и сам удивился, не обнаружив даже и упоминания о Deep Dream, хотя тема очень интересная.
На deepderam.pictures очередь как в поликлинику. Моя картинка при добавлении была примерно 2500 в очереди. Уведомление еще не пришло.domix32
10.07.2015 11:54Могу ошибаться, но буквально недавно была статья, правда тогда гугл ещё не назвал это DeepDream.
Sadler
10.07.2015 08:13+3На видео надо кадры как-то связать, иначе образы слишком быстро меняются. Надо сделать так, чтобы сеть помнила, что в предыдущем кадре выбрала определённые фичи. Например, искать их не в двумерном, а в трёхмерном пространстве, где третье измерение — время.
unwrecker
10.07.2015 10:00Кому-нибудь удалось это поднять под Линуксом на caffe?
megalol
10.07.2015 20:05Поднимал на двух машинах, на xubuntu было все просто по инструкции, на дебиане пришлось попатчить мейкфайл, решение было в issues на гитхабе. CPU версия вообще легко собирается.
На AWS во Франкфурте есть готовый образ, который я нашел по ключевому слову caffe (deepdream что-то там), на спотовом рынке g2.2xlarge стоит 0.1-0.2 доллара в час, так что если есть аккаунт, это может быть самым быстрым. Там нужно зайти в папку ~/deepdream, установить и запустить ipython notebook.
Далее пробросить порт на localhost (https://coderwall.com/p/ohk6cg/remote-access-to-ipython-notebooks-via-ssh) и в общем-то все.
Georg93
10.07.2015 11:05+2dtestyk
10.07.2015 11:46+1Интересно как бы выглядело с сетью, обученной на симпсонах, например. Или, наоборот, как бы выглядели люди и животные у сети, обученной на порно.
Bal
10.07.2015 18:03+3Не тот подход. Куда интереснее было бы посмотреть не на обычно порно, пропущенное через нейросеть, обученную на животных, а тех же животных (или что угодно), пропущенных через нейросеть, обученную порно-образам :)
urbain
10.07.2015 13:35Вот тут есть образ для docker уже с собранным дипдримом:
github.com/VISIONAI/clouddream
Осторожно — разворачиватся на 5 гигов примерно. Внутри несколько скриптов и огромный блоб.
Картинки показывает в веб-интерфейсе. Работает на CPU, поэтому небыстрый (у меня FullHD картинку жуёт минут 10 на один проход).
Ну и картинки далеко не все с первого прохода получаются такими психоделичными.
Портреты вообще плохо обрабатывает, но зато абстрактные изображения или пейзажи — гораздо лучше.
SergioBarbery
11.07.2015 08:57+2Вот еще инструкция на английском как запустить DeeepDeream под Windows или OSx с использованием виртуальной
машины VirtualBox и Docker. Реализовано через Python Notebooks.
ryankennedy.io/running-the-deep-dream
Вкратце работает так (пример для Windows 7, 8)
1. Ставим boot2docker. Рекомендую версию 1.6.0, т.к. в последней 1.7.0 могут быть проблемы с сертификатом после перезапуска
виртуальной машины. Поставит все необходимое или недостающее включая VirtualBox и клиент для GitHub.
github.com/boot2docker/windows-installer/releases/tag/v1.6.0
2. Запускаем boot2docker через иконку на рабочем столе. Ждем пока инициализируется.
В консоле загружаем репозиторий с вирутальным контейнером. Контейнер большой — около 3 Гиг.
docker pull ryankennedyio/deepdream
3. Запускаем контейнер
docker run -d -p 443:8888 -e «PASSWORD=password» -v //c/Users/User/Pictures:/src ryankennedyio/deepdream
Здесь //c/Users/User/Pictures — путь до каталога картинок, который в виртуальном контейнере монтируется как /src.
User — имя (каталог) пользователя под Windows.
Нужно помнить, что docker не имеет доступа к другим каталогам кроме каталога пользователя, так что монтирование других
путей (на других дисках) может не работать.
4. В браузере заходим по ip адресу виртуальной машины
Посмотреть какой можно командой boot2docker ip
Для моего случая (и как описано в инструкции) это будет вебстраница https по ip контейнера.
192.168.59.103/tree
Пароль — тот что ввели при запуске виртуального контейнера.
5. Кликаем на dream.ipynb и попадаем в Python NoteBook.
Ошибку «Failed to retrieve MathJax from ...» можно просто игнорировать.
Далее можем по порядку запускать код. Там есть пояснения опять же на английском.
Вместо img = np.float32(PIL.Image.open('/src/input.jpg'))
прописываем свой файл, который предварительно скопировали в c:\Users\User\Pictures. Помним, что c:\Users\User\Pictures это /src
Далее можно играться с разными эффектами или же запустить генератор фреймов из которых потом можно склеить небольшое видео.
Про Docker статейка была на Хабре — habrahabr.ru/post/253877.
P.S. Прошу прощения, гиперлинки по известной причине у меня не работают.
pavelplus
11.07.2015 11:17А ведь именно так и выглядел бы мир в глазах человека, которому с детства показывали исключительно животных…
olegkrasnov
Можно использовать как новый жанр изобразительного искусства.
mediagenia
Я сначала это чудо в твиттере Гибсона увидел и ещё подумал: «ого, какой свежий подход в изо!»