exponenta event banner

estimateEssentialMatrix

Оценка существенной матрицы по соответствующим точкам в паре изображений

Описание

пример

E = estimateEssentialMatrix(matchedPoints1,matchedPoints2,cameraParams) возвращает существенную матрицу 3 на 3, E, используя алгоритм консенсуса выборки M-оценщика (MSAC). Входными точками могут быть M-by-2 матрицы M числа координат [x, y] или KAZEPoints , SURFPoints, MSERRegions, BRISKPoints, или cornerPoints объект. cameraParams объект содержит параметры камеры, используемой для съемки изображений.

E = estimateEssentialMatrix(matchedPoints1,matchedPoints2,cameraParams1,cameraParams2) возвращает основную матрицу, относящуюся к двум изображениям, сделанным различными камерами. cameraParams1 и cameraParams2 являются cameraParameters объекты, содержащие параметры камеры 1 и камеры 2 соответственно.

[E,inliersIndex] = estimateEssentialMatrix(___) дополнительно возвращает M-by-1 логический вектор, inliersIndex, используется для вычисления основной матрицы. Функция устанавливает элементы вектора на true когда соответствующая точка использовалась для вычисления фундаментальной матрицы. Для элементов установлено значение false если они не используются.

[E,inliersIndex,status] = estimateEssentialMatrix(___) дополнительно возвращает код состояния, указывающий действительность точек.

[___] = estimateEssentialMatrix(___,Name,Value) использует дополнительные параметры, указанные одним или несколькими аргументами пары Name и Value.

Примеры

свернуть все

Загрузка предварительно рассчитанных параметров камеры.

load upToScaleReconstructionCameraParameters.mat

Чтение и отмена искажения двух изображений.

imageDir = fullfile(toolboxdir('vision'),'visiondata',...
    'upToScaleReconstructionImages');
images = imageDatastore(imageDir);
I1 = undistortImage(readimage(images,1),cameraParams);
I2 = undistortImage(readimage(images,2),cameraParams);
I1gray = im2gray(I1);
I2gray = im2gray(I2);

Определите точки элемента для каждого изображения.

imagePoints1 = detectSURFFeatures(I1gray);
imagePoints2 = detectSURFFeatures(I2gray);

Извлеките дескрипторы элементов из каждого изображения.

features1 = extractFeatures(I1gray,imagePoints1,'Upright',true);
features2 = extractFeatures(I2gray,imagePoints2,'Upright',true);

Подбор элементов по изображениям.

indexPairs = matchFeatures(features1,features2);
matchedPoints1 = imagePoints1(indexPairs(:,1));
matchedPoints2 = imagePoints2(indexPairs(:,2));
figure
showMatchedFeatures(I1,I2,matchedPoints1,matchedPoints2);
title('Putative Matches')

Figure contains an axes. The axes with title Putative Matches contains 4 objects of type image, line.

Оцените основную матрицу.

[E,inliers] = estimateEssentialMatrix(matchedPoints1,matchedPoints2,...
 cameraParams);

Отображение входящих совпадений.

inlierPoints1 = matchedPoints1(inliers);
inlierPoints2 = matchedPoints2(inliers);
figure
showMatchedFeatures(I1,I2,inlierPoints1,inlierPoints2);
title('Inlier Matches')

Figure contains an axes. The axes with title Inlier Matches contains 4 objects of type image, line.

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

свернуть все

Координаты соответствующих точек изображения 1, заданные в виде матрицы M-by-2 координат M [x, y], или в виде KAZEPoints,SURFPoints , BRISKPoints, MSERRegions, или cornerPoints объект. matchedPoints1 входные данные должны содержать не менее пяти точек, которые, как предполагается, сопоставляются с помощью функции, такой как matchFeatures.

Координаты соответствующих точек изображения 1, заданные в виде матрицы M-by-2 координат M [x, y], или в виде KAZEPoints, SURFPoints, MSERRegions, BRISKPoints, илиcornerPoints объект. matchedPoints2 входные данные должны содержать не менее пяти точек, которые, как предполагается, сопоставляются с помощью функции, такой как matchFeatures.

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

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

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

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

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

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

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

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

Порог расстояния Сэмпсона, указанный как разделенная запятыми пара, состоящая из 'MaxDistanceи скалярное значение. Функция использует порог для поиска отклонений, возвращаемых в пикселях в квадрате. Расстояние Сэмпсона - аппроксимация первого порядка квадратного геометрического расстояния между точкой и эпиполярной прямой. Увеличьте это значение, чтобы алгоритм сходился быстрее, но это также может отрицательно повлиять на точность результата.

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

свернуть все

Существенная матрица, возвращаемая как матрица 3 на 3, которая вычисляется из точек в matchedPoints1 и matchedPoints2 входы с известными характеристиками камеры.

[P21] * Матрица * [P11] '= 0

Точка P1 в изображении 1 в нормализованных координатах изображения соответствует точке P2 в изображении 2.

В компьютерном зрении основной матрицей является матрица 3 на 3, которая соотносит соответствующие точки в стереоизображениях, которые находятся в нормализованных координатах изображения. Когда две камеры просматривают 3-D сцену из двух различных положений, геометрические отношения между 3-D точками и их проекциями на 2-D изображения приводят к ограничениям между точками изображения. Два изображения одной и той же сцены связаны эпиполярной геометрией.

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

Inliers index, возвращаемый как M-by-1 вектор логического индекса. Элемент, имеющий значение true указывает, что соответствующие индексированные совпадающие точки в matchedPoints1 и matchedPoints2 были использованы для вычисления существенной матрицы. Элемент, имеющий значение false означает, что индексированные точки не использовались для вычислений.

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

Код состояния, возвращаемый как одно из следующих возможных значений:

статусСтоимость
0:Ошибка отсутствует.
1:matchedPoints1 и matchedPoints2 не содержат достаточного количества точек. Требуется не менее пяти баллов.
2:Не найдено достаточного количества вложенных файлов. Требуется не менее пяти входов.

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

Совет

Использовать estimateEssentialMatrix когда вы знаете особенности камеры. Вы можете получить характеристику с помощью приложения «Калибратор камеры». estimateFundamentalMatrix функция, не требующая встроенных функций камеры. Фундаментальную матрицу нельзя оценить по компланарным мировым точкам.

Ссылки

[1] Кукелова, З., М. Буйнак и Т. Пайдла Полиномиальные решения для 5-pt и 6-pt проблем относительной позы. Лидс, Великобритания: BMVC, 2008.

[2] Нистер, Д.. «Эффективное решение проблемы относительной позы из пяти точек». Транзакции IEEE по анализу шаблонов и машинному интеллекту.Том 26, выпуск 6, июнь 2004 г.

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

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

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