estimateEssentialMatrix

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

Описание

пример

E = estimateEssentialMatrix(matchedPoints1,matchedPoints2,cameraParams) возвращает 3х3 существенную матрицу, E, использование демонстрационного согласия M-средства-оценки (MSAC) алгоритм. Точками ввода может быть M-by-2 матрицы количества M [x, y] координаты или KAZEPoints , SIFTPoints, 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 object. The axes object with title Putative Matches contains 4 objects of type image, line.

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

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

Отобразите соответствия inlier.

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

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

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

свернуть все

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

Координаты соответствующих точек в изображении 1 в виде M-by-2 матрица M [x, y] координаты, или как KAZEPoints, SIFTPoints, 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 имя аргумента и Value соответствующее значение. Name должен появиться в кавычках. Вы можете задать несколько аргументов в виде пар имен и значений в любом порядке, например: Name1, Value1, ..., NameN, ValueN.

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

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

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

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

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

свернуть все

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

[P21]*EssentialMatrix*[P11]'=0

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

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

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

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

Типы данных: логический

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

состояниеЗначение
0:Никакая ошибка.
1:matchedPoints1 и matchedPoints2 не содержите достаточно точек. Требуются по крайней мере пять точек.
2:Недостаточно inliers найдено. Наименьшее количество пять inliers требуется.

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

Советы

Использование estimateEssentialMatrix когда вы знаете внутренние параметры камеры. Можно получить внутренние параметры с помощью приложения Camera Calibrator. В противном случае можно использовать estimateFundamentalMatrix функция, которая не требует внутренних параметров камеры. Основная матрица не может быть оценена от компланарных мировых точек.

Ссылки

[1] Кукелова, Z., М. Баджнэк и решения для собственного значения полинома Т. Пэдждлы родственника на 6 ПБ и на 5 ПБ создают проблемы. Лидс, Великобритания: BMVC, 2008.

[2] Nister, D.. “Эффективное решение родственника с пятью точками создает проблему”. Транзакции IEEE согласно анализу шаблона и машине Intelligence.Volume 26, выпуску 6, июнь 2004.

[3] Торр, P. H. S. и А. Зиссермен. “MLESAC: Новое Устойчивое Средство оценки с Приложением к Оценке Геометрии Изображений”. Компьютерное зрение и Распознавание изображений. Объем 78, Выпуск 1, апрель 2000, стр 138-156.

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

Введенный в R2017b