A monocular camera является распространенным типом датчика зрения, используемого в беспилотных аппаратах. При установке на автомобиль , оборудованный датчиком эта камера может обнаруживать объекты, обнаруживать контуры маршрута и отслеживать объекты через сцену.
Прежде чем вы сможете использовать камеру, вы должны калибровать ее. Camera calibration является процессом оценки собственных и внешних параметров камеры с помощью изображений калибровочного шаблона, такого как шахматная доска. После того, как вы оцените собственные и внешние параметры, можно использовать их, чтобы сконфигурировать модель монокулярной камеры.
intrinsic parameters камеры являются свойствами камеры, такими как ее фокусное расстояние и оптический центр. Чтобы оценить эти параметры для монокулярной камеры, используйте функции Computer Vision Toolbox™ и изображения шахматного шаблона.
Если камера имеет стандартный линз, используйте estimateCameraParameters
функция.
Если камера имеет линзу «рыбий глаз», используйте estimateFisheyeParameters
функция.
Кроме того, чтобы лучше визуализировать результаты, используйте приложение Camera Calibrator. Для получения информации о настройке камеры, подготовке шахматного шаблона и методах калибровки смотрите приложение Single Camera Calibrator.
Для монокулярной камеры, установленной на транспортном средстве, внешние параметры определяют положение установки этой камеры. Эти параметры включают углы поворота камеры относительно системы координат транспортного средства и высоту камеры над землей.
Прежде чем вы сможете оценить внешние параметры, необходимо захватить изображение шахматного шаблона с камеры. Используйте тот же шаблон шахматной доски, который вы использовали для оценки внутренних параметров.
На шахматной панели используется система координат, ориентированная на массив (X P, Y P), где X ось P указывает вправо, а Y ось P указывает вниз. Шахматный источник является нижним правым углом верхнего левого квадрата шахматной доски.
При размещении шахматного шаблона относительно транспортного средства X P- и Y P-оси должны совпадать с X V- и Y V-осями транспортного средства. В системе координат транспортного средства X V-образная ось указывает вперед от транспортного средства, а Y V-образная ось - налево, если смотреть при обращении вперед. Источник находится на дорожном покрытии, прямо под центром камеры (фокусная точка камеры).
Ориентация шаблона может быть горизонтальной или вертикальной.
В горизонтальной ориентации шахматный шаблон находится либо на земле, либо параллельно земле. Вы можете разместить шаблон перед транспортным средством, в задней части транспортного средства, или на левой или правой стороне транспортного средства.
В вертикальной ориентации шахматный шаблон перпендикулярен земле. Вы можете разместить шаблон перед транспортным средством, в задней части транспортного средства или на левой правой стороне транспортного средства.
После размещения шахматной доски в нужном месте, запечатлите ее изображение с помощью монокулярной камеры. Затем используйте estimateMonoCameraParameters
функция для оценки внешних параметров. Чтобы использовать эту функцию, вы должны задать следующее:
Собственные параметры камеры
Ключевые точки, обнаруженные в изображении, в этом случае углы шахматных квадратов
Мировые точки шахматной доски
Высота источника шаблона шахматного щита над землей
Для примера, для изображений I
и собственные параметры intrinsics
следующий код оценивает внешние параметры. По умолчанию, estimateMonoCameraParameters
принимает, что камера обращена вперед и что шаблон шахматной платы имеет горизонтальную ориентацию.
[imagePoints,boardSize] = detectCheckerboardPoints(I); squareSize = 0.029; % Square size in meters worldPoints = generateCheckerboardPoints(boardSize,squareSize); patternOriginHeight = 0; % Pattern is on ground [pitch,yaw,roll,height] = estimateMonoCameraParameters(intrinsics, ... imagePoints,worldPoints,patternOriginHeight);
Чтобы увеличить точность оценки этих параметров, соберите несколько изображений и усредните значения точек изображения.
Если у вас есть предполагаемые внутренние и внешние параметры, вы можете использовать monoCamera
объект, чтобы сконфигурировать модель камеры. Следующий пример кода показывает, как сконфигурировать камеру с помощью параметров intrinsics
, height
, pitch
, yaw
, и roll
:
monoCam = monoCamera(intrinsics,height,'Pitch',pitch,'Yaw',yaw,'Roll',roll);
detectCheckerboardPoints
| estimateCameraParameters
| estimateFisheyeParameters
| estimateMonoCameraParameters
| generateCheckerboardPoints