exponenta event banner

estimateWorldCameraPose

Оценка соответствия положения камеры от 3-D до точки 2-D

Описание

пример

[worldOrientation,worldLocation] = estimateWorldCameraPose(imagePoints,worldPoints,cameraParams) возвращает ориентацию и местоположение калиброванной камеры в мировой системе координат. Вход worldPoints должен быть определен в мировой системе координат.

Эта функция решает задачу «перспектива-n-точка» (PnP) с помощью алгоритма «перспектива-три-точки» (P3P) [1]. Функция также устраняет ложные соответствия, используя алгоритм консенсуса выборки M-оценщика (MSAC).

[___,inlierIdx] = estimateWorldCameraPose(imagePoints,worldPoints,cameraParams) возвращает индексы inliers, используемых для вычисления позы камеры, в дополнение к аргументам из предыдущего синтаксиса.

[___,status] = estimateWorldCameraPose(imagePoints,worldPoints,cameraParams) дополнительно возвращает код состояния, указывающий, было ли достаточно точек.

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

Примеры

свернуть все

Загрузка ранее рассчитанных соответствий «мир-изображение».

data = load('worldToImageCorrespondences.mat');

Оцените позу мировой камеры.

[worldOrientation,worldLocation] = estimateWorldCameraPose(...
     data.imagePoints,data.worldPoints,data.cameraParams);

Постройте мировые точки.

 pcshow(data.worldPoints,'VerticalAxis','Y','VerticalAxisDir','down', ...
     'MarkerSize',30);
 hold on
 plotCamera('Size',10,'Orientation',worldOrientation,'Location',...
     worldLocation);
 hold off

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

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

свернуть все

Координаты неискаженных точек изображения, заданные как массив M-by-2 с координатами [x, y]. Количество точек изображения M должно быть не менее четырех.

Функция не учитывает искажение объектива. Можно либо отменить искажение изображений с помощью undistortImage функция перед обнаружением точек изображения, или можно отменить искривление самих точек изображения с помощью undistortPoints функция.

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

Координаты мировых точек, заданные в виде M-by-3 массива координат [x, y, z].

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

Параметры камеры, указанные как cameraParameters или cameraIntrinsics объект. Вы можете вернуть cameraParameters с использованием estimateCameraParameters функция. cameraParameters объект содержит внутренние, внешние параметры и параметры искажения объектива камеры.

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

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

Пример: 'MaxNumTrials',1000

Максимальное количество случайных испытаний, указанное как пара, разделенная запятыми, состоящая из 'MaxNumTrials"и положительный целочисленный скаляр. Фактическое количество испытаний зависит от количества точек изображения и мира, а также значений для MaxReprojectionError и Confidence свойства. Увеличение числа испытаний повышает надежность выходных данных за счет дополнительных вычислений.

Уверенность в поиске максимального количества входов, указанного как пара, разделенная запятыми, состоящая из 'Confidence'и скаляр в диапазоне (0,100). Увеличение этого значения повышает надежность выхода за счет дополнительных вычислений.

Порог ошибки повторного впрыска для поиска отклонений, указанный как пара, разделенная запятыми, состоящая из 'MaxReprojectionError«и положительный числовой скаляр в пикселях». Увеличение этого значения заставляет алгоритм быстрее сходиться, но может снизить точность результата.

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

свернуть все

Ориентация камеры в мировых координатах, возвращаемая в виде матрицы 3 на 3.

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

Местоположение камеры, возвращаемое в виде единичного вектора 1 на 3.

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

Индексы внутренних точек, возвращаемые как M-by-1 логический вектор. Логическое значение true в векторе соответствует входам, представленным в imagePoints и worldPoints.

Код состояния, возвращенный как 0, 1, или 2.

Код состоянияСтатус
0Без ошибок
1imagePoints и worldPoints не содержат достаточного количества точек. Требуется минимум четыре балла.
2Не найдено достаточного количества вложенных файлов. Требуется минимум 4 входа.

Ссылки

[1] Гао, X.-S., X.-R. Хоу, Дж. Тан и Х.Ф. Чэн. «Полная классификация решения для проблемы» Перспектива - три точки «». Транзакции IEEE по анализу шаблонов и машинному интеллекту. Том 25, выпуск 8, стр. 930-943, август 2003.

[2] Торр, П. Х. С. и А. Зиссерман. «MLESAC: новый надежный оценщик с приложением к оценке геометрии изображения». Компьютерное зрение и понимание изображений. Том 78, выпуск 1, апрель 2000 г., стр. 138-156.

Расширенные возможности

.
Представлен в R2016b