31.08.2019

Калибровка камеры


Задачи и методы калибровки камер

Калибровка камер состоит в определении значений элементов внутреннего ориентирования камеры и систематических ошибок оптической системы, вызванных главным образом дисторсией объектива.

Элементами внутреннего ориентирования являются фокусное расстояние (f ) и координаты главной точки (x o , y o ).

Для камер имеющих координатные метки, определяют также их координаты.

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

Различают два типа дисторсии объектива: радиальную и тангенциальную. Радиальная дисторсия намного превышает тангенсальную, поэтому, как правило, определяют только радиальную дисторсию. На практике, фотокамеры, изготовленные специально для фотограмметрических измерений имеют объективы с очень маленькой дисторсией, поэтому в процессе калибровки достаточно бывает определить только фокусное расстояние и координаты главной точки. Для современных цифровых камер, главной проблемой является низкое качество изготовления объектива, связанное с большой дисторсией (может достигать 100мкм и более) и не центрирование отдельных элементов объектива, что приводит к неперпендикулярности главного оптического луча к плоскости изображения. Поэтому при калибровке таких камер целесообразно определять не только радиальную дисторсию, но и децентрацию оптической системы (нецентрированная или тангенциальная дисторсия объектива).

Дисторсия объектива может быть описана различными уравнениями, например:



Где d x , d y – поправки в координаты точек снимка за дисторсию объектива; x,y – координаты точек снимка; k 1 ,k 2 ,k 3 – коэффициенты радиальной дисторсии; p 1 ,p 2 – коэффициенты нецентрированной дисторсии объектива; r 0 – радиус- вектор, соответствующий нулевой дисторсии; r – расстояние от главной точкиx o , y o :

Существует три метода калибровки камер:

· Калибровка с помощью многокалиматорного калибратора

· Калибровка с помощью тест объекта.

· Самокалибровка.

Калибровка с помощью многокалиматорного калибратора выполняется на специальном устройстве, которое позволяет определить элементы внутреннего ориентирования камеры в лабораторных условиях. Этот метод в настоящее время редко используется, из-за необходимости иметь дорогостоящее оборудование.

Калибровка с помощью тест-объекта основана на вычислении параметров калибровки по результатам измерений координат точек снимков тест-объекта. Тест-объект представляет собой специальный объект с множеством точек с известными координатами.

Самокалибровка это метод калибровки камеры, который позволяет определять параметры калибровки в процессе фототриангуляции, выполняемой по снимкам реальной съемки.

Рассмотрим более подробно два последних метода, как наиболее употребимых.

Калибровка камер с помощью пространственного тест-объекта

Этот метод основан на съемке тест-объекта. На рис.8.1 показан пример в виде пространственной фигуры, на которой маркируются точки. Координаты этих точек определяются с необходимой точностью одним из геодезических методов.


Рис.8.1

После съемки этого объекта исследуемой камерой решается обратная засечка, на основе расширенных уравнений коллинеарности:

(8.3)

где d x ,d y – поправки в координаты точек снимка за дисторсию объектива, вычисляемые по (8.1) или (8.2). В качестве неизвестных в уравнениях (8.3) выступают элементы внутреннего f,x o ,y o , и внешнего ориентирования X S ,Y S ,Z S , w,a,k и коэффициенты дисторсии k 1 ,k 2 ,k 3, p 1 ,p 2 . Для их определения составляют эти уравнения по измеренным координатам точек снимка x,y и координатам X,Y,Z соответствующих точек тест-объекта.Задача решается по способу наименьших квадратов, методом последовательных приближений.

Для камер, в которых происходит преобразование видеосигнала в цифровую форму, рекомендуется добавить к уравнениям (8.3) коэффициенты аффинного преобразования а 1 иа 2 , то есть:

(8.4)

Чтобы решить проблему калибровки камеры корректно и надежно на основе уравнений (8.3) и (8.4) большое значение имеет тест-объект (размеры, количество точек и точность их координат) и метод его съемки. Съемку следует выполнять таким образом, чтобы точки объекта покрывали всю площадь снимка (рис. 8.5)



Размеры тест-объекта зависят от типа камеры, подлежащей калибровке, т.е. зависят от оптимальных отстояний Y S съемки, для которых предназначена данная камера. Если приблизительно известно это отстояние и фокусное расстояние камеры, то можно вычислить размеры тест-объекта из рис. 8.5. В качестве теста можно использовать фасад здания, на котором маркируются с большой густатой опорные точки. Что касается распределения точек, то их следует располагать равномерно по всей площади в плоскости, параллельной плоскости снимка (так, чтобы покрыть весь снимок точками для надежного определения коэффициентов дисторсии объектива) и в перпендикулярном направлении (по глубине) для определения фокусного рассояния камеры.

На рис. 8.6 показаны примеры тест-объектов.

Если опорные точки тест-объекта будут находиться в одной плоскости, то в следствии корреляции фокусного расстояния f с отстоянием Y S при решении обратной засечки приводит к неопределенности решения. Это обстоятельство поясняет рис. 8.7.


Рис.8.8

Очевидно, что чем больше третье измерение объекта (h ), тем более надежно решение. Из экспериментальных исследований известно, что отношение h/Y S не должно быть меньше чем 1/5.

Точность координат точек тест-объекта с которой их следует определять, можно подсчитать по простой формуле:

где d x – точность с которой необходимо определить параметры калибровки. Предположим, что d x =0.001mm, фокусное расстояние камеры примерно равно f =100mm, съемка будет выполняться с расстояния Y S =30m, тогда d X = 0.1mm

Заметим сразу, что поскольку фокусное расстояние и масштабные коэффициенты и входят в матрицу только в комбинациях и , то раздельно оценить все три этих параметра невозможно. Введем новые параметры и , которые и будут подлежать оцениванию.

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

Если положение камеры относительно этой системы известно (т.е. известны матрица и вектор в выражении (6.3)), можно сразу пересчитать координаты опорных точек в стандартную систему камеры и для оценивания внутренних параметров воспользоваться соотношениями (6.1), подставив вместо и и соответственно. Перепишем (6.1) в виде

, .

Для опорных точек получим две системы, состоящие из линейных уравнений каждая, относительно неизвестных , и , :

где , , , , , .

Очевидно, достаточно двух опорных точек, чтобы получить оценки внутренних параметров камеры:

, ,

, .

Обратим внимание на необходимость выполнения условий и , которые формально выражают требование, чтобы в плоскости изображения камеры проекции опорных точек не лежали на прямых, параллельных осям координат.

Для увеличения точности оценок внутренних параметров следует использовать большее количество опорных точек. Системы (6.13) в этом случае становятся переопределенными, и для их решения можно применить МНК. Минимизируя норму вектора невязки получим оценки внутренних параметров

, .

Рассмотрим теперь задачу калибровки в более общей постановке. Пусть неизвестны не только матрица , но и положение камеры относительно глобальной системы координат (т.е. матрица и вектор в выражении (6.3)). Такая постановка обусловлена тем, что технически довольно сложно выполнить точные измерения положения камеры и особенно ее ориентации относительно произвольной системы координат. Используя (6.2) и (6.3) и вводя вектор , связь между глобальными координатами опорной точки и координатами ее изображения можно представить в виде

. (6.14)

Матрица имеет размер и называется калибровочной. Обозначим

, ,

, , (6.15)

, .

Отметим два важных свойства этой матрицы, которые легко получить из (6.15), учитывая (6.4) и (6.5):

. (6.16)

Оказывается, что если элементы калибровочной матрицы известны, через них можно вычислить матрицы , и вектор . Действительно, учитывая (6.4), легко показать, что

Кроме того, непосредственно из (6.14) следует, что

,

, (6.18)

,

.

Задача калибровки, следовательно, сводится к предварительному оцениванию элементов матрицы .

Рассмотрим сначала линейный метод оценивания матрицы . Запишем матричное уравнение (6.14) как систему трех обычных уравнений

или, подставляя в два первых уравнения значение из третьего,

Зная координаты опорных точек в трехмерном пространстве и координаты их проекций в плоскости изображения камеры, получим однородную систему из линейных уравнений относительно 12 неизвестных элементов калибровочной матрицы :

. (6.19)

Представим эту систему в матрично-векторном виде:

, .

Сначала рассмотрим некоторые общие особенности этой системы. Очевидно, что одним из решений этой системы является тривиальное , которое не имеет физического смысла. Известно , что если однородная линейная система имеет хотя бы одно ненулевое решение, то она имеет бесконечное множество решений, причем, если - решение, то и , где - произвольное число, тоже является решением. Здесь необходимо различать два случая.

Первый – когда ранг матрицы на единицу меньше размера вектора . Тогда существует только одно (с точностью до произвольного скалярного множителя) решение. Именно этот случай и представляет практический интерес. Для реализации этого условия необходимо (но недостаточно), чтобы количество уравнений в (6.20) было не менее 11, следовательно, количество опорных точек должно быть не менее шести. Ограничить множество решений можно, воспользовавшись первым из условий (6.16). Действительно, определив некоторое решение , в качестве оценки компонент калибровочной матрицы выберем такое, чтобы Такая нормировка определяет калибровочную матрицу с точностью до знака. Выбрать правильный знак матрицы можно, например, зная, с какой стороны от плоскости глобальной системы координат находится камера, и учитывая первое из соотношений (6.18). Знак должен совпадать со знаком компоненты вектора трансляции.

Второй случай реализуется, если ранг меньше размера вектора на два и более. Здесь может существовать множество различных решений системы, среди которых осуществить правильный выбор без привлечения дополнительных данных невозможно. Показано , что такая ситуация возникает, в частности, если все опорные точки лежат в одной плоскости. Чтобы избежать этой ситуации, в качестве тестового объекта часто используют объект, приведенный на рис. 6.5.

Рис.6.5. Калибровочный объект

Рассмотрим теперь непосредственно метод решения системы (6.20). Обычно, чтобы уменьшить влияние ошибок измерений трехмерных координат опорных точек и координат их изображений в камере, используют больше, чем шесть опорных точек. Тогда система (6.20) становится переопределенной. Кроме того, как и в разделе 6.2, из-за ошибок в измерениях координат реально система (6.20) принимает вид

При условии

Другой подход к оцениванию матрицы основан на минимизации расстояний между измеренными проекциями опорных точек и вычисленными в соответствии с (6.14). Определим величину

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

Большинство современных цифровых камер отличаются корректной цветопередачей. Ушли в прошлое времена, когда цветные фотографии выглядели так, как будто их снимали через цветные фильтры. Более того, если снять цветовую мишень с установками в камере JPEG -sRGB или JPEG -AdobeRGB , то попадание в цвет при лабораторном контроле будет довольно точным.

Многие студийные камеры и ПО для них позволяют использовать технологию управление цветом. Для конкретного источника освещения управление цветом с помощью профиля можно без особого труда реализовать, как постпроцесс для любой камеры (допускающей ручные установки экспозиции, баланса белого и контраста). Для этого надо лишь построить профиль камеры так, как это описано в статье «Профили для цифровых камер. Пакет XLProfiler»). А затем «присвоить» профиль файлу-снимку в графическом редакторе.

Одно из основных препятствий для внедрения управления цветом в съемочную технику - непостоянство источника освещения. Если требуется точное попадание в цвет, то калибровать камеру нужно, фактически, под каждую конкретную съемку (под каждый конкретный источник света). С другой стороны, при оперативной съемке точное попадание в цвет редко является важным критерием качества. Заложенные в камеру или ПО алгоритмы коррекции баланса белого и «пересчета» фильтров на матрице в RGB-цвета файлов JPEG/TIFF/RAW, как отмечалось выше, работают вполне корректно. Калибровка камеры в Adobe Camera RAW

В модуле есть подменю «Калибровка камеры» :

Подменю называется «Калибровка» и вообще не предназначено для выполнения задач управления цветом. В этом подменю всего семь «движков»: для коррекции цветового оттенка теней и трех основных цветов в координатах «оттенок-насыщенность». Фактически, это дополнительная возможность цветокоррекции изображений, получаемых с помощью конкретной камеры, для которой профиль «заложен» в Camera RAW или содержится в файле TIFF/JPEG/DNG (Camera RAW теперь открывает и эти файлы, а в поле «Имя - Профиль камеры» можно выбрать внедренный в них профиль, RAW-файлы пока не поддерживают профили). Целью такой цветокоррекции может быть как более точная цветопередача, так и намеренное искажения цветов, к примеру, для имитации съемки в ИК-диапазоне.

В общих чертах процесс выглядит так:
съемка мишени в определенных условиях освещения в RAW,
обработка RAW-файла в Camera RAW в подменю «Основной» для коррекции экспозиции, контраста, баланса белого и оттенка/насыщенности,
калибровка в окне «Калибровка камеры» по цветовым координатам мишени,
сохранение построенного калибровочного набора параметров, как «пользовательского набора» или «набора по умолчанию».

Методика, предложенная Брюсом Фрезером , предполагает калибровку по трем полям R, G, B мишени Macbeth Color Checker. Ручная калибровка

Опишем процесс калибровки, предложенный Брюсом Фрезером .

Прежде чем приступить к калибровке, нужно снять в RAW мишень Macbeth Color Checker. Затем приготовить цифровую идеализированную мишень, преобразовав ее исходник в пространстве LAB (ссылка на файл приведена выше) в то цветовое пространство, в котором вы привыкли работать (поддерживаемые Camera RAW пространства Adobe RGB или ProPhoto , к примеру). Для ручной калибровки удобно нанести на цветовые поля мишени их цифровые значения и распечатать такую мишень или вывести в независимом окне на дисплей, если он достаточно большой.

Когда подготовительные операции выполнены, открываем в Camera RAW снимок мишени и начинаем калибровку:

Первый этап

Открыв мишень в Camera RAW , устанавливаем «пипетки цветов» на серые поля и настраиваем параметры изображения в подменю «Основной» . Сначала, по второму серому полю устанавливаем «баланс белого», затем по первому «экспозицию», по третьему и четвертому - «яркость», по второму, пятому и шестому полю «контраст» и «точку черного». Возможно, потребуется два-три этапа регулировок всех параметров для того, чтобы координаты снимка с точностью до ошибки (неоднородность полей на снимке в пределах трех единиц R, G, B можно считать такой ошибкой) совпали с координатами не цветных полей на идеализированной мишени.

После настройки «контраста/яркости» по шести нецветным полям переходим к настройке координат «синего», «зеленого» и «красного» полей. Рекомендуется с помощью регулятора «насыщенности» добиться максимально близкого идеальному значения цвета для «зеленого» поля.

Второй этап

Следующий этап - собственно калибровка:

Калибровка начинается с настройки «Тени», если у «черного» поля имеется цветной оттенок (напомним, баланс белого настраивался пипеткой баланса белого по «второму серому» полю и «черное» поле может иметь посторонний оттенок). Далее переходим к настройке цветового тона и насыщенности для «синего», «зеленого» и «красного» полей.

После нескольких десятков минут калибровки и нескольких исписанных заметками листов бумаги, удается приблизиться к идеалу, но не очень близко - ошибка по отдельной компоненте цвета достигает 10-15 единиц (при начальной ошибке до 20-30 единиц) при калибровке конкретной камеры Canon PowerShot G2 .

Полезно изначально пользоваться рекомендациями Брюса Фрезера . Начинать с «зеленого» поля, «привыкнуть» к тому, что движок «цветовой тон» почти не влияет на тот цвет, которым именуется, и сильно «раздвигает» два других цвета (к примеру, увеличение красного «цветового тона» почти не меняет красную компоненту цвета, но увеличивает зеленую и почти всегда уменьшает синюю ), а движок «насыщенность» синхронно меняет содержание в «смеси цветов» двух компонент, кроме той, которой сам именуется (к примеру, при увеличении насыщенности красного синхронно уменьшаются обе компоненты зеленого и синего ).

Третий этап

Столкнувшись с невозможностью настроить вручную цвета лучше, чем с точностью в десяток единиц, я отказался от использования инструмента «Калибровка». Но в новой версии Camera RAW , кроме калибровки есть еще подменю выборочной коррекции цветов «HSL» . Если к настройке привлечь его возможности, то удается попасть в цвет не только для трех, но для большего числа полей мишени:

Отметим, что подменю Camera RAW «HSL» и «Разбиение тона » вообще более эффективный инструмент калибровки, чем сама «Калибровка».

Использование калибровки

Когда нужная точность калибровки достигнута, остается сохранить «калибровку» и применять ее, если это потребуется или вообще сохранить ее как настройку «по умолчанию» для конкретной камеры и конкретного осветителя:

Полуавтоматический процесс калибровки с помощью AcrCalibrator

Ручная калибровка трудоемкий рутинный процесс. Для его автоматизации можно воспользоваться модулем для Photoshop AcrCalibrator , созданным Томом Форсом (Thomas Fors) . С его можно загрузить сам модуль и инструкцию по применению. Когда готовилась статья, корректно работала с ACR версиями до 4.1. Тем, кто будет пробовать модуль, загрузив с сайта Adobe пробный Photoshop и последний ACR к нему, следует скачать так же ACR 4.1 и установить его на место более свежих конверторов RAW файлов.

Работать с AcrCalibrato r не сложно. Его (файл AcrCalibrator.jsx) нужно загрузить в папку PhotoshopCS3/Presets/Scripts и перегрузить Photoshop . Снимок мишени открывается в Camera RAW в режиме 8 бит/цвет, ProPhoto RGB, наименьшего разрешения (для ускорения обработки). Баланс белого устанавливается по второму слева «серому» полю. Файл открывается в Adobe Photoshop . Инструментом «перо» на мишени нужно нарисовать прямоугольник, выставив его углы в центры полей мишени: «темная кожа» - «белый» - «черный» - «зелено-голубой» (угловые поля нужно выбрать именно в такой последовательности). Затем запустить скрипт и подождать. В моем случае скрипт выдал на экран данные калибровки примерно через полтора часа.


На иллюстрации приведено окно отчета AcrCalibrator, идеализированная мишень и окно Adobe Camera RAW с введенными установками, полученными с помощью AcrCalibrator. Если сравнить цветовые координаты «синего», «зеленого» и «красного» полей идеальной мишени и мишени, полученной с установками AcrCalibrator, станет ясно, что и автомат не может уменьшить ошибку цветопередачи до менее чем десяти единиц.



Чтобы убедиться в том, что при работе AcrCalibrator не произошло ошибки, можно запустить его повторно. Повторный обсчет, как видно по фрагментам, приведенным выше, дает результат с точностью до ошибки идентичный первому измерению.


Для сравнения приведем данные о настройках, полученных при ручном режиме калибровки:


Чтобы сравнить эффективность различных вариантов калибровки приведем фрагменты мишени, полученные разными способами. Настройки «Основной» - одинаковые для всех способов и соответствуют тем, которые были найдены при калибровке в ручном режиме, так как именно они обеспечивают наиболее близкие идеальным координаты «серых» полей. Отличаются настройки в окнах подменю «Калибровка» и «HSL» (установки «HSL» отличаются от «по умолчанию» только в случае «ручной калибровки» по методу Брюса Фрезера ).

Левая верхняя четверть - идеализированная мишень. Правая верхняя - результат обработки снимка в Camera RAW с установками «по умолчанию» для камеры Canon PowerShot G2. Левая нижняя четверть - обработка в Camera RAW с ручными установками «калибровки» и «HSL» для трех основных цветов R, G, B, насыщенных желтого и пурпурного. Правая нижняя четверть - обработка в Camera RAW с установками калибровки, полученными с помощью AcrCalibrator.


Как только появился Photoshop CS с Camera RAW и вышла книга Брюса Фрезера , я испытал методику для камеры Canon PowerShot G2 . Оказалось, что вручную добиться хорошего (с некоторой небольшой ошибкой) попадания «в цвет» по координатам не просто. Но еще хуже то, что и после калибровки остальные поля (те, по которым калибровка не производилась) мишени не приводятся к своим числовым значениям. Стоит ли тратить на такую калибровку время? Есть задачи, при решении которых точное попадание в определенные цвета может быть актуально. Для таких калибровка подходит. Но просто «улучшать» цветопередачу с помощью «Калибровки», скорее всего, не очень хорошая идея.