Решения PnP проблемы

Авторы: 
Александр Кравцов
Авторы: 
Владимир Вежневец

Содержание


Как уже было сказано, наибольший интерес представляет P3P проблема в связи с минимальными требованиями к числу соответствий точек изображения и объекта сцены. К сожалению, вплоть до четырех различных конфигураций точек может быть получено в результате аналитического решения с моделью полной перспективы, а решения для упрощенных моделей перспективы при определенных условиях могут быть существенно неточными. В связи с этим некоторое внимание исследователей было уделено исследованию и решению PnP проблемы при n≥4.

Решение P4P проблемы для модели полной перспективы.

Рассмотрим аналитическое решение, предложенное Хораудом и Конио [3] для случая четырех не лежащих в одной плоскости точек. Обозначим данные точки модели через M0, M1, M2 и M3. Авторы решения предлагают перейти от системы четырех точек модели к пучку из трех не копланарных линий (см. рис. 10). Пусть для определенности, все три линии пересекаются в точке M0. Обозначим единичные вектора, параллельные линиям M1M0, M2M0 и M3M0 через L1, L2 и L3 соответственно. Тогда l1, l2, l3 – это проекции данных векторов на картинную плоскость. Далее мы будем использовать l1, l2, l3 как для обозначения проекций векторов, так и для представления проекций линий M1M0, M2M0 и M3M0. Введем три координатные системы: первая связана с камерой, вторая с изображением, а третья с объектом сцены. Как именно определяются данные координатные системы будет рассмотрено ниже. Для решения задачи достаточно найти матрицу A перехода от координатной системы объекта к системе координат камеры. Матрица A представима в виде произведения матриц A1 и A2, где A1 определяет переход от системы координат изображения к координатам камеры, а A2 задает преобразование координат, связанных с объектом сцены, к координатам изображения
images/stories/42/pnp_problem00.png
Рисунок 10. Замена четырех точек пучком из трех линий.

Определим координатные системы объекта, камеры и изображения следующим образом:
  • Координатная система объекта. Начало координат поместим в точку M0. Пусть вектор L3 задает направление оси Х. Ось Y определяет некоторый вектор P3, расположенный в плоскости перпендикулярной L3. Направление оси Z совпадает с направлением векторного произведения L3 и P3. Теперь вектора L1 и L2 можно разложить по базисным следующим образом:
images/stories/42/pnp_problem01.png(21)

где α1 – угол между L1 и L1’(проекция L1 на плоскость OXY), а α2 – величина угла между L2 и L2’(проекция L2 на плоскость OXY). Угол между L1’ и L2’ полагаем равным 2β. Заметим, что θ - это неизвестная величина, которая позже будет вычислена.
  • Точку отсчета координатной системы камеры поместим в центр перспективы O. Ось Z совпадает с оптической осью. Плоскость OXY параллельна картинной плоскости и расположена на расстоянии f от нее. (Считаем, что фокусное расстояние камеры известно).
  • Координатная система изображения вводится таким образом, что она оказывается жестко привязанной к проекциям точек объекта сцены. Центр перспективы O и линия l1 определяют плоскость, называемую интерпретационной. Стоит отметить, что все возможные пространственные интерпретации l1 принадлежат этой плоскости. Пусть P1 – это единичный вектор нормали к интерпретационной плоскости. Вернемся к определению координатной системы связанной с объектом сцены. В качестве вектора P3 возьмем единичный вектор нормали к интерпретационной плоскости, определяемой прямой l3 и центром перспективы O. Обозначим точку пересечения линий l1, l2, l3 как J. Ось Х направим вдоль прямой FJ. Пусть k’ – это единичный вектор оси X. k’ принадлежит всем трем интерпретационным плоскостям и, следовательно, перпендикулярен векторам P1, P2, P3. Из этого можно сделать вывод, что вектора P1, P2 и P3 копланарны. Ось Y направим вдоль вектора P3, а ось Z – вдоль векторного произведения P3 и k’.
images/stories/42/pnp_problem02.png
Рисунок 11. Координатная система объекта.

Каждая из матриц A1, A2 и A имеет размерность 4х4. (Используем однородные координаты). Для вычисления каждой из матриц необходимо определить 9 коэффициентов вращения и 3 величины, определяющие параллельный перенос.

1.1 Определение матрицы A1


Для вычисления коэффициентов матрицы A1 достаточно разложить k’, P3, k’ЧP3 по базисным векторам координатной системы камеры.
images/stories/42/pnp_problem03.png
images/stories/42/pnp_problem04.png
images/stories/42/pnp_problem05.png
(22)

Коэффициенты параллельного переноса определяются координатами точки J в системе координат камеры. Таким образом A1 представлена следующей матрицей:
images/stories/42/pnp_problem06.png(23)


1.2 Определение матрицы A2


Матрица A2 (матрица перехода от координатной системы объекта к системе координат изображения) определяется девятью коэффициентами вращения и тремя величинами параллельного переноса. Коэффициенты вращения есть коэффициенты разложения векторов L3, P3 и L3ЧP3 по базисным векторам координатной системы изображения.
На рисунке 12 изображена интерпретационная плоскость прямой l3. Легко видеть, что вектор L3 представим в следующем виде:
images/stories/42/pnp_problem07.png(24)

