Впервые в современной литературе решение 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 по их проекциям на картинную плоскость.
Рисунок 2. Полная перспектива.
Для модели полной перспективы точки М0, М1 и
М2 расположены на лучах Om0, Om1 и
Om2 соответственно. Для решения P3P задачи достаточно определить
расстояния D0, D1 и D2 от центра перспективы до
точек объекта. Рассмотрим ΔM0M1O. Поскольку фокусное
расстояние камеры известно, то мы знаем и величину
∠M0OM1=θ01. Тогда по теореме
косинусов для ΔM0M1O имеем: (6)
аналогично для ΔM0M2O и
ΔM1M2O (7) (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 изображен случай пересечения двух эллипсов,
соответствующий двум различным положениям треугольника в
пространстве.
Рисунок 3. Случай двух решений P3P
проблемы.
Окружности вращения, описанные выше, формируют сложную поверхность. Случай
нескольких решений соответствует ситуации, когда луч Om2 пересекает
поверхность в нескольких точках или в точке ее самопересечения.
На рисунках
4-6 изображены проекции окружностей вращения для разных типов треугольников.
Наибольшие по размеру эллипсы соответствуют случаю, когда одна из вершин, либо
M0, либо M1 находится на минимальном расстоянии от камеры.
Данные рисунки наглядно представляют области 0, 1, 2, 3 и 4 решений.
Решение
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. С этим связано второе название модели слабой
перспективы, иногда ее называют моделью "масштабированной ортогональной
проекции".
Рисунок 7. Слабая перспектива.
Обозначим углы между М0М1, М0М2
и оптической осью через θ1 и θ2
соответственно. Тогда положение конфигурации точек модели относительно камеры
однозначно определяется тремя параметрами: расстоянием от центра перспективы до
точки М0, и углами θ1 и θ2. Введем
вспомогательный угол β1 между m0m1 и
плоскостью перпендикулярной Om0. Используя теорему синусов для
треугольников OM0H1 и
M0H1M1, получаем следующее
соотношение: (9)
аналогично для треугольников
OM0H2 и M0H2M2
получаем: (10)
где γ1 и
γ2 – это известные углы между лучами Om0,
Om1 и Om0, Om2.
Разделим (9) на (10) и
получим первое соотношение для углов θ1 и
θ2. (11)
Заметим, что в это
соотношение не входит неизвестное расстояние от центра перспективы до точки
M0.
Второе соотношение для θ1 и θ2
получим, выразив α через θ1, θ2 и
φ - угол между проекциями m0m1 и
m0m2. (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, получаем следующее
соотношение: (13)
аналогично для треугольников
OM0Q2 и M0Q2M2
получаем: (14)
где γ1 и
γ2 – это известные углы между лучами Om0,
Om1 и Om0, Om2.
Рисунок 8. Параллельная перспектива.
Разделим (13) на (14) и получим первое соотношение для углов
θ1 и θ2. (15)
Заметим, что в это соотношение не входит неизвестное расстояние
от центра перспективы до точки M0.
Второе соотношение для
θ1 и θ2 получим, выразив α через
θ1, θ2 и φ - угол между проекциями
m0m1 и m0m2. (16)
Решение системы уравнений (15) и (16) описано в
приложении 2. В общем случае, данная система имеет два решения, симметричных
относительно плоскости, проходящей через точку M0 перпендикулярно
лучу OM0.
Решение P3P проблемы с учетом модели параллельной
перспективы хорошо тем, что оно дает не более двух положений конфигурации точек,
также как и для слабой перспективы, но в отличие от нее не страдает ухудшением
точности при смещении проекции объекта от центра изображения. Также следует
отметить, что решение не требует большого объема вычислений.
Так как модель
параллельной перспективы является афинной моделью, то решение имеет низкую
точность в случае, когда расстояние до объекта соизмеримо с его размерами.
Решение
P3P проблемы для модели орто перспективы.
Модель орто перспективы является еще одним приближением полной
перспективы, используемым для упрощения решения P3P
задачи. Это решение было предложено теми же
авторами, что и два предыдущих. Начальные условия такие же, как и для модели
слабой перспективы.
Через одну из точек модели, для определенности, через
М0, проведем плоскость перпендикулярно лучу OM0. Точки
H1, H2 – это ортогональные проекции М1 и
М2 на данную плоскость. Для модели орто перспективы считаем, что
m1 и m2 – это проекции точек H1,
H2. Заметим, что если повернуть камеру вокруг центра перспективы
таким образом, что оптическая ось совпадет с лучом OM0, то картинная
плоскость станет параллельна введенной выше плоскости. В таком случае орто
перспектива будет представлять собой масштабированную ортогональную проекцию.
Итак, орто перспектива эквивалентна последовательности следующих
действий:
Виртуальному повороту камеры вокруг центра перспективы до совмещения
оптической оси с лучом OM0. В результате такого поворота проекция
точки M0 окажется в центре изображения. Подобное центрирование
проекции объекта является причиной малой чувствительности решения в том случае,
когда реальная проекция объекта изначально смещена относительно центра.
Уменьшенной в масштабе ортогональной проекции.
Возврату камеры в первоначальное положение.
Обозначим углы
между М0М1, М0М2 и лучом
OM0 через θ1 и θ2 соответственно.
Тогда положение конфигурации точек модели относительно камеры однозначно
определяется тремя параметрами: расстоянием от центра перспективы до точки
М0, и углами θ1 и θ2. Используя
теорему синусов для треугольников OM0H1 и
M0H1M1, получаем следующее
соотношение: (17)
аналогично для треугольников
OM0Q2 и M0Q2M2
получаем: (18)
где γ1 и
γ2 – это известные углы между лучами Om0,
Om1 и Om0, Om2.
Разделим (17) на (18) и
получим первое соотношение для углов θ1 и
θ2. (19)
Заметим, что в это
соотношение не входит неизвестное расстояние от центра перспективы до точки
M0.
Второе соотношение для θ1 и θ2
получим, как и в предыдущих двух случаях, выразив α через
θ1, θ2 и φ - угол между проекциями
m0m1 и m0m2. (20)
Решение системы уравнений (19) и (20) описано в
приложении 2. В общем случае, данная система имеет два решения, симметричных
относительно плоскости, проходящей через точку M0 перпендикулярно
лучу OM0.
Решение P3P проблемы с учетом модели орто перспективы
обладает теми же достоинствами и недостатками, что и решение для модели
параллельной перспективы.
Рисунок 9. Орто перспектива.
Приложение
1.
Аналитическое
решение P3P проблемы с моделью полной перспективы.
Рассмотрим систему уравнений (вывод см. гл. 3) ()
Введем переменные x, y такие, что D1= x * D0
и D2= y * D0. Тогда система () примет вид: ()
Из () и () следует, что
Аналогично из () ()
Обозначим
через К1 и K2 следующие отношения:
Тогда из () и () получаем ()
Из () и () следует, что ()
Выражения () и () имеют вид:
Умножим выражения () () на m’ и m соответственно,
затем вычтем одно из другого. Получим следующее выражение: ()
Теперь умножим выражения () () на q’ и q
соответственно, затем вычтем одно из другого и разделим на у. Получим следующее
выражение: ()
Умножим () на
(m’q-mq’) и () на (pm’-p’m), затем вычтем одно из
другого. Получим выражение
Подставим
в () вместо m, p, q, m’, p’, q’ реальные значения и получим
уравнение четвертой степени относительно x.
Приложение
2.
Решение
системы уравнений для P3P задачи с упрощенной моделью
перспективы.
Использование упрощенных моделей перспективы для решения P3P задачи
приводит к системам уравнений одного и того же вида: ()
Изолируем в соотношении () произведение cosθ1
cosθ2. Возведем обе части полученного равенства в квадрат и
выразим cos2 через 1-sin2. Заменим в полученном
соотношении все sinθ2 на произведение Ksinθ1.
Таким образом, получим биквадратное уравнение относительно
sinθ1. Оно имеет два положительных решения, но подходящим
является лишь одно из них, так как другое больше единицы. Так как
sinθ1>=0, то данное биквадратное уравнение имеет лишь один
подходящий нам корень. Значение sinθ1 два решения для
θ1. Аналогично получаем два значения для θ1.
Следует отметить, что из четырех возможных пар (θ1,
θ2) решениями будут являться только те, для которых выполняется
равенство:
Библиография
[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 для модели полной перспективы решали целую неделю... и сегодня решили. После чего случайно наткнулись на данную статью. А ведь она могла сберечь много времени. Случайность?
Комментарии
Хорошая статья
Мы задачу P3P для модели полной перспективы решали целую неделю... и сегодня решили. После чего случайно наткнулись на данную статью. А ведь она могла сберечь много времени. Случайность?
Отправить комментарий