DeepHD

Когда люди ищут в интернете картинку или видео, они часто прибавляют к запросу фразу «в хорошем качестве». Под качеством имеется в виду разрешение — пользователи хотят, чтобы изображение было большим и хорошо выглядело на экране современного компьютера, смартфона или телевизора.
Некоторые картинки и фильмы доступны в сети лишь в невысоком разрешении. Их приходится растягивать под размеры экрана, и изображение становится мутным и нечётким. Не всегда возможно отыскать в архивах оригинальную плёнку со снимком или фильмом и отсканировать её заново. Более реальный вариант — увеличить изображение, используя технологии компьютерного зрения.
Существует целый класс технологий, которые позволяют повысить разрешение с помощью нейронных сетей. Их обозначают термином super-resolution. В Яндексе разработали свою реализацию super-resolution — она получила название DeepHD. Технология умеет обрабатывать как картинки, так и видео.

Как работает DeepHD

Обработка изображений в DeepHD проходит в два этапа. На каждом используется своя нейронная сеть. Первый этап — предварительная подготовка картинки. Нейросеть убирает с неё артефакты — разнообразные помехи, которые возникают, например, при сохранении в формате JPEG.
Очищенная от искажений картинка передаётся следующей нейронной сети. Эта нейросеть называется генератором: она способна создавать изображения сама. На втором этапе выполняется вся основная работа: генератор получает на вход маленькую картинку, а на выходе выдаёт такую же, но большую.

Как обучается нейросеть-генератор

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

Где используется DeepHD

С помощью DeepHD Яндекс повышает разрешение фильмов и телеэфиров на главной странице и в результатах поиска. Узнать, как выглядят изображения до и после обработки, можно в нашем блоге. Технология также применяется в Картинках — там она заменяет маленькие изображения на большие.
***
Разработкой технологий, повышающих качество изображения с помощью нейронных сетей, занимаются не только в Яндексе. Для тех, кому интересна тема super-resolution, мы собрали ссылки на статьи, выпущенные другими компаниями:
Jiwon Kim, Jung Kwon Lee, Kyoung Mu Lee Deeply-Recursive Convolutional Network for Image Super-Resolution [arXiv:1511.04491].
Christian Ledig et al. Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network [arXiv:1609.04802].
Mehdi S. M. Sajjadi, Bernhard Schölkopf, Michael Hirsch EnhanceNet: Single Image Super-Resolution Through Automated Texture Synthesis [arXiv:1612.07919].