Download
Dataset structure
Point format
Results
Checkpoints
Training and evaluation
Download and extract
Point clouds
Coming soon
Images
Coming soon
Other resources
Coming soon
Verify archives
sha256sum -c SHA256SUMS.txt
Extract archives
mkdir -p Semantic-ITC
tar -xf Semantic-ITC_raw-local.tar -C Semantic-ITC
Dataset structure
The dataset contains 52 public sequence IDs, with 37 training, 5 validation, and 10 test sequences.
Semantic-ITC/
└── point_clouds_local_bin/
├── train/<sequence_id>/<timestamp>.bin
├── val/<sequence_id>/<timestamp>.bin
├── test/<sequence_id>/<timestamp>.bin
└── splits/{train,val,test}.txt
Point clouds use original per-frame LiDAR sensor coordinates (raw-local).
Benchmark results
Test-set results in percent.
Benchmark checkpoints
Method Filename Download
WaffleIron waffleiron_raw_local_best_val_miou.ptComing soon
PTv3 ptv3_raw_local_best_val_miou.ptComing soon
HARP-NeXt harpnext_raw_local_best_val_miou.ptComing soon
SalsaNext salsanext_raw_local_best_val_miou.ptComing soon
Cylinder3D cylinder3d_raw_local_best_val_miou.ptComing soon
Training and evaluation
Install each method according to its repository README. Semantic-ITC requires no additional dataset-specific package. SalsaNext, WaffleIron, and HARP-NeXt require TensorBoard. Cylinder3D requires a CUDA-compatible spconv installation. Pointcept requires pointops, spconv, and PyTorch Geometric as documented by Pointcept; the provided PTv3 configuration does not require FlashAttention.
Paths
export ITC_CODE_ROOT=/path/to/directory/containing/the/five/repositories
export ITC_RUN_ROOT=/path/to/output/directory
export ITC_CHECKPOINT_ROOT=/path/to/downloaded/checkpoints
export GPU_ID=0
export ITC_COORDINATES=raw_local
export ITC_DATASET=/path/to/point_clouds_local_bin
Train
conda activate waffleiron
PROJECT="$ITC_CODE_ROOT/WaffleIron"
RUN_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/WaffleIron"
cd "$PROJECT"
PYTHONPATH="$PROJECT:${PYTHONPATH:-}" python -u launch_train.py \
--dataset itc --path_dataset "$ITC_DATASET" --log_path "$RUN_DIR" \
--config configs/WaffleIron-48-256__itc.yaml \
--gpu "$GPU_ID" --seed 0 --fp16
Evaluate released checkpoint
CKPT="$ITC_CHECKPOINT_ROOT/waffleiron_${ITC_COORDINATES}_best_val_miou.pt"
TEST_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/WaffleIron_test_best"
cd "$ITC_CODE_ROOT/WaffleIron"
PYTHONPATH="$PWD:${PYTHONPATH:-}" python -u eval_itc.py \
--config configs/WaffleIron-48-256__itc.yaml \
--path_dataset "$ITC_DATASET" --ckpt "$CKPT" --phase test \
--run_dir "$TEST_DIR" --batch_size 1 --num_workers 8 --fp16
Train
conda activate pointcept
PROJECT="$ITC_CODE_ROOT/Pointcept"
RUN_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/PointTransformerV3"
cd "$PROJECT"
PYTHONPATH="$PROJECT:${PYTHONPATH:-}" python -u tools/train.py \
--num-gpus 1 --config-file configs/itc/semseg-pt-v3m1-0-itc.py \
--options save_path="$RUN_DIR" data.train.data_root="$ITC_DATASET" \
data.val.data_root="$ITC_DATASET" data.test.data_root="$ITC_DATASET"
Evaluate released checkpoint
CKPT="$ITC_CHECKPOINT_ROOT/ptv3_${ITC_COORDINATES}_best_val_miou.pt"
TEST_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/PointTransformerV3_test_best"
cd "$ITC_CODE_ROOT/Pointcept"
PYTHONPATH="$PWD:${PYTHONPATH:-}" python -u tools/test.py \
--num-gpus 1 --config-file configs/itc/semseg-pt-v3m1-0-itc.py \
--options save_path="$TEST_DIR" weight="$CKPT" \
data.test.data_root="$ITC_DATASET" data.test.split=test
Train
conda activate harpnext
PROJECT="$ITC_CODE_ROOT/HARPNeXt"
RUN_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/HARPNeXt"
cd "$PROJECT"
PYTHONPATH="$PROJECT:${PYTHONPATH:-}" python -u main.py \
--net harpnext --dataset itc --path_dataset "$ITC_DATASET" \
--mainconfig configs/main/main-config-itc.yaml \
--netconfig configs/net/harpnext-itc.yaml --log_path "$RUN_DIR" \
--gpu "$GPU_ID" --seed 0 --fp16
Evaluate released checkpoint
CKPT="$ITC_CHECKPOINT_ROOT/harpnext_${ITC_COORDINATES}_best_val_miou.pt"
TEST_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/HARPNeXt_test_best"
cd "$ITC_CODE_ROOT/HARPNeXt"
PYTHONPATH="$PWD:${PYTHONPATH:-}" python -u main.py \
--net harpnext --dataset itc --path_dataset "$ITC_DATASET" \
--mainconfig configs/main/main-config-itc.yaml \
--netconfig configs/net/harpnext-itc.yaml --log_path "$TEST_DIR" \
--checkpoint "$CKPT" --gpu "$GPU_ID" --seed 0 --fp16 \
--eval --eval-phase test --restart
Train
conda activate salsanext
PROJECT="$ITC_CODE_ROOT/SalsaNext"
RUN_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/SalsaNext"
cd "$PROJECT/train/tasks/semantic"
python -u train.py --dataset "$ITC_DATASET" \
--arch_cfg "$PROJECT/salsanext_itc.yaml" \
--data_cfg "$PROJECT/train/tasks/semantic/config/labels/itc.yaml" \
--log "$RUN_DIR" --name "salsanext_itc_${ITC_COORDINATES}" \
--run-dir-exact
Evaluate released checkpoint
CKPT="$ITC_CHECKPOINT_ROOT/salsanext_${ITC_COORDINATES}_best_val_miou.pt"
TEST_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/SalsaNext_test_best"
PROJECT="$ITC_CODE_ROOT/SalsaNext"
cd "$PROJECT"
python -u eval_itc.py --dataset "$ITC_DATASET" \
--arch-cfg "$PROJECT/salsanext_itc.yaml" \
--data-cfg "$PROJECT/train/tasks/semantic/config/labels/itc.yaml" \
--checkpoint "$CKPT" --run-dir "$TEST_DIR" --split test --workers 8
Train
conda activate cylinder3d
PROJECT="$ITC_CODE_ROOT/Cylinder3D"
RUN_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/Cylinder3D"
cd "$PROJECT"
python -u train_cylinder_asym.py -y config/itc.yaml \
--dataset-root "$ITC_DATASET" --run-dir "$RUN_DIR" --seed 0
Evaluate released checkpoint
CKPT="$ITC_CHECKPOINT_ROOT/cylinder3d_${ITC_COORDINATES}_best_val_miou.pt"
TEST_DIR="$ITC_RUN_ROOT/$ITC_COORDINATES/Cylinder3D_test_best"
cd "$ITC_CODE_ROOT/Cylinder3D"
python -u eval_itc.py -y config/itc.yaml \
--dataset-root "$ITC_DATASET" --checkpoint "$CKPT" \
--run-dir "$TEST_DIR" --split test --batch-size 1 --num-workers 8