Геометрическая модель камеры — внешние и внутренние параметры (Geometric camera model — external and internal parameters)

Автор: | 25.07.2018

Введение
Определение внешних параметров камеры
Определение внутренних параметров камеры
Полезные ссылки

Введение

Камера-обскура — это простая камера без объектива и с одной маленькой апертурой. Лучи света проходят через апертуру и проецируют перевернутое изображение на противоположную сторону камеры. Чтобы перейти к модели центральной проекции представим себе виртуальную плоскость изображения, находящуюся перед камерой и содержащую уже неперевернутое изображение сцены (см. рисунок).

Постановка задачи. Задана точка  в трехмерном пространстве (3D‑точка). Необходимо найти координаты пикселя этой 3D‑точки на снимке, сделанном камерой. В этом контексте есть три системы координат:

  1. Мировая система координат (Xw Yw Zw)
  2.  Система координат камеры  (Xc Yc Zc)
  3. Система координат матрицы камеры (uv) — 2D в пиксельном представлении

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

Внешние параметры определяют преобразование от мировой системы координат (World coordinate system, WCS) к системе координат камеры (User coordinate system, UCS).

Внутренние параметры представляют проективное преобразование от координат 3-D камеры в 2D координаты изображений в пиксельном представлении.

Определение внешних параметров камеры

В статье 3D-реконструкция по двум изображениям определялось взаимное положение 2-х камер. Положение одной камеры совпадало с положением WCS. Положение 2-й камеры (UCS) задавалось 2-я углами относительно WCS. Уравнения для преобразования из WCS в UCS  определялись при помощи матрицы обратного преобразования, полученной как композиция из матриц элементарных преобразований.

Перейдем от частного случая к общему  В общем случае положение одного объекта относительно другого в 3D пространстве определяется 6-ю параметрами (см. Параметризация геометрических моделей). По аналогии с методом, который использовался для 2-х параметров (2-х углов), получим  уравнения для преобразования из WCS в UCS  для 6 параметров. Согласно этого метода необходимо выполнить следующие действия:

  1. Выбрать 6 независимых параметров, удобных для определения положения UCS относительно WCS.
  2. Определить последовательность элементарных преобразований UCS относительно осей координат WCS (поворот и перемещение), при которых значения параметров не искажаются (сохраняют натуральную величину).
  3. Задать соответствующие матрицы элементарных преобразований.
  4. Определить матрицу обратного преобразования.  Определяется через перемножение в обратной последовательности обратных матриц элементарных преобразований. Последние определяются путем замены знаков углов поворота и перемещений на противоположные.
  5. Определить уравнения для преобразования из WCS в UCS  на основе матрицы обратного преобразования.

Начнем с 1-го этапа. Не будем «изобретать велосипед». Обратимся к задаче, которая была рассмотрена в статье Определение ориентации 3D объекта по изображению.

Положение антенны относительно WCS задаются 5-ю параметрами – тремя углами и двумя линейными величинами (p и h). Если предположить, что внешний створ рупора — это камера, то параметры положения камеры будут такими же. К 5 параметрам добавляем еще один — сдвигаем всю систему вдоль оси X на величину n.

На 2-м и 3-м этапах определяем последовательность элементарных преобразований от начального положения, когда UCS совпадает с  WCS (см. рисунок ниже), и  получаем соответствующие им матрицы преобразований.

К этим преобразованиям еще необходимо добавить в начале последовательности преобразований поворот  UCS на 180 градусов вокруг оси X, чтобы ось y UCS смотрела вниз — как это принято представлять в библиотеке  OpenCV (см. OpenCV. Camera Calibration and 3D Reconstruction).

На 4-м этапе определяем матрицу обратного преобразования:

где 

Последовательно перемножаем матрицы (см. Правила умножения матриц):

Полученную матрицу можно использовать для установления зависимости между WCS и UCS.

Альтернативный и более часто используемый способ матричной записи уравнений:

где

После ввода соответствующих обозначений получаем:

Определение внутренних параметров камеры

Разместим фокус камеры в начале UCS а плоскость xy параллельно экрану камеры (на рисунке плоскость xy для наглядности совмещена с плоскостью экрана).

Положение точек снимка определяется в пиксельной системе координат uv, начало  которой совмещено с верхним левым пикселем изображения.

Координаты центрального пикселя Cx и Cy (оптический центр) находятся на пересечении главной оптической оси объектива с матрицей камеры. Они также как и координаты любой другой точки на изображении определяются в пикселях — округляются с точностью до пикселя.

Оптический центр (Cx и Cy) камеры может не совпадать с центром системы координат изображения (uv).

Определим  зависимости для проективного преобразования 3D координат xyz в 2D координаты изображения (uv) — в пиксельных единицах измерения:

  • Из подобия треугольников получаем соотношения

  • После ввода обозначений эти соотношения запишутся

  • Переходим к пиксельному представлению координат

  • Вводим обозначение

пиксели в датчике изображения могут быть не квадратными, поэтому у нас два разных фокусных расстояния fx и  fy.

  • получаем зависимости

Более простое для восприятия представление зависимостей:

Первые слагаемые в зависимостях для u и v округляются до целого.

В матричном виде зависимости запишутся:

или

Знак при координате y’  зависит  от разновидности системы координат цифрового изображения. Различают две прямоугольных системы координат:

  • началом которой является левый верхний  пиксел — так называемая левая система координат (СК).
  • началом которой является левый нижний пиксел —   правая СК;

В фотограмметрии традиционно применяется левая СК (на рис. слева). В оконных WinAPI приложениях также используют эту систему координат. Правая СК (на рис. справа) принята при записи изображений в файл во всех форматах (включая и формат BMP файла). Для перехода из одной СК в другую достаточно выполнить преобразование v=H-u, где H — размер изображения в пикселях по вертикали.

Полезные ссылки:

 

Автор: Николай Свирневский