Perspective-n-Point - Википедия - Perspective-n-Point
Перспектива-п-Точка[1] проблема оценки позы откалиброванной камеры с учетом набора п 3D-точки мира и соответствующие им 2D-проекции на изображении. Поза камеры состоит из 6 степеней свободы (DOF), которые состоят из вращения (крен, тангаж и рыскание) и трехмерного перемещения камеры по отношению к миру. Эта проблема возникает из калибровка камеры и имеет множество приложений в области компьютерного зрения и других областях, в том числе Оценка позы в 3D, робототехника и дополненная реальность.[2] Обычно используемое решение проблемы существует для п = 3 называется P3P, и многие решения доступны для общего случая п ≥ 3. Решение для п = 2 существует, если ориентация элементов доступна в двух точках.[3] Реализации этих решений также доступны в программном обеспечении с открытым исходным кодом.
Спецификация проблемы
Определение
Учитывая набор п Трехмерные точки в мировой системе отсчета и соответствующие им проекции двухмерных изображений, а также откалиброванные внутренние параметры камеры определяют позу камеры с шестью степенями свободы в форме ее вращения и перемещения по отношению к миру. Это соответствует модели перспективного проекта для камер:
- .
куда - однородная мировая точка, - соответствующая точка однородного изображения, матрица внутренние параметры камеры, (куда и масштабированные фокусные расстояния, параметр перекоса, который иногда принимается равным 0, и - основная точка), - масштабный коэффициент для точки изображения, а и - желаемое трехмерное вращение и трехмерное перемещение камеры (внешние параметры), которые вычисляются. Это приводит к следующему уравнению для модели:
- .
Допущения и характеристики данных
Есть несколько предварительных аспектов проблемы, общих для всех решений PпP. В большинстве решений предполагается, что камера уже откалибрована. Таким образом, его внутренние свойства уже известны, такие как фокусное расстояние, основная точка изображения, параметр перекоса и другие параметры. Некоторые методы, такие как UPпП.[4] или Прямое линейное преобразование (DLT), применяемые к модели проекции, являются исключением из этого предположения, поскольку они оценивают эти внутренние параметры, а также внешние параметры, которые составляют позу камеры, которую исходный PпP проблема пытается найти.
Для каждого решения PnP выбранные точечные соответствия не могут быть коллинеарными. Кроме того, PпP может иметь несколько решений, и выбор конкретного решения потребует последующей обработки набора решений. RANSAC также обычно используется с PпP, чтобы сделать решение устойчивым к выбросам в наборе точечных соответствий. Методы P3P предполагают, что данные не содержат шумов, большинство методов PnP предполагают гауссовский шум на множестве вставок.
Методы
В следующем разделе описаны два распространенных метода, которые можно использовать для решения PпP проблемы, которые также легко доступны в программном обеспечении с открытым исходным кодом, и о том, как RANSAC можно использовать для работы с выбросами в наборе данных.
P3P
Когда п = 3, PпЗадача P представляет собой минимальную форму P3P и может быть решена с помощью трехточечных соответствий. Однако с помощью всего трех точечных соответствий P3P дает до четырех реальных, геометрически выполнимых решений. Для низких уровней шума можно использовать четвертое соответствие, чтобы устранить двусмысленность. Постановка проблемы следующая.
Позволять п быть центром проекции для камеры, А, B, и C быть трехмерными точками мира с соответствующими точками изображений ты, v, и ш. Позволять X = | PA |, Y = | PB |, Z = | ПК |, , , , , , , , , . Это образует треугольники КПБ, PAC, и PAB откуда мы получаем достаточную систему уравнений для P3P:
- .
Решение системы P3P дает до четырех геометрически выполнимых реальных решений для р и Т. Самое старое опубликованное решение датируется 1841 годом.[5]. Последний алгоритм решения проблемы, а также классификация решений для нее даны в 2003 г. IEEE Transactions по анализу шаблонов и машинному анализу статья Гао и др.[6] Реализацию решателя Gao P3P с открытым исходным кодом можно найти в OpenCV с calib3d модуль в решитьPnP функция.[7]С тех пор было опубликовано несколько более быстрых и точных версий, включая Lambda Twist P3P.[8] которая достигла высочайшего уровня производительности в 2018 году, увеличив скорость в 50 раз и уменьшив количество отказов в 400 раз. Lambdatwist доступен как открытый исходный код в OpenMVG и в https://github.com/midjji/pnp.
EPпп
Эффективный PпP (EPпP) - это метод, разработанный Lepetit, et al. в статье 2008 г. в Международном журнале компьютерного зрения[9] который решает общую проблему PпP для п ≥ 4. Этот метод основан на представлении о том, что каждый из п точки (которые называются контрольными точками) могут быть выражены как взвешенная сумма четырех виртуальных контрольных точек. Таким образом, координаты этих контрольных точек становятся неизвестными для задачи. Именно из этих контрольных точек решается окончательная поза камеры.
В качестве обзора процесса сначала обратите внимание, что каждый из п ориентиры в мировой системе координат, , и соответствующие им точки изображения, , - взвешенные суммы четырех контрольных точек, и соответственно, а веса нормализованы по контрольной точке, как показано ниже. Все точки выражены в однородной форме.
Отсюда вывод опорных точек изображения становится
- .
Контрольная точка однородного изображения имеет вид . Преобразуя уравнение опорного изображения точки дает следующие два линейных уравнений для каждой опорной точки:
- .
Используя эти два уравнения для каждого из п ориентиры, система может быть сформирован где . Решение для контрольных точек существует в пустое пространство из M и выражается как
куда число нулевых сингулярные значения в и каждый соответствующий правый сингулярный вектор из . может принимать значения от 0 до 4. После расчета начальных коэффициентов , то Гаусс-Ньютон алгоритм используется для их уточнения. В р и Т матрицы, минимизирующие ошибку перепроецирования мировых реперных точек, , и соответствующие им фактические точки изображения , затем рассчитываются.
Это решение имеет сложность и работает в общем случае PпP для плоских и неплоских контрольных точек. Программные реализации этого метода с открытым исходным кодом можно найти в модуле OpenCV Camera Calibration and 3D Reconstruction в разделе решитьPnP функция[7] а также из кода, опубликованного Lepetit, et al. на их сайте, CVLAB в EPFL.[10]
Этот метод не является устойчивым к выбросам и обычно плохо сравнивается с RANSAC P3P с последующим нелинейным уточнением.
Использование RANSAC
ппP подвержен ошибкам, если в наборе точечных соответствий есть выбросы. Таким образом, RANSAC можно использовать в сочетании с существующими решениями, чтобы сделать окончательное решение для камеры более устойчивым к выбросам. Реализация P с открытым исходным кодомпМетоды P с RANSAC можно найти в модуле калибровки камеры и 3D-реконструкции OpenCV в разделе решитьPnPRansac функция[11].
Смотрите также
Рекомендации
- ^ Фишлер, М. А .; Боллес, Р. К. (1981). «Консенсус случайной выборки: парадигма соответствия модели приложениям для анализа изображений и автоматизированной картографии». Коммуникации ACM. 24 (6): 381–395. Дои:10.1145/358669.358692.
- ^ Apple, команда ARKIT (2018). «Понимание отслеживания и обнаружения ARKit». WWDC.
- ^ Фаббри, Рикардо; Гиблин, Питер; Кимиа, Бенджамин (2012). «Оценка положения камеры с использованием дифференциальной геометрии кривой первого порядка» (PDF). Конспект лекций по информатике (ECCV 2012). Конспект лекций по информатике. 7575: 231–244. Дои:10.1007/978-3-642-33765-9_17. ISBN 978-3-642-33764-2.
- ^ Penate-Sanchez, A .; Andrade-Cetto, J .; Морено-Ногер, Ф. (2013). «Исчерпывающая линеаризация для надежной оценки положения камеры и фокусного расстояния». IEEE Transactions по анализу шаблонов и машинному анализу. 35 (10): 2387–2400. Дои:10.1109 / TPAMI.2013.36. HDL:2117/22931. PMID 23969384.
- ^ Quan, Long; Лан, Чжун-Дань (1999). «Линейное определение позы камеры в точке N» (PDF). IEEE Transactions по анализу шаблонов и машинному анализу.
- ^ Гао, Сяо-Шань; Хоу, Сяо-Жун; Тан, Цзяньлян; Ченг, Ханг-Фэй (2003). "Полная классификация решений перспективной трехточечной задачи". IEEE Transactions по анализу шаблонов и машинному анализу. 25 (8): 930–943. Дои:10.1109 / tpami.2003.1217599.
- ^ а б «Калибровка камеры и 3D реконструкция». OpenCV.
- ^ Перссон, Микаэль; Нордберг, Клас (2018). "Лямбда-поворот: точный, быстрый и надежный трехточечный решатель (P3P)" (PDF). Европейская конференция по компьютерному зрению (ECCV).
- ^ Лепетит, В .; Moreno-Noguer, M .; Фуа, П. (2009). «EPnP: точное O (n) решение проблемы PnP». Международный журнал компьютерного зрения. 81 (2): 155–166. Дои:10.1007 / s11263-008-0152-6. HDL:2117/10327.
- ^ "EPnP: Эффективная оценка положения камеры в точке n". EPFL-CVLAB.
- ^ «Калибровка камеры и 3D реконструкция». OpenCV.