Нейронная сеть. Часть 8. Переход между картинками.
HTML-код
- Опубликовано: 17 авг 2021
- Простые эксперименты с нейросетью.
Переход от одной картинки к другой.
Вариант на Python
github.com/foo52ru/img2img
Вариант с использованием Tensorflow
github.com/foo52ru/img2img_te...
Выражаю благодарность тем, кто поддерживает меня финансами.
Реквизиты для финансовой поддержки можно найти в
/ foo52ru - Наука
Поздравляю с программистским ростом! Исходники на гитхабе и использование tensorflow - это круто)
так-то использование tensorflow попроще, написания своей либы будет) рост в какую-то другую сторону получается.
@@cyanmargh для меня написать свое проще. работать с чужим кодом сложнее. чужие библиотеки использовать ужос
@@CrazyPit ну это смотря, как хорошо писать. Библиотку для МЛ и я то написать могу, но не такую уж и обширную и быструю (зато свою))). Нужно ведь для оптимизации, как минимум, знать нужные алгоритмы (например, FFT/FFT2 для свёртки) и знать про программные способы ускорения (кеширование, интринсики, деление на потоки и, в конце концов, запросы к gpu). Я, например, этим пользоваться могу с очень большими трудностями и даже понятия не имею, сколько ещё подобного упускаю.
upd. судя по вашему аккаунту, вы и без меня понимаете, насколько это всё может быть трудно.
@@CrazyPit устанешь писать ;)
Спасибо!
...
Техношаман. Мне кажется ты приоткрыл тайну человеческой памяти . . .
Кто еще не понял - этот чел гений))
Не гений, а фашист, который своей работой помогает власти на нас паразитировать
Шаман, тут пациент галоперидол забыл принять!
@@mshigaev1564 вы бы сначала почитали кто такие фашисты, где они появились, что делали и для кого, как приходили к власти. а потом бы и решали кто тут кто
Интересные сны ждут после видео
А чтo, eсли...
прoсмотр этиx кaртинок нaвсегда измeнил твoи "дaлекие oт выхoда" нeйроны, и тeперь иx фaнтомы бyдут прeследовать тeбя в жи3ни, слoвно тe бyквы oт прeдыдущего изoбражения нa перeобучившейся нeйросети?
Нeт.
@@user-vm1hi7bo5s ты предсказал новую теорию заговора по типу боязни вышек 5g
@@user-vm1hi7bo5s что значит нет.. правильно говорить может быть. или доказывать обратное
@@user-vm1hi7bo5s ну в общем, так оно и будет, память то епта работает тоже на нейронах, и просто сам факт того, что ты видел эти картинки, уже поменял сначала кучу нейронов в кратковременной памяти, и если мозг решит запомнить это, то сохранит уже в долговременную память, где до деменции или альцгеймера, или смерти, будут лежать
@@CrazyPit нет
Как всегда очень интересно и познавательно. Особенно удивляет, что копия нейронки переученая с кубиков на надпись, при новой задаче пробует ранее верные значения, сильно удивило)
Ура новое виде, как я долго ждал
На самом деле, уже давно наблюдаю за вашим каналом, и всякий раз удивляет разнообразие и широкий диапазон применения нейросетей в ваших экспериментах. Плюс, грамотно смонтированные ролики, подача и своеобразный юмор повествования. Огромное удовольствие от просмотра вашего контента. Спасибо большое! Так держать! :))
Эти ролики должны набирать миллионы просмотров! Уникальный контент среди серой массы
Ваш контент уникален! спасибо за такой качественный и познавательный контент среди всей серой массы которая наполнилась на ютубе.
Вспомнил про канал, решил проверить, а тут новый ролик. Лайк!
Автор канала мега крутой!
8:36
> Да я репер
Что?)
Питон увидел впервые,
И руки у меня кривые.
@@toms_ekb :DDD
Классный канал
Классная аудитория
Тут сидишь прям и наслаждаешься всем чем только можно
ООчень интересное видео, давно ждал уже на этом канале)) Спасибо!
Поорал с "да я рэпер", благодарю)
Ты монстр! Здорово! Рассмотренная задача, обычно решалась морфингом. А тут очень оригинальный подход к переходам. Спасибо!
Спасибо за интереснейшие видео!
Классные эффекты вышли!
Очень понравилось. Прямо искусство.
Спасибо, хорошее работа... Ждем снова от тебя новое видео...
Небольшой речевой нюанс. Современный алгоритм обучения сетей (функций) - минимизация функции потери (ошибки) градиентным спуском. Собственно всякие библиотеки типа TensorFlow - это и есть библиотеки для автоматического дифференцирования, то есть они вычисляют производную (градиент) по составной (сложной) функции. Только они специализированы под задачи глубокого обучения.
Метод обратного распространения ошибки - это старый метод для старых архитектур, когда люди ещё не знали, что такое производная и пытались переизобрести её специально для "нейронных сетей". Но так уж получилось, что его название до сих пор используется для автоматического дифференцирования. Дело в том, что производная функции потери квадрат разности совпадает с ошибкой, поэтому трудно заметить подмену.
Ниииииичего не поняла.. но посмотрела с огромным интересом. Благодарный комментарий.
Очередной топовый ролик. Мотивация и вдохновение
Короче, очень классный канал. Офигенные ролики! Спасибо, за то, что заинтересовал изучать нейросети)
Мужик, ты крут! Жду следующих роликов.
боже ты лучший на ютубе отвечаю
Круто получилось, особенно с Малевичем!
Очень круто! Я бы поэкспериментировал с другими цветовыми моделями, почему-то кажется, что здесь подошел бы yuv
Спасибо! Невероятно интересно :)
Как обычно, под конец ролика иду ставить лайк, а потом обнаруживаю что лайк уже поставлен :)
Вау! А что если похожее сделать но со звуком???
Интересно было бы услышать музыку которую запомнила нейросеть !
Неееееет
мне тоже очень интересно !
Я всё жду следующую часть про деревья!
Тот самый программист, который печатает код одним пальцем.
А надо 20!
Ура! Дождались!
Молодца содержательно😊👍
Оч нравятся ваши видосы 👍
Идея для алгоритма перехода: промежуточные комбинации случайно инициализированных обученных на одной картинке моделей дообучать
Ура новый как и всегда интересный ролик
хорошее, познавательное видео
Очень интересно! Поздравляю со знакомством с библиотеками для нейронок)
Ты сделал мой день
Супер!
т.к. нейронка - это обычная функция с множеством коэффициентов, то точнее всего будет та, где количество нейронов сопоставимо с количеством пикселей в изображении.
так то да но нет. это функция у которой коэффициенты меняются в зависимости от входящих данных. у других функций коэффициенты являются константами. и да чем больше тем лучше. тем дольше обучение
@@CrazyPit веса и есть константы. В обученной сети они уже не меняются
2:45 очевидно что просто недостаточно слоев и юнитов в них, поэтому нейросеть ни как не может подобрать подходящую комбинацию для 100% копирования. Раз мы хотим получить 3 выхода значит надо 3 слоя
А мне кажется недостаточно нейронов а скрытых слоев как раз слишком много. Точную копию по входу можно получить в 1-м скрытом слое с числом нейронов приближающихся к числу пикселей. По сути эти 3 выхода несут одно свойство "цвет". И если взять другое представление (скажем hex код цвета а не RGB) - они вместе станут 1-м нейроном в выходном слое.
Круть!
Отлично!
2:05 - 2:15
Офигеть!! Я то думал как оно может быть реально, а всё вот так гениально и просто. Разве что куча картинок это не супер удобно возможно.
foo, ты акутненный, делай видео чаще пожалуйста. а то раз в пару лет редко слишком
Поставил лайк на второй минуте просмотра(31 минута с момента выпуска!)
Очень интересный канал
я понял, тебе просто было лень делать анимации самому) Но проект получился очень интересный :)
Видос супер!!! Есть идея, как ускорить в 5 раз написание программ, а следовательно и выход видео. Можно использовать 5 пальцев, а если ещё и вторую руку, то получим ускорение в 10 раз))))))))))
Тоже приобрел эту книгу. Очень интересная. Хоть я далеко и не программист.
балдеж
Так как весов много, можно было поэкспериментировать с алгоритмом их замены. Например, линейно (от первых слоев и до выходных, после можно и в обратном направлении), по спирали и тд. Так можно было бы добиться разных переходов при одних и тех же НС.
Алгоритмы перехода будут очень по-разному работать на НС с разными архитектурами, экспериментировать нужно
Было бы полезно, сделать небольшой плейлист о создании нейро-сетей, от А од Я.
Спасибо за твои видео!
Картинки, которые находятся "между" крайними целевыми -- это картинки, которые получались в результате обучения сети, как я понимаю. Если есть доступ к весам сетей, обученных для двух картинок, то можно сделать ещё сети с интерполированными весами от первой картинки ко второй и посмотреть и сравнить картинки с использованием этой интерполированной сети.
А еще переходы от одних весов к другим можно очень по-разному делать (все веса одновременно; послойно от входа к выходу; послойно от выхода к входу; некоторая доля рандомных весов за раз; волной...).
Жалко, об этом не было рассказано.
интересное видео
Быстрее продавай переход между картинами малевича за NFT-токены, получилось очень красиво, ктонибудь да купит)
👍👍👍👍👍👍👍👍
Только не бросайте канал, пожалуйста
Спасибо...
хорош, для перехода сделал ИИ
переход к лайку через кубики - так работают детские психологические травмы
Лайк, подписка, бубенцы!
1:57 "Хочешь знать откуда у меня эти шрамы?"
Бро, дам совет. Зайди на Клавогонки. Пару месяцев соревнований и будешь печатать всеми пальцами в слепую до двухсот символов в минуту. Один раз сделал и забыл на всегда, что значит смотреть на клаву.
Впечатляюще, что всё это закодировано одним пальцем
Интересно что психоделики приблизительно также объединяют картинк.
молодец
Тут лучше использовать цветовую модель YUV. Возможно она как-то натуральнее переходы между изображениями показывать будет нейронке проще
Попробуйте вместо RGB использовать HSL
"Настоящий доктор может сказать о себе, что он дурак".
А колокольчик работает)
Еще переход можно делать самим обучением. То есть например обучил 100 эпох, составил картинку и тд
сейчас так и работает у него
Проверил, нельзя. Обучение идет так:
катринка1:
эпоха1: фигня
эпоха2: фигня
эпоха3: фигня
...
эпоха100: норм
начинаем учить катринке 2:
эпоха1: резкий скачок, получается фигня совершенно непохожая на первую картинку и чуть похожая на вторую
эпоха2,3,4,...: фигня постепенно становится похожа на катринку2
эпоха100:норм катринка2
Избавиться от скачка не помогает даже снижение learning rate на порядок
Кстати, интересные результаты дает использование hsv вместо rgb
Теперь тоже самое с двумя треками , плс :)
Как всегда прекрасно! Очень понравился результат с Малевичем, кто сказал что ИИ (слабый) не может рисовать как художник?
Для плавного перехода между лицами можно использовать "Conditional VAE"
Круто! Жаль что нифига не понятно)
рекомендую GAN и свёрточные слои для этих целей
гений
Добрый день. Очень интересный контент. Даже захотелось узнать побольше о нейросетях. Что посоветуете почитать после Тарика Рашида? Кстати, за совет почитать Тарика - спасибо. Очень доступно написал человек о нейросетях. Жалко только, что мало. )
Музыка в начале похожа на Burak - Thursday
Этот код можно создателям ужастиков отдать. Я вот точно сегодня не усну. :(
А что, если такую технику использовать для интерполяции кадров в видео/анимации с низким фреймрейтом?
Жаль, что так мало(
А если после 5 обучения подкинуть нейросети картинку под номером 1 как быстро пройдёт переобучение? И если в процессе обучнния например 20 картинок каждую 3(5) подставлять картинку с "тв шумом" или грязную картинку востановит?
Спасибо за Ваше время и Вашу работу!!
извините за вопрос) а кем вы являетесь? может математиком или программистом?
8:36
@@Disgardema "да,я рыб"?
Я наверно запоздал с предположениями, но что если мы возьмем сеть по типу LSTM в связке с RNN? Научим сеть менять картинки самостоятельно без постоянного переобучения. По итогу: будем подавать начальную картинку и конечную, тем временем сеть будет экстраполировать временной ряд из двух кадров во множество. И обучать надо всего один раз.
Мне кажется любопытного эффекта можно было бы добиться, если изображения обрабатывались бы не в RGB, а из так же 3х каналов но яркости, и цветности но из 2х каналов (не цвета и насыщенности, а отношения зелёного к красному и синего к красному, таким образом, чтоб значение красного получалось, если от некого числа отнять сумму GB)
Я кстати такую цветовую модель даже нагуглить не могу. Value Green Blue получается. Для нейронки должно использоваться удобнее ,чем HSV, где значение Hue на 0 и на 1 будет идентичным (зацикленно ведь)
Если сложно - просто промотайте на 9:43 ))
М-да
Ого!!! Нейронка показывает внутренний мир по фотографии!!!😂. Мысля в голову пришла: а что если нейросеть натравить на гороскопы? Дофига народу верит в эту херь. Можно поиметь Профит и пустить его на что-нибудь действительно необходимое.
Задача. На входном нейроне - один пиксель либо чёрного, либо белого цвета. На выходном - аналогично. Нужно, чтобы на белый пиксель сеть выдавала чёрный. То бишь она должна инвертировать входные данные.
Постройте нейронную сеть, делающую то же самое, что и формула f(x) = |x - 1| для х=1 или х=0.
Какие у неё будут веса и смещения? Сколько нейронов?
*А если обученной нейронной сети дать координаты которых небыло на изображении, допустим изображение 100х100, а если нейронке дать от 101 до 200, что будет?*
Машина восстанет
@@JustDux что конкретно она нарисует, это меня интересует. "Да я репер"
@@JustDux, да, я смотрел, но а если уже обученную нейронную сеть обучать другой фотографии, но не входить в рамки пред идущей, типо фото 100х100, а начальная координата для новой фотографии 101х101:
1. как будет изменятся прошлая фотография ?
2. Сможет ли она нарисовать прошлую и обучиться новой?
Хм-хм-хм.. Какие-то философские вопросы)
Что то не радуете вы новыми выпусками нас?Вы уж не забывайте своих верных подписчиков пожалуйста!
Контент не простой. Чтобы сделать видео нужно много нового материала нового усвоить, а потом всё это воплотить в видео с интересной подачей. К тому же надо много мотивация. Так что ролики раз в месяц это закономерно.
Интересно, а сжатие картинок и даже видео таким способом может оказаться эффективным?
Думаю тут тебе лучше изучить GAN, там тоже всё весело :D
И ещё, кому как легче, но можно ещё использовать PyTorch вместо tensorflow с keras
Эх, нам бы кто помог сделать сеть для детектирования объектов (зёрен) на микрофотографиях...
Вам только наличие или нужно именно понимать месторасположение?
opencv в помощь
Обратитесь к фрилансерам
Вы разве хакатон не запускали?