DeepDream — Визуализатор работы нейросети


    С месяц назад в блоге 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
    • +7
      Можно использовать как новый жанр изобразительного искусства.
      • 0
        Я сначала это чудо в твиттере Гибсона увидел и ещё подумал: «ого, какой свежий подход в изо!»
      • +12
        Схожесть с влиянием веществ на человеческий мозг поражает.

        Может и вправду искусственный интеллект уже совсем рядом.
        • +5
          У Вас не бывало такого, что смотришь на что-то очень необычное и не можешь разглядеть? И только разобравшись в изображении хорошенько, начинаешь видеть? Аналогичная история была у меня в юности с восприятием звука — разговор с первым встреченным иностранцем, болгарином, по-русски. Он мне 3 или 4 раза произносил своё имя, я не мог услышать. И только по буквам, понял. Оказалось — Пантелей. И тогда все стало ясно. Несколько другое произношение звуков — не как в русском, и мои паттерны не срабатывали. Да, похоже таки, ИИ близится. А тут восприятие лица, которое в жизни только животных и видало… логично и похоже.
          • +1
            если долго думать над значением слов, происходит что-то подобное, вот, например, словосочетание «таким образом»: каким образом? куда образом? при чем тут образ?
            • +8
              Лучше основательно задумайтесь над словом «таким». Через время можно вообще перестать понимать что происходит.
              • +1
                Меня в детстве так часто накрывало. Для меня это было не очень приятное ощущение.
            • 0
              Абсолютно не похоже.

              Четкости не хватает и плавности.
              • 0
                Похоже-похоже.

                Наблюдаю явное сходство с некоторыми стадиями аявасочного трипа.
              • +1
                Думаю, механизм такой же. Вещества нарушают работу мозга и некоторые сигналы начинают идти в обратную связь и усиливаться, вызывая псевдогаллюцинации и ошибки распознавания образов. Мышление, тем временем, тоже циклится на обдумывании величия бесконечномерной фрактальной вселенной или чего-то такого. Чем больше молекул употребил — тем больше коротких замыканий по всему мозгу. Если постоянно двигаться — ошибочные сигналы не успевают усилиться настолько, чтобы сильно влиять на действительность, но стоит только остановить взгляд на ковре… А если нейроны за время действия вещества установят стойкую обратную связь там, где не надо — человек заработает HPPD.
                Единственное отличие — наши нейросети непрерывно учились распознавать вообще все подряд и не один десяток лет.
                • 0
                  Думаю, более точного аналогией будет сенсорная депривация.
                • +4
                  Честно сказать, я удивлен, что на Гиктаймсе появилась статья про это только сейчас (да и на Хабре нету) — по большинству сколь-либо технологичных сообществ в интернете вообще и в рунете в частности волна постов и экспериментов с этой штукой прокатилась где-то еще с неделю назад. Ну это так, не критика автору, просто занятное наблюдение.

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

                  deepdreams.zainshah.net — скорее мертв, чем жив, работает безумно медленно
                  deepdream.pictures — сам сайт работает шустро, но картинку выдает не сразу, а ставит в очередь, нужно ждать и потом искать в выдаче в «new» (перемалывает где-то 20 картинок в час, по словам автора)
                  • +3
                    нейро-порно сплошное
                    • 0
                      Они смогли испортить нейро-сеть. Теперь она видит порно там, где его еще нет.
                    • +1
                      В копилку чудо-ссылок: nerd.d3.ru/algoritm-google-deep-dream-18-779758
                      Там же готовые контейнеры для докера.
                      • +1
                        Я и сам удивился, не обнаружив даже и упоминания о Deep Dream, хотя тема очень интересная.

                        На deepderam.pictures очередь как в поликлинику. Моя картинка при добавлении была примерно 2500 в очереди. Уведомление еще не пришло.
                        • 0
                          Могу ошибаться, но буквально недавно была статья, правда тогда гугл ещё не назвал это DeepDream.
                          • 0
                            • 0
                              Да, полтора часа назад появился перевод оригинальной записи с которой все и началось, добавил ссылку в статью.
                              • 0
                                Её видимо в черновики убирали, потому как читал её гораздо раньше.
                          • 0
                            Написали бы первые! )
                          • +3
                            На видео надо кадры как-то связать, иначе образы слишком быстро меняются. Надо сделать так, чтобы сеть помнила, что в предыдущем кадре выбрала определённые фичи. Например, искать их не в двумерном, а в трёхмерном пространстве, где третье измерение — время.
                            • 0
                              Кому-нибудь удалось это поднять под Линуксом на caffe?
                              • 0
                                Поднимал на двух машинах, на 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) и в общем-то все.
                              • +2
                                Про это уже есть порно.
                                И на реддите.
                                • +1
                                  Интересно как бы выглядело с сетью, обученной на симпсонах, например. Или, наоборот, как бы выглядели люди и животные у сети, обученной на порно.
                                  • 0
                                    Я бы посмотрел на порно, пропущенное через нейросеть роскомнадзора :)
                                  • +3
                                    Не тот подход. Куда интереснее было бы посмотреть не на обычно порно, пропущенное через нейросеть, обученную на животных, а тех же животных (или что угодно), пропущенных через нейросеть, обученную порно-образам :)
                                    • 0
                                      А лучше обучить сразу на порно и на котиках.
                                  • 0
                                    Вот тут есть образ для docker уже с собранным дипдримом:

                                    github.com/VISIONAI/clouddream

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

                                    Ну и картинки далеко не все с первого прохода получаются такими психоделичными.
                                    Портреты вообще плохо обрабатывает, но зато абстрактные изображения или пейзажи — гораздо лучше.
                                    • +1
                                      Ха, ха то то Кен Кизи под конец занялся программированием )
                                      • +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. Прошу прощения, гиперлинки по известной причине у меня не работают.
                                        • 0
                                          А ведь именно так и выглядел бы мир в глазах человека, которому с детства показывали исключительно животных…
                                          • 0
                                            А почему получается так много глаз на фотках?
                                            • –1
                                              Сделайте кому не долго вот это видео:
                                              www.youtube.com/watch?v=awChThLHAKQ

                                              Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.