Компьютерное зрение от mail ru или реставрация старых фотографий

Обновлено: 07.07.2024

Мы рискнули им воспользоваться, и смотри, что получилось.

Создатели пообещали, что с его помощью можно «восстановить потерянные детали на снимке, устранить дефекты и по желанию пользователя раскрасить черно-белое изображение». Все это не миллиард триллионов маленьких гномиков, нанятых компанией, проделывают, а нейросеть.

Это называется машинное обучение: ей показывают много-премного старых снимков, фильмов о войне и кадров кинохроники, она запоминает увиденные объекты, а потом, на свежепредложенных фото пытается распознать и дорисовать утраченные детали. А еще вдохнуть в изображение краски.

Как это работает:

2. Загружаешь фото.

3. Любуешься результатом или упиваешься горечью обманутых надежд.

4. По желанию загружаешь отреставрированное или распечатываешь.

Вообще-то сервис был запущен в канун 9 Мая — в первую очередь для желающих поучаствовать в акции «Бессмертный полк» (есть функция сохранить фото в специальную галерею). Мы попробовали подсунуть умному устройству снимки других исторических событий, даже дореволюционные. Получилось, скажем прямо, как-то так. Но бесплатной нейросети, сам понимаешь, в процессор не смотрят. Надеемся, тебе повезет больше!

Материалы по теме

Комментарии

ПОСЛЕДНИЕ НЕСКОЛЬКО ДНЕЙ НЕ МОГУ НИЧЕГО ОТРЕСТАВРИРОВАТЬ - ПРОГРАММА ПИШЕТ, ЧТО ЧТО ТО ПОШЛО НЕ ТАК, ПОПРОБОВАТЬ ЕЩЁ РАЗ! И ТАК ДО БЕСКОНЕЧНОСТИ. ЧТО ЭТО? АЛЕКСАНДР. Программа не работает уже третьи сутки.Не могу войти на сайт.Сбрасывает.Иногда появляется новое-поиск героев,а мне ружна реставрация фото.

Интерактивная версия журнала MAXIM

Журнал MAXIM

Бумажный MAXIM с доставкой на дом

MAXIMONLINE

Главный редактор: Маленков Александр Григорьевич

Copyright (с) ООО «Хёрст Шкулёв Паблишинг», 2021.

Любое воспроизведение материалов сайта без разрешения редакции воспрещается.

Контактные данные для государственных органов (в том числе для Роскомнадзора):

Компьютерное зрение или реставрация старых фото

Верните к жизни свои старые кадры при помощи технологии Vision.

Улучшаем старые фотографии

Компьютерное зрение - ссылка на сервис реставрации с главной страницы сайта

Загружаем нужный снимок, выбираем фотографию.

Компьютерное зрение - выбор фотографии

Вот так выглядит исходный кадр.


А здесь уже улучшенный.

Компьютерное зрение - улучшенный снимок

Компьютерное зрение - функционал

Есть возможность добавления своих фотографий в галерею Бессметного полка.

Компьютерное зрение - галерея Бессмертный полк

Как работает данный сервис?

Для улучшения цвета и деталей снимка используются нейросети. Они находят и убирают дефекты на кадре, после добавляют нужные цвета. Для получения такого эффекта нейросети было продемонстрировано множество старых фильмов и фотографий.

Компьютерное зрение - принцип работы

Можно поделиться этим онлайн сервисом со своими друзьями в социальных сетях вконтакте, одноклассниках, фэйсбуке и твиттере или скопировать прямую ссылку.

Компьютерное зрение - рассказать друзьям

Надеюсь данный сервис компьютерного зрения от почты маил.ру отреставрировал ваши старые фотографии и помог взглянуть на них по новому. Всех поздравляю с наступающим праздником 9 Мая.


  • находим все дефекты изображения: надломы, потертости, дырки;
  • закрашиваем найденные дефекты, основываясь на значениях пикселей вокруг них;
  • раскрашиваем изображение.

