exponenta event banner

estimateFisheyeParameters

Калибровка камеры «рыбий глаз»

Описание

пример

[fisheyeParams,imagesUsed,estimationErrors] = estimateFisheyeParameters(imagePoints,worldPoints,imageSize) возвращает fisheyeParameters объект, содержащий оценки собственных и внешних параметров камеры рыбьего глаза. Функция также возвращает изображения, используемые для оценки параметров рыбьего глаза и стандартных ошибок оценки для калибровки одной камеры.

[___] = estimateFisheyeParameters(___,Name,Value) конфигурирует fisheyeParams свойства объекта, указанные одним или несколькими Name,Value пары аргументов, используя предыдущий синтаксис. Неопределенные свойства имеют значения по умолчанию.

Примеры

свернуть все

Используйте калибровочные изображения для обнаружения шаблона калибровки шахматной доски. Затем откалибруйте камеру, используя углы, извлеченные из шаблона, и визуализируйте результаты.

Соберите набор калибровочных изображений.

images = imageDatastore('calibImages');
imageFileNames = images.Files;

Определите шаблон калибровки по изображениям. Для аргумента «PartityDetections» Name-Value по умолчанию установлено значение true, позволяющее обнаруживать частичные шахматные доски.

[imagePoints,boardSize] = detectCheckerboardPoints(imageFileNames, 'HighDistortion', true);

Создайте мировые координаты для углов шашечных квадратов.

squareSize = 20; % millimeters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

Оценка параметров калибровки камеры «рыбий глаз» на основе изображения и точек мира.

I = readimage(images,10); 
imageSize = [size(I,1) size(I,2)];
params = estimateFisheyeParameters(imagePoints,worldPoints,imageSize);

Визуализация точности калибровки.

figure
showReprojectionErrors(params);

Figure contains an axes. The axes with title Mean Reprojection Error per Image contains 3 objects of type bar, line. This object represents Overall Mean Error: 1.67 pixels.

Визуализируйте внешний вид камеры.

figure
showExtrinsics(params);

Figure contains an axes. The axes with title Extrinsic Parameters Visualization contains 25 objects of type patch, text, line.

drawnow

Постройте график обнаруженных и повторно спроецированных точек.

figure 
imshow(I); 
hold on
plot(imagePoints(:,1,10),imagePoints(:,2,10),'go');
plot(params.ReprojectedPoints(:,1,10),params.ReprojectedPoints(:,2,10),'r+');
legend('Detected Points','Reprojected Points');
hold off

Figure contains an axes. The axes contains 3 objects of type image, line. These objects represent Detected Points, Reprojected Points.

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

свернуть все

Ключевые точки шаблона калибровки, заданные как массив M-by-2-by-numImages с собственными координатами изображения [x, y]. Количество изображений, numImages, должно быть больше 2. Количество координат ключевых точек в каждом шаблоне M должно быть больше 3. Чтобы включить частично обнаруженные паттерны в оценку, используйте [NaN,NaN] в качестве координат x-y для отсутствующих ключевых точек.

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

Ключевые точки схемы калибровки в координатах мира, определенные как матрица M-by-2 координат мира M [x, y]. Поскольку массив должен быть плоским, координаты z равны нулю.

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

Размер изображения, указанный как [mrows ncols] вектор.

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

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

Пример: 'WorldUnits','mm' устанавливает единицы измерения мировой точки в миллиметры.

Оцените выравнивание осей, указанное как разделенная запятыми пара, состоящая из 'EstimateAlignment' и false или true. Установить в значение true если оптическая ось объектива рыболовного глаза не перпендикулярна плоскости изображения.

Единицы измерения мировой точки, указанные как пара, разделенная запятыми, состоящая из 'WorldUnits' и вектор символов или строковый скаляр. Этот аргумент используется просто для хранения типа единицы измерения и не влияет ни на какие вычисления.

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

свернуть все

Параметры камеры Fisheye, возвращенные как fisheyeParameters объект.

Изображения, используемые для оценки параметров камеры, возвращаемые в виде P-by-1 логического массива. P соответствует количеству изображений. Логическое true значение указывает индекс изображения, используемого для оценки параметров камеры.

Стандартные ошибки расчетных параметров, возвращаемые в виде fisheyeCalibrationErrors объект.

Ссылки

[1] Скарамуцца, Д., А. Мартинелли и Р. Зигварт. «Набор инструментов для простой калибровки однонаправленных камер». Материалы Международной конференции IEEE по интеллектуальным роботам и системам (IROS 2006). Пекин, Китай, 7-15 октября 2006 года.

[2] Городской, S., Дж. Лейтлофф и С. Хинц. «Улучшенная широкоугольная калибровка, калибровка Fisheye и всенаправленной камеры». ISPRS Journal of Photogrammetry and Remove Sensing. Том 108, 2015, ст.72-79.

Представлен в R2017b