exponenta event banner

bboxLidarToCamera

Оцените, что 2-й ограничивающий прямоугольник при закрытых дверях создает использующий 3D ограничивающий прямоугольник в раме лидара

Описание

bboxesCamera = bboxLidarToCamera(bboxesLidar,intrinsics,tform) оценивает 2-е ограничивающие прямоугольники в раме камеры от 3D ограничивающих прямоугольников в раме лидара bboxesLidar. Функция использует внутренние параметры камеры intrinsics и матрица преобразования лидара в камеру tform.

bboxesCamera = bboxLidarToCamera(bboxesLidar,intrinsics,tform,L) дальнейшее уточнение 2-D ограничивающих прямоугольников по краям объекта внутри него с помощью L. L - соответствующее маркированное 2-D изображение 2-D ограничивающих рамок, где объекты помечены отчетливо.

[bboxesCamera,boxesUsed] = bboxLidarToCamera(___) указывает, для какой из указанных 3-D ограничивающих рамок функция обнаруживает соответствующую 2-D ограничивающую рамку в кадре камеры.

пример

[___] = bboxLidarToCamera(___,'ProjectedCuboid',true) возвращает 3-D спроецированные кубоиды вместо 2-D ограничивающих прямоугольников.

Примеры

свернуть все

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

dataPath = fullfile(toolboxdir('lidar'),'lidardata','lcc','bboxGT.mat');
gt = load(dataPath);
im = gt.im;
pc = gt.pc;
intrinsics = gt.cameraParams;

Извлеките матрицу преобразования лидара в камеру из данных истинности земли.

tform = gt.camToLidar.invert;

Извлеките информацию о ограничивающей рамке 3-D.

bboxLidar = gt.cuboid1;

Оцените 2-D ограничивающую рамку на изображении.

bboxesCamera = bboxLidarToCamera(bboxLidar,intrinsics,tform);

Отображение ограничивающей рамки 3-D, наложенной на облако точек.

pcshow(pc.Location,pc.Location(:,1))
showShape('cuboid',bboxLidar)

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

Отображение ограничивающей рамки 2-D, наложенной на изображение.

J = undistortImage(im,intrinsics);
annotatedImage = insertObjectAnnotation(J,'Rectangle',bboxesCamera,'Vehicle');
imshow(annotatedImage)

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

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

dataPath = fullfile(toolboxdir('lidar'),'lidardata','lcc','bboxGT.mat');
gt = load(dataPath);
im = gt.im;
pc = gt.pc;
intrinsics = gt.cameraParams;

Извлеките матрицу преобразования лидара в камеру из данных истинности земли.

tform = gt.camToLidar.invert;

Извлеките информацию о ограничивающей рамке 3-D.

bboxLidar = gt.cuboid2;

Оцените спроецированную ограничительную рамку 3-D на изображении.

bboxesCamera = bboxLidarToCamera(bboxLidar,intrinsics,tform,...
        'ProjectedCuboid',true);

Отображение ограничивающей рамки 3-D, наложенной на облако точек.

figure
pcshow(pc.Location,pc.Location(:,1))
showShape('cuboid',bboxLidar)

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

Отображение 3-D спроецированной ограничивающей рамки, наложенной на изображение.

J = undistortImage(im,intrinsics);
h = imshow(J);
pcH = vision.roi.ProjectedCuboid;
pcH.Parent = h.Parent;
pcH.Position = bboxesCamera;

Figure contains an axes. The axes contains 2 objects of type image, vision.roi.projectedcuboid.

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

свернуть все

3-D ограничивающие рамки в кадре лидара, указанные как cuboidModel объект или N-by-9 матрица вещественных значений. N - число 3-D ограничивающих прямоугольников. Каждая строка матрицы имеет форму [xctr yctr zctr xlen ylen zlen xrot yrot zrot].

  • xctr, yctr и zctr - эти значения определяют координаты оси X, Y и Z, соответственно, центра кубовидной ограничивающей рамки.

  • xlen, ylen и zlen - эти значения определяют длину кубоида по осям x, y и z соответственно перед его поворотом.

  • xrot, yrot и zrot - эти значения определяют углы поворота кубоида вокруг осей x, y и z соответственно. Эти углы являются положительными по часовой стрелке, если смотреть в прямом направлении соответствующих осей.

На этом рисунке показано, как эти значения определяют положение кубоида.

Примечание

Функция предполагает, что данные облака точек, соответствующие 3-D ограничивающим рамкам, и данные изображения синхронизированы по времени.

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

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

Жесткое преобразование камеры в лидар, указанное как rigid3d объект.

Помеченное 2-D изображение, указанное как матрица вещественных значений. Размер матрицы совпадает с размером матрицы ImageSize имущество intrinsics.

Примечание

Предполагается, что помеченные изображения не искажены.

Типы данных: single | double | int8 | int16 | uint8 | uint16

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

свернуть все

2-е ограничивающие прямоугольники в раме камеры, возвращенной как матрица M-4 реальных ценностей. M - количество обнаруженных ограничивающих прямоугольников. Каждая строка матрицы содержит расположение и размер прямоугольной ограничивающей рамки в виде [x y width height ]. Элементы x и y задают координаты x и y соответственно для верхнего левого угла прямоугольника. Элементы ширины и высоты задают размер прямоугольника.

Если 'ProjectedCuboid' имеет значение true, 2-D ограничивающие рамки возвращаются в виде M-by-8 матрицы вещественных значений. Ограничивающие рамки имеют кубовидную форму и охватывают объект. Каждая строка матрицы содержит размер и расположение кубовидной ограничивающей рамки в виде [fireFace backFace]. Обе грани представлены 2-D ограничивающими прямоугольниками.

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

Флаг обнаружения ограничивающего параллелепипеда, возвращаемый в виде N-элементного вектора строки логиков. 2 - количество входных 3-D ограничивающих прямоугольников. Если функция обнаруживает соответствующую ограничительную рамку 2-D в кадре камеры, то она возвращает значение true для этого ввода 3-D ограничивающую рамку. Если функция не обнаруживает соответствующую ограничительную рамку 2-D, то она возвращает значение false.

Типы данных: logical

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