Триангуляция (компьютерное зрение)
В компьютерном зрении триангуляция относится к процессу определения точки в трехмерном пространстве с учетом ее проекций на два или более изображений. Для решения этой задачи необходимо знать параметры функции проецирования камеры от 3D до 2D для задействованных камер, в простейшем случае представленных матрицами камер . Триангуляцию иногда также называют реконструкцией или пересечением .
Проблема триангуляции в принципе тривиальна. Поскольку каждая точка изображения соответствует линии в трехмерном пространстве, все точки на линии в трехмерном пространстве проецируются на точку на изображении. Если можно найти пару соответствующих точек на двух или более изображениях, это должно быть так, что они являются проекцией общей трехмерной точки x . Набор линий, генерируемых точками изображения, должен пересекаться в точке x (3D-точка), а алгебраическая формулировка координат x (3D-точка) может быть вычислена различными способами, как представлено ниже.
Однако на практике координаты точек изображения не могут быть измерены с произвольной точностью. Вместо этого различные типы шума, такие как геометрический шум из-за искажения объектива или ошибка определения точки интереса, приводят к неточностям в измеренных координатах изображения. Как следствие, линии, генерируемые соответствующими точками изображения, не всегда пересекаются в трехмерном пространстве. Таким образом, проблема состоит в том, чтобы найти 3D-точку, которая оптимально соответствует измеренным точкам изображения. В литературе существует множество предложений о том, как определить оптимальность и как найти оптимальную трехмерную точку. Поскольку они основаны на разных критериях оптимальности, разные методы дают разные оценки трехмерной точки x при наличии шума.
Введение
[ редактировать ]Далее предполагается, что триангуляция выполняется по соответствующим точкам изображения из двух изображений, созданных камерами-обскурами .


