bundleAdjustmentMotion

Совершенствуйте положение камеры с помощью корректировки пакета только для движения

Описание

пример

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

Процедура улучшения только для движения является особым случаем алгоритма Levenberg-Marquardt для корректировки пакета с 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);

Входные параметры

свернуть все

Неочищенные 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'

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

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

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

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

Отобразите информацию о прогрессе в виде разделенной запятой пары, состоящей из 'Verbose'и любой false или true.

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

свернуть все

Усовершенствованное абсолютное положение камеры, возвращенной как rigid3d объект.

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

Ссылки

[1] Lourakis, M.I.A. и А.А. Аргирос. "SBA: пакет программного обеспечения для типовой разреженной корректировки пакета". Транзакции ACM на математическом программном обеспечении. Объем 36, выпуск 1. Март 2009.

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

[3] Triggs, B., П. Маклочлан, Р. Хартли и А. Фицджиббон. "Свяжите корректировку: современный синтез". Продолжения международного семинара на алгоритмах визуализации: теория и практика. Страницы 298 — 372. Springer-Verlag. 1999.

Введенный в R2020a