Мы хотим найти все пиксели, относящиеся к дефектам на загруженной фотографии. Для начала нам нужно понять, какие фотографии военных лет будут загружать люди. Мы обратились к организаторам проекта «Бессмертный полк», которые поделились с нами данными. Проанализировав их, мы заметили, что люди зачастую загружают портреты, одиночные или групповые, на которых есть умеренное или большое количество дефектов.

Затем нужно было собрать обучающую выборку. Обучающая выборка для задачи сегментации — это изображение и маска, на которой отмечены все дефекты. Самый простой способ — отдать фотографии в разметку ассесорам. Конечно, люди умеют хорошо находить дефекты, но проблема в том, что разметка — это очень долгий процесс.


На разметку пикселей, относящихся к дефектам на одной фотографии, может уходить от одного часа до целого рабочего дня, поэтому за несколько недель сложно собрать выборку больше чем из 100 фотографий. Поэтому мы старались как-то дополнять наши данные и писали дефекты самостоятельно: брали чистую фотографию, наносили на нее искусственные дефекты и получали маску, показывающую нам, на какие именно части изображения нанесены дефекты. Главной частью нашей обучающей выборки стали 79 фотографий, размеченные вручную, из них 11 штук мы перенесли в тестовую выборку.

Самый популярный подход для задачи сегментации: взять Unet с предобученным энкодером и минимизировать сумму (binary cross-entropy) и (Sørensen–Dice coefficient).

Какие проблемы возникают при таком подходе в задаче сегментации дефектов?

  • Даже если нам кажется, что дефектов на фотографии очень много, что она очень грязная и сильно потрёпана временем, всё равно площадь, занимаемая дефектами, гораздо меньше неповреждённой части изображения. Чтобы решить эту проблему, можно увеличить вес положительного класса в , и оптимальным весом будет отношение количества всех чистых пикселей к количеству пикселей, принадлежащих к дефектам.
  • Вторая проблема в том, что если мы используем Unet из коробки с предобученным энкодером, например Albunet-18, то теряем много позиционной информации. Первый слой Albunet-18 состоит из свертки с ядром 5 и stride равным двум. Это позволяет сети быстро работать. Мы пожертвовали временем работы сети ради лучшей локализации дефектов: убрали max pooling после первого слоя, уменьшили stride до 1 и уменьшили ядро свёртки до 3.
  • Если мы будем работать с маленькими изображениями, например, сжимая картинку до 256 х 256 или 512 х 512, то маленькие дефекты будут просто пропадать из-за интерполяции. Поэтому нужно работать с большой картинкой. Сейчас в production мы сегментируем дефекты на фотографии 1024 х 1024. Поэтому необходимо было обучать нейросеть на больших кропах больших изображений. А из-за этого возникают проблемы с маленьким размером батча на одной видеокарте.
  • Во время обучения у нас на одну карточку помещается около 20 картинок. Из-за этого оценка среднего и дисперсии в BatchNorm-слоях получается неточной. Решить эту проблему нам помогает In-place BatchNorm, который, во-первых, экономит память, а во-вторых, у него есть версия Synchronized BatchNorm, которая синхронизирует статистики между всеми карточками. Теперь мы считаем среднее и дисперсию не по 20 картинкам на одной карточке, а по 80 картинкам с 4 карточек. Это улучшает сходимость сети.


В результате наша сеть сошлась на четырёх GeForce 1080Ti за 18 часов. Inference занимает 290 мс. Получается достаточно долго, но это плата за то, что мы хорошо ищем небольшие дефекты. Валидационный равен 0,35, а — 0,93.

Решить эту задачу нам снова помог Unet. На вход ему мы подавали исходное изображение и маску, на которой единицами отмечаем чистые пространства, а нолями — те пиксели, которые хотим закрасить. Данные мы собирали следующим образом: брали из интернета большой датасет с картинками, например OpenImagesV4, и искусственно добавляли дефекты, которые похожи по форме на те, что встречаются в реальной жизни. И после этого обучали сеть восстанавливать недостающие части.

