Pointcept icon indicating copy to clipboard operation
Pointcept copied to clipboard

Sncf mls dataset

Open trns1997 opened this issue 4 months ago • 3 comments

Closes #498

  • [x] Add SparseUNet config
  • [x] Add example usage to README for sparseUNet
  • [x] Add strength as input channel
  • [x] Add PointTransformer V3 config
  • [x] Add example usage for PT-V3

Usage

Install requirement:

pip install open3d laspy

SparseUNet

Preprocess dataset:

The preprocessing code breaks up the original pointclouds into 15x15m tiles as my pc only has a single 6GB gpu.

python pointcept/datasets/preprocessing/sncf_mls/preprocess_sncf_mls.py --dataset_root data/sncf_mls --output_root data/sncf_mls --tile_size 15 --overlap 2

Train

sh scripts/train.sh -d sncf_mls -c semseg-spunet-v1m1-0-base -n semseg-spunet-v1m1-0-base

Trained using NVIDIA RTX A3000 6GB Epochs: 50

Quantitative Results:

[2025-08-27 17:17:46,780 INFO test.py line 340 193] Val result: mIoU/mAcc/allAcc 0.5959/0.6642/0.9552
[2025-08-27 17:17:46,781 INFO test.py line 346 193] Class_0 - ground Result: iou/accuracy 0.8898/0.9242
[2025-08-27 17:17:46,781 INFO test.py line 346 193] Class_1 - vegetation Result: iou/accuracy 0.9439/0.9812
[2025-08-27 17:17:46,781 INFO test.py line 346 193] Class_2 - rail Result: iou/accuracy 0.6563/0.8484
[2025-08-27 17:17:46,781 INFO test.py line 346 193] Class_3 - poles Result: iou/accuracy 0.6053/0.6328
[2025-08-27 17:17:46,782 INFO test.py line 346 193] Class_4 - wires Result: iou/accuracy 0.8606/0.9633
[2025-08-27 17:17:46,782 INFO test.py line 346 193] Class_5 - signalling Result: iou/accuracy 0.0000/0.0000
[2025-08-27 17:17:46,782 INFO test.py line 346 193] Class_6 - fences Result: iou/accuracy 0.7931/0.9294
[2025-08-27 17:17:46,782 INFO test.py line 346 193] Class_7 - installation Result: iou/accuracy 0.0179/0.0343

Qualitative Results:

Below is a side-by-side visualization comparing the ground truth annotations with the predicted point cloud classes:

image image

Left: Annotated PointCloud (ground truth)
Right: Predicted PointCloud (model output)

PointTransformer V3

Preprocess dataset:

The preprocessing code breaks up the original pointclouds into 10x10m tiles as my pc only has a single 6GB gpu.

python pointcept/datasets/preprocessing/sncf_mls/preprocess_sncf_mls.py --dataset_root data/sncf_mls --output_root data/sncf_mls --tile_size 10 --overlap 1

Train

sh scripts/train.sh -d sncf_mls -c semseg-pt-v3m1-0-base -n semseg-pt-v3m1-0-base

Trained using NVIDIA RTX A3000 6GB Epochs: 50

Quantitative Results:

[2025-08-31 04:56:56,692 INFO test.py line 340 1617] Val result: mIoU/mAcc/allAcc 0.7427/0.7728/0.9511
[2025-08-31 04:56:56,692 INFO test.py line 346 1617] Class_0 - ground Result: iou/accuracy 0.8742/0.9143
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_1 - vegetation Result: iou/accuracy 0.9427/0.9887
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_2 - rail Result: iou/accuracy 0.5428/0.6366
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_3 - poles Result: iou/accuracy 0.7109/0.7289
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_4 - wires Result: iou/accuracy 0.6817/0.6920
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_5 - signalling Result: iou/accuracy 0.9025/0.9118
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_6 - fences Result: iou/accuracy 0.9712/0.9831
[2025-08-31 04:56:56,693 INFO test.py line 346 1617] Class_7 - installation Result: iou/accuracy 0.3159/0.3270

Qualitative Results:

Below is a side-by-side visualization comparing the ground truth annotations with the predicted point cloud classes:

image image

Left: Annotated PointCloud (ground truth)
Right: Predicted PointCloud (model output)

trns1997 avatar Aug 26 '25 12:08 trns1997

Keeping it as draft for the moment still validating the updated pipeline :)

trns1997 avatar Aug 26 '25 12:08 trns1997

ping @Yangsenqiao

trns1997 avatar Sep 09 '25 15:09 trns1997

Thanks for your contribution. I will review this PR next week.

Gofinge avatar Sep 12 '25 17:09 Gofinge