Компьютерное зрение от mail ru или реставрация старых фотографий
- находим все дефекты изображения: надломы, потертости, дырки;
- закрашиваем найденные дефекты, основываясь на значениях пикселей вокруг них;
- раскрашиваем изображение.
Мы хотим найти все пиксели, относящиеся к дефектам на загруженной фотографии. Для начала нам нужно понять, какие фотографии военных лет будут загружать люди. Мы обратились к организаторам проекта «Бессмертный полк», которые поделились с нами данными. Проанализировав их, мы заметили, что люди зачастую загружают портреты, одиночные или групповые, на которых есть умеренное или большое количество дефектов.
Затем нужно было собрать обучающую выборку. Обучающая выборка для задачи сегментации — это изображение и маска, на которой отмечены все дефекты. Самый простой способ — отдать фотографии в разметку ассесорам. Конечно, люди умеют хорошо находить дефекты, но проблема в том, что разметка — это очень долгий процесс.
На разметку пикселей, относящихся к дефектам на одной фотографии, может уходить от одного часа до целого рабочего дня, поэтому за несколько недель сложно собрать выборку больше чем из 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.
Второй вывод — ассесоры важны. Причем не только на стадии разметки картинок перед обучением, но и для валидации итогового результата, потому что в задачах закрашивания дефектов или колоризации всё равно нужно валидировать результат с помощью человека. Мы отдаем пользователю три фотографии: исходную с удаленными дефектами, колоризованную с удаленными дефектами и просто колоризованную фотографию на случай, если алгоритм поиска и закрашивания дефектов ошибся.
Мы взяли некоторые фотографии проекта «Военный альбом» и обработали их нашими нейросетями. Вот такие результаты получили:
А здесь можно посмотреть их в оригинальном разрешении и на каждом этапе обработки.
Исследователи из команды Microsoft AI представили новый алгоритм на ИИ, который может восстанавливать старые изображения, но не допускает искажений или потери текстур. Он использует метод глубокого обучения.
Новый алгоритм создает для реальных изображений синтетические фотопары. Команда Microsoft Research обучила два вариационных автокодера, которые помогают в этой работе.
Алгоритм считывает общие данные для обоих изображений пары, а затем находит разницу. Это могут быть механические повреждения старого снимка, например, пятна пыли или царапины. Он также отмечает дефекты снимка, в том числе размытость.
В работе алгоритма впервые задействовали предложенный исследователями параметр суперразрешения изображения (RefSR). Помимо изображения с высоким разрешением, которое является фотопарой входного снимка, используется новая сеть текстурных трансформеров (TTSR). Подобные методы уже использовали при обработке естественного языка.
Обучаемый экстрактор текстур использует обновленные параметры для каждого снимка в результате сквозного обучения. Это позволяет точно передать текстуру и избежать «мыльных» зон на восстановленной фотографии. Модуль мягкого внимания помогает более точно использовать переданные текстуры.
Отмечается, что эта новая методика превосходит самые современные методы восстановления старых фотографий.
Ранее исследователи продемонстрировали работу новой системы на ИИ, которая генерирует изображение «с повышением частоты дискретизации» в 64 раза по сравнению с оригиналом с низким разрешением. Был задействован алгоритм исследования скрытого пространства. Система показала, что воспроизведенное изображение может кардинально отличаться от оригинала. Данный метод вряд ли будет применяться при восстановлении снимков, но может быть полезен в сферах медицины или астрономии.
Верните к жизни свои старые кадры при помощи технологии Vision.
Тест ЕГЭ онлайн от майла и фоксфорда
Привет друзья, сегодня будет небольшой пост о тесте ЕГЭ онлайн совместных усилий корпорации майл.ру и сайта фоксфорд.ру.
Хотите освежить свои знания и вспомнить школьную программу? Тогда этот тест для вас. Пройти его может любой желающий.
У нашего блога компьютерной помощи мойкомру появился собственный канал на Яндекс Дзен.
Как узнать какая видеокарта стоит на компьютере
Нужна информация как узнать какая видеокарта стоит на компьютере или ноутбуке?
В сегодняшнем обзоре я продемонстрирую 10 способов как это сделать и посмотреть модель видеоадаптера. Предыдущий пост был про тест ЕГЭ онлайн от майла и фоксфорда.
Лучшие фильмы ужасов последних лет на хэллоуин
Вот и наступил американский праздник Хэллоуин, поздравляю всех, кто-то его отмечает, а кто-то нет.
Портал кино.маил.ру заботливо предоставил небольшой список из 30 кинокартин лучшие фильмов ужасов последних лет для просмотра на Halloween.
Яндекс услуги – сервис поиска специалистов и услуг
Яндекс постоянно удивляет нас новыми полезными сервисами. Одним из таких является сервис под названием “Яндекс услуги”, о котором мы с вами сегодня и поговорим.
Вы узнаете, для чего предназначен яндекс услуги — сервис поиска специалистов и услуг, как им пользоваться, как зарегистрироваться и многое другое.
Бесплатные онлайн-сервисы для просмотра фильмов
В связи с пандемией коронавируса у многих пользователей появилась масса свободного времени. Кто-то перешел на удаленную работу, а кто-то получил внеплановый отпуск.
Поэтому, чтобы хоть как-то поддержать всех, я составил небольшой список сервисов с бесплатным доступом к онлайн-просмотру различных фильмов и сериалов. Итак, встречайте топ 5 бесплатные онлайн-сервисы для просмотра фильмов:
Начал работать официальный сайт, посвященный 75-летию Победы!
На днях на просторах интернета стал функционировать официальный сайт, посвященный 75-летию Победы в Великой Отечественной Войне. Эту прекрасную новость рассказал сам пресс-секретарь РФ — Песков Дмитрий!
Сайт будет содержать как новостную информацию, так и информацию об анонсах различных патриотических акций, связанных с Победой.
Тест ЕГЭ онлайн от майла и фоксфорда
Привет друзья, сегодня будет небольшой пост о тесте ЕГЭ онлайн совместных усилий корпорации майл.ру и сайта фоксфорд.ру.
Хотите освежить свои знания и вспомнить школьную программу? Тогда этот тест для вас. Пройти его может любой желающий.
Щелчок Таноса и половина вконтакте заблокирована
Речь идет о годовщине выхода популярного фантастического фильма Марвел «Мстители: Война бесконечности». В нем главный злодей Танос собирает 6 камней и устанавливает их в перчатку всевластия, которая дает ему безграничные возможности «бога».
Он превращает в пыль половину существ вселенной. Разработчики Вконтакте решили провести акцию к премьере фильма «Мстители: Финал» и заблокировать половину контакта.
Новогодние кварталы 2 гис — играй и получай реальные денежные призы за ответы о городе
Компания 2 GIS, в канун новогодних праздников, запустила интересную игру новогодние кварталы 2 гис с денежными подарками.
Можно выиграть много разных призов, среди которых сноуборд, 4K камера, часы samsung gear sport, sony playstation 4 slim 500 gb, беспроводные наушники, браслет, сертификаты на посещение разных мест и заведений, главный приз Apple iPhone Xs Max и другие подарки к новому году.
Как работает данный сервис?
Для улучшения цвета и деталей снимка используются нейросети. Они находят и убирают дефекты на кадре, после добавляют нужные цвета. Для получения такого эффекта нейросети было продемонстрировано множество старых фильмов и фотографий.
Можно поделиться этим онлайн сервисом со своими друзьями в социальных сетях вконтакте, одноклассниках, фэйсбуке и твиттере или скопировать прямую ссылку.
Надеюсь данный сервис компьютерного зрения от почты маил.ру отреставрировал ваши старые фотографии и помог взглянуть на них по новому. Всех поздравляю с наступающим праздником 9 Мая.
Устанавливаем приложение смотрим на телевизор
После публикаций статей и видео обзоров о платформе смотрим на компьютере, многие люди просят меня рассказать, как установить приложение смотрим на телевизор.
Позавчера увидел на главной странице майла рекламу нового приложения смотри майл ру. Из материала вы узнаете о платформе и как занять ваших детей на некоторое время, если у вас появились дела или просто захотели немного отдохнуть.
С сегодняшнего дня, 02.11.2020, на просторах интернета стал функционировать полезный и новый онлайн сервис под названием смотрим.ру от ВГТРК.
Розыгрыш 3-х лицензий программы Hetman Partition Recovery для восстановления данных
Сегодня мы запускаем акцию в наших социальных сетях вконтакте, фэйсбуке и ютубе. В каждой из них будет разыграна одна лицензия программы Hetman Partition Recovery.
Эта платная программа для восстановления информации фото, видео, аудио, документы.
Верните к жизни свои старые кадры при помощи технологии Vision.
Группа компьютерной помощи мойком.ру теперь в одноклассниках
Привет друзья, спешу поделиться приятной новостью — группа компьютерной помощи мойком.ру теперь в одноклассниках. Недавно у нас (компьютерной помощи) появилась собственная группа в социальной сети одноклассники.ру.
Теперь нас можно читать, не покидая популярную социальную сеть.
Как попасть в даркнет или открыть закрытый сайт
Хотите узнать, как попасть в даркнет или открыть закрытый сайт? Тогда читайте сегодняшний пост о безопасности и анонимности и будет вам счастье.
Нам будет помогать, популярный в узких кругах, браузер интернета TOR. Ранее я писал немного об этом в статье как настроить тор обозреватель.
Сокращение ссылок — 50 сервисов + заработок
Вам нужно сократить ссылку, но не знаете, как и где это сделать? Тогда предлагаю воспользоваться нашей подборкой 50 рабочих сервисов сокращения ссылок.
Длинные линки смотрятся не красиво, хотя они информативны. Гораздо лаконично выглядят короткие и аккуратные ссылки.
Улучшаем старые фотографии
Добавьте снимок, сервис улучшит его, и вы получите фото в отличном качестве. Кадры можно размещать в галерее «Бессмертный полк», сохранить на компьютере и в семейном альбоме или распечатать на принтере для похода 9 Мая в День Победы.
Загружаем нужный снимок, выбираем фотографию.
Вот так выглядит исходный кадр.
А здесь уже улучшенный.
Есть возможность добавления своих фотографий в галерею Бессметного полка.
Читайте также: