Other
English
File size: 6,017 Bytes
26225c5
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
---
license: mit
datasets:
- heig-vd-geo/GridNet-HD
language:
- en
metrics:
- mean_iou
---
# GridNet-HD Baseline: Super Point Transformer segmentation

## Overview

This repository is a fork of the [SuperPoint Transformer (SPT)](https://github.com/drprojects/superpoint_transformer) proposed by Robert et al., adapted to support training and inference on the **GridNet-HD** dataset.

Our version introduces the following modifications:

- Integration with the **GridNet-HD** dataset structure.
- Support for exporting **softmax logits per class and per point**, used as inputs for the **third fusion baseline** in our NeurIPS submission.
- Support for full resolution inference.

This implementation serves as one of the **official baselines** provided for GridNet-HD.

For more information on the original SPT architecture, training options, model internals and hyperparameters, please refer to the [official SuperPoint Transformer repository](https://github.com/drprojects/superpoint_transformer).

---

## Table of Contents

* [Configuration](#configuration)
* [Environment](#environment)
* [Dataset Structure](#dataset-structure)
* [Installation](#setup--installation)
* [Supported Modes](#supported-modes)
* [Results](#results)
* [Pretrained Weights](#pretrained-weights)
* [Usage Examples](#usage-examples)
* [License](#license)
* [Contact](#contact)
* [Citation](#citation)

---

## Configuration

The modified configuration files for training on GridNet-HD are available in `config/datamodule/semantic` and `config/experiment/semantic` directory. These include:

- dataset paths compatible with GridNet-HD structure,
- number of classes,
- class mappings.

For all other training parameters (optimizer, scheduler, etc.), we use the defaults from the original SPT repo.


---

## Environment

The following environment was used to train and evaluate the baseline model (detailed requirements are provided by the spt repo).

| Component       | Details                          |
| --------------- | -------------------------------- |
| GPU             | NVIDIA A40 (48 GB VRAM)          |
| CUDA Version    | 12.x                             |
| OS              | Ubuntu 22.04 LTS                 |
| RAM             | 256 GB     |

---

## Dataset Structure

The [GridNet-HD dataset](https://huggingface.co/datasets/heig-vd-geo/GridNet-HD) dataset must be structured as follows for compatibility with this implementation:

```
project_root/
β”œβ”€β”€ data/
β”‚   └── raw/
β”‚       β”œβ”€β”€ train/
β”‚       β”‚   β”œβ”€β”€ t1z4/
β”‚       β”‚   β”‚   └── lidar/
β”‚       β”‚   β”‚       └── t1z4.las
β”‚       β”‚   β”œβ”€β”€ t2z5/
β”‚       β”‚   β”‚   └── lidar/
β”‚       β”‚   β”‚       └── t2z5.las
β”‚       β”‚   └── ...
β”‚       β”œβ”€β”€ val/
β”‚       β”‚   β”œβ”€β”€ t1z5b/
β”‚       β”‚   β”‚   └── lidar/
β”‚       β”‚   β”‚       └── t1z5b.las
β”‚       β”‚   └── ...
β”‚       └── test/
β”‚           β”œβ”€β”€ t1z4/
β”‚           β”‚   └── lidar/
β”‚           β”‚       └── t1z4.las
β”‚           └── ...
```


---

## Setup & Installation

1. **Clone the repository**:
 
   ```bash
   git clone https://huggingface.co/heig-vd-geo/SPT_GridNet-HD_baseline
   cd SPT_GridNet-HD_baseline
   ```

2. **Simply run the installation script** to set up the required environment (given by the spt repo):

```bash
bash install.sh
```

---

## Supported Modes

The following modes are supported in this fork:

- Training on GridNet-HD dataset (with official train.py from spt repo)

- Validation using the same split logic (with officiel eval.py from spt.py)

- Inference on selected split (with inference.py)

- Exporting per-point softmax logits (with inference.py)

For additional informations, refer to [the original SPT documentation](https://github.com/drprojects/superpoint_transformer).

---

### Results

The following table summarizes the per-class Intersection over Union (IoU) scores on the test set at 3D level for the best model. 

| Class                     | IoU (Test set) (%)|
|---------------------------|------------|
| Pylon                     |   92.75     |
| Conductor cable           |   91.05     |
| Structural cable          |   70.51     |
| Insulator                 |   80.60     |
| High vegetation           |   85.15     |
| Low vegetation            |   55.91     |
| Herbaceous vegetation     |   84.64     |
| Rock, gravel, soil        |   40.63     |
| Impervious soil (Road)    |   73.57     |
| Water                     |   3.69      |
| Building                  |   57.38     |
| **Mean IoU (mIoU)**       |   **66.90** |


### Pretrained Weights

πŸ”— **Pretrained weights** for the best performing model are available for download directly in this repo.


---

## Usage Examples

- Train on GridNet-HD:
```
python src/train.py experiment=semantic/gridnet
```

- Evaluate on GridNet-HD:
```
python src/eval.py experiment=semantic/gridnet  ckpt_path=/path/to/your/checkpoint.ckpt
```
- Inference to obtain full-resolution predictions on test point clouds:
```
python inference.py --mode inference --split test --weights path/to/model.ckpt --root_dir /path/to/data/gridnet/raw
```

- Export Softmax Logits for all splits:
```
python inference.py --mode export_log --weights path/to/model.ckpt --root_dir /path/to/data/gridnet/raw
```

This will export .las files with added sof_log0, sof_log1, ..., sof_logN fields representing softmax scores per class and per point to train the 3rd baseline.

---

## License

This project is open-sourced under the MIT License. The original SuperPoint Transformer repository is licensed under the same MIT Licence.

---

## Contact

For questions, issues, or contributions, please open an issue on the repository.


---

## Citation

If you use this repo in research, please cite:

    GridNet-HD: A High-Resolution Multi-Modal Dataset for LiDAR-Image Fusion on Power Line Infrastructure
    Masked Authors
    Submitted to NeurIPS 2025.