estimateMonoCameraParameters

Оцените внешние монокулярные параметры камеры с помощью шахматной доски

Описание

пример

[pitch,yaw,roll,height] = estimateMonoCameraParameters(intrinsics,imagePoints,worldPoints,patternOriginHeight) оценивает внешние параметры монокулярной камеры при помощи внутренних параметров камеры и калибровочного шаблона шахматной доски. Возвращенные внешние параметры задают отклонение от курса, подачу, и прокручивают углы поворота между системой координат камеры (Computer Vision Toolbox) и осями системы координат транспортного средства. Функция также возвращает высоту камеры над землей. Задайте внутренние параметры, изображение и мировые координаты угловых точек шахматной доски и высоту источника шаблона шахматной доски над землей.

По умолчанию функция принимает, что камера стоит вперед и что шаблон шахматной доски параллелен с землей. Для всей возможной камеры и размещений шахматной доски, смотрите, Калибруют Монокулярную Камеру.

[pitch,yaw,roll,height] = estimateMonoCameraParameters(___,Name,Value) задает опции с помощью одной или нескольких пар "имя-значение", в дополнение к вводам и выводам от предыдущего синтаксиса. Например, можно задать ориентацию или положение шаблона шахматной доски.

Примеры

свернуть все

Сконфигурируйте монокулярную fisheye-камеру путем удаления искажения объектива и затем оценки внешних параметров камеры. Используйте изображение шахматной доски как калибровочный шаблон. Для более подробного взгляда на то, как сконфигурировать монокулярную камеру, которая имеет линзу подозрительного взгляда, смотрите Сконфигурировать Монокулярный пример Fisheye-камеры.

Загрузите внутренние параметры монокулярной камеры, которая имеет линзу подозрительного взгляда. intrinsics fisheyeIntrinsics объект.

ld = load('fisheyeCameraIntrinsics');
intrinsics = ld.intrinsics;

Загрузите изображение шаблона шахматной доски, который помещается плоский на земле. Это изображение в иллюстративных целях и не было взято из камеры, смонтированной к транспортному средству. В камере, смонтированной к транспортному средству, Ось X точек шаблона справа от транспортного средства и Ось Y шаблона указывают на камеру. Отобразите изображение.

imageFileName = fullfile(toolboxdir('driving'),'drivingdata','checkerboard.png');
I = imread(imageFileName);
imshow(I)

Обнаружьте координаты углов шахматной доски в изображении.

[imagePoints,boardSize] = detectCheckerboardPoints(I);

Сгенерируйте соответствующие мировые координаты углов.

squareSize = 0.029; % Square size in meters
worldPoints = generateCheckerboardPoints(boardSize,squareSize);

Оцените внешние параметры, требуемые сконфигурировать monoCamera объект. Поскольку шаблон шахматной доски находится непосредственно на земле, установите высоту источника шаблона к 0.

patternOriginHeight = 0;
[pitch,yaw,roll,height] = estimateMonoCameraParameters(intrinsics, ...
                             imagePoints,worldPoints,patternOriginHeight);

Поскольку monoCamera не принимает fisheyeIntrinsics объекты, удалите искажение из изображения и вычислите новые внутренние параметры из неискаженного изображения. camIntrinsics cameraIntrinsics объект. Отобразите изображение, чтобы подтвердить, что искажение удалено.

[undistortedI,camIntrinsics] = undistortFisheyeImage(I,intrinsics,'Output','full');
imshow(undistortedI)

Сконфигурируйте монокулярную камеру с помощью предполагаемых параметров.

monoCam = monoCamera(camIntrinsics,height,'Pitch',pitch,'Yaw',yaw,'Roll',roll)
monoCam = 
  monoCamera with properties:

        Intrinsics: [1x1 cameraIntrinsics]
        WorldUnits: 'meters'
            Height: 0.4447
             Pitch: 21.8459
               Yaw: -3.6130
              Roll: -3.1707
    SensorLocation: [0 0]

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

свернуть все

Внутренние параметры камеры, заданные как cameraIntrinsics или fisheyeIntrinsics объект.

Изображения шаблона шахматной доски, произведенные этими камерами, могут включать искажение объектива, которое может влиять на точность обнаружений угловой точки. Чтобы удалить искажение объектива и вычислить новые внутренние параметры, используйте эти функции:

