exponenta event banner

bundleAdjustmentStructure

Уточнение точек 3-D с помощью корректировки пучка только по структуре

Описание

пример

xyzRefinedPoints = bundleAdjustmentStructure(xyzPoints,pointTracks,cameraPoses,intrinsics) возвращает уточненные точки 3-D, которые минимизируют ошибки обратного впрыска.

Процедура уточнения только структуры представляет собой особый случай регулировки пучка с фиксированными позициями камеры во время оптимизации. Точки 3-D и позы камеры помещаются в одну и ту же мировую систему координат.

[xyzRefinedPoints,reprojectionErrors] = bundleAdjustmentStructure(___) дополнительно возвращает вектор N-элемента, содержащий среднее значение ошибки репроекции для каждой точки мира 3-D, используя аргументы из предыдущего синтаксиса.

[___] = bundleAdjustmentStructure(___,Name,Value) использует дополнительные параметры, указанные одним или несколькими Name,Value аргументы пары. Неопределенные свойства имеют значения по умолчанию.

Примеры

свернуть все

Загрузить данные для инициализации.

data = load('sfmGlobe');

Уточните 3-D точки мира.

xyzRefinedPoints = bundleAdjustmentStructure(data.xyzPoints,data.pointTracks,data.cameraPoses,data.intrinsics);

Отображение уточненных точек мира 3-D.

pcshow(xyzRefinedPoints,'VerticalAxis','y','VerticalAxisDir','down','MarkerSize',45);

Отображение камер.

hold on
plotCamera(data.cameraPoses,'Size',0.2);
hold off
grid on

Figure contains an axes. The axes contains 51 objects of type line, text, patch, scatter.

Входные аргументы

свернуть все

Неочищенные точки 3-D, заданные как матрица M-by-3 с расположениями [x, y, z].

Типы данных: single | double

Совпадающие точки на нескольких изображениях, указанные как массив N-элементов pointTracks объекты.

Представления камеры, указанные как таблица, содержащая два столбца для 'ViewId' и 'AbsolutePose'. Вы можете получить cameraPoses с использованием imageviewset posesфункции объекта .

Характеристики камеры, заданные как скаляр или массив N-элементов cameraIntrinsics объекты, где N - высота cameraPoses таблица. Скаляр используется при захвате изображений с помощью одной и той же камеры. Массив N-элементов используется при записи изображений с помощью различных камер.

Аргументы пары «имя-значение»

Укажите дополнительные пары, разделенные запятыми Name,Value аргументы. Name является именем аргумента и Value - соответствующее значение. Name должен отображаться внутри кавычек. Можно указать несколько аргументов пары имен и значений в любом порядке как Name1,Value1,...,NameN,ValueN.

Пример: 'MaxIterations', '50'

Максимальное число итераций перед остановкой алгоритма Левенберга-Марквардта, указанное как разделенная запятыми пара, состоящая из 'MaxIterations"и положительное целое число.

Абсолютный допуск окончания среднеквадратичной ошибки репроекции в пикселях, указанный как пара, разделенная запятыми, состоящая из 'AbsoluteTolerance"и положительный скаляр.

Относительный допуск окончания уменьшения ошибки обратного впрыска между итерациями, указанный как пара, разделенная запятыми, состоящая из 'RelativeTolerance"и положительный скаляр.

Флаг для указания искажения объектива, указанный как разделенная запятыми пара, состоящая из 'PointsUndistorted«и либо» false или true. При установке PointsUndistorted кому false, точки 2-D в pointTracks должен быть из изображений с искажением объектива. Чтобы использовать неискаженные точки, используйте undistortImage сначала функция, затем установка PointsUndistorted кому true.

Отображение сведений о ходе выполнения, указанных как пара, разделенная запятыми, состоящая из 'Verbose«и либо» false или true.

Выходные аргументы

свернуть все

3-D местоположения уточненных точек мира, возвращаемые в виде матрицы M-by-3 [x, y, z] местоположений.

Типы данных: single | double

Ошибки повторного впрыска, возвращаемые как вектор М-элемента. Функция проецирует каждую точку мира обратно в каждую камеру. Затем в каждом изображении функция вычисляет ошибку повторного впрыска как расстояние между обнаруженной и повторно спроецированной точкой. reprojectionErrors вектор содержит среднюю ошибку репроекции для каждой точки мира.

Ссылки

[1] Луракис, М.И.А. и А.А. Аргирос. «Преимущества для малого бизнеса: пакет программного обеспечения для настройки общего разреженного пакета». Транзакции ACM на математическом программном обеспечении. Том 36, выпуск 1. Март 2009 года.

[2] Хартли, R. и А. Зиссермен. «Несколько видов геометрии в компьютерном видении». Издательство Кембриджского университета. 2003

[3] Триггеры, B., P. McLauchlan, R. Hartley и A. Fitzgibbon. «Корректировка пучка: современный синтез». Материалы Международного семинара по алгоритмам видения: теория и практика. Страницы 298 - 372. Спрингер-Верлаг. 1999.

Представлен в R2020a