estimateMonoCameraParameters

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

Синтаксис

[pitch,yaw,roll,height] = estimateMonoCameraParameters(intrinsics,imagePoints,worldPoints,patternOriginHeight)
[pitch,yaw,roll,height] = estimateMonoCameraParameters(___,Name,Value)

Описание

пример

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

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

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

Примеры

свернуть все

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

Загрузите внутренние параметры монокулярной камеры, которая имеет линзу подозрительного взгляда. 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 на 0.

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

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

Укажите необязательные аргументы в виде пар ""имя, значение"", разделенных запятыми. Имя (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