This repository provides an implementation of a simple Multi-Layer Perceptron (MLP) baseline on the task of late fusing two LiDAR softmax outputs. Before using this baseline, results from the 2 other baselines are required. This repository includes:
Per-zone preprocessing of two LiDAR softmax files (image_vote and spt) into combined feature tensors
A lightweight SimpleMLP model that concatenates the two softmax vectors per point
Training, validation and inference loops
Weights & Biases integration for real-time experiment tracking
This implementation serves as one of the official baselines for GridNet-HD.
ignore_index: label to ignore during loss computation
logging
Output and checkpoint configuration.
save_dir: where to store logs and model weights
save_freq: save checkpoint every N epochs
wandb
Weights & Biases experiment tracking.
project: W&B project name
entity: your W&B team or username
Environment
Component
Details
GPU
NVIDIA A40 (48 GB VRAM)
CUDA Version
12.x
OS
Ubuntu 22.04 LTS
RAM
256 GB
Dataset structure
The structure of the GridNet-HD dataset remains the same (see GridNet-HD dataset for more information)
Raw zones (36 folders) are completed with the results from the 2 other baselines (soft-log LiDAR from ImageVote and SPT):
/path/to/data/
├── t1z5b/
│ ├── lidar_softmax_image_vote/t1z4_with_softmax.las # LiDAR with soft-log from ImageVote baseline
│ ├── lidar_softmax_spt/t1z4_with_softmax.las # LiDAR with soft-log from SPT baseline
│ └── lidar/t1z4.las # ground-truth
├── …
└── split.json # maps zones → train/val/test
This will concatenate features from SPT soft-log and ImageVote soft-log, apply remapping, and prepare files for training.
Training
python main.py --mode train --config config.yaml
Trains the MLP late fusion model using the dataset and settings defined in config.yaml. Checkpoints and logs are saved under logging.save_dir.
Validation
python main.py --mode val --config config.yaml --weights best_model.pt
Evaluates the model on the validation set and prints out per-class IoUs and mIoU.
Test (Las export)
python main.py --mode test --config config.yaml --weights best_model.pt
Runs inference on the test set and exports the original .las files with the field classification, which contains the predicted class label for each point.
Weights & Biases Integration
Login:
wandb login
Set logging.wandb.project & .entity in config.yaml.
All training and validation metrics will be tracked live.
License
This project is released under the MIT License.
Contact
For questions, issues, or contributions, please open an issue on the repository.
Citation
If you use this repo in research, please cite:
@misc{gridnet-hd-dataset,
title={GridNet-HD: A High-Resolution Multi-Modal Dataset for LiDAR-Image Fusion on Power Line Infrastructure},
author={Antoine Carreaud and Shanci Li and Malo De Lacour and Digre Frinde and Jan Skaloud and Adrien Gressin},
year={2026},
eprint={2601.13052},
url={https://arxiv.org/abs/2601.13052},
}