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], изложение которых выходит за рамки данного учебника. Следует отметить только, что такой подход обычно дает результаты оценивания, более устойчивые к ошибкам измерений, чем рассмотренный выше линейный.