Как мы можем модицифировать Unet для этой задачи?

Можно использовать вместо обычной свёртки частичную (Partial Convolution). Её идея в том, что при сворачивании региона картинки с каким-то ядром мы не учитываем значения пикселей, относящихся к дефектам. Это помогает сделать закрашивание точнее. Пример из статьи NVIDIA. На центральной картинке они использовали Unet с обычной свёрткой, а на правой — с Partial Convolution:


Мы обучали сеть 5 дней. В последний день мы замораживали BatchNorm, это помогло сделать границы закрашиваемой части изображения менее заметными.

Картинку 512 х 512 сеть обрабатывает за 50 мс. Валидационный PSNR равен 26,4. Однако в этой задаче нельзя безоговорочно доверять метрикам. Поэтому мы сначала прогнали на наших данных несколько хороших моделей, анонимизировали результаты, а потом проголосовали за те, что нам больше понравились. Так мы и выбрали финальную модель.

Я упоминал, что мы искусственно добавляли дефекты в чистые изображения. При обучении нужно очень внимательно следить за максимальным размером накладываемых дефектов, потому что при очень больших дефектах, которые сеть никогда не видела в процессе обучения, она будет дико фантазировать и давать абсолютно неприменимый результат. Так что, если вам нужно закрашивать большие дефекты, при обучении тоже подавайте большие дефекты.

Вот пример работы алгоритма:


Мы сегментировали дефекты и закрасили их, третий шаг — реконструкция цвета. Напомню, что среди фотографий «Бессмертного полка» очень много одиночных или групповых портретов. И мы хотели, чтобы наша сеть хорошо с ними работала. Мы решили сделать свою колоризацию, потому что ни один из известных нам сервисов не раскрашивает портреты быстро и хорошо.


На GitHub есть популярный репозиторий для раскрашивания фотографий. В среднем, он хорошо делает эту работу, но у него есть несколько проблем. Например, он очень любит раскрашивать одежду в синий цвет. Поэтому его мы тоже отвергли.

Итак, мы решили сделать нейросеть для колоризации. Самая очевидная идея: брать чёрно-белое изображение и предсказывать три канала, красный, зелёный и синий. Но, вообще говоря, мы можем упростить себе работу. Можем работать не с RGB-представлением цвета, а с YCbCr-представлением. Компонента Y — это яркость (luma). Загружаемое черно-белое изображение и есть Y канал, мы будем его переиспользовать. Оставалось спрогнозировать Cb и Cr: Cb — это разница голубого цвета и яркости, а Cr — это разница красного цвета и яркости.


Почему мы выбрали YCbCr-представление? Глаз человека более восприимчив к перепадам яркости, чем к изменениям цвета. Поэтому мы переиспользуем Y-компоненту (яркость), то, к чему глаз изначально хорошо восприимчив, и прогнозируем Cb и Cr, в которых мы можем чуть больше ошибаться, поскольку «фальш» в цветах человек замечает меньше. Этой особенностью начали активно пользоваться на заре цветного телевидения, когда пропускной способности канала не хватало, чтобы передавать все цвета полностью. Изображение передавали в YCbCr, передавали Y-компоненту без изменений, а Cb и Cr сжимали в два раза.

Можно снова взять Unet с предобученным энкодером и минимизировать L1 Loss между настоящим CbCr и прогнозируемым. Мы хотим раскрашивать портреты, поэтому кроме фотографий из OpenImages нам нужно добавить специфические для нашей задачи фотографии.

Где взять цветные фотографии людей в военной форме? В интернете есть люди, которые в качестве хобби или на заказ раскрашивают старые фотографии. Они это делают крайне аккуратно, стараясь полностью соблюсти все нюансы. Раскрашивая форму, погоны, медали они обращаются к архивным материалам, поэтому результату их работы можно доверять. В общей сложности мы использовали 200 фотографий, раскрашенных вручную. Второй полезный источник данных — это сайт Рабоче-Крестьянской Красной Армии. Один из его создателей сфотографировался практически во всех возможных вариантах военной формы времен Великой Отечественной войны.


