Topic 04
The asphalt edge
The edge isn't an object standing on the road — it's the boundary of the road itself. And since we already extract the road surface, step one is nearly free: trace its outline.
The Autobahn twist: usually no curb
Most textbook "road edge" methods hunt for the height step of a kerb. On the German motorway that step usually isn't there — the asphalt simply meets gravel or grass at the same height. So the height signal, the star of the curb literature, is benched.27 The edge is still perfectly visible — but as a change in texture, not height.
Which signals are reliable?
| Signal | Useful here? |
|---|---|
| Roughness (smooth vs bumpy) | ✅ Strongest cue on a curbless edge |
| Point density | ✅ Changes at gravel / vegetation |
| Slope | ◐ Helps at gutters & embankments |
| Brightness (asphalt is darker) | ◐ Only locally — never as a fixed threshold30 |
| Height step | ✗ Usually absent on the Autobahn |
The brightness caveat matters: laser brightness depends on distance, angle and the sensor itself, so the same asphalt can read light in one scan and dark in another. "This side is darker than that side, right here" is safe; "asphalt is below value X everywhere" is a trap.30
The proposed pipeline
- Outline the road surface we already extract — draw the boundary of the surface points. A good first draft for free.
- Walk along the road and refine — every metre, look at a thin slice across the road and snap the edge to the strongest roughness / density / slope change.
- Smooth & simplify — tidy the wobble and thin the points into clean left/right lines (standard Python: SciPy, Shapely).
- Export CAD polylines — the same deliverable format as our road markings.