Основные решения P3P проблемы

Авторы: 
Александр Кравцов
Авторы: 
Владимир Вежневец
Впервые в современной литературе решение P3P проблемы c моделью полной перспективы было рассмотрено в 1981 году Фишером и Болсом. Оно заключается в сведении одной и той же системы трех уравнений второй степени с тремя неизвестными к уравнению четвертой степени с одной неизвестной.

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

Впервые в современной литературе решение P3P проблемы c моделью полной перспективы было рассмотрено в 1981 году Фишером и Болсом [1]. В действительности, этой проблеме был посвящен ряд работ, опубликованных в период с 1841 по 1949 год немецкими исследователями. Фишер и Болс не были знакомы с этими работами и предложили свое решение P3P проблемы. Оно, также как и предыдущие решения, заключается в сведении одной и той же системы трех уравнений второй степени с тремя неизвестными к уравнению четвертой степени с одной неизвестной. Решения различаются лишь способами получения уравнения четвертой степени.

Рассмотрим решение, предложенное Фишером и Болсом. Пусть М0, М1, М2 – три точки модели объекта, для которых будет решаться P3P задача. Известно взаимное расположение точек модели, то есть расстояния R01=M0M1, R02=M0M2 и R12=M1M2. Пусть m0, m1, m2 – это проекции этих точек на картинную плоскость, точка O – центр перспективы. Мы предполагаем, что фокусное расстояние камеры известно. Необходимо определить положение точек М0, М1, М2 по их проекциям на картинную плоскость.
images/stories/38/p3p_problem00.gif
Рисунок 2. Полная перспектива.
Для модели полной перспективы точки М0, М1 и М2 расположены на лучах Om0, Om1 и Om2 соответственно. Для решения P3P задачи достаточно определить расстояния D0, D1 и D2 от центра перспективы до точек объекта. Рассмотрим ΔM0M1O. Поскольку фокусное расстояние камеры известно, то мы знаем и величину ∠M0OM101. Тогда по теореме косинусов для ΔM0M1O имеем:
images/stories/38/p3p_problem01.gif (6)
аналогично для ΔM0M2O и ΔM1M2O
images/stories/38/p3p_problem02.gif (7)
images/stories/38/p3p_problem03.gif (8)
 
Способ сведения этой системы уравнений к уравнению четвертой степени с одной неизвестной, предложенный Фишером и Болсом, описан в приложении 1.
Достоинством решения P3P проблемы с учетом модели полной перспективы является его точность. Основной недостаток – возможные множественные решения. Фишер и Болс заметили, что, так как система n независимых полиномиальных уравнений с n неизвестными имеет решений не более чем произведение их степеней, то система (6-8) имеет не более восьми решений. Так как каждый член уравнения представляет собой либо константу, либо величину второй степени, то для каждого действительного положительного решения существует изоморфное ему отрицательное решение. Таким образом, учитывая, что величины D0, D1 и D2 неотрицательны, максимальное число решений P3P задачи не более четырех. Фишер и Болс привели пример ситуации, в которой система (6-8) имеет все четыре решения.
Углубленный анализ количества решений P3P проблемы с моделью полной перспективы был проведен Вульфом и Матисом [2]. Сначала был рассмотрен частный случай расположения центра перспективы относительно конфигурации трех точек, который дает четыре решения. Рассмотрим плоскость, перпендикулярную плоскости треугольника, содержащую одну из его высот. Легко видеть, что если центр перспективы лежит в этой плоскости, то путем вращения треугольника вокруг основания высоты можно получить второе положение треугольника, дающее такую же проекцию на картинную плоскость, что и первое. Так как высоты треугольника пересекаются в одной точке – ортоцентре, то все три плоскости, определенные описанным выше способом, пересекаются вдоль одной линии. Если центр перспективы лежит на этой линии, то возможны все четыре расположения треугольника, дающие одну и ту же проекцию на картинную плоскость.
Далее Вульф и Матис провели более общее исследование числа решений P3P проблемы. Ими было введено понятие канонического вида расположения камеры относительно треугольника. Оно заключается в том, что камера находится напротив середины любой из сторон треугольника модели. Геометрически, процесс поиска решения они представили следующим образом: необходимо перемещать сторону M0M1 вдоль лучей Om0 и Om1 c одновременным вращением треугольника M0M1M2 вокруг M0M1 до тех пор, пока проекция точки M2 не совпадет с m2. Вершина M2 при вращении описывает окружность, проецируемую в эллипс на картинной плоскости. Для исследования случаев множественных решений необходимо исследовать области пересечения таких эллипсов. На рисунке 3 изображен случай пересечения двух эллипсов, соответствующий двум различным положениям треугольника в пространстве.

