https://github.com/kuixu/kitti_object_vis
数据集
从Kitti对象检测数据集下载数据(calib,image_2,label_2,velodyne),并将其放在kitti / object
的数据文件夹中
文件夹结构如下:
kitti
object
testing
calib
image_2
label_2
velodyne
training
calib
image_2
label_2
velodyne
在具有GUI的Ubuntu 16.04 PC上本地安装
从新的conda环境开始:
(base)$ conda create -n kitti_vis python=3.7 # vtk does not support python 3.8
(base)$ conda activate kitti_vis
opencv, pillow, scipy, matplotlib
(kitti_vis)$ pip install opencv-python pillow scipy matplotlib
从conda-forge安装mayavi,这将自动安装vtk和pyqt5
(kitti_vis)$ conda install mayavi -c conda-forge
测试安装
(kitti_vis)$ python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis
注意:以上安装已通过测试,无法在MacOS上运行。
远程安装
请参考jupyter文件夹,以在远程服务器上进行安装并在Jupyter Notebook中进行可视化。
可视化
- 体积模式下LiDar点云上的3D boxes
相机图像上的2D和3D boxes
LiDar Birdview上的2D boxes
相机图像上的LiDar数据
$ python kitti_object.py --help
usage: kitti_object.py [-h] [-d N] [-i N] [-p] [-s] [-l N] [-e N] [-r N]
[--gen_depth] [--vis] [--depth] [--img_fov]
[--const_box] [--save_depth] [--pc_label]
[--show_lidar_on_image] [--show_lidar_with_depth]
[--show_image_with_boxes]
[--show_lidar_topview_with_boxes]
KIITI Object Visualization
optional arguments:
-h, --help show this help message and exit
-d N, --dir N input (default: data/object)
-i N, --ind N input (default: data/object)
-p, --pred show predict results
-s, --stat stat the w/h/l of point cloud in gt bbox
-l N, --lidar N velodyne dir (default: velodyne)
-e N, --depthdir N depth dir (default: depth)
-r N, --preddir N predicted boxes (default: pred)
--gen_depth generate depth
--vis show images
--depth load depth
--img_fov front view mapping
--const_box constraint box
--save_depth save depth into file
--pc_label 5-verctor lidar, pc with label
--show_lidar_on_image
project lidar on image
--show_lidar_with_depth
--show_lidar, depth is supported
--show_image_with_boxes
show lidar
--show_lidar_topview_with_boxes
show lidar topview
--split use training split or testing split (default: training)
$ python kitti_object.py
指定您自己的文件夹,
$ python kitti_object.py -d /path/to/kitti/object
仅显示LiDAR(ground truth)
$ python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis
终端按回车键进行下一张图
显示激光雷达和图像
$ python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes
终端按回车键进行下一张图
显示特定索引某张图的LiDAR和图像
$ python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 100(索引值)
ind 100表示就是图像编号为000100.txt
显示带有标签的LiDAR(5个矢量)
$ python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --pc_label
Demo
相机影像上的2D,3D box和LiDar数据
带有类别标签的box
LiDar鸟瞰图和点云(3D)
显示预测结果
首先,将KITTI官方格式的结果映射到数据目录中
./map_pred.sh / path / to / results
python kitti_object.py -p --vis
预测结果:
my
下载的作者训练好的模型,跑一遍inference
,生成的检测结果在下面文件夹中:
/output/kitti_models/pointpillar/default/eval/epoch_7728/val/default/final_result/data
(里面包含000001.txt等等,存的是3d框的预测结果)
把整个文件夹复制到kitti数据集的training目录下,文件夹命名pred
kitti
object
testing
calib
image_2
label_2
velodyne
training
calib
image_2
label_2
velodyne
pred # 这个是需要自己复制过来的
显示pointpillar预测值+真值对比
在以上所有命令后面加 -p
python kitti_object.py --show_lidar_with_depth --img_fov --const_box --vis --show_image_with_boxes --ind 8 -p
注:红色是预测框,绿色是真值框
致谢
代码主要来自f-pointnet和MV3D