exponenta event banner

estimateMonoCameraParameters

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

Описание

пример

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

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

[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)

Figure contains an axes. The axes contains an object of type image.

Определите координаты шашечных углов на изображении.

[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)

Figure contains an axes. The axes contains an object of type image.

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

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 М числа векторов [x y]. Эти точки должны исходить из изображения, снятого монокулярной камерой. Чтобы обнаружить эти точки в изображении, используйте detectCheckerboardPoints функция.

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

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

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

estimateMonoCameraParameters предполагает, что все точки в worldPoints находятся в плоскости (XP, YP) и M больше или равно 4. Чтобы задать высоту плоскости (XP, YP) над землей, используйте 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 с направлением положительного угла по часовой стрелке при взгляде в положительном направлении оси YV транспортного средства.

Дополнительные сведения см. в разделе Направления углов.

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

Дополнительные сведения см. в разделе Направления углов.

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

Дополнительные сведения см. в разделе Направления углов.

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

Подробнее

свернуть все

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

В системе координат транспортного средства (XV, YV, ZV), определяемой monoCamera объект:

  • Ось XV направлена вперед от транспортного средства.

  • Ось YV указывает влево, если смотреть вперед.

  • Ось ZV указывает вверх от земли для поддержания правой системы координат.

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

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

Направления углов

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

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