С месяц назад в блоге 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)


  1. olegkrasnov
    10.07.2015 02:22
    +7

    Можно использовать как новый жанр изобразительного искусства.


    1. mediagenia
      10.07.2015 15:17

      Я сначала это чудо в твиттере Гибсона увидел и ещё подумал: «ого, какой свежий подход в изо!»


  1. corvus
    10.07.2015 02:49
    +12

    Схожесть с влиянием веществ на человеческий мозг поражает.

    Может и вправду искусственный интеллект уже совсем рядом.


    1. sergku1213
      10.07.2015 08:41
      +5

      У Вас не бывало такого, что смотришь на что-то очень необычное и не можешь разглядеть? И только разобравшись в изображении хорошенько, начинаешь видеть? Аналогичная история была у меня в юности с восприятием звука — разговор с первым встреченным иностранцем, болгарином, по-русски. Он мне 3 или 4 раза произносил своё имя, я не мог услышать. И только по буквам, понял. Оказалось — Пантелей. И тогда все стало ясно. Несколько другое произношение звуков — не как в русском, и мои паттерны не срабатывали. Да, похоже таки, ИИ близится. А тут восприятие лица, которое в жизни только животных и видало… логично и похоже.


      1. dtestyk
        10.07.2015 10:21
        +1

        если долго думать над значением слов, происходит что-то подобное, вот, например, словосочетание «таким образом»: каким образом? куда образом? при чем тут образ?


        1. velezh
          10.07.2015 11:14
          +8

          Лучше основательно задумайтесь над словом «таким». Через время можно вообще перестать понимать что происходит.


        1. k0ldbl00d
          11.07.2015 17:29
          +1

          Меня в детстве так часто накрывало. Для меня это было не очень приятное ощущение.


    1. crmMaster
      10.07.2015 13:02

      Абсолютно не похоже.

      Четкости не хватает и плавности.


      1. Apazhe
        10.07.2015 21:40

        Похоже-похоже.

        Наблюдаю явное сходство с некоторыми стадиями аявасочного трипа.


    1. HurrTheDurr
      10.07.2015 14:33
      +1

      Думаю, механизм такой же. Вещества нарушают работу мозга и некоторые сигналы начинают идти в обратную связь и усиливаться, вызывая псевдогаллюцинации и ошибки распознавания образов. Мышление, тем временем, тоже циклится на обдумывании величия бесконечномерной фрактальной вселенной или чего-то такого. Чем больше молекул употребил — тем больше коротких замыканий по всему мозгу. Если постоянно двигаться — ошибочные сигналы не успевают усилиться настолько, чтобы сильно влиять на действительность, но стоит только остановить взгляд на ковре… А если нейроны за время действия вещества установят стойкую обратную связь там, где не надо — человек заработает HPPD.
      Единственное отличие — наши нейросети непрерывно учились распознавать вообще все подряд и не один десяток лет.


    1. GreatNonentity
      26.07.2015 15:20

      Думаю, более точного аналогией будет сенсорная депривация.


  1. cjfynjy
    10.07.2015 04:06
    +4

    Честно сказать, я удивлен, что на Гиктаймсе появилась статья про это только сейчас (да и на Хабре нету) — по большинству сколь-либо технологичных сообществ в интернете вообще и в рунете в частности волна постов и экспериментов с этой штукой прокатилась где-то еще с неделю назад. Ну это так, не критика автору, просто занятное наблюдение.

    Добавлю, что те, кому лень развертывать у себя, могут воспользоваться веб-сервисами, развернутыми добрыми людьми:

    deepdreams.zainshah.net — скорее мертв, чем жив, работает безумно медленно
    deepdream.pictures — сам сайт работает шустро, но картинку выдает не сразу, а ставит в очередь, нужно ждать и потом искать в выдаче в «new» (перемалывает где-то 20 картинок в час, по словам автора)


    1. z0rgoyok
      10.07.2015 04:57
      +3

      нейро-порно сплошное


      1. 1eqinfinity
        11.07.2015 08:27

        Они смогли испортить нейро-сеть. Теперь она видит порно там, где его еще нет.


    1. TheRaven
      10.07.2015 09:22
      +1

      В копилку чудо-ссылок: nerd.d3.ru/algoritm-google-deep-dream-18-779758
      Там же готовые контейнеры для докера.


    1. radiolok Автор
      10.07.2015 09:57
      +1

      Я и сам удивился, не обнаружив даже и упоминания о Deep Dream, хотя тема очень интересная.

      На deepderam.pictures очередь как в поликлинику. Моя картинка при добавлении была примерно 2500 в очереди. Уведомление еще не пришло.


      1. domix32
        10.07.2015 11:54

        Могу ошибаться, но буквально недавно была статья, правда тогда гугл ещё не назвал это DeepDream.


      1. domix32
        10.07.2015 15:41

        1. radiolok Автор
          10.07.2015 15:46

          Да, полтора часа назад появился перевод оригинальной записи с которой все и началось, добавил ссылку в статью.


          1. domix32
            10.07.2015 16:39

            Её видимо в черновики убирали, потому как читал её гораздо раньше.


    1. KvanTTT
      10.07.2015 10:55

      Написали бы первые! )


  1. Sadler
    10.07.2015 08:13
    +3

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


  1. unwrecker
    10.07.2015 10:00

    Кому-нибудь удалось это поднять под Линуксом на caffe?


    1. 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) и в общем-то все.


  1. Georg93
    10.07.2015 11:05
    +2

    Про это уже есть порно.
    И на реддите.


    1. dtestyk
      10.07.2015 11:46
      +1

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


      1. Corpsemeister
        10.07.2015 13:25

        Я бы посмотрел на порно, пропущенное через нейросеть роскомнадзора :)


    1. Bal
      10.07.2015 18:03
      +3

      Не тот подход. Куда интереснее было бы посмотреть не на обычно порно, пропущенное через нейросеть, обученную на животных, а тех же животных (или что угодно), пропущенных через нейросеть, обученную порно-образам :)


      1. quarantino
        11.07.2015 05:44

        А лучше обучить сразу на порно и на котиках.


  1. urbain
    10.07.2015 13:35

    Вот тут есть образ для docker уже с собранным дипдримом:

    github.com/VISIONAI/clouddream

    Осторожно — разворачиватся на 5 гигов примерно. Внутри несколько скриптов и огромный блоб.
    Картинки показывает в веб-интерфейсе. Работает на CPU, поэтому небыстрый (у меня FullHD картинку жуёт минут 10 на один проход).

    Ну и картинки далеко не все с первого прохода получаются такими психоделичными.
    Портреты вообще плохо обрабатывает, но зато абстрактные изображения или пейзажи — гораздо лучше.


  1. mediaton
    10.07.2015 22:39
    +1

    Ха, ха то то Кен Кизи под конец занялся программированием )


  1. 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. Прошу прощения, гиперлинки по известной причине у меня не работают.


  1. pavelplus
    11.07.2015 11:17

    А ведь именно так и выглядел бы мир в глазах человека, которому с детства показывали исключительно животных…


  1. aikixd
    11.07.2015 11:21

    А почему получается так много глаз на фотках?


  1. keith
    15.07.2015 18:03
    -1

    Сделайте кому не долго вот это видео:
    www.youtube.com/watch?v=awChThLHAKQ