Изображение слева иллюстрирует эпиполярную геометрию пары стереокамер модели-обскуры . Точка x камеры (3D-точка) в трехмерном пространстве проецируется на соответствующую плоскость изображения вдоль линии (зеленого цвета), проходящей через фокус . и , в результате чего появляются две соответствующие точки изображения и . Если и заданы и известна геометрия двух камер, можно определить две линии проекции (зеленые линии), и должно быть так, чтобы они пересекались в точке x (3D-точка). Используя базовую линейную алгебру , эту точку пересечения можно определить простым способом.
Изображение справа показывает реальный случай. Положение точек изображения и невозможно точно измерить. Причиной является сочетание таких факторов, как
- Геометрические искажения, например искажение объектива , означающие, что преобразование 3D в 2D камеры отличается от модели камеры-обскуры . В некоторой степени эти ошибки можно компенсировать, оставив остаточную геометрическую ошибку.
- Одиночный луч света от точки x (3D-точки) рассеивается в системе линз камер в соответствии с функцией рассеяния точки . Восстановление соответствующей точки изображения по измерениям функции дисперсной интенсивности на изображениях дает ошибки.
- В цифровой камере функция интенсивности изображения измеряется только в дискретных сенсорных элементах. Для восстановления истинной функции приходится использовать неточную интерполяцию дискретной функции интенсивности.
- Изображение точки y 1 ' и y 2 ', используемые для триангуляции, часто находятся с использованием различных типов экстракторов объектов, например углов или точек интереса в целом. Существует присущая ошибка локализации для любого типа извлечения признаков, основанного на операциях соседства .
Как следствие, измеренные точки изображения и вместо и . Однако их линии проекции (синие) не обязательно должны пересекаться в трехмерном пространстве или приближаться к x . Действительно, эти прямые пересекаются тогда и только тогда, когда и удовлетворять эпиполярному ограничению, определенному фундаментальной матрицей . Учитывая шум измерения в и весьма вероятно, что эпиполярное ограничение не выполняется и линии проекций не пересекаются.
Это наблюдение приводит к проблеме, которая решается в триангуляции. Какая трехмерная точка x est является наилучшей оценкой x с учетом и а геометрия камер? Ответ часто находится путем определения меры ошибки, которая зависит от xest , а затем минимизации этой ошибки. В следующих разделах кратко описаны некоторые из различных методов вычисления x est, представленных в литературе.
Все методы триангуляции дают x est = x в том случае, если и , то есть когда эпиполярное ограничение выполнено (за исключением особых точек, см. ниже). То, что происходит, когда ограничение не удовлетворяется, различается в зависимости от метода.
Характеристики
[ редактировать ]Метод триангуляции можно описать с помощью функции такой, что
где – однородные координаты обнаруженных точек изображения и матрицы камер. x (3D-точка) — однородное представление полученной 3D-точки. знак означает, что требуется только для создания вектора, который равен x с точностью до умножения на ненулевой скаляр, поскольку задействованы однородные векторы.
Прежде чем рассматривать конкретные методы, то есть конкретные функции , существуют некоторые общие понятия, связанные с методами, которые необходимо объяснить. От этих характеристик в некоторой степени зависит, какой метод триангуляции будет выбран для конкретной задачи.
Особенности
[ редактировать ]Некоторые методы не могут правильно вычислить оценку x (3D-точки), если она лежит в определенном подмножестве трехмерного пространства, соответствующем некоторой комбинации . Точка в этом подмножестве является тогда особенностью метода триангуляции. Причиной неудачи может быть то, что какая-то система уравнений, которую необходимо решить, недостаточно определена или что проективное представление x est становится нулевым вектором для особых точек.
Инвариантность
[ редактировать ]В некоторых приложениях желательно, чтобы триангуляция не зависела от системы координат, используемой для представления трехмерных точек; если задача триангуляции сформулирована в одной системе координат, а затем преобразована в другую, то результирующая оценка x est должна преобразоваться аналогичным образом. Это свойство обычно называют инвариантностью . Не каждый метод триангуляции обеспечивает инвариантность, по крайней мере, для общих типов преобразований координат.
Для однородного представления трехмерных координат наиболее общим преобразованием является проективное преобразование, представленное матрица . Если однородные координаты преобразовать по закону
тогда матрицы камеры должны преобразоваться как ( C k )
для создания одинаковых однородных координат изображения ( y k )
Если функция триангуляции инвариантен к тогда должно быть справедливо следующее соотношение
из чего следует, что
- для всех
Для каждого метода триангуляции можно определить, действительно ли последнее соотношение. Если да, то оно может выполняться только для подмножества проективных преобразований, например жестких или аффинных преобразований.
Вычислительная сложность
[ редактировать ]Функция — это всего лишь абстрактное представление вычислений, которые на практике могут быть относительно сложными. Некоторые методы приводят к которая представляет собой непрерывную функцию в замкнутой форме, в то время как другие необходимо разложить на серию вычислительных шагов, включающих, например, SVD или поиск корней многочлена. Еще один класс методов приводит к который должен основываться на итеративной оценке некоторых параметров. Это означает, что как время вычислений, так и сложность выполняемых операций могут различаться в зависимости от метода.
Методы
[ редактировать ]Метод средней точки
[ редактировать ]Каждая из двух точек изображения и имеет соответствующую линию проекции (синюю на правом изображении выше), здесь обозначенную как и , что можно определить по матрицам камер . Позволять быть функцией расстояния между (3D-линией) L и x (3D-точкой) такой, что это евклидово расстояние между и .Метод средней точки находит точку xest , которая минимизирует
Оказывается, xest . лежит точно в середине самого короткого отрезка, соединяющего две линии проекции
Прямое линейное преобразование
[ редактировать ]Через существенную матрицу
[ редактировать ]Проблема, которую необходимо решить, состоит в том, как вычислить учитывая соответствующие нормализованные координаты изображения и . Если существенная матрица известна и соответствующие преобразования вращения и сдвига определены, этот алгоритм (описанный в статье Лонге-Хиггинса) обеспечивает решение.
Позволять обозначим строку k матрицы вращения :
Объединение вышеуказанных отношений между 3D-координатами в двух системах координат и описанным ранее сопоставлением между 3D- и 2D-точками дает
или
Один раз определена, две другие координаты можно вычислить как
Приведенный выше вывод не является уникальным. Также можно начать с выражения для и вывести выражение для в соответствии с
В идеальном случае, когда камера отображает 3D-точки в соответствии с идеальной камерой-обскурой и полученные 2D-точки могут быть обнаружены без какого-либо шума, два выражения для равны. Однако на практике это не так, и может оказаться выгодным объединить две оценки , например, в терминах какого-то среднего.
Возможны и другие типы расширения приведенных выше вычислений. Они начали с выражения координат изображения со штрихом и получения трехмерных координат в системе без штриха. Также можно начать с координат изображения без штриха и получить трехмерные координаты со штрихом, которые в конечном итоге можно преобразовать в трехмерные координаты без штриха. Опять же, в идеальном случае результат должен быть равен приведенным выше выражениям, но на практике они могут отличаться.
Последнее замечание относится к тому факту, что если существенная матрица определяется по соответствующей координате изображения, что часто имеет место, когда трехмерные точки определяются таким способом, вектор перемещения известен только с точностью до неизвестного положительного масштабирования. Как следствие, восстановленные 3D-точки также не определены в отношении положительного масштабирования.
См. также
[ редактировать ]Ссылки
[ редактировать ]- Ричард Хартли и Эндрю Зиссерман (2003). Множественная геометрия в компьютерном зрении . Издательство Кембриджского университета. ISBN 978-0-521-54051-3 .
Внешние ссылки
[ редактировать ]- Двухракурсная и многоракурсная триангуляция в Matlab