images/stories/42/pnp_problem08.png
Рисунок 12. Интерпретационная плоскость прямой l3.

Коэффициенты параллельного переноса определяются вектором JM0, который сонаправлен k’. Таким образом матрица A2 имеет следующий вид:
images/stories/42/pnp_problem09.png(25)

Теперь P4P проблема сведена к задаче определения неизвестных величин θ, φ и dx.

Вычисление величин θ и φ


Для определения углов достаточно использовать следующие ограничения: так как L1 принадлежит интерпретационной плоскости, то вектор L1 ортогонален P1, то есть:
images/stories/42/pnp_problem10.png(26)

Применив преобразование (25) к L1 и L2 , представленным выражениями (21), получим:
images/stories/42/pnp_problem11.png(27)

images/stories/42/pnp_problem12.png(28)

Как мы уже отмечали, вектор k’ перпендикулярен P1 и P2, следовательно
images/stories/42/pnp_problem13.png(29)

images/stories/42/pnp_problem14.png(30)

Углы γ1 и γ2 могут быть вычислены следующим образом:
images/stories/42/pnp_problem15.png(31)

images/stories/42/pnp_problem16.png(32)

images/stories/42/pnp_problem17.png(33)

images/stories/42/pnp_problem18.png(34)

Подставим полученные выражения для L1, L2, P1 и P2 в (26) и получим соотношения:
images/stories/42/pnp_problem19.png(35)

images/stories/42/pnp_problem20.png(36)

Из (35) и (36) можно выразить sinθ и cosθ как функции от sinφ и cosφ. Далее, применив ограничение,
images/stories/42/pnp_problem21.png
получим уравнение четвертой степени относительно cosφ. Это уравнение можно решать в явном виде или итерационно.

Вычисление величины dx


Определим длину OM0 (см. рис. 12). Так как
images/stories/42/pnp_problem22.png(37)


и
images/stories/42/pnp_problem23.png(38)


то
images/stories/42/pnp_problem24.png(39)



Также имеем
images/stories/42/pnp_problem25.png(40)


images/stories/42/pnp_problem26.png(41)


Подставив (40) и (41) в (39) получим выражение для OM0, а dx может быть вычислено таким образом:
images/stories/42/pnp_problem27.png

Решение PnP проблемы (n≥5).

Отедльного аналитического решения P5P проблемы не встретилось автору в изученной литературе. Некоторые исследователи предлагают подразбивать множество 5 точек объекта на подмножества, состоящие из 3, 4 точек, и для них решать P3P и P4P задачи. Конечное решение заключается в области пересечения решений P3P и P4P задач, но, возможно, подобное пересечение будет сложно найти при условии искаженных начальных данных.
Шести соответствий точек объекта и их проекций на картинную плоскость достаточно, для составления и однозначного решения системы линейных уравнений относительно неизвестных величин углов поворота и параллельного переноса перехода из координатной системы объекта в систему координат камеры.

Библиография

 
  1. Martin A. Fischler, Robert C. Bolles "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography", Communications of the ACM, June 1981, vol. 24(6): 381-395 (1981)
  2. William J, Wolfe, Donald Mathis "The Perspective View of Three Points", IEEE Transactions on Pattern Analysis and Machine Intelligence, January 1991, vol. 13(1): 66-73 (1991)
  3. Radu Horaud, Bernard Conio "An Analytic Solution for the Perspective 4-Point Problem", Computer Vision, Graphics and Image Processing volume 47 pages 33--44 1989
  4. Daniel DeMenthon, Larry S. Davis, "Exact and Approximate Solutions of the Perspective-Three-Point Problem". IEEE Transactions on Pattern Analysis and Machine Intelligence 14(11): 1100-1105 (1992)
  5. Rodrigo L. Carceroni, Christopher M. Brown "Numerical Methods for Model-Based Pose Recovery", TR659, Computer Science Dept., U. Rochester, August 1997.
  6. Philippe Ballard, George C. Stockman "Controlling a Computer via Facial Aspect", IEEE Trans. Sys,Man and Cybernetics, 25(4):669-677, 1995.
  7. T. D. Alter "3D Pose From 3 Corresponding points under weak-Perspective Projection", Technical Report 1378, MIT Artificial Intelligence Laboratory, 1992.
  8. Vera Bakic, George Stockman "Menu Selection by Facial Aspect", Proceedings of Vision Interface 99, Trois Rivieres, Quebec, CAN (19-21 May 99)


Дополнительная информация
Ссылка: 
Александр Кравцов, Владимир Вежневец. Решения PnP проблемы. Компьютерная графика и мультимедиа. Выпуск №1(3)/2003. http://cgm.computergraphics.ru/content/view/42
Выпуск: 
Выпуск №1(3)/2003

Комментарии

Отправить комментарий

Содержание этого поля является приватным и не предназначено к показу.
  • Адреса страниц и электронной почты автоматически преобразуются в ссылки.
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Строки и параграфы переносятся автоматически.

Подробнее о форматировании

CAPTCHA
Тест предназначен для отсеивания спама
Fill in the blank