images/stories/38/p3p_problem04.gif
Рисунок 3. Случай двух решений P3P проблемы.

Окружности вращения, описанные выше, формируют сложную поверхность. Случай нескольких решений соответствует ситуации, когда луч Om2 пересекает поверхность в нескольких точках или в точке ее самопересечения.
На рисунках 4-6 изображены проекции окружностей вращения для разных типов треугольников. Наибольшие по размеру эллипсы соответствуют случаю, когда одна из вершин, либо M0, либо M1 находится на минимальном расстоянии от камеры. Данные рисунки наглядно представляют области 0, 1, 2, 3 и 4 решений.
p3p_problem05.gif
Рисунок 4. Проекции окружностей вращения остроугольного треугольника.
images/stories/38/p3p_problem06.gif
Рисунок 5. Проекции окружностей вращения прямоугольного треугольника.

images/stories/38/p3p_problem07.gif
Рисунок 6. Проекции окружностей вращения тупоугольного треугольника.

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


Использование модели слабой перспективы, которая является приближением нулевого порядка модели полной перспективы (см. гл. 2), позволяет существенно упростить решение P3P проблемы.
Рассмотрим решение, предложенное ДеМенсоном и Дэйвисом [4]. Пусть М0, М1, М2 – три точки модели объекта, для которых будет решаться P3P задача. Известно взаимное расположение точек модели, то есть расстояния R01=M0M1, R02=M0M2 и ∠M1M0M2=α. Пусть m0, m1, m2 – это проекции этих точек на картинную плоскость, точка O – центр перспективы. Мы предполагаем, что фокусное расстояние камеры известно. Необходимо определить положение точек М0, М1, М2 по их проекциям на картинную плоскость.
Проведем плоскость параллельную картинной через одну из точек модели, для определенности, через М0. Точки Н1, Н2 – это ортогональные проекции М1 и М2 на данную плоскость. Для модели слабой перспективы считаем, что m1 и m2 – это проекции точек H1, H2. Так как отрезки m0m1, m0m2 параллельны М0Н1 и М0Н2, то m0m1 и m0m2 являются масштабированными ортогональными проекциями М0М1 и М0М2. С этим связано второе название модели слабой перспективы, иногда ее называют моделью "масштабированной ортогональной проекции".
images/stories/38/p3p_problem08.gif
Рисунок 7. Слабая перспектива.

Обозначим углы между М0М1, М0М2 и оптической осью через θ1 и θ2 соответственно. Тогда положение конфигурации точек модели относительно камеры однозначно определяется тремя параметрами: расстоянием от центра перспективы до точки М0, и углами θ1 и θ2. Введем вспомогательный угол β1 между m0m1 и плоскостью перпендикулярной Om0. Используя теорему синусов для треугольников OM0H1 и M0H1M1, получаем следующее соотношение:
images/stories/38/p3p_problem09.gif (9)
аналогично для треугольников OM0H2 и M0H2M2 получаем:
images/stories/38/p3p_problem10.gif (10)
где γ1 и γ2 – это известные углы между лучами Om0, Om1 и Om0, Om2.
Разделим (9) на (10) и получим первое соотношение для углов θ1 и θ2.
images/stories/38/p3p_problem11.gif (11)
Заметим, что в это соотношение не входит неизвестное расстояние от центра перспективы до точки M0.
Второе соотношение для θ1 и θ2 получим, выразив α через θ1, θ2 и φ - угол между проекциями m0m1 и m0m2.
images/stories/38/p3p_problem12.gif (12)
Решение системы уравнений (11) и (12) описано в приложении 2. В общем случае, данная система имеет два решения, симметричных относительно плоскости, проходящей через точку M0 параллельно картинной плоскости.
Основным достоинством решения P3P проблемы с учетом модели слабой перспективы является то, что оно имеет не более двух решений. Также следует отметить, что данное решение не требует большого объема вычислений.
Решение имеет низкую точность в двух случаях: когда расстояние до объекта соизмеримо с его размерами, или если проекция объекта смещена относительно центра изображения.

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


