DeOldify — это проект, основанный на глубоком обучении, для раскрашивания и восстановления изображений. Модель использует архитектуру NoGAN для обучения модели.
Мы будем использовать эту модель, чтобы преобразовать некоторые старые черно-белые фотографии, добавив к ним цвет.
Модель Deoldify
Deoldify использует генеративно-состязательную нейронную сеть (GAN).
Помимо использования GAN в этой модели также используется метод, известный как No-GAN.
Большинство GAN состоят из двух частей - Генератор и Дискриминатор.
Генератор — это часть, которая создает изображение. Дискриминатор пытается выделить настоящие цветные изображения из фейковых перекрашенных изображений. Техника No-GAN работает путем обучения моделей генератора и дискриминатора, присутствующих в GAN, изолированно.
Это похоже на то, как вы обучаете обычную нейронную сеть, но отличается от GAN, поскольку они обычно обучаются параллельно. Затем они настраиваются вместе, как правило, так, как вы тренируете GAN.
Модель работает, беря черно-белое изображение и передавая его модели Deoldify. Затем модель выводит цветное изображение.
Клонирование репозитория GitHub
Мы собираемся использовать репозиторий GitHub, содержащий реальную модель.
git clone https://github.com/jantic/DeOldify.git DeOldify
Приведенный выше код клонирует репозиторий DeOldify в папку.
Установка необходимых зависимостей
Чтобы использовать модель, нам нужно установить "пару" зависимостей.
pip install -r colab_requirements.txt
Эти зависимости включают в себя:
fastai==1.0.51
wandb
tensorboardX==1.6
ffmpeg-python
youtube-dl>=2019.4.17
jupyterlab
pillow>=8.0.0
Загрузка модели
Далее нам нужно загрузить предварительно обученную модель.
mkdir 'models'
wget https://data.deepai.org/deoldify/ColorizeArtistic_gen.pth -O ./models/ColorizeArtistic_gen.pth
Мы создали новую папку с именем models внутри основной папки. С использованием wget
мы загружаем предварительно обученную модель в эту только что созданную папку.
Примеры входных изображений
Возьмем черно-белые изображения и добавим к ним немного цвета. Изображения, которые мы будем использовать:
Работа с моделью
Буду пользоваться языком программирования python 3.10, среда разработки - jupyter notebook.
Проведем импорт необходимых библиотек.
from PIL import Image
from deoldify import device
from deoldify.device_id import DeviceId
#choices: CPU, GPU0...GPU7
device.set(device=DeviceId.GPU0)
import torch
if not torch.cuda.is_available():
print('GPU not available.')
import fastai
from deoldify.visualize import *
torch.backends.cudnn.benchmark = True
# если версия python >= 3.10 необходимо отдельно переназначить модуль Sized
import collections
collections.Sized = collections.abc.Sized
# работаю в соседней папке, импортирую папку DeOldify
import sys
sys.path.append('./DeOldify')
Укажем путь к входному файлу
image_path = '6.jpg'
Далее создадим переменную colorizer для хранения нашей модели
colorizer = get_image_colorizer(artistic=True)
С использованием plot_transformed_image
метод, передадим входное изображения, на выходе колоризованная картинка.
colorizer.plot_transformed_image(image_path, render_factor=35, display_render_factor=True, figsize=(8,8))
Значение по умолчанию 35 для render_factor
хорошо работает в большинстве случаев. render_factor
определяет разрешение, при котором отображается цветная часть изображения. Нижний render_factor
идеально подходит для изображений с более низким разрешением, в то время как более высокий render_factor
для изображений с высоким разрешением.
Примеры выходных цветных изображений
Мы видим, что модель Deoldify добавила цвета нашим изображениям. Мы достигли этих результатов, написав всего несколько строк кода.
Заключение
Модель Deoldify позволяет раскрашивать черно-белые изображения. Модель с открытым исходным кодом и доступна через GitHub . Вы можете легко поэкспериментировать со своими черно-белыми изображениями и добавить к ним цвет.
Комментарии (21)
xshd
10.08.2022 23:11+1интересно было бы почитать на тему апскейла, скажем с 1000px до 2000px, и желательно не портреты - на примере отрендеренной картинки
Alexufo
10.08.2022 23:44+1сетка тренируется на обесцвеченных цветных фото. Поэтому цвет кожи всегда пластик на большинстве изображений, там совсем другие законы наложения цвета должны быть.
Skigh
11.08.2022 11:01+4Все фотографии, кроме третьей, «раскрашиванием» только испорчены.
MichaelBorisov
12.08.2022 00:50А это потому, что в нашем мозгу имеется встроенный «раскрашиватель». Хотя результаты его работы и не воспринимаются так, как будто их видят глаза, но на эмоции явно влияют.
А тут, на раскрашенной с помощью нейронки фотографии, внутренний «раскрашиватель» отключается, так как кажется, что его работа не нужна. Отсюда и худшее эмоциональное восприятие.
Здесь я вижу сходство с системами подавления шума в аудиозаписях. Большинство «отреставрированных» записей я бы лучше слушал с шумом, который там изначально был. Ведь в ходе «реставрации» теряются слабые звуки заднего плана, придававшие музыке особый колорит.Skigh
12.08.2022 10:17+1Нет, это потому, что качество раскраски очень низкое, очевидно бракованные элементы бросаются в глаза. Хорошая нейросеть (например в голове толкового художника) вполне может раскрасить ч/б фото так, что оно будет восприниматься лучше.
VaalKIA
11.08.2022 23:55-1Разные длины волн, преломляются по разному (фиолетовый и красный имеют разные фокусы у нас в глазу, поэтому это сочетание, буквально — вырвиглазное, то же и с оптикой), возможно, по ореолам можно с высокой долей вероятности судить и о спектре. Ничего не могу сказать о фотографии, но в видео, один раз вычислив на удачном кадре, далее можно будет использовать эту информацию и постепенно раскрасить все детали.
vasilisc
12.08.2022 12:46Игрался так же с этой нейронной сетью DeOldify. У неё официально на странице упоминается негативный эффект "зомби". Конечности людей часто окрашиваются в пепельный цвет. На странице проекта достаточно поискать слово zombie.
static_cast
У Чаплина были голубые глаза
Гимнастерки летчиков РККА времен ВОВ были зеленые. В серые цвета одевались их визави.
"Металлические" дубовые листья в петлицах у офицеров СС зеленью не отдавали, несмотря на календарную весну.
и т.д., и т.п. ордена, звезда, цвет манжет, цветастая повязка и прочее.
Понимание того, что нейронка не магический кристалл прошлого, а очень своеобразный фильтр-"черный ящик", не восстанавливающий, а трактующий входные данные, есть не у каждого. Мы живем в эпоху постправды, когда проверить всю поступающую информацию уже не представляется возможным, и очень интересно, куда мы все таки придем в восприятии себя и своего прошлого.
0mogol0
а это должно быть темой следующей статьи, как доработать нейронку, чтобы она выдавала более корректные результаты...
sunnybear
И лицо Мюллера багрово-красное из-за повышенного давления ...
Moskus
Хуже всего - то, что:
множество людей реальное прошлое уже совершенно не интересует, а интересуют "фактоиды", то есть утверждения (включая изображения) которые просто выглядят правдоподобно, но не имеют никакой реальной фактической точности,
люди считают подобные фактоиды, содержащие выдуманные детали, лучше реальных фактов, содержащих меньше деталей (скажем, не содержащих информацию о цвете вообще),
как результат, реальные факты планомерно "вымываются" из обращения и их оказывается все сложнее найти, например - уже есть всякого рода псевдоисторические каналы в соцсетях, публикующие только визуальные фактоиды (потому что см. предыдущий пункт) без какого-либо упоминания о том, что это не исторически точные изображения.
altyshevamaria
1984 Оруэлла вспоминается :(...
Alexufo
Практическое применение deoldify на сколько я знаю только у myheritage, автор продал им более качественную модель. Интересный пиар проект.
geekmeek
Что ещё бросилось в глаза то, что растительность поля за дорогой в цветном варианте кажется разреженной, растущей на не плодородной песчаной земле. А в чёрно-белом варианте поле с густой растительностью, просто с разнофактурным отсвечиванием оттенков, которое ИИ вероятно воспринимает как участки открытой земли.
Быть может наоборот мой И фильтрует с искажением от полей моего прошлого...
holyx
""Металлические" дубовые листья в петлицах у офицеров СС зеленью не отдавали, несмотря на календарную весну."
Да, смотрится так, как будто школьник в учебнике зелёным фломастером разукрасил. Сразу вспомнился отреставрированный фонтан "Каменный цветок" на ВДНХ, где новые пластиковые камни "намного лучше", чем старые натуральные.
"куда мы все таки придем в восприятии себя и своего прошлого "
Уже местами народ к чему-то виртуальному приходит. Например, пол по собственному ощущению, без привязки к физиологии.