exponenta event banner

bundleAdjustmentMotion

Уточнение позы камеры с помощью регулировки пучка только для движения

Описание

пример

refinedPose = bundleAdjustmentMotion(xyzPoints,imagePoints,absolutePose,intrinsics) возвращает уточненную абсолютную позу камеры, которая сводит к минимуму ошибки репроекции.

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

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

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

Примеры

свернуть все

Загрузка данных для инициализации в рабочую область.

data = load('motionOnlyBA.mat');

Уточните абсолютные позы камеры.

refinedPose = bundleAdjustmentMotion(data.xyzPoints,data.imagePoints,data.absPose,data.intrinsics);

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

pcshow(data.xyzPoints,'VerticalAxis','y','VerticalAxisDir','down','MarkerSize',45);
hold on

Постройте график абсолютных поз камеры до и после уточнения.

plotCamera('AbsolutePose',data.absPose,'Color','r','Size',2);
plotCamera('AbsolutePose',refinedPose,'Color','m','Size',2);

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

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

свернуть все

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

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

Точки изображения, заданные как матрица M-by-2 или массив типов элементов точки M-элемента.

Абсолютная поза камеры, заданная как скаляр rigid3d объект.

Характеристики камеры, указанные как cameraIntrinsics объект.

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

Укажите дополнительные пары, разделенные запятыми 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.

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

свернуть все

Уточненная абсолютная поза камеры, возвращенная как rigid3d объект.

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

Ссылки

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

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

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

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