Papers › Towards End-to-End Lane Detection: an Instance Segmentation Approach
Towards End-to-End Lane Detection: an Instance Segmentation Approach
Davy Neven, Bert de Brabandere, Stamatios Georgoulis, Marc Proesmans, Luc van Gool
Modern cars are incorporating an increasing number of driver assist features, among which automatic lane keeping. The latter allows the car to properly position itself within the road lanes, which is also crucial for any subsequent lane departure or trajectory planning decision in fully autonomous cars. Traditional lane detection methods rely on a combination of highly-specialized, hand-crafted features and heuristics, usually followed by post-processing techniques, that are computationally expensive and prone to scalability due to road scene variations. More recent approaches leverage deep learning models, trained for pixel-wise lane segmentation, even when no markings are present in the image due to their big receptive field. Despite their advantages, these methods are limited to detecting a pre-defined, fixed number of lanes, e.g. ego-lanes, and can not cope with lane changes. In this paper, we go beyond the aforementioned limitations and propose to cast the lane detection problem as an instance segmentation problem - in which each lane forms its own instance - that can be trained end-to-end. To parametrize the segmented lane instances before fitting the lane, we further propose to apply a learned perspective transformation, conditioned on the image, in contrast to a fixed "bird's-eye view" transformation. By doing so, we ensure a lane fitting which is robust against road plane changes, unlike existing approaches that rely on a fixed, pre-defined transformation. In summary, we propose a fast lane detection algorithm, running at 50 fps, which can handle a variable number of lanes and cope with lane changes. We verify our method on the tuSimple dataset and achieve competitive results.
In Syntology Open this paper in Syntology's Atlas, the map of the papers in Syntology's graph and their citations.
For agents, Syntology's MCP tool lists every function and class Syntology harvested from this paper and whether it ran (how to connect): get_harvested_code_for_paper(arxiv_id="1802.05591")
Code
Syntology Ran 3 of 34 code samples harvested from 6 repositories linked to this paper; 31 have no recorded run. Of those that ran: 2 ran · honoured contract; 1 ran · violated contract.
By repository: community (archive-listed): 33 samples from 6 repositories, 2 ran; 1 identical to code first harvested elsewhere. The run record, sample by sample. “Ran” means executed on a synthesized input, not that the code is correct or reproduces the paper.
22 repositories listed; official and paper-mentioned ones first.
Repository list and official/mentioned flags are the archive's, frozen 2025-07-28. Reachability, where shown, is from one Syntology probe window (2026-09-16 to 2026-09-18); repositories not probed show nothing. GitHub stars are not tracked.
Code Syntology ran Syntology
34 samples harvested; 3 ran; 2 honoured the contract we drafted; 31 have no recorded run. Read from Syntology's graph 2026-09-24; that is when this build read the record, not when the samples ran.
Licence: 1 of the 34 samples is pointer only, meaning Syntology does not serve that copy's text. This page shows no code text for any sample; each one links to its file in the repository.
Harvested from 6 repositories linked to this paper, official or community; each sample names its own and says which. Some samples are identical code Syntology first harvested from another repository; for those, this paper's copy is not located and its licence is not recorded. “Ran” means the sample executed on a synthesized input. It does not mean the output is correct, and nothing here reproduces the paper's results. “Honoured” and “violated” refer to a contract Syntology drafted from the code itself; “our draft was wrong” and “fixture could not drive it” are failures of Syntology's instrument, not of the code.
Each sample ends with its code_sha256, Syntology's identity for that exact code. An agent fetches the stored sample with Syntology's MCP tool get_code(code_sha256="…") (how to connect); click an identity to copy that call.
Repository labels, per sample. official repository: The archive marks this repository official for the paper. named in the paper: The archive records that the paper mentions this repository; it is not marked official. community (archive-listed): In the archive's code links for this paper, not marked official and not recorded as mentioned in the paper. found in paper text by Syntology: Syntology found this repository in the paper's own text; whether it is the authors' implementation is not asserted. community: Not in the archive's code links for this paper; a community repository Syntology harvested. Samples from a repository marked official are listed first. Licence labels name the repository's licence as recorded at harvest. “Pointer only” means Syntology does not serve that copy's text, for one of four reasons: no licence file was found; the licence was not identified; the licence is recorded as permissive but that copy's record is not marked cleared; or the licence is outside the permissive list Syntology serves text under (MIT, Apache-2.0, BSD and similar). Some licences outside that list permit redistribution, such as WTFPL, and GPL-3.0 under its conditions; they are simply not on the list. Hover a licence label for the reason. File links open the file on GitHub at the default branch, which may have changed since the harvest.
1971608da6ee2771 · report
7a27709bcab8b8f3 · report
0884d3e46f716e9e · report
3507ceaedfd6c2f5 · report
f99d82f51d3fa1b9 · report
d96578a3d1da04a2 · report
b69809ec726c0388 · report
861f83b2deb0beda · report
fd0afd75c819b7e6 · report
8a2af0442a27e321 · report
183604870fe9c8d4 · report
af03f9caeca5f651 · report
75a431dc84e3aac9 · report
289fe15b8aee7918 · report
00dec105fe4f01ce · report
0081d5f06f6dbd99 · report
18c0b3807b03817d · report
42e6180b7b1164c2 · report
310ed38742c662ef · report
b2e60779cf4284a6 · report
c56423bdcf53292c · report
2fd5bb4df89f9a50 · report
c22d888dbcf4b272 · report
6e8cae7f5bf90dac · report
f505a06000043773 · report
748bfd352080d1ca · report
2e15559b9d73d461 · report
05ccc649d997c21e · report
2016683bf4251f65 · report
cbb808498994f295 · report
b3a22ff74e021b94 · report
a53416ca000946a2 · report
cc97231448e8fa54 · report
eba8919c2ae4a92f · report
Tasks
Results from the paper archive 2025-07-28
| Task | Dataset | Model | Metric | Value | Rank at snapshot | Leaderboard | Report |
|---|---|---|---|---|---|---|---|
| Lane Detection | TuSimple | LaneNet | Accuracy | 96.4% | #19 of 43 | Archive leaderboard | report |
| Lane Detection | TuSimple | LaneNet | F1 score | 94.80 | #19 of 43 | Archive leaderboard | report |
Ranks are positions in the archive's leaderboards as they stood at the 2025-07-28 snapshot. Results published since then are not among these rows, so a rank here is not a current standing.
Report a problem or propose a change · a person checks every report against the paper or source before anything changes; decisions are listed on /corrections