Отобразите координаты угловых точек шахматной доски, заданных как M-by-2 матрица количества M [x y] векторы. Эти моменты должны наступить от изображения, полученного монокулярной камерой. Чтобы обнаружить эти точки в изображении, используйте detectCheckerboardPoints функция.

estimateMonoCameraParameters принимает что все точки в worldPoints находятся в (X P, Y P) плоскость и которого M больше или равен 4. Задавать высоту (X P, Y P) плоскость над землей, patternOriginHeight использования.

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

Мировые координаты угловых точек в шахматной доске, заданной как M-by-2 матрица количества M [x y] векторы.

estimateMonoCameraParameters принимает что все точки в worldPoints находятся в (X P, Y P) плоскость и которого M больше или равен 4. Задавать высоту (X P, Y P) плоскость над землей, patternOriginHeight использования.

Точка (0,0) соответствует нижнему правому углу верхнего левого квадрата шахматной доски.

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

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

Измерение patternOriginHeight зависит от ориентации шаблона шахматной доски, как показано в этих схемах.

Горизонтальная ориентацияВертикальная ориентация

Чтобы задать ориентацию шаблона, используйте 'PatternOrientation' пара "имя-значение". Если вы устанавливаете 'PatternOrientation' к 'horizontal' (значение по умолчанию) и шаблон находятся на земле, затем устанавливают patternOriginHeight к 0.

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

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

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

Пример: 'PatternOrientation','vertical','PatternPosition','right'

Ориентация шаблона шахматной доски относительно земли, заданной как разделенная запятой пара, состоящая из 'PatternOrientation' и одно из следующего:

  • 'horizontal' — Шаблон шахматной доски параллелен земле.

  • 'vertical' — Шаблон шахматной доски перпендикулярен земле.

Положение шаблона шахматной доски относительно земли, заданной как разделенная запятой пара, состоящая из 'PatternPosition' и одно из следующего:

  • 'front' — Шаблон шахматной доски перед транспортным средством.

  • 'back' — Шаблон шахматной доски находится позади транспортного средства.

  • 'left' — Шаблон шахматной доски слева от транспортного средства.

  • 'right' — Шаблон шахматной доски справа от транспортного средства.

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

свернуть все

Передайте угол между горизонтальной плоскостью транспортного средства и оптической осью камеры, возвращенной как действительный скаляр в градусах. pitch использует соглашение ISO во вращении, с по часовой стрелке положительным угловым направлением при взгляде в положительном направлении V-оси Y транспортного средства.

Для получения дополнительной информации смотрите Угловые Направления.

Угол отклонения от курса между V-осью X транспортного средства и оптической осью камеры, возвращенной как действительный скаляр в градусах. yaw использует соглашение ISO во вращении, с по часовой стрелке положительным угловым направлением при взгляде в положительном направлении V-оси Z транспортного средства.

Для получения дополнительной информации смотрите Угловые Направления.

Угол вращения камеры вокруг ее оптической оси, возвращенной как действительный скаляр в градусах. roll использует соглашение ISO во вращении, с по часовой стрелке положительным угловым направлением при взгляде в положительном направлении V-оси X транспортного средства.

Для получения дополнительной информации смотрите Угловые Направления.

Перпендикулярная высота от земли до центра камеры, возвращенной как неотрицательный действительный скаляр в мировых единицах измерения, таких как метры.

Больше о

свернуть все

Система координат транспортного средства

В системе координат транспортного средства (X V, Y V, Z V) заданный monoCamera объект:

  • V-ось X указывает вперед от транспортного средства.

  • V-ось Y указывает налево, как просматривается при направлении вперед.

  • V-ось Z подчеркивает от земли, чтобы обеспечить правую систему координат.

По умолчанию источник этой системы координат находится на дорожном покрытии, непосредственно ниже центра камеры (центр камеры).

Получить более надежные результаты estimateMonoCameraParameters, шаблон шахматной доски должен быть помещен в точные местоположения относительно этой системы координат. Для получения дополнительной информации смотрите, Калибруют Монокулярную Камеру.

Угловые направления

Монокулярный датчик камеры использует по часовой стрелке положительные угловые направления при взгляде в положительном направлении Z - Y - и X - оси, соответственно.

Введенный в R2018b