The following instructions tell us how preprocess the datasets, including KITTI360 global LiDAR point cloud map generation, sub-maps division, and panoramic image generation.
Downloads KITTI360 data raw sequences, including perspective and fisheye images and LiDAR point clouds frames.
Call kitti360_global_maps.py, and see the parameters for detail informations. Basically, we process single sequence one time, and the ground and global maps will generates, no '.pcd' format file is generated.
python kitti360_global_maps.py --sequence 02 --kitti360Path /data --submapPath /data/data_3d_submapThis code is originated from kitti_maps.py, but adds the following supports.
-
Global Map Making for KITTI360.
-
Submaps saved in
.binand.pcdin batch manner or single file format convertion. -
Remove ground of LiDAR map. (May have more powerful methods to realize this operation.)
We generate panorama images by sitching the fisheye images.
More details at blog.
To further evaluate the performance of the SaliencyI2PLoc, We build the dataset that consists of perspective images and LiDAR frame scan data. The format query and database is same as the panoramic images and submaps, while the perspective image(image_01) and scan data are used. The mismatches between the pose, image id, LiDAR id are solved during the dataset class KITTI360Perspective. No resize, downsample or ground removal operations are used for this dataset. More details could be found at KITTI360Perspective.py.
The downsample operation is inherited from the Pointcloud place recognition task and we also conduct this to keep the comparsion fair.
| Panoramic Images | Point Cloud Submaps |
|---|---|
![]() |
![]() |
We follow the MSLS dataset structure to build our dataset. More details could be found at KITTI360_MSLS.py and MSLS.
Following the setting of baseline (AE-Spherical), We selected 1501 pairs from urban scenario sequences (specifically from 00 sequence of KITTI360), and 1010 pairs from highway scenario sequences (the whole 03 sequence of KITTI360), for model evaluation. Additionally, we separated 3447 and 842 image-point cloud pairs from urban (from 18 sequence of KITTI360) and highway (from 07 sequence of KITTI360) scenarios respectively to evaluate the generalization.
- For panoramic images
├── data_2d_pano_512_1024
| ├── 2013_05_28_drive_0000_sync
│ │ ├── database.csv
│ │ ├── database_val.csv
│ │ ├── pano
│ │ │ └── data_rgb
│ │ ├── query.csv
│ │ ├── query_val.csv
│ ├── 2013_05_28_drive_0002_sync
│ │ ├── database.csv
│ │ ├── pano
│ │ │ └── data_rgb
│ │ └── query.csv
│ ├── 2013_05_28_drive_0003_sync
│ │ ├── database.csv
│ │ ├── database_val.csv
│ │ ├── pano
│ │ │ └── data_rgb
│ │ ├── query.csv
│ │ └── query_val.csv
...- For point cloud submaps
└── data_3d_submap_raw
├── 2013_05_28_drive_0000_sync
│ └── submaps
├── 2013_05_28_drive_0002_sync
│ └── submaps
├── 2013_05_28_drive_0003_sync
│ └── submaps
...We thanks the kitti360-map-python, CMRNet for providing the basic point cloud processing codes.

