Американские исследователи разработали метод получения ярких фотографий с минимальным количеством шумов при съемке практически в полной темноте. Для получения таких изображений используется нейросеть, которая обрабатывает фотографии, снятые на обычную камеру с короткой выдержкой в условиях очень низкой освещенности. Посвященная работе статья опубликована на arXiv, информация об исследовании доступна на сайте проекта.
Чтобы повысить яркость фотографий, снятых в темноте, обычно или увеличивают время выдержки, или повышают светочувствительность камеры. Однако первый способ приводит к получению размытых или смазанных изображений (а также, например, не дает возможности снимать видео), а второй — резко увеличивает количество шумов. Поскольку при уменьшении освещенности все заметнее становятся дефекты на изображении, то для избавления от них, как правило, предлагают использовать компьютерную обработку уже полученного изображения. Тем не менее, все подобные алгоритмы работают с изображениями, полученными хоть и в плохих условиях, но все же не при экстремально низкой освещенности. Методов для получения качественных фотографий в полной темноте пока предложено не было.
Американские разработчики из Intel и Иллинойсского университета в Урбане-Шампейне под руководством Владлена Колтуна (Vladlen Koltun) предложили для получения ярких и бездефектных изображений при съемке в условиях слабого освещения использовать метод глубокого машинного обучения. Для используемой нейросети требуются изображения, полученные на обычную камеру со стандартным набором параметров. Например, в типичном эксперименте авторы работы использовали фотографии, полученные при очень низкой освещенности (менее 0,1 люкса — это в несколько раз темнее, чем ночью при полнолунии) с выдержкой 1/30 секунды, диафрагмой f/5.6 и светочувствительностью ISO 8000. При такой освещенности получить изображение, на котором хоть как-то видны детали, пусть и сквозь сильный шум и с сильным искажением цвета, можно лишь с помощью светочувствительности около ISO 400000 — недоступной практически ни на каких фотоаппаратах.
Чтобы из практически абсолютно черной фотографии получить нужное изображение, разработчики применили метод машинного обучения с использованием полностью сверточной сети (fully convolutional network, FCN), которая получает изображение не из обработанных данных, а использует сигнал непосредственно с фоточувствительной матрицы. Для обучения нейросети авторы использовали более 5 тысяч фотографий, полученных внутри темных помещений (с освещенностью около 0,1 люкса), и ночью на улице (с освещенностью от 0,3 до 5 люкс — при искусственном освещении или лунном свете). Для получения фотографий использовались две камеры, закрепленные на штативе. В полном наборе изображений с каждой из темных фотографий, полученных с короткой выдержкой, в паре шла яркая фотография того же места, полученная с очень длинной выдержкой — от 10 до 30 секунд. На таких парах нейросеть обучалась производить необходимые процедуры демозаики, цветовой коррекции, уменьшения количества шумов и улучшения качества изображения. Чтобы избежать усиления шума и накопления ошибок обучение проводилось в сквозном режиме (end-to-end learning).
Обученную на пяти тысячах фотографий сеть авторы проверили, сравнив изображения, полученные различными камерами при низкой освещенности с помощью обычных методов (повышения светочувствительности матрицы или традиционных методов компьютерной обработки фотографий). Оказалось, что с помощью предложенного метода удается получать яркие изображения даже при очень низкой освещенности с достаточно короткой выдержкой, при этом по цветопередаче и шумности изображения полученные фотографии значительно превосходят те, которые были получены с помощью стандартных подходов. Время обработки одного изображения с помощью такого метода составило от 0,38 до 0,66 секунды в зависимости от разрешения изображения и типа используемой камеры. При этом степень увеличения яркости изображения относительно начальной фотографии нужно контролировать вручную.
По словам авторов работы, пока у предложенного метода есть ряд ограничений, в частности, он не приспособлен для съемки движущихся объектов. В будущем разработчики планируют оптимизировать архитектуру нейросети для обработки изображений, что позволит увеличить его скорость, автоматически настраивать яркость изображений и снимать подвижные объекты, так что в конечном итоге такой же подход можно будет использовать и при съемке видео.
Методы машинного обучения нередко используют для повышения качества фотографий. Например, разработчики Google создали нейросеть, которая создает из снимков Google Street View такие фотографии пейзажей, которые настоящие фотографы принимают за работы профессионалов. Другая группа программистов запустила сервис, который также с помощью нейросетей повышает разрешение и воссоздает детали изображения, которое можно просто загрузить на сайт. А специалисты из компании NVIDIA разработали алгоритм, который генерирует реалистичные изображения, например детализированные портреты несуществующих людей.
Александр Дубов