На некоторых фотографиях он повторял позы людей с знаменитых архивных фотографий. Особенно хорошо, что он снимался на белом фоне, это позволило нам очень хорошо аугментировать данные, добавляя разные природные объекты на задний план. Также мы использовали обычные современные портреты людей, дополняя их знаками различия и прочими атрибутами одежды военного времени.

Мы обучили AlbuNet-50 — это Unet, в котором в качестве энкодера используется AlbuNet-50. Сеть начала давать адекватные результаты: кожа розовая, глаза серо-голубые, погоны желтоватого цвета. Но проблема в том, что она раскрашивала картинки пятнами. Это связано с тем, что с точки зрения L1-ошибки иногда бывает выгоднее не делать ничего, чем пытаться предсказывать какой-то цвет.



Мы сравнением наш результат с фотографией Ground Truth — ручной колоризацией художника под ником Klimbim

Как решить эту проблему? Нам нужен дискриминатор: нейронная сеть, которой мы на вход будем подавать изображения, и она будет говорить, насколько реалистично это изображение выглядит. Ниже одна фотография раскрашена вручную, а вторая — нейросетью. Как вы думаете, какая?


В качестве дискриминатора мы используем дискриминатор из статьи Self-Attention GAN. Это небольшая свёрточная сеть, в последние слои которой встроен так называемый Self-Attention. Он позволяет больше «обращать внимание» на детали изображения. Также мы используем спектральную нормализацию. Точное объяснение и мотивацию можно найти в статье. Мы обучили сеть с комбинацией L1-loss и ошибки, возвращаемой дискриминатором. Теперь сеть лучше раскрашивает детали изображения, а фон получется более консистентным. Еще один пример: слева результат работы сети, обученной только с L1-loss, справа — с L1-loss и ошибкой дискриминатора.


На четырёх Geforce 1080Ti обучение заняло два дня. Сеть отрабатывала за 30 мс на картинке 512 х 512. Валидационная MSE — 34,4. Как и в задаче inpainting, метрикам можно верить не до конца. Поэтому мы отобрали 6 моделей, которые имели лучшие метрики на валидации, и вслепую голосовали за лучшую модель.

После выкатки модели в production мы продолжили эксперименты и пришли к выводу, что лучше минимизировать не попиксельный L1-loss, а perceptual loss. Чтобы его посчитать, нужно прогнать предсказание сети и исходную фотографию через cеть VGG-16, взять карты признаков на нижних слоях и сравнить их по MSE. Такой подход закрашивает больше областей и помогает получить более красочную картинку.


Unet — это классная модель. В первой задаче сегментации мы столкнулись с проблемой при обучении и работе с картинками большого разрешения, поэтому используем In-Place BatchNorm. Во второй задаче (Inpainting) вместо обычной свёртки мы использовали Partial Convolution, это помогло достичь лучших результатов. В задаче колоризации к Unet мы добавили небольшую сеть-дискриминатор, которая штрафовала генератор за нереалистично выглядящее изображение и использовали perceptual loss.

Второй вывод — ассесоры важны. Причем не только на стадии разметки картинок перед обучением, но и для валидации итогового результата, потому что в задачах закрашивания дефектов или колоризации всё равно нужно валидировать результат с помощью человека. Мы отдаем пользователю три фотографии: исходную с удаленными дефектами, колоризованную с удаленными дефектами и просто колоризованную фотографию на случай, если алгоритм поиска и закрашивания дефектов ошибся.

Мы взяли некоторые фотографии проекта «Военный альбом» и обработали их нашими нейросетями. Вот такие результаты получили:


А здесь можно посмотреть их в оригинальном разрешении и на каждом этапе обработки.

Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии

В описании к сервису указано:

Для восстановления деталей и цвета фотографий мы используем нейросети. Система находит и устраняет дефекты на фотографии, затем раскрашивает черно-белое изображение. Чтобы научить сеть делать это, мы показали ей много старых фотографий и военных фильмов.

Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии

