Teaching a Computer to Color Highway Point Clouds
Summary
We researched how to build our own version of Pointly's highway classifier — software that takes a raw laser scan of a highway and automatically labels every point: this is road, this is a guardrail, this is a tree. Verdict:
- Feasible in ~2 months with one good graphics card and tools we already know (Python, PyTorch-based open-source frameworks).
- The algorithm is not the hard part — excellent free, commercially usable models exist. The training data is. Most famous public datasets legally forbid commercial use; we verified which ones don't.
- Classes nobody publishes data for (guardrails, drains, noise barriers) we must label ourselves — but research shows labeling ~5% of the data gets ~95% of the quality[1][2], so a few km is enough. That self-made data is also exactly what makes the result ours, the same moat Pointly has.
What the system does
A survey car drives the highway and records hundreds of millions of 3D points — like an extremely dense, uncolored 3D sketch. Today, turning that into 2D CAD plans means a person manually deciding what each region is. The classifier does the first, most tedious step automatically: it assigns every point a class. Press the button to see the difference:
Downstream, our existing geometry code turns those labeled points into the CAD deliverables — edge lines, splines, symbols. The full pipeline:
Pointly — the commercial benchmark — classifies up to 90 km of highway per hour this way, trained specifically on German and Austrian highways[3]. Nothing about it is magic: it's a standard recipe of a good open model + proprietary labeled data + solid pipeline engineering.
One spec, three different problems
Our target element list (the HBW 2D-plans spec, ~30 element types) looks like one big wish list, but technically it splits into three buckets — and only the first one needs the neural network:
Surfaces & structures
Big, texture-like regions the network classifies point by point:
- road surface, other ground, sidewalks
- guardrails, fences, walls, noise barriers
- signs & gantries, poles & lights
- vegetation, slopes, trenches, bridges
Small point objects
Things with only 20–100 points each — too small for point-wise classification. Found instead as objects on top-down intensity images:
- manholes / shafts, drains
- emergency call boxes, km signs
- individual trees
Vector deliverables
No training data needed — computed from the labeled points with classical geometry:
- center/edge line splines, road edges
- slope edges, trench bottoms, tree lines
- elevation annotations, cadastre refs
Our current classical road-marking extraction (intensity thresholding) stays — for markings it is still the standard, reliable approach in the literature[4][5], and the results get fused at the end.
How the machine learns — and why we don't need much labeled data
Think of the network as a junior draftsman. You don't teach them from zero: they arrive knowing what roads generally look like (pre-training on public datasets), you show them a few km of our highways done correctly (fine-tuning), and then they work while you only correct mistakes, which they learn from (the correction loop, "active learning"[6]):
The striking research result: dense labeling of everything is unnecessary. Peer-reviewed studies consistently show you keep almost all quality with a tiny fraction of labels:
Quality kept vs. labeling effort (% of fully-labeled model quality)
Practically: annotate a handful of representative kilometres once (about 1–2 person-weeks with a good tool and machine pre-labels — pre-labeling alone speeds annotation ~6×[7][8]), and the correction loop does the rest.
The data problem — the real finding of this research
Everyone assumes the famous academic datasets are free to use. They are — for research only. For a commercial product, the license is the gate. We verified each candidate (2026-07-10):
✔ Commercially usable safe
HelixNet — 10 billion labeled points, CC-BY-4.0 · verified on Zenodo [9] PandaSet — 37 label classes · "academic and commercial use" per official site [10] ZOD (Volvo/Zenseact) — lane markings, signs · CC-BY-SA-4.0, commercial explicitly OK [11] National aerial scans — Switzerland ✔ verified; NL/German states very likely · free labels for ground, vegetation, buildings, bridges [12][13][14] Our own unlabeled scans — self-supervised pre-training · zero license risk, perfectly matches our domain [15]⚠ Unclear — check first verify
DALES — aerial, ready-made configs · license page unreachable [16] nuScenes · commercial program exists — would need to ask Motional [17] A2D2 (Audi) — German roads · "NoDerivatives" clause, needs legal review [18] Rail datasets (OSDaR23 …) · guardrail/pole-like classes, licenses unverified [19]What it takes
Model choice in one sentence: start with Superpoint Transformer[28] (built exactly for huge survey scans, runs on one GPU, MIT license) and keep the heavyweight Point Transformer V3[31] as the accuracy benchmark — both are Python frameworks whose configs read like normal engineering code, no PhD required.
Azure: what we already have vs. the one thing to request
| Compute | Status | What it's good for |
|---|---|---|
Existing Azure ML cluster — 12 nodes × Standard_NC4as_T4_v3 (1× Tesla T4 16 GB, 4 vCPU, 28 GB RAM; $0.66/h per node, autoscales 0→12) |
have it | Covers most of the plan already. Superpoint Transformer fine-tuning fits (the framework ships official 11 GB-GPU configs[27]; expect ~3–5× slower than an A100, still hours per run). And for production inference the 12 autoscaling workers are ideal — one tile per node is exactly the Pointly-style parallelism. Caveat: the CPU-heavy preprocessing should run as its own parallel step (only 4 vCPU per node[34]). |
One training node — Standard_NC24ads_A100_v4 (1× A100 80 GB), ideally as Spot |
request | Needed only for the Point Transformer V3 accuracy-benchmark experiments: PTv3's fast mode requires FlashAttention[30], which needs an Ampere-or-newer GPU[32] — the T4 generation predates that, so PTv3 on T4 falls back to a slow mode not worth training on. Cost frame: the whole T4 cluster at full tilt is $7.92/h, so one A100 Spot node[33] for training runs is often cheaper per finished experiment. |
pip install of the two frameworks. LAS tiles live in Blob storage exactly like our existing ACC cache; preprocessed tiles get staged to the node's local disk. Multi-GPU training (PTv3's official 4-GPU outdoor configs) is not part of this plan.The 8-week plan
Honest risks & open questions
- No published proof of our exact scenario. "A few km of fine-tuning → production quality on survey-grade highway scans" is well supported by adjacent evidence but not by a directly comparable case study. Week 1–3 exists to test precisely this cheaply.
- Scanner differences matter. Public data comes from different sensors (aerial, car roof lidars); density and intensity behave differently. Known fixes exist (resampling, intensity normalization, adaptation techniques worth up to +20 quality points[35][36]), but budget time for them.
- Some licenses still unverified (DALES, French national lidar, rail datasets) — a small follow-up task, not a blocker.
- Using Pointly's free tier output as training pre-labels is likely not allowed (and free accounts can't export point clouds anyway[37]). Use it only as a quality benchmark to beat.
Mini-glossary (the only 6 terms you need)
- Point cloud — millions of measured 3D points (x, y, z + reflectivity), the raw output of a laser scanner.
- Semantic segmentation — assigning a class label to every point. The colored picture at the top.
- Pre-training / fine-tuning — first teach general road knowledge on public data, then specialize on a small sample of our own.
- Active learning — the model asks a human to label only what it's unsure about; each round of corrections retrains it.
- Intensity — how strongly a surface reflects the laser. Paint reflects far more than asphalt — this is why road markings are easy for classical code.
- mIoU — the standard 0–100 quality score for segmentation (overlap between predicted and true regions, averaged over classes). Good highway models score ~70–80 on public benchmarks.
References
- Hu et al., LiDAL: Inter-frame Uncertainty Based Active Learning for 3D LiDAR Semantic Segmentation, ECCV 2022 — arXiv:2211.05997
- Unal, Dai, Van Gool, Scribble-Supervised LiDAR Semantic Segmentation (ScribbleKITTI), CVPR 2022 — arXiv:2203.08537
- Pointly GmbH, Point Cloud Classifier for Highways, 03.10.2023 — pointly.ai (accessed 2026-07-10)
- Road-marking segmentation from LiDAR reflectivity (adaptive Otsu thresholding, highway experiments) — arXiv:2211.01105
- Lane-level map generation via multi-region Otsu thresholding on LiDAR intensity — arXiv:2101.05066
- Wu et al., ReDAL: Region-based and Diversity-aware Active Learning for Point Cloud Semantic Segmentation, ICCV 2021 — arXiv:2107.11769
- Wang, Wu, Wu, Keutzer, LATTE: Accelerating LiDAR Point Cloud Annotation, IEEE ITSC 2019 — arXiv:1904.09085
- Zhang et al., PALF: Pre-Annotation and Camera-LiDAR Late Fusion for the Easy Annotation of Point Clouds — arXiv:2304.08591
- Loiseau, Aubry, Landrieu, Online Segmentation of LiDAR Sequences (HelixNet), ECCV 2022 — arXiv:2206.08194 · license: Zenodo, CC-BY-4.0
- Xiao et al., PandaSet: Advanced Sensor Suite Dataset for Autonomous Driving, IEEE ITSC 2021 — arXiv:2112.12610 · license statement: pandaset.org
- Alibeigi et al., Zenseact Open Dataset, ICCV 2023 — arXiv:2305.02008 · license: zod.zenseact.com/license (CC-BY-SA-4.0)
- swisstopo, Terms of use for free geodata and geoservices — swisstopo.admin.ch (commercial use permitted with attribution; accessed 2026-07-10)
- AHN (Actueel Hoogtebestand Nederland), Open data — ahn.nl/open-data ("free and without restrictions"; formal license name not stated on page)
- GovData, Datenlizenz Deutschland – Zero – 2.0 — govdata.de/dl-de/zero-2-0 (explicitly permits commercial use)
- Wu et al., Sonata: Self-Supervised Learning of Reliable Point Representations, CVPR 2025 — arXiv:2503.16429 (note: released weights CC-BY-NC; approach reproducible on own data)
- Varney, Asari, Graehling, DALES: A Large-scale Aerial LiDAR Data Set, CVPRW 2020 — arXiv:2004.11985 (license unverified as of 2026-07-10)
- nuScenes / Motional, Terms of Use — nuscenes.org/terms-of-use (page not machine-readable during research; commercial licensing offered separately)
- Audi, A2D2 dataset download & license — a2d2.audi/en/download (CC-BY-ND 4.0)
- OSDaR23: Open Sensor Data for Rail 2023 — arXiv:2305.03001 (data-portal license page unreachable during research)
- Tan et al., Toronto-3D, CVPRW 2020 — arXiv:2003.08284 · license: GitHub, CC-BY-NC-4.0
- Roynard, Deschaud, Goulette, Paris-Lille-3D, IJRR 2018 — arXiv:1712.00032 · license: npm3d.fr (CC-BY-NC-ND-3.0)
- Behley et al., SemanticKITTI, ICCV 2019 — arXiv:1904.01416 · license: semantic-kitti.org (CC-BY-NC-SA)
- Liao, Xie, Geiger, KITTI-360, TPAMI 2022 — arXiv:2109.13410 · license: cvlibs.net (CC-BY-NC-SA-3.0)
- Waymo, Waymo Open Dataset — License Agreement for Non-Commercial Use — waymo.com/open/terms
- Argoverse, About / Terms — argoverse.org/about.html (CC-BY-NC-SA-4.0; forbids training commercial models)
- ONCE dataset, Terms of Use — once-for-auto-driving.github.io (non-commercial only)
- Superpoint Transformer repository (MIT; 11 GB & 32 GB GPU configs, corridor tiling) — github.com/drprojects/superpoint_transformer
- Robert, Raguet, Landrieu, Efficient 3D Semantic Segmentation with Superpoint Transformer, ICCV 2023 — arXiv:2306.08045
- Robert, Raguet, Landrieu, Scalable 3D Panoptic Segmentation As Superpoint Graph Clustering (SuperCluster) — arXiv:2401.06704
- Pointcept repository (MIT; PTv3 reference implementation) — github.com/Pointcept/Pointcept
- Wu et al., Point Transformer V3: Simpler, Faster, Stronger, CVPR 2024 — arXiv:2312.10035
- FlashAttention repository — supported GPU generations (Ampere/Ada/Hopper) — github.com/Dao-AILab/flash-attention
- Microsoft Azure, NC A100 v4-series VM sizes — learn.microsoft.com
- Microsoft Azure, NCas T4 v3-series VM sizes — learn.microsoft.com · node specs also from our Azure ML workspace (12-node cluster, polandcentral)
- Jiang, Saripalli, LiDARNet: A Boundary-Aware Domain Adaptation Model for Point Cloud Semantic Segmentation — arXiv:2003.01174
- Wang et al., Test-time adaptation for geospatial point cloud semantic segmentation — arXiv:2407.06043
- Pointly, User Guide (LAS/LAZ support, classifier overwrite, free-tier export limits) — PDF · pricing
Full research trail with all verification notes: internal vault note 2026-07-10 Highway MLS semantic segmentation - models, public datasets and training strategy.