Для упрощения решения P3P проблемы возможно использование модели параллельной перспективы, являющейся приближением первого порядка полной перспективы. Это приближение точнее, чем рассмотренная выше модель слабой перспективы.
Данное решение, так же как и предыдущее, было предложено ДеМенсоном и Дэйвисом [4].Начальные условия такие же, как и для модели слабой перспективы.
Проведем плоскость параллельную картинной через одну из точек модели, для определенности, через М0. Точки Q1, Q2 – это проекции М1 и М2 на данную плоскость параллельно лучу Om0. Для модели параллельной перспективы считаем, что m1 и m2 – это проекции точек Q1, Q2. Обозначим углы между М0М1, М0М2 и лучом OM0 через θ1 и θ2 соответственно. Тогда положение конфигурации точек модели относительно камеры однозначно определяется тремя параметрами: расстоянием от центра перспективы до точки М0, и углами θ1 и θ2. Введем вспомогательный угол β1 между m0m1 и плоскостью перпендикулярной Om0. Используя теорему синусов для треугольников OM0Q1 и M0Q1M1, получаем следующее соотношение:
images/stories/38/p3p_problem13.gif (13)
аналогично для треугольников OM0Q2 и M0Q2M2 получаем:
images/stories/38/p3p_problem14.gif (14)
где γ1 и γ2 – это известные углы между лучами Om0, Om1 и Om0, Om2.
images/stories/38/p3p_problem15.gif
Рисунок 8. Параллельная перспектива.

Разделим (13) на (14) и получим первое соотношение для углов θ1 и θ2.
images/stories/38/p3p_problem16.gif (15)
Заметим, что в это соотношение не входит неизвестное расстояние от центра перспективы до точки M0.
Второе соотношение для θ1 и θ2 получим, выразив α через θ1, θ2 и φ - угол между проекциями m0m1 и m0m2.
images/stories/38/p3p_problem12.gif (16)
Решение системы уравнений (15) и (16) описано в приложении 2. В общем случае, данная система имеет два решения, симметричных относительно плоскости, проходящей через точку M0 перпендикулярно лучу OM0.
Решение P3P проблемы с учетом модели параллельной перспективы хорошо тем, что оно дает не более двух положений конфигурации точек, также как и для слабой перспективы, но в отличие от нее не страдает ухудшением точности при смещении проекции объекта от центра изображения. Также следует отметить, что решение не требует большого объема вычислений.
Так как модель параллельной перспективы является афинной моделью, то решение имеет низкую точность в случае, когда расстояние до объекта соизмеримо с его размерами.

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


Модель орто перспективы является еще одним приближением полной перспективы, используемым для упрощения решения P3P задачи.
Это решение было предложено теми же авторами, что и два предыдущих. Начальные условия такие же, как и для модели слабой перспективы.
Через одну из точек модели, для определенности, через М0, проведем плоскость перпендикулярно лучу OM0. Точки H1, H2 – это ортогональные проекции М1 и М2 на данную плоскость. Для модели орто перспективы считаем, что m1 и m2 – это проекции точек H1, H2. Заметим, что если повернуть камеру вокруг центра перспективы таким образом, что оптическая ось совпадет с лучом OM0, то картинная плоскость станет параллельна введенной выше плоскости. В таком случае орто перспектива будет представлять собой масштабированную ортогональную проекцию. Итак, орто перспектива эквивалентна последовательности следующих действий:
  1. Виртуальному повороту камеры вокруг центра перспективы до совмещения оптической оси с лучом OM0. В результате такого поворота проекция точки M0 окажется в центре изображения. Подобное центрирование проекции объекта является причиной малой чувствительности решения в том случае, когда реальная проекция объекта изначально смещена относительно центра.
  2. Уменьшенной в масштабе ортогональной проекции.
  3. Возврату камеры в первоначальное положение.
