Облако точек, помеченное в наборе данных KITTI - PullRequest
0 голосов
/ 08 сентября 2018

Я пытаюсь обучить свою модель распознавать автомобиль, пешехода и велосипедиста, для этого требуются велосипедист, облако автомобилей и пешеходов в качестве обучающих данных. Я загрузил набор данных из KITTI (http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d), и метка, и точка велоидина (http://www.cvlibs.net/download.php?file=data_object_label_2.zip)(http://www.cvlibs.net/download.php?file=data_object_velodyne.zip).) Однако метка объекта, похоже, не из этого набора данных. Я попытался обрезать точку Облако для извлечения облака точек объекта, но я могу получить только пустое трехмерное пространство. Это моя функция обрезки в MATLAB. Есть ли какая-то ошибка в моем коде? Имеются ли какие-либо данные для обучения и тестирования для пешеходных, велосипедистских и автомобильных точек? в другом месте?

function pc = crop_pc3d (pt_cloud, x, y, z, height, width, length)
%keep points only between (x,y,z) and (x+length, y+width,z+height)

%Initialization
y_min = y; y_max = y + width; 
x_min = x; x_max = x + length; 
z_min = z; z_max = z + height;

%Get ROI
x_ind = find( pt_cloud.Location(:,1) < x_max & pt_cloud.Location(:,1) > x_min );
y_ind = find( pt_cloud.Location(:,2) < y_max & pt_cloud.Location(:,2) > y_min );  
z_ind = find( pt_cloud.Location(:,3) < z_max & pt_cloud.Location(:,3) > z_min );

crop_ind_xy = intersect(x_ind, y_ind); 
crop_ind = intersect(crop_ind_xy, z_ind); 

%Update point cloud 
pt_cloud = pt_cloud.Location(crop_ind, :); 
pc = pointCloud(pt_cloud); 

end

1 Ответ

0 голосов
/ 28 октября 2018

Метки находятся в координатной плоскости изображения. Таким образом, чтобы использовать их для облака точек, их необходимо преобразовать в координатную плоскость велодина. Для этого преобразования используйте данные калибровки, предоставленные калибровочными матрицами камеры.

Данные калибровки предоставляются в KITTI. http://www.cvlibs.net/datasets/kitti/eval_object.php?obj_benchmark=3d

...