Мы проверили, насколько хорошо работает новый сервис, загрузив в него пару отсканированных чёрно-белых фотографий из интернета — результат превзошёл все ожидания (примеры доступны ниже). После обработки исходного снимка нейросеть отображает три изображения: улучшенный чёрно-белый снимок с восстановленными участками и устранёнными дефектами, цветной снимок на основе исходного монохромного и цветной на основе улучшенной чёрно-белой фотографии.

Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии
Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии
Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии
Новый сервис от Mail.Ru бесплатно реставрирует старые фотографии

Как показало наше непродолжительное тестирование, функция устранения дефектов на изображениях работает неидеально: на одной из фотографий она стёрла ветки и тени. А вот опция раскраски монохромного снимка справляется со своей задачей на отлично.

реставрация фото в онлайн сервисе

Что такое ретушь и ее виды

Ретушь – это обработка фотографий для улучшения их качества. Она бывает двух видов: техническая и художественная. В первом случае устраняются дефекты снимка: пятна, потертости, царапины, трещины, искажения после сканирования печатного фото. Во втором – улучшается эстетика изображения – проводится коррекция изъянов кожи, замена фона и т. д.

Сегодня мы сделаем акцент на технической ретуши, так как на старых фотографиях всегда есть следы времени, которых с каждым годом становится больше.

Перед тем как присыпать к работе, печатный снимок нужно отсканировать. Как вариант –перефотографировать, но для этого подходит только профессиональная камера. Также нужна правильная постановка света, чтобы симок был освещен равномерно и в меру ярко.

5 сервисов и программ для обработки фотографий

Сервисы для восстановления фото онлайн можно разделить на две группы: с автоматической и ручной ретушью. Мы разберем и те, и другие.

В программах, которые нужно устанавливать на ПК, часто встречаются сразу два способа ретуширования, как в приложении Movavi Picverse.

Сервис действительно находит и исправляет дефекты старых снимков в автоматическом режиме, но, к сожалению, не так качественно, как хотелось бы. Сильные изъяны (глубокие заломы, белые пятна и т. д.) его алгоритм убрать не сможет. Он справляется только с обработкой более-менее сохранившихся фото.

Зато «Компьютерное зрение» успешно повышает четкость размытых кадров и может добавить фотографии яркости. А черно-белый снимок превратит в цветной.

Как пользоваться платформой:

My Heritage

My Heritage – еще один автоматический сервис для ретуширования старых фото. Такой же простой в использовании, как и «Компьютерное зрение», но при этом более функциональный. И качество обработки у него выше: снимки действительно становятся четкими.

Сервис справляется с повреждениями фото средней степени – успешно убирает небольшие царапины, потертости, пятна, белые сгибы и т. д. Сильные дефекты могут частично остаться, но их уже можно убрать вручную с помощью других сервисов и программ, о которых мы расскажем далее.

Неудобство My Heritage заключается в обязательной регистрации. Поддерживается вход и через сторонние ресурсы – аккаунты Facebook и Google. Ретушь фото – абсолютно бесплатный инструмент на сайте. Деньги просят за другую услугу – построение семейного древа (от 5 до 11 евро в месяц).

Как работать в My Heritage:

Fotor

Fotor – простой графический редактор с большим количеством настроек и эффектов для фото. Отретушировать старое фото здесь можно с помощью инструмента «Клонирование». Он работает следующим образом: пользователь выбирает участок фото с оттенком, который предположительно должен быть на поврежденном участке. Далее с помощью кисточки копирует этот цвет, в результате чего белые потертости и сгибы закрашиваются. Фотография становится как новая.

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

Как пользоваться сервисом Fotor:

PIXLR

PIXLR – еще один графический онлайн-сервис для ручного ретуширования снимков. По функционалу он схож с сайтом Fotor. Здесь есть инструмент для клонирования пикселей, фильтры, эффекты и настройка параметров фото: свет, цвет, экспозиция, яркость, контраст, насыщенность и т. д. Дополнительно присутствует кисть «Ретушь». Она закрашивает белые дефекты на фото – как обширные, так и маленькие.

