Международная конференция разработчиков
и пользователей свободного программного обеспечения

Особенности коррекции оптических искажений в цифровой фотографии

Алексей Бабахин, Рязань, Russia

LVEE 2014

The article talks about the distortion correction in digital images, as well as cases where correction is used to solve applied problems.

Любой объектив вносит искажения в формируемое им изображение. Чем дороже оптика, тем меньше искажений. Но полностью избавиться от них невозможно.

  • Виньетирование — затемнение изображения по краям кадра.
  • Хроматические аберрации — «расслоение» изображения по цветовым каналам из-за различных углов преломления у света с разной длиной волны. Проявляется в виде цветного ореола вокруг контрастных мест.
  • Дисторсия — искривление изображения, вызванное неравномерным линейным увеличением при отклонении от оптической оси. Из-за дисторсии прямые линии на кадре становятся изогнутыми.

С развитием цифровой техники появилась возможность строить математические модели оптических искажений и исправлять их. Помимо общего повышения качества фотографий, расчет и устранение аберраций критически необходимы для решения множества практических задач, таких как компьютерное зрение (CV — Computer Vision), фотограмметрия, объединение нескольких фотографий и создание панорам. Точные расчеты на основании фотографий без коррекции искажений невозможны.

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

Существует несколько математических моделей, описывающих дисторсию. Пожалуй, самой популярной моделью является PTLens, изначально разработанная доктором Хельмутом Дерша (Helmut Dersch) в Panorama Tools. На данный момент эта модель является основной в библиотеке LensFun. В свою очередь эту библиотеку используют множество популярных открытых фоторедакторов — UFRaw, Darktable, Rawstudio, Digikam/Kipi, GimpLensfun, Photivo и оболочка для создания панорам Hugin. Библиотека имеет постоянно пополняемую базу объективов, которая облегчает исправление искажений. Однако есть возможность и самостоятельно создать профиль для своего объектива.

Немного особняком стоит библиотека компьютерного зрения OpenCV, которая использует свою собственную математическую модель, описывающую дисторсию. Ту же самую модель использует и Blender для реконструкции и привязки живого видео к 3D-сцене.

Проблема заключается в том, что LensFun не поддерживает модель дисторсии, используемую в OpenCV. Да и при наличии такой поддержки, прямой конвертации одной модели в другую добиться невозможно. Поэтому на данный момент нет возможности использовать обширную базу объективов и инструменты для профилирования при работе с видео в Blender и в других разработках, использующих библиотеку OpenCV. Перспективной выглядит идея подбора коэффициентов одной модели на основании коэффициентов другой модели методом наименьших квадратов — например, при помощи библиотеки ceres-solver.

Редакторы фотографий, как правило, могут использовать только уже готовые данные калибровки объективов. Сшиватель панорам Hugin или Blender могут подбирать приблизительные коэффициенты для коррекции дисторсии в процессе своей работы. Такое поведение обусловлено работой сразу с несколькими фотографиями (или видео), которые позволяют сопоставлять между собой разные ракурсы. Тем не менее, предварительная аккуратная калибровка объектива специальными мишенями позволяет повысить точность расчетов, качество результата и снизить суммарные трудозатраты.

Abstract licensed under Creative Commons Attribution-ShareAlike 3.0 license

Назад