Идея дорисовать сову из кружочков реализована с помощью нейросетей.
На базе машинного обучения и нейронной сети разработчик Кристофер Гессе создал онлайн-сервис, который может «дорисовывать» наброски до полноценных цветных фотографий.
На сайте http://affinelayer.com/pixsrv/index.html Кристофера Гессе представлена нейросеть, способная дорисовывать кошек.
Пользователю предлагается нарисовать набросок кошки в левом окне, нажать «process» и посмотреть, как нейросеть дорисует иллюстрацию. На странице показан такой красивый пример:
Видимо чем больше линий использовано в наброске и чем больше набросок походит на кота из обучающей выборки, тем качественней нейросеть создаст полноценный рисунок на его основе.
Вот что пишет сам автор:
Недавно, я сделал Tensorflow порт pix2pix на Isola и др., рассмотренный в статье Image-to-Image Translation in Tensorflow. Я взял несколько ранее созданных моделей и сделал интерактивную веб страницу для тестирования. Для просмотра рекомендуется браузер Chrome.
Модель pix2pix работает путем обучения на парах изображений, таких как набросок фасада здания и полного изображения фасадов зданий, а затем пытается сгенерировать соответствующее выходное изображение для любого входного переданного изображения. Эта идея берет начало из статьи pix2pix, которая рекомендуется к прочтению.
Фасады
Модель обучалась на выборки набросков фасадов зданий к полноценным изображениям фасадов. Навряд ли эта модель будет работать на набросках с большой пустой областью, но если в наброске нарисовать достаточное количество окон, то часто модель дает хорошие результаты. На картинке наброска элементы фасада нарисованы цветными прямоугольниками, чтобы обозначить не только границы, но и целиком элементы.
У меня не было названия различных частей фасадов зданий, так что я просто приблизительно их обозначил.
edges2cats
Обучение проходило на приблизительно 2000 фотографий котов и набросков с автоматически сгенерированными границами для этих фотографий. Модель создает цветные изображения кошек из набросков, но некоторые сталкивается с кошмарными результатами. Один из таких я видел тут.
Некоторые картинки выглядят особенно жуткими, я думаю, потому коты были нарисованы неправильно, особено из за глаз. Процедура автогенерации границ была не очень качественной, и во многих случаях не обнаруживала глаза кошки, что ухудшает качество подготовленной базы изображений для обучения модели.
edges2shoes
Обучение проводилось на базе приблизительно 50 тысяч картинок обуви, собранных из Zappos, а также с автоматически сгенерированными набросками границ для этих изображений. Если вы действительно хорошо нарисуете границы обуви, вы можете попытаться создать некоторый новый дизайн. Имейте в виду, модель обучалась на реальных объектах, так что если вы можете нарисовать более качественный 3D набросок, то результат будет выглядеть лучше.
edges2handbags
По аналогии с предыдущими, обучение проводилось на базе приблизительно 137 тысяч фотографий сумок, собранных из Amazon, c автоматически cгенерированными набросками границ для этих фотографий. Если вы нарисуете здесь ботинок вместо сумочки, вы получите очень странную текстуру обуви.
Реализация
Обучение и экспорт моделей был произведен с помощью скрипта pix2pix.py из pix2pix-tensorflow. Интерактивное демо сделано на базе JavaScript с использованием Canvas API, которое взаимодействует с сервером, который передает изображения Tensorflow. Сервер может запускать Tensorflow сам или пересылать запросы на Cloud ML Google службы Tensorflow.
Обученные модели доступны в разделе Datasets на GitHub. Также должны быть доступны модели идущие вместе с оригинальной реализацией pix2pix. Модели могут быть экспортированы из обученных примеров с использованием скрипта pix2pix.py и ссылки на экспортируемые модели есть в файле README на сервере GitHub.
Границы для фотографий кошек были получены с использованием алгоритма Holistically-Nested Edge Detection и этот функционал был добавлен к скрипту process.py и соответствующие зависимости были добавлены к Docker image.
На базе машинного обучения и нейронной сети разработчик Кристофер Гессе создал онлайн-сервис, который может «дорисовывать» наброски до полноценных цветных фотографий.
На сайте http://affinelayer.com/pixsrv/index.html Кристофера Гессе представлена нейросеть, способная дорисовывать кошек.
Пользователю предлагается нарисовать набросок кошки в левом окне, нажать «process» и посмотреть, как нейросеть дорисует иллюстрацию. На странице показан такой красивый пример:
Видимо чем больше линий использовано в наброске и чем больше набросок походит на кота из обучающей выборки, тем качественней нейросеть создаст полноценный рисунок на его основе.
Вот что пишет сам автор:
Недавно, я сделал Tensorflow порт pix2pix на Isola и др., рассмотренный в статье Image-to-Image Translation in Tensorflow. Я взял несколько ранее созданных моделей и сделал интерактивную веб страницу для тестирования. Для просмотра рекомендуется браузер Chrome.
Модель pix2pix работает путем обучения на парах изображений, таких как набросок фасада здания и полного изображения фасадов зданий, а затем пытается сгенерировать соответствующее выходное изображение для любого входного переданного изображения. Эта идея берет начало из статьи pix2pix, которая рекомендуется к прочтению.
Фасады
Модель обучалась на выборки набросков фасадов зданий к полноценным изображениям фасадов. Навряд ли эта модель будет работать на набросках с большой пустой областью, но если в наброске нарисовать достаточное количество окон, то часто модель дает хорошие результаты. На картинке наброска элементы фасада нарисованы цветными прямоугольниками, чтобы обозначить не только границы, но и целиком элементы.
У меня не было названия различных частей фасадов зданий, так что я просто приблизительно их обозначил.
edges2cats
Обучение проходило на приблизительно 2000 фотографий котов и набросков с автоматически сгенерированными границами для этих фотографий. Модель создает цветные изображения кошек из набросков, но некоторые сталкивается с кошмарными результатами. Один из таких я видел тут.
Некоторые картинки выглядят особенно жуткими, я думаю, потому коты были нарисованы неправильно, особено из за глаз. Процедура автогенерации границ была не очень качественной, и во многих случаях не обнаруживала глаза кошки, что ухудшает качество подготовленной базы изображений для обучения модели.
edges2shoes
Обучение проводилось на базе приблизительно 50 тысяч картинок обуви, собранных из Zappos, а также с автоматически сгенерированными набросками границ для этих изображений. Если вы действительно хорошо нарисуете границы обуви, вы можете попытаться создать некоторый новый дизайн. Имейте в виду, модель обучалась на реальных объектах, так что если вы можете нарисовать более качественный 3D набросок, то результат будет выглядеть лучше.
edges2handbags
По аналогии с предыдущими, обучение проводилось на базе приблизительно 137 тысяч фотографий сумок, собранных из Amazon, c автоматически cгенерированными набросками границ для этих фотографий. Если вы нарисуете здесь ботинок вместо сумочки, вы получите очень странную текстуру обуви.
Реализация
Обучение и экспорт моделей был произведен с помощью скрипта pix2pix.py из pix2pix-tensorflow. Интерактивное демо сделано на базе JavaScript с использованием Canvas API, которое взаимодействует с сервером, который передает изображения Tensorflow. Сервер может запускать Tensorflow сам или пересылать запросы на Cloud ML Google службы Tensorflow.
Обученные модели доступны в разделе Datasets на GitHub. Также должны быть доступны модели идущие вместе с оригинальной реализацией pix2pix. Модели могут быть экспортированы из обученных примеров с использованием скрипта pix2pix.py и ссылки на экспортируемые модели есть в файле README на сервере GitHub.
Границы для фотографий кошек были получены с использованием алгоритма Holistically-Nested Edge Detection и этот функционал был добавлен к скрипту process.py и соответствующие зависимости были добавлены к Docker image.
Поделиться с друзьями
tmin10
Все эти тестовые нароски — всего лишь изображения, на которых училась нейросеть и которые потом обработали алгоритмом нахождения границ. А если рисовать что-то произвольное, то выходит тихий ужас:
BigBeaver
saboteur_kiev
Да ладно, оно даже стандартный бабушкин домик с треугольной крышей и трубой не смогло осилить ;(
А это единственное, что я «умею» рисовать… (скриншот не привожу, дабы не позориться)
interprise
так в обучающей выборки наверное не было нашего «стандартного» домика, в этом дело как мне кажется.
PS сам не пробовал, как понял нужно запускать у себя, а мне лень
tmin10
Ссылка в статье есть, всё онлайн: http://affinelayer.com/pixsrv/index.html
Да-да, на странице это не картинки, а просто примеры, кнопка clear очистит поле.
BigBeaver
а в каком окне вы рисовали бабушкин домик? там же только 4 скрипта: для фасадов, кошек, обуви и сумок. И каждый из них довольно узко специализирован. Но ваш котик просто огонь, я не смог добиться аналогичного результата))
saboteur_kiev
домик — в фасадах, там же домики? )
BigBeaver
Нет, там фасады — стены домика, иначе говоря. Всякий фон типа неба оно в принципе не рисует))
Keyten
Кхм, котик и домик — это от разных людей комментарии.
melchermax
Первый из Ваших котов — просто чудо как позитивен! Поделитесь, если есть в хорошем разрешении?
raid
Меня только дым из уха смущает…
fruit_cake
инь янь кот, эмбрионы котят в утробе
dfgwer
фейл с картинкой
dfgwer
Dmitry_4
Какокотодемон
KiloLeo
Ну а Вы попробуйте нарисовать трактор и дать человеку, чтобы он сделал из него кошку, получится такой же ужас.
Ugrum
Адская кошка. Прямиком из пекла. Отличная работа.
StjarnornasFred
Кот или хлеб? Это хлеб! Нееште его, то не кот!
Zverienish
Ну похоже же на кота и реализовано в соответствии с вашем видением.
Jamato
Порисовал. Ну, всё равно я не хотел больше спать. Никогда.
hp6812er
Как с этим котом дела обстоят?
BigBeaver
sarytchev
REPISOT
kalnyanton
Я сначала подумал что справа — результат работы нейросети(
dfgwer
Похоже, мы видим будущее художников. Делаем набросок домика, применяем к нему какой-нить fantasy gnomish style и вуаля = гномский домик.
Giriia
А в фотошопе останется три кнопки: «Сделать зашибись» «Сохранить» и «закрыть».
mapron
По-моему, последние две лишние. Без них можно обойтись.
Named
Да и первая ни к чему. Надо делать зашибись прямо на стадии создания изображения.
evgenius123
Да. Необходимы лишь «Сделать зашибись» и «поделиться во всех соцсетях». Хештеги добавляем еще одной нейронной сетью, чтоб не тратить на это время.
twett
mike66
Им бы ещё лапки… ну или колёсики ))
Dmitry_4
волосатый куб, если кто еще помнит..)
IvUyr
Мой кубокот
IvUyr
П.С. Отвалилась картинка.
andd3dfx
Выглядит не очень, скажем так. Я бы такое постеснялся бы на публику выставлять
beeruser
Вы бы постеснялись, а народ угорает с этой штуки.
Люди уже и анимации делают
https://twitter.com/EimhinMcNamara/status/834243800054767616
https://twitter.com/outsidewolves/status/834310792509992962
https://twitter.com/KyleSeeley23/status/834577518824820737
calx
«и потому безвестным будешь ты»
andd3dfx
Чем такая известность — да, уж лучше пусть буду безвестным
Zverienish
Вы просто завидуете. )
ninJo
Еще забавно получается, если рисовать не котов или обувь с сумками, а что-то совершенно другое. Скриншоты приводить не буду ибо какие-то пошлые у меня мысли))
BigBeaver
А вы под спойлер)
Sadler
Я ровно то же самое для человеческих лиц делал пару месяцев назад. Но у меня, к сожалению, нет сервака, который бы потянул просчёт этого дела. А на клиенте не осилю считать.
Sadler
Но да, забавно, конечно:
fantom4ik
herr_kaizer
Много букв, не осилил. Надо было не мелочиться и сделать статью, состоящую из ссылки и картинки.
mike66
Ugrum
Теперь я знаю, как канал 2x2 рисует свой сериал «Подозрительная сова».
IvUyr
Оффтоп, конечно, но «Сова» не их проект.
Ugrum
Упс. Точно. Спасибо за поправочку.
mike66
mike66
mike66
sleeply4cat
Графический планшет или программное читерство?
mike66
Просто мышь.
PaulAtreides
shaman1010
Непорядочек :)
PaulAtreides
Офигенно!!!
PaulAtreides
А, ну и самое важное!
mike66
mapron
Чувак, ты мне подарил пару минут смеха, спасибо тебе)
kalnyanton
IvUyr
Забрал на аватарку!
gmikhail94
Zibx
Получился Naked lunch.
xerxes
degressor
Голые бабы и машины на очереди!
General_Failure
vlreshet
Хотел сделать ждуна, а получилась скорее криповая крыса
marrduk
marrduk
Упс, извините. В первый раз.
Alex_ME
Эта штука просто идеально рисует лишние глаза
pavlick
В общем, если нарисовать нормальную кошку, то он ее раскрасит
PaulAtreides
marrduk
unxed
evgkan
Sonikelf
Шутки шутками, но самый трындец наступит тогда, когда нейросети (или ИИ, или что-то еще) действительно научатся рисовать и делать из наброска шедевр. Или хотя бы адекватные фотографии. И вот где-то тут наступят интеееееесные перемены :)
artskep
Я полагаю, фейк, нарисованный нейросетью будет достаточно просто распознать другой нейросетью. Может быть даже проще, чем фейк, сделанный вручную. Ведь сеть по сути ничего не изобретает, а тупо использует известные «куски».
Шедевр тоже не получится изобрести по той же причине — ничего нового сеть не добавляет. А если за «шедевром» стоит художник, который только использует нейросеть — в этом ничего нового нет. Кто-то рисует углем, кто-то маслом, кто-то фотошопом, кто-то нейросетью. Разницы никакой.
Сильный ИИ почти наверняка сможет придумать достоверный фейк или новый шедевр, но когда изобретут сильный ИИ это будет не самым интересным.
Sadler
Как и все в этом мире. Просто у Вас кусков побольше и обработки посложнее.
Sadler
И вообще, вот спойлер к статье, которую сейчас пишу.
artskep
Красивая картинка.
ХЗ нарисованная или нет, если честно, но я уже лет 10 назад видел красивые горные пейзажи сгенерированные фракталами.
Безусловно эта картинка на порядки лучше, но все равно «утро в сосновом лесу» оно не нарисует. На Девятом Вале Айвазовского оно максимум нарисует море, но не людей.
Идея искусства не в красивом и точном изображении чего-то.
Sadler
А Вы нарисуете утро в сосновом лесу или девятый вал? Что-то я сомневаюсь.
artskep
Ну, здесь есть тонкости:
— да, человек — это тоже в большой степени нейронная сеть, обученная определенным образом. Даже талантливый человек.
— нет — это не «как все в этом мире». Во всяком случае — не очевидно. Социальные взаимосвязи (из которых идет научное и культурное развитие) далеко не факт, что работает по пути нейронных сетей.
Sadler
Социальные связи никак не отменяют того факта, что просчёт идёт такой же нейросетью, только естественной и куда более масштабной. Если же рассматривать социальное взаимодействие как нечто особенное, подключите более одной нейросети и дайте им выработать протокол взаимодействия, получите ту же «уникальную» систему. Если исходить из Вашей логики в целом, то никто не изобрёл ничего нового, т.к. любой творческий процесс основывается на опыте взаимодействия с окружением, а не вопреки ему. Если бы это было не так, наиболее креативными бы считались генераторы случайных чисел.
artskep
Ну, такими темпами мы дойдем до обсуждения детерминизма, а это до добра не доводит :-)
А если серьезно, «взаимодействие с окружением» не означает, что это сразу «нейронная сеть». Даже если говорить об алгоритмах, которые «слизали» с биологии, и которые основаны на «взаимодействии с окружением», то есть, как минимум, генетические алгоритмы. Кстати, весьма применимы в некоторых областях.
А если не заморачиваться на тему около-биологическую, иногда неплохо работает вообще метод Монте-Карло.
Кстати, для генетических алгоритмов и Монте-Карло действительно очень важен генератор случайных чисел.
mikhanoid
Ну, скорее всего, это очень далеко от истины, иначе, мы бы никогда не придумали колесо. Не забывайте, что нейросети — это просто способ аппроксимации функций, ничего более. Да, компьютеры стали мощнее и мы можем аппроксимировать сложные и многомерные функции, но, как бы, творческого начала в этом совсем никакого нет. Мы же не пытаемся приписать искусственный интеллект mp3-плейеру, хотя, принцип работы у него примерно такой же, что и в рассматриваемом примере. Так что, весь wow-эффект — это артефакт исключительно нашего сознания.
Как-то так. Живые нейроны гораздо сложнее, чем нейроны в ИИ, и очень многие молекулярные процессы, происходящие в живых нейронах, являются важными и для интеллекта, и для творчества. Можно ли их смоделировать иначе? Может быть, и можно. Но в современных исскуственных нейросетях такого точно нет. Поэтому, пока всего лишь аппроксимация сложных функций.
Sadler
Вы просто биошовинист.
mikhanoid
Я просто реалист.
Sadler
Не очень. Начали приплетать сложность нейрона с аппроксимацией, не имея доказательств какого-либо влияния всего эволюционного бардака на свойства разума. Типичный шовинизм, ничего более. Мозг тоже сформирован всего лишь для задачи предсказания ближайшего будущего с оптимизацией результата, и на этом уровне искусственные нейронные сети прекрасно справляются с задачей. Никто не обещал возникновения сознания или больших объёмов долговременной памяти, до этого ещё далеко, но это всё необязательно должно присутствовать для определённого уровня интеллекта, достаточного для творчества (как субъективного отображения воспринимаемого мира). Да, для моих свёрточных сетей весь мир — это игра света и тени, наборы линий и завитков, но это тоже какое-то примитивное представление.
mikhanoid
Доказательств довольно много. Например, известно, что нейроны имеют свою внутреннюю память на РНК. Можно, конечно, попытаться это смоделировать, но эти РНК длиной несколько сотен нуклеотидов, и вариантов этих молекул в нейроне тысячи. Ну, попробуйте смоделировать сеть хотя бы из тысячи таких элементов.
Дело же не в том, что вот прямо таки нам нужен нейрон, а в том, что в реальных нейронах упаковано очень много информации и идёт множество параллельных процессов её считывания и записи. Результат работы нейрона уж точно не сводится к простым дифференцируемым функциям, что применяются в искусственных нейросетях. Сам отдельный нейрон способен самообучаться. Кроме того, есть некоторые основания полагать, что нейроны умеют пользоваться квантовыми вычислениями. И давно и точно известно, они пользуются случайными процессами.
О искусственных нейронных сетях фантазировать можно очень долго, но факт остаётся фактом — это просто способ аппроксимации функций. Можно возникающую при этом структуру описывать в поэтических терминах, но… зачем самих себя-то обманывать? Искусственная сеть не может выйти за рамки Теоремы Гёделя, а человек может. Вот Вам и водораздел по творческим способностям.
Sadler
Ну вот, уже пошло мракобесие. В Вашем комментарии прекрасно всё: тут и квантовое сознание, и теорема Гёделя, и вера в скрытую магическую роль нейрона. Вопросов к Вам больше не имею.
mikhanoid
Ну, если Вы у нас такой уж великий просветитель, расскажите, в чём конкретно заключается мракобесие? Квантовое сознание — вполне себе рабочая гипотеза. Нейронная сеть — простая арифметическая конструкция, следовательно, ничего нового сама по себе она сгенерировать не может. И никаких скрытых магических ролей нейрону я не приписываю. Просто известно, что натуральный нейрон — штука очень сложная. Сеть из сотни живых нейронов может управлять полётом мухи, а искусственные сети сопоставимого размера даже кошечку от белочки отличить не могут :) Так что… В чём мракобесие-то?
mikhanoid
Сотни тысяч нейронов, естественно.
Sadler
Что такое «новое» в Вашем представлении? С чего Вы взяли, что сами способны сгенерировать что-то новое?
Чтобы сделать самолёт, необязательно заставлять его махать крыльями.
Если забыть о том, что это не сотня тысяч нейронов общего назначения, а сотня тысяч нейронов, заточенных эволюцией под полёт мухи. У нас же задача сделать нечто более универсальное.
PaulAtreides
А если не секрет, чем мухины нейроны отличаются от нейронов общего назначения?
Sadler
Это уже вне моей компетенции, должны быть соответствующие работы по нейрофизиологии.
PaulAtreides
Ну хотя бы скажите, откуда вы взяли, что они вообще отличаются.
Sadler
Потому что типы нейронов и формируемые структуры различаются даже в пределах одного организма. Эволюция всегда создаёт некую вариативность.
PaulAtreides
Ок, убедили.
mikhanoid
То есть, Вы оцениваете научные гипотезы количеством последователей? И после этого именно меня считаете мракобесом? Ну, ну :) Вообще-то известно, что хлоропласты в процессе фотосинтеза используют квантовую механику для передачи энергии без потерь. Поэтому гипотеза о том, что и нейроны могут пользоваться квантовой механикой с какой-то целью, представляется вполне разумной.
А при чём тут моё представление? Есть вполне конкретное формальное математическое определение: новое — это то, что не выводится из наперёд зафиксированной системы аксиом.
И при чём тут именно я? Мы же говорим об особенностях человеческого мышления. Достоверно известно, что некоторые люди способны выходить за рамки систем аксиом. Лобачевский, например. Нейронная же сеть, будучи арифметической конструкцией, этого сделать не может, это строго доказано. Вы можете вывести нейронную сеть за рамки того, что в неё заложено, но она сама себя — нет.
Вы же сами несколько постов назад утверждали, что особенности строения нейронов не важны для воспроизведения творческого процесса. А тут оказывается важным, что нейроны мухи отличаются от нейронов человека (отличия эти совсем небольшие, никто даже толком не понимает, почему они важны).
Ну, и, при всём уважении, задачи у вас (не конкретно у Вас, а у лидеров сообщества любителей глубого обучения) совсем не в том, чтобы сделать нечто универсальное, а в том, чтобы отжать себе побольше финансовых потоков из разнообразных областей экономической деятельности, продав при этом побольше облачного машинного времени :)
Sadler
Кому известно, чего известно?
Отличаются, с этим я не спорил.
Без комментариев.
ideological
Сейчас просто приписывать ИИ в моде, помогает стартапам и не только получать инвестиции и PR :)
kalmarius
Нарисуйте кто-нибудь черную кошку из «Место встречи изменить нельзя»
PaulAtreides
sarytchev
olegkrasnov
olegkrasnov
kedobear
Vnuchok
не выходит картинку вставить((
Vnuchok
почему негритёнок?))) (извините за предыдущий пост — первый раз вставляю картинку)
Ugrum
Осталась только чёрная краска.
IvUyr
А откуда сеть красное взяла?.. И… что у кота настолько красное?
dfgwer
Это сеть тренированная на туфельках, там еще сеть рисующая домики и сумочки
IvUyr
Вот оно что. Я думал, что негретёнка тоже по «кошачей» нейросети делали.
Mayflower
Легче всего сделать глаза, тяжелее — нос и рот
apixosoft
hengenvaarallinen
Еще котов
IvUyr
Похоже, сломал гиктаймс нейросеть… При попытке что-либо нарисовать пишет, что нет соединения с сервером…
IvUyr
Уже работает.
Vnuchok
А за что минус?((( за безобидный рисунок или за афрополитнекорректность? С последним программистам нейросети