Papers › Towards End-to-End Lane Detection: an Instance Segmentation Approach

Towards End-to-End Lane Detection: an Instance Segmentation Approach

15 Feb 2018arXiv:1802.05591archive 2025-07-28

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.

PaperPDFCodeCode Syntology ran

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.

AbangLZU/lanenet-lane-detection-py2 mentioned on GitHubtfApache-2.0 report
IrohXu/lanenet-lane-detection-pytorch mentioned on GitHubpytorchMIT report
IvanVassi/LaneNet mentioned on GitHubpytorch report
MaybeShewill-CV/MNN-LaneNet mentioned on GitHubtf report
MaybeShewill-CV/lanenet-lane-detection mentioned on GitHubtfApache-2.0 report
SeungyounShin/LaneNet mentioned on GitHubpytorch report
billpsomas/Lane_Detection_PyTorch mentioned on GitHubpytorch report
cv-team/lane_detection_ML mentioned on GitHubtfnot reachable when probed 2026-09-18 — repositories for recent papers often appear after camera-ready report
harryhan618/LaneNet mentioned on GitHubpytorch report
huaimeng97/LaneNet mentioned on GitHubtfApache-2.0 report
klintan/pytorch-lanenet mentioned on GitHubpytorchMIT report
minghanz/LaneNet mentioned on GitHubtfApache-2.0 report
ms5898/LaneNet-PyTorch mentioned on GitHubpytorchGPL-3.0 report
nikkkkhil/lane-detection-using-lanenet mentioned on GitHubtfApache-2.0 report
peterhong27/x-crop mentioned on GitHubtf report
stesha2016/lanenet-enet-hnet mentioned on GitHubtfApache-2.0 report
windwithforce/lane-detection mentioned on GitHubtfApache-2.0 report

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.

2ran · honoured contract
1ran · violated contract
31unverified

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.

minmax_scale stesha2016/lanenet-enet-hnet/lanenet_hnet_predict.py community (archive-listed) ran · honoured contract fingerprinted Apache-2.0 (permissive) · 1971608da6ee2771 · report
trans_to_cuda IrohXu/lanenet-lane-detection-pytorch/model/lanenet/train_lanenet.py community (archive-listed) ran · honoured contract fingerprinted MIT (permissive) · 7a27709bcab8b8f3 · report
R_pitch minghanz/LaneNet/write_ipm_yml.py community (archive-listed) unverified Apache-2.0 (permissive) · 0884d3e46f716e9e · report
R_roll minghanz/LaneNet/write_ipm_yml.py community (archive-listed) unverified Apache-2.0 (permissive) · 3507ceaedfd6c2f5 · report
R_yaw minghanz/LaneNet/write_ipm_yml.py community (archive-listed) unverified Apache-2.0 (permissive) · f99d82f51d3fa1b9 · report
adjust_gamma hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/todo_semantic_segmentation/helper.py community (archive-listed) unverified MIT (permissive) · d96578a3d1da04a2 · report
bytes_feature AbangLZU/lanenet-lane-detection-py2/data_provider/tf_io_pipline_tools.py community (archive-listed) unverified Apache-2.0 (permissive) · b69809ec726c0388 · report
cluster hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/clustering.py community (archive-listed) unverified MIT (permissive) · 861f83b2deb0beda · report
conv3x3 IrohXu/lanenet-lane-detection-pytorch/model/lanenet/backbone/deeplabv3_plus/resnet_atrous.py community (archive-listed) unverified MIT (permissive) · fd0afd75c819b7e6 · report
dice_coeff IrohXu/lanenet-lane-detection-pytorch/model/eval_function.py community (archive-listed) unverified MIT (permissive) · 8a2af0442a27e321 · report
discriminative_loss AbangLZU/lanenet-lane-detection-py2/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 183604870fe9c8d4 · report
discriminative_loss MaybeShewill-CV/lanenet-lane-detection/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · af03f9caeca5f651 · report
discriminative_loss hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/loss.py community (archive-listed) unverified MIT (permissive) · 75a431dc84e3aac9 · report
discriminative_loss stesha2016/lanenet-enet-hnet/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 289fe15b8aee7918 · report
discriminative_loss_single AbangLZU/lanenet-lane-detection-py2/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 00dec105fe4f01ce · report
discriminative_loss_single MaybeShewill-CV/lanenet-lane-detection/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 0081d5f06f6dbd99 · report
discriminative_loss_single hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/loss.py community (archive-listed) unverified MIT (permissive) · 18c0b3807b03817d · report
discriminative_loss_single stesha2016/lanenet-enet-hnet/lanenet_model/lanenet_discriminative_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 42e6180b7b1164c2 · report
evaluate_scatter_plot hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/visualization.py community (archive-listed) unverified MIT (permissive) · 310ed38742c662ef · report
get_instance_masks hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/clustering.py community (archive-listed) unverified MIT (permissive) · b2e60779cf4284a6 · report
get_trainable_variables_and_initialize hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/utils.py community (archive-listed) unverified MIT (permissive) · c56423bdcf53292c · report
get_validation_batch hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/datagenerator.py community (archive-listed) unverified MIT (permissive) · 2fd5bb4df89f9a50 · report
hnet_loss stesha2016/lanenet-enet-hnet/lanenet_model/hnet_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · c22d888dbcf4b272 · report
hnet_transformation stesha2016/lanenet-enet-hnet/lanenet_model/hnet_loss.py community (archive-listed) unverified Apache-2.0 (permissive) · 6e8cae7f5bf90dac · report
int64_feature AbangLZU/lanenet-lane-detection-py2/data_provider/tf_io_pipline_tools.py community (archive-listed) unverified Apache-2.0 (permissive) · f505a06000043773 · report
prelu stesha2016/lanenet-enet-hnet/encoder_decoder_model/enet_stage.py community (archive-listed) unverified Apache-2.0 (permissive) · 748bfd352080d1ca · report
resnet101_atrous IrohXu/lanenet-lane-detection-pytorch/model/lanenet/backbone/deeplabv3_plus/resnet_atrous.py community (archive-listed) unverified MIT (permissive) · 2e15559b9d73d461 · report
resnet50_atrous IrohXu/lanenet-lane-detection-pytorch/model/lanenet/backbone/deeplabv3_plus/resnet_atrous.py community (archive-listed) unverified MIT (permissive) · 05ccc649d997c21e · report
save_instance_masks hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/clustering.py community (archive-listed) unverified MIT (permissive) · 2016683bf4251f65 · report
spatial_dropout hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/enet.py community (archive-listed) unverified MIT (permissive) · cbb808498994f295 · report
spatial_dropout stesha2016/lanenet-enet-hnet/encoder_decoder_model/enet_stage.py community (archive-listed) unverified Apache-2.0 (permissive) · b3a22ff74e021b94 · report
unpool hq-jiang/instance-segmentation-with-discriminative-loss-tensorflow/enet.py community (archive-listed) unverified MIT (permissive) · a53416ca000946a2 · report
unpool stesha2016/lanenet-enet-hnet/encoder_decoder_model/enet_stage.py community (archive-listed) unverified Apache-2.0 (permissive) · cc97231448e8fa54 · report
args_str2bool identical code first harvested elsewhere ran · violated contract licence of this copy not recorded · eba8919c2ae4a92f · report

Tasks

Instance SegmentationLane DetectionSemantic Segmentation

Results from the paper archive 2025-07-28

TaskDatasetModelMetricValueRank at snapshotLeaderboardReport
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