Особенности коррекции оптических искажений в цифровой фотографии
LVEE 2014
Любой объектив вносит искажения в формируемое им изображение. Чем дороже оптика, тем меньше искажений. Но полностью избавиться от них невозможно.
- Виньетирование — затемнение изображения по краям кадра.
- Хроматические аберрации — «расслоение» изображения по цветовым каналам из-за различных углов преломления у света с разной длиной волны. Проявляется в виде цветного ореола вокруг контрастных мест.
- Дисторсия — искривление изображения, вызванное неравномерным линейным увеличением при отклонении от оптической оси. Из-за дисторсии прямые линии на кадре становятся изогнутыми.
С развитием цифровой техники появилась возможность строить математические модели оптических искажений и исправлять их. Помимо общего повышения качества фотографий, расчет и устранение аберраций критически необходимы для решения множества практических задач, таких как компьютерное зрение (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
Назад