estimateEssentialMatrix

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

Описание

пример

E = estimateEssentialMatrix(matchedPoints1,matchedPoints2,cameraParams) возвращает необходимую матрицу 3 на 3, E, используя алгоритм консенсуса выборки M-estimator (MSAC). Точки входа могут быть M -на-2 матрицы M количеством координат [x, y] или KAZEPoints , SURFPoints, MSERRegions, BRISKPoints, или cornerPoints объект. The 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);

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

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-на-2 M координат [x, y] или как KAZEPoints, SURFPoints , BRISKPoints, MSERRegions, или cornerPoints объект. The matchedPoints1 вход должен содержать не менее пяти точек, которые предполагаемо совпадают с помощью функции, такой как matchFeatures.

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

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

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

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

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

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

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

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

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

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

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

свернуть все

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

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

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

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

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

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

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

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

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

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

Совет

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

Ссылки

[1] Kukelova, Z., M. Bujnak, and T. Pajdla Polynomial Eigenvalue Solutions to the 5-pt and 6-pt Relative Pose Problems. Лидс, Великобритания: BMVC, 2008.

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

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

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

.
Введенный в R2016b