Обозначим углы между М0М1, М0М2 и лучом OM0 через θ1 и θ2 соответственно. Тогда положение конфигурации точек модели относительно камеры однозначно определяется тремя параметрами: расстоянием от центра перспективы до точки М0, и углами θ1 и θ2. Используя теорему синусов для треугольников OM0H1 и M0H1M1, получаем следующее соотношение:
images/stories/38/p3p_problem17.gif (17)
аналогично для треугольников OM0Q2 и M0Q2M2 получаем:
images/stories/38/p3p_problem18.gif (18)
где γ1 и γ2 – это известные углы между лучами Om0, Om1 и Om0, Om2.
Разделим (17) на (18) и получим первое соотношение для углов θ1 и θ2.
images/stories/38/p3p_problem19.gif (19)
Заметим, что в это соотношение не входит неизвестное расстояние от центра перспективы до точки M0.
Второе соотношение для θ1 и θ2 получим, как и в предыдущих двух случаях, выразив α через θ1, θ2 и φ - угол между проекциями m0m1 и m0m2.
images/stories/38/p3p_problem12.gif (20)
Решение системы уравнений (19) и (20) описано в приложении 2. В общем случае, данная система имеет два решения, симметричных относительно плоскости, проходящей через точку M0 перпендикулярно лучу OM0.
Решение P3P проблемы с учетом модели орто перспективы обладает теми же достоинствами и недостатками, что и решение для модели параллельной перспективы.
images/stories/38/p3p_problem20.gif
Рисунок 9. Орто перспектива.
 

Приложение 1.

Аналитическое решение P3P проблемы с моделью полной перспективы.


Рассмотрим систему уравнений (вывод см. гл. 3)
images/stories/38/p3p_problem21.gif ()
Введем переменные x, y такие, что D1= x * D0 и D2= y * D0. Тогда система () примет вид:
images/stories/38/p3p_problem22.gif ()
Из () и () следует, что
images/stories/38/p3p_problem23.gif
Аналогично из () ()
images/stories/38/p3p_problem24.gif
Обозначим через К1 и K2 следующие отношения:
images/stories/38/p3p_problem25.gif
images/stories/38/p3p_problem26.gif

Тогда из () и () получаем
images/stories/38/p3p_problem27.gif ()
Из () и () следует, что
images/stories/38/p3p_problem28.gif ()
Выражения () и () имеют вид:
images/stories/38/p3p_problem29.gif
images/stories/38/p3p_problem30.gif
Умножим выражения () () на m’ и m соответственно, затем вычтем одно из другого. Получим следующее выражение:
images/stories/38/p3p_problem31.gif ()
Теперь умножим выражения () () на q’ и q соответственно, затем вычтем одно из другого и разделим на у. Получим следующее выражение:
images/stories/38/p3p_problem32.gif ()
Умножим () на (m’q-mq’) и () на (pm’-p’m), затем вычтем одно из другого. Получим выражение
images/stories/38/p3p_problem33.gif
Подставим в () вместо m, p, q, m’, p’, q’ реальные значения и получим уравнение четвертой степени относительно x.

Приложение 2.

Решение системы уравнений для P3P задачи с упрощенной моделью перспективы.

Использование упрощенных моделей перспективы для решения P3P задачи приводит к системам уравнений одного и того же вида:
images/stories/38/p3p_problem34.gif ()
Изолируем в соотношении () произведение cosθ1 cosθ2. Возведем обе части полученного равенства в квадрат и выразим cos2 через 1-sin2. Заменим в полученном соотношении все sinθ2 на произведение Ksinθ1. Таким образом, получим биквадратное уравнение относительно sinθ1. Оно имеет два положительных решения, но подходящим является лишь одно из них, так как другое больше единицы. Так как sinθ1>=0, то данное биквадратное уравнение имеет лишь один подходящий нам корень. Значение sinθ1 два решения для θ1. Аналогично получаем два значения для θ1. Следует отметить, что из четырех возможных пар (θ1, θ2) решениями будут являться только те, для которых выполняется равенство:
images/stories/38/p3p_problem35.gif

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

 
  • [1] Martin A. Fischler, Robert C. Bolles: "Random Sample Consensus: A Paradigm for Model Fitting with Applications to Image Analysis and Automated Cartography". CACM 24(6): 381-395 (1981)
  • [2] William J. Wolfe, Donald Mathis, Cheryl Weber-Sklair, Michael Magee: "The Perspective View of Three Points". IEEE Transactions on Pattern Analysis and Machine Intelligence 13(1): 66-73 (1991)
  • [3] Radu Horaud, Bernard Conio, Olivier Leboulleux, Bernard Lacolle: "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] P. Ballard, G.C. Stockmann: "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] V. Bakic and G. Stockman, "Menu Selection by Facial Aspect", Proceedings of Vision Interface 99, Trois Rivieres, Quebec, CAN (19-21 May 99).


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

Комментарии

Хорошая статья

Мы задачу P3P для модели полной перспективы решали целую неделю... и сегодня решили. После чего случайно наткнулись на данную статью. А ведь она могла сберечь много времени. Случайность?

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

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

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

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