В компьютерном зрении матрица камеры или матрица проекции (камеры) — это матрица , которая описывает отображение камеры-обскуры из трехмерных точек в мире в двухмерные точки на изображении.
Пусть — представление 3D-точки в однородных координатах (4-мерный вектор), а — представление изображения этой точки в камере-обскуре (3-мерный вектор). Тогда справедливо следующее соотношение:
где — матрица камеры, а знак означает, что левая и правая части равны, за исключением умножения на ненулевой скаляр :
Поскольку матрица камеры участвует в отображении между элементами двух проективных пространств , ее также можно рассматривать как проективный элемент. Это означает, что у нее всего 11 степеней свободы, поскольку любое умножение на ненулевой скаляр приводит к эквивалентной матрице камеры.
Отображение координат трехмерной точки P в двухмерные координаты проекции точки на плоскость изображения, согласно модели камеры-обскуры , определяется выражением
где — трехмерные координаты точки P относительно системы координат, центрированной на камере, — результирующие координаты изображения, а f — фокусное расстояние камеры, для которого мы предполагаем f > 0. Кроме того, мы также предполагаем, что x 3 > 0 .
Для вывода матрицы камеры выражение выше переписывается в терминах однородных координат. Вместо 2D-вектора мы рассматриваем проективный элемент (3D-вектор) , а вместо равенства мы рассматриваем равенство с точностью до масштабирования на ненулевое число, обозначаемое . Сначала мы записываем однородные координаты изображения как выражения в обычных 3D-координатах.
Наконец, трехмерные координаты также выражаются в однородном представлении , и вот как выглядит матрица камеры:
где находится матрица камеры, которая здесь задается выражением
и соответствующая матрица камеры теперь становится
Последний шаг является следствием того, что он сам является проективным элементом.
Матрица камеры, полученная здесь, может показаться тривиальной в том смысле, что она содержит очень мало ненулевых элементов. Это во многом зависит от конкретных систем координат, выбранных для 3D и 2D точек. Однако на практике распространены другие формы матриц камеры, как будет показано ниже.
Матрица камеры, полученная в предыдущем разделе, имеет нулевое пространство , охватываемое вектором
Это также однородное представление трехмерной точки с координатами (0,0,0), то есть «центр камеры» (он же входной зрачок ; положение отверстия камеры-обскуры ) находится в точке O. Это означает, что центр камеры (и только эта точка) не может быть сопоставлен камерой с точкой в плоскости изображения (или, что эквивалентно, он сопоставлен со всеми точками на изображении, поскольку каждый луч на изображении проходит через эту точку).
Для любой другой трехмерной точки с , результат хорошо определен и имеет вид . Это соответствует точке на бесконечности в проективной плоскости изображения (даже если плоскость изображения принять за евклидову плоскость , соответствующей точки пересечения не существует).
Полученную выше матрицу камеры можно упростить еще больше, если предположить, что f = 1 :
где здесь обозначает единичную матрицу. Обратите внимание, что матрица здесь делится на конкатенацию матрицы и 3-мерного вектора. Матрицу камеры иногда называют канонической формой .
До сих пор все точки в трехмерном мире были представлены в системе координат, центрированной на камере , то есть в системе координат, которая имеет начало в центре камеры (местоположение пинхола пинхол -камеры ). Однако на практике трехмерные точки могут быть представлены в терминах координат относительно произвольной системы координат (X1', X2', X3'). Предполагая, что оси координат камеры (X1, X2, X3) и оси (X1', X2', X3') являются евклидовыми (ортогональными и изотропными), существует уникальное евклидово трехмерное преобразование (вращение и трансляция) между двумя системами координат. Другими словами, камера не обязательно находится в начале координат, глядя вдоль оси z .
Две операции вращения и переноса трехмерных координат можно представить в виде двух матриц
где — матрица вращения , а — вектор трехмерного переноса. Когда первая матрица умножается на однородное представление трехмерной точки, результатом является однородное представление повернутой точки, а вторая матрица выполняет вместо этого перенос. Выполнение двух операций последовательно, т.е. сначала поворот, а затем перенос (с вектором переноса, заданным в уже повернутой системе координат), дает объединенную матрицу поворота и переноса
Предполагая, что и являются именно поворотами и переносами, которые связывают две системы координат (X1,X2,X3) и (X1',X2',X3') выше, это означает, что
где — однородное представление точки P в системе координат (X1',X2',X3').
Предполагая также, что матрица камеры задана как , отображение координат в системе (X1,X2,X3) в однородные координаты изображения становится
Следовательно, матрица камеры, связывающая точки в системе координат (X1',X2',X3') с координатами изображения, имеет вид
конкатенация трехмерной матрицы вращения и трехмерного вектора перемещения.
Этот тип матрицы камеры называется нормализованной матрицей камеры , он предполагает фокусное расстояние = 1 и что координаты изображения измеряются в системе координат, где начало координат находится на пересечении оси X3 и плоскости изображения и имеет те же единицы, что и трехмерная система координат. Результирующие координаты изображения называются нормализованными координатами изображения .
Опять же, нулевое пространство нормализованной матрицы камеры, описанной выше, охватывается 4-мерным вектором
Это также, опять же, координаты центра камеры, теперь относительно системы (X1',X2',X3'). Это можно увидеть, применив сначала поворот, а затем перенос к 3-мерному вектору , и результатом будет однородное представление 3D-координат (0,0,0).
Это подразумевает, что центр камеры (в его однородном представлении) лежит в нулевом пространстве матрицы камеры, при условии, что он представлен в терминах трехмерных координат относительно той же системы координат, к которой относится матрица камеры.
Нормализованную матрицу камеры теперь можно записать как
где — трехмерные координаты камеры относительно системы (X1',X2',X3').
Учитывая отображение, произведенное нормализованной матрицей камеры, результирующие нормализованные координаты изображения могут быть преобразованы посредством произвольной 2D- гомографии . Это включает в себя 2D-перемещения и вращения, а также масштабирование (изотропное и анизотропное), а также общие 2D- перспективные преобразования . Такое преобразование может быть представлено в виде матрицы , которая отображает однородные нормализованные координаты изображения в однородные преобразованные координаты изображения :
Подставив приведенное выше выражение для нормализованных координат изображения в терминах трехмерных координат, получим
Это создает наиболее общую форму матрицы камеры.