Как пользоваться сервисом PIXLR:

Movavi Picverse

Movavi Picverse – программа для ретуши фото в автоматическом и ручном режиме. Если она не смогла убрать какие-то дефекты на автомате, это можно сделать вручную с помощью кисти «Умный ластик» или «Штамп» (клонирование пикселей). Еще в ней есть инструменты для ретуши кожи. На мой взгляд, работать в этой программе гораздо проще, чем в графических онлайн-редакторах Fotor и PIXLR.

Приложение Movavi Picverse платное, но у него есть пробный период – первые 10 фото можно отредактировать бесплатно. Единственный минус – на готовом снимке будет стоять водяной знак.

Некоторые инструменты для ретуши изначально платные, например, «Заплатка», которая используется для устранения обширных дефектов.

Стоимость подписки на Movavi Picverse составляет от $20 до $30 за год.

Как работать в программе:

  1. Запустите приложение. Нажмите на кнопку «Открыть» и выберите снимок, который хотите улучшить. Либо перетащите его мышкой на область программы.
  2. В первой вкладке «Коррекция» на панели справа кликните по кнопке «Реставрировать», чтобы запустить автоматическое удаление дефектов. Перед этим можно включить тумблер «Сделать фото цветным». После коррекции основных изъянов устраните при желании шумы на фото. Настройте уровень HDR-освещения и улучшения.
  3. Если после автоматического улучшения на снимке остались дефекты, удалите их вручную. Для этого перейдите в раздел «Умный ластик» и настройте размер кисти.
  4. Закрасьте трещину или потертость красным кругом.
  5. Нажмите на кнопку «Стереть» на панели справа.
  6. Удалите остальные изъяны таким же образом.
  7. Если ластик стер какие-то изъяны некорректно (появились разводы, цвет сместился и т. д.), откройте инструмент «Штамп» в той же вкладке «Умный ластик». Выберите размер кисти и уровень размытия штампа.
  8. Удерживая Alt на клавиатуре, выделите мышкой область, цвет которой нужно скопировать. Отпустите клавишу и выберите участок, куда нужно вставить выделенный цвет. Повторите действия для всех остальных участков фото.
  9. Если после ластика и штампа остались разводы и неестественные тени, откройте вкладку «Ретушь» на панели справа. Выберите размер, мягкость кисти и интенсивность. Проведите аккуратно кистью по участкам лица, где есть неточности. Нажмите на кнопку «Применить», чтобы сохранить результат.

Несколько советов по ретуши фото

  • Разные участки фотографии могут иметь разные тона одного и того же цвета, а также различную текстуру. Одна область может быть детализированная, а другая –размытая. Это важно учитывать во время ретуши, так как в итоге заплатка может оказаться неестественной. Если на снимки есть зернистая текстура, используйте более мягкие небольшие кисти (регулируйте параметр жесткости).
  • Размер кисти определяйте пропорционально размеру дефекта.
  • По возможности всегда приближайте снимок – так исправления будут более точными и незаметными.
  • Не делайте резкие и длинные мазки кистью, не зарисовывайте изъяны безостановочно, иначе велик риск получить ненужные разводы и неестественные переходы цветов.
  • Желтые пятна можно убрать за счет увеличения уровня синего цвета на фотографии. Используйте для этого инструмент «Температура» или «Цвет».
  • Не переусердствуйте с ретушью. Иначе фотография превратится в размытое неестественное изображение, которое мало похоже на оригинал.

Профессионально отреставрировать фото может только специалист – ретушер или фотограф. Тем не менее, вы тоже в силах приблизить старый снимок к идеалу, потренировавшись в специальных сервисах и программах. Среди сайтов с автоматической ретушью лучше всего работает MyHeritage. Отечественный аналог «Компьютерное зрение» не так хорошо справляется с обширными дефектами. Ручной ретушью удобнее заниматься в PIXLR и Movavi Picverse.

Читайте также: