6.4. Калибровка камеры
Заметим сразу, что поскольку фокусное
расстояние
и
масштабные коэффициенты
и
входят в матрицу
только в комбинациях
и
, то раздельно оценить все три
этих параметра невозможно. Введем новые параметры
и
, которые и будут подлежать оцениванию.
Пусть камера регистрирует сцену,
содержащую
опорных
точек, и трехмерные координаты точек известны в глобальной системе координат.
Задача состоит в том, чтобы по трехмерным координатам опорных точек
и координатам их
проекций в плоскости изображений камеры
,
оценить элементы матрицы
.
Если положение камеры относительно
этой системы известно (т.е. известны матрица
и вектор
в выражении (6.3)), можно сразу
пересчитать координаты опорных точек в стандартную систему камеры и для
оценивания внутренних параметров воспользоваться соотношениями (6.1), подставив
вместо
и
и
соответственно. Перепишем
(6.1) в виде
,
.
Для
опорных точек получим две системы,
состоящие из
линейных
уравнений каждая, относительно неизвестных
,
и
,
:
,
, (6.13)
где
,
,
,
,
,
.
Очевидно, достаточно двух опорных
точек, чтобы получить оценки внутренних параметров камеры:
,
,
,
.
Обратим внимание на необходимость выполнения условий
и
, которые формально
выражают требование, чтобы в плоскости изображения камеры проекции опорных
точек не лежали на прямых, параллельных осям координат.
Для увеличения точности оценок внутренних параметров следует
использовать большее количество опорных точек. Системы (6.13) в этом случае
становятся переопределенными, и для их решения можно применить МНК. Минимизируя
норму вектора невязки
получим оценки внутренних параметров
,
.
Рассмотрим теперь задачу калибровки в
более общей постановке. Пусть неизвестны не только матрица
, но и положение камеры
относительно глобальной системы координат (т.е. матрица
и вектор
в выражении (6.3)). Такая
постановка обусловлена тем, что технически довольно сложно выполнить точные
измерения положения камеры и особенно ее ориентации относительно произвольной
системы координат. Используя (6.2) и (6.3) и вводя вектор
, связь между глобальными
координатами опорной точки
и координатами ее изображения можно
представить в виде
. (6.14)
Матрица
имеет размер
и называется калибровочной.
Обозначим
,
,
,
, (6.15)
,
.
Отметим два важных свойства этой матрицы, которые легко
получить из (6.15), учитывая (6.4) и (6.5):
,
. (6.16)
Оказывается, что если элементы
калибровочной матрицы
известны, через них можно вычислить
матрицы
,
и вектор
. Действительно,
учитывая (6.4), легко показать, что
,
,
, (6.17)
.
Кроме того, непосредственно из (6.14) следует, что
,
,
,
, (6.18)
,
.
Задача калибровки, следовательно, сводится к предварительному
оцениванию элементов матрицы
.
Рассмотрим сначала линейный метод
оценивания матрицы
.
Запишем матричное уравнение (6.14) как систему трех обычных уравнений
,
,
,
или, подставляя в два первых уравнения значение
из третьего,
,
.
Зная координаты
опорных точек в трехмерном пространстве
и координаты их проекций
в плоскости изображения камеры, получим
однородную систему из
линейных уравнений относительно 12
неизвестных элементов калибровочной матрицы
:
. (6.19)
Представим эту систему в матрично-векторном виде:
, (6.20)
где
,
.
Сначала рассмотрим некоторые общие
особенности этой системы. Очевидно, что одним из решений этой системы является
тривиальное
,
которое не имеет физического смысла. Известно [6.2, с.153], что если однородная
линейная система имеет хотя бы одно ненулевое решение, то она имеет
бесконечное множество решений, причем, если
- решение, то и
, где
- произвольное число, тоже
является решением. Здесь необходимо различать два случая.
Первый – когда ранг матрицы
на единицу меньше
размера вектора
.
Тогда существует только одно (с точностью до произвольного скалярного
множителя) решение. Именно этот случай и представляет практический интерес. Для
реализации этого условия необходимо (но недостаточно), чтобы количество
уравнений в (6.20) было не менее 11, следовательно, количество опорных точек
должно быть не менее шести. Ограничить множество решений можно,
воспользовавшись первым из условий (6.16). Действительно, определив некоторое
решение
, в
качестве оценки компонент калибровочной матрицы выберем
такое, чтобы
Такая нормировка
определяет калибровочную матрицу с точностью до знака. Выбрать правильный знак
матрицы можно, например, зная, с какой стороны от плоскости
глобальной системы координат
находится камера, и учитывая первое из соотношений (6.18). Знак
должен совпадать со
знаком компоненты
вектора
трансляции.
Второй случай реализуется, если ранг
меньше размера
вектора
на
два и более. Здесь может существовать множество различных решений системы,
среди которых осуществить правильный выбор без привлечения дополнительных
данных невозможно. Показано [6.3], что такая ситуация возникает, в частности,
если все опорные точки лежат в одной плоскости. Чтобы избежать этой ситуации, в
качестве тестового объекта часто используют объект, приведенный на рис. 6.5.
Рис.6.5.
Калибровочный объект
Рассмотрим теперь непосредственно
метод решения системы (6.20). Обычно, чтобы уменьшить влияние ошибок измерений
трехмерных координат опорных точек и координат их изображений в камере,
используют больше, чем шесть опорных точек. Тогда система (6.20) становится
переопределенной. Кроме того, как и в разделе 6.2, из-за ошибок в измерениях
координат реально система (6.20) принимает вид
,
где
, как и в п.6.2, - неизвестный вектор
невязки, обусловленный наличием ошибок измерений.
В этой ситуации можно снова воспользоваться МНК, согласно
которому в качестве оценки вектора
следует принять такой, который
минимизирует значение функционала
при условии
(см.(6.16)). Поскольку
функционал
представляет
собой квадратичную форму с неотрицательно определенной симметричной матрицей
, то минимума по
при условии
он достигает, если
- собственный вектор
матрицы
,
соответствующий ее минимальному собственному числу
[6.4, с.64]. Заметим, что
. (Собственным вектором
матрицы
называется
вектор
,
который удовлетворяет уравнению
, где
- скалярный множитель, называемый
собственным числом матрицы
).
Другой подход к оцениванию матрицы
основан на минимизации
расстояний между измеренными проекциями опорных точек и вычисленными в
соответствии с (6.14). Определим величину
,
которая представляет сумму квадратов этих расстояний, и
минимизируем ее по
с
учетом ограничений (6.16). Решить эту задачу можно посредством методов условной
минимизации [6.5, гл.VI], изложение которых выходит за рамки данного учебника.
Следует отметить только, что такой подход обычно дает результаты оценивания,
более устойчивые к ошибкам измерений, чем рассмотренный выше линейный.