1]School of Data Science, Fudan University

2]Huawei Noah’s Ark Lab

LaneCorrect: Self-supervised Lane Detection

\fnmMing \surNie    \fnmXinyue \surCai    \fnmHang \surXu    \fnmLi \surZhang [ [
Abstract

Lane detection has evolved highly functional autonomous driving system to understand driving scenes even under complex environments. In this paper, we work towards develo** a generalized computer vision system able to detect lanes without using any annotation. We make the following contributions: (i) We illustrate how to perform unsupervised 3D lane segmentation by leveraging the distinctive intensity of lanes on the LiDAR point cloud frames, and then obtain the noisy lane labels in the 2D plane by projecting the 3D points; (ii) We propose a novel self-supervised training scheme, dubbed LaneCorrect, that automatically corrects the lane label by learning geometric consistency and instance awareness from the adversarial augmentations; (iii) With the self-supervised pre-trained model, we distill to train a student network for arbitrary target lane (e.g.TuSimple) detection without any human labels; (iv) We thoroughly evaluate our self-supervised method on four major lane detection benchmarks (including TuSimple, CULane, CurveLanes and LLAMAS) and demonstrate excellent performance compared with existing supervised counterpart, whilst showing more effective results on alleviating the domain gap, i.e., training on CULane and test on TuSimple.

keywords:
lane detection, self-supervised learning, autonomous driving

1 Introduction

Lane detection is a fundamental task in any autonomous driving system requiring reasoning about the shape and position of marked lanes and is of great importance for path planning, steering of vehicles and line kee** for the autonomous system. It has been extensively studied in computer vision. Given an image of road scene, the objective of lane detection is to estimate the position lane paints with the best possible accuracy. Existing approaches for lane detection focus on develo** discriminative feature representations to classify whether each pixel represents the lane and assign it to its respective instance [1, 2], or explicitly learn from pre-defined proposals and perform a detection task [3, 4, 5], both in a supervised fashion.

Nevertheless, there are still challenges to address in lane detection, including issues related to data availability and cross-domain generalization. Real-world driving scenes often undergo dramatic changes due to different camera sensors, road type, changes in illumination and background clutter. For example, a lane detector trained on the data collected in US west coast would have problem to detect the lanes at London Piccadilly circus. This severely limits their scalability. A naive solution might resolve this problem but would require more data on different types of roads, with accurate annotations even in occluded scenarios, inevitably increasing the annotation costs.

Refer to caption
Figure 1: Comparison between our self-supervised lane detection method and the supervised alternative. (a) is the supervised approach, which relies on the human annotations as supervision. (b) is our LaneCorrect, which leverages point clouds to generate noisy lane clues at first and trains a lane correction network in the self-supervised manner. No human annotations are introduced in our approach.

In this paper, we study an self-supervised learning strategy, dubbed LaneCorrect, to remedy above issue (see Figure 1). Conventional unsupervised learning methods attempt to detect lanes by using hand-crafted feature and curve fitting (e.g., hough transform [6] and B-spline fitting [7]), but with little success. Inspired by [8], we propose to detect noisy lane paints by leveraging the large-scale LiDAR point cloud in an unsupervised manner. The special material of road markers paint is always designed to reflect enough vehicle lights to be seen even in the poor light condition. It also shows a distinctive reflectivity difference between bare pavement and lane paint in LiDAR point cloud. Taking usage of this reflectivity distortion around the lane, we can extract candidate lane instances from the 3D points by using the DBSCAN [9] alongside RANSAC [10], and then predict the lanes in the 2D image plane by projecting the 3D points. We can use such noisy lane prediction as pseudo labels to train a naïve lane detector. However, the noisy labels may impact the quality of the learned lane detector. Hence, we develop a self-supervised algorithm to leverage geometric symmetries of lanes lines and reduce the perturbations of noisy label.

In view of the geometric consistency behind the low-density separation assumption [11], i.e., data points of the same cluster are likely to be of the same decision boundary, we train a self-supervised lane correction (LaneCorrect) model with the RGB image and its noisy label cues as inputs, producing a corrected label without any knowledge of ground-truth annotation. Since inductive geometric symmetries are inherent characteristics of lane annotation, multiple disturbances of the same lane label can be viewed as the multiple additive Gaussian noises applied to the same noise-free annotation. Specifically, we perturb the original pseudo label with two different augmentations and enable the network to be trained and functioned as a correction with a consistency loss. Both predictions are corrected by the network so one prediction can be utilized as another prediction’s label and vice versa. A reconstruction loss is also added to avoid collapsing to trivial solutions [12]. Furthermore, the lane mask pooling followed by a contrastive loss are augmented in the feature representation for instance similarity learning. With the self-supervised pre-trained model, we distill it to train a student network on arbitrary target lane detection dataset (e.g.TuSimple) without touching its ground-truth label, to predict the self-supervised trained model’s representation of the same image. Note we do not rely on LiDAR at the inference phase and the noisy label input to our LaneCorrect model comes from the prediction of the naïve lane detector.

The contributions of this work are as follows: (i) We show that the LiDAR view for the lane instance can be utilized as pseudo labels for lane detection and propose an unsupervised 3D lane segmentation method to predict such noisy pseudo labels; (ii) A novel self-supervised training scheme for the noisy lane correction model has been formulated by learning consistency and instance awareness from different augmentations; (iii) With the self-supervised pre-trained model, we distill to train a student network dedicates to predict lanes in arbitrary target datasets without using any annotations; (iv) Extensive experiments on four major lane detection benchmarks demonstrate that our model achieves on-par performance with the supervised rival (pretrained with ImageNet), whilst showing superior performance on alleviating the domain gap, i.e., training on CULane and test on TuSimple.

2 Related work

Unsupervised lane detection and point cloud segmentation. Early works on lane detection are based on unsupervised methods [13] with handcrafted features. They show poor performance and only tackle simple scenes and obvious lanes [6, 7]. Existing unsupervised point cloud segmentation methods can be categorized into four groups: edge-based [14, 15, 16], region growing [17, 18, 19, 20], model fitting [21, 22] and clustering-based [9, 23, 24, 25, 26, 9]. In this paper, we investigate distinctive intensity of lanes among surrounding environment under LiDAR points and propose an unsupervised 3D lane segmentation approach. We thus obtain the initial lane predictions in 2D plane by projecting the segmented 3D points.

Supervised lane detection Most existing lane detection methods are based on dense prediction approach [27, 2, 28], which treat lane detection as a pixel-level segmentation task. Recently there is a surge of interest in proposal-based methods [29, 3, 4, 5, 30, 31] to perform efficient lane detection. In addition, there are a few row-wise detection [32] and parametric prediction [33] based methods in the literature demonstrate their superiority on lane detection problem.

Learning with noisy annotation. Most existing works on training with noisy annotation employ the strategies of selecting a subset of clean labels [34, 35, 36] or leverage the output predictions of the network to correct the loss [34, 37, 38]. In this work, we introduce a novel self-supervised training scheme that automatically correct the lane labels by learning consistency and instance awareness from the geometry translation and rotation noise.

Leveraging unlabeled data. Recently, some works have explored lane detection algorithms in semi-supervised or unsupervised form. [39] proposed a UDA method from synthetic data to unlabeled target domain. [40] proposed a semi-supervised lane detection method in Hough Transform loss. To utilize native autonomous driving scenes data, we propose a novel method in leveraging unlabeled data with the aid of lidar clues.

Also, contrastive learning has recently shown great promise [41, 42, 12, 43, 44, 45, 46, 47, 48, 49] in self-supervised representation learning. Most of the works focus on the image-level representations. However, there has been a increasing interest in learning the instance similarity which is more effective in downstream tasks such as detection and segmentation [50, 51, 52]. In this paper, we propose an instance similarity learning strategy in the representation level alongside consistency learning to pre-train a lane predictions model without human labels.

3 Method

3.1 Overview

Figure 1 provides an overview of our LaneCorrect strategy. It first takes synchronous 2D images and 3D LiDAR frames as inputs. With the proposed unsupervised 3D lane segmentation algorithm, candidate lane instances are extracted from the 3D point clouds and then projected on the 2D image plane as the pseudo labels. Next, considering that the pseudo label generated by the above method has a specific noise (e.g., projection error), a self-supervised lane correction network (SLC) is trained to reduce the noise of the pseudo labels. Finally, we distill the SLC model to train a student lane detector on target domain to perform lane detection task without any annotations.

3.2 Unsupervised 3D lane segmentation

We first introduce our unsupervised 3D lane segmentation algorithm. It takes 3D point clouds as input and generate 3D lane instances in LiDAR frames, as shown in Algorithm 1.

Algorithm 1 unsupervised lane instance clustering
laneline candidates PL={(px,py,pz,pi)}subscript𝑃𝐿subscript𝑝𝑥subscript𝑝𝑦subscript𝑝𝑧subscript𝑝𝑖P_{L}=\{(p_{x},p_{y},p_{z},p_{i})\}italic_P start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT = { ( italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) }
initialization:L𝐿L\leftarrow\emptysetitalic_L ← ∅; i0𝑖0i\leftarrow 0italic_i ← 0
L0={Ci0}i=1kDBSCAN(PL,ϵ1,M1)superscript𝐿0superscriptsubscriptsuperscriptsubscript𝐶𝑖0𝑖1𝑘𝐷𝐵𝑆𝐶𝐴𝑁subscript𝑃𝐿subscriptitalic-ϵ1subscript𝑀1L^{0}=\{C_{i}^{0}\}_{i=1}^{k}\leftarrow DBSCAN(P_{L},\epsilon_{1},M_{1})italic_L start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = { italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT ← italic_D italic_B italic_S italic_C italic_A italic_N ( italic_P start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT , italic_ϵ start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_M start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT )
repeat
     ii+1𝑖𝑖1i\leftarrow i+1italic_i ← italic_i + 1
     calculate the center coordinates (xi,yi)subscript𝑥𝑖subscript𝑦𝑖(x_{i},y_{i})( italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) of Ci0subscriptsuperscript𝐶0𝑖C^{0}_{i}italic_C start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT
     for CjLsubscript𝐶𝑗𝐿C_{j}\in Litalic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ italic_L do
         calculate the center coordinates (xj,yj)subscript𝑥𝑗subscript𝑦𝑗(x_{j},y_{j})( italic_x start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT , italic_y start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) of Cjsubscript𝐶𝑗C_{j}italic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT
         if |xixj|<ϵ2subscript𝑥𝑖subscript𝑥𝑗subscriptitalic-ϵ2\lvert x_{i}-x_{j}\rvert<\epsilon_{2}| italic_x start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_x start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT | < italic_ϵ start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT and |yiyj|>ϵ3subscript𝑦𝑖subscript𝑦𝑗subscriptitalic-ϵ3\lvert y_{i}-y_{j}\rvert>\epsilon_{3}| italic_y start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT - italic_y start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT | > italic_ϵ start_POSTSUBSCRIPT 3 end_POSTSUBSCRIPT then
              CjCjCi0subscript𝐶𝑗subscript𝐶𝑗subscriptsuperscript𝐶0𝑖C_{j}\leftarrow C_{j}\cup C^{0}_{i}italic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ← italic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∪ italic_C start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT
              L0L0{Ci0}subscript𝐿0superscript𝐿0subscriptsuperscript𝐶0𝑖L_{0}\leftarrow L^{0}\setminus\{C^{0}_{i}\}italic_L start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ← italic_L start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ∖ { italic_C start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT }
              break
         end if
     end for
     L0L0{Ci0}subscript𝐿0superscript𝐿0subscriptsuperscript𝐶0𝑖L_{0}\leftarrow L^{0}\setminus\{C^{0}_{i}\}italic_L start_POSTSUBSCRIPT 0 end_POSTSUBSCRIPT ← italic_L start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT ∖ { italic_C start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT }
     LL{Ci0}𝐿𝐿subscriptsuperscript𝐶0𝑖L\leftarrow L\cup\{C^{0}_{i}\}italic_L ← italic_L ∪ { italic_C start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT }
until L0=superscript𝐿0L^{0}=\emptysetitalic_L start_POSTSUPERSCRIPT 0 end_POSTSUPERSCRIPT = ∅
for CjLsubscript𝐶𝑗𝐿C_{j}\in Litalic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ∈ italic_L do
     if count(Cj)<M2𝑐𝑜𝑢𝑛𝑡subscript𝐶𝑗subscript𝑀2count(C_{j})<M_{2}italic_c italic_o italic_u italic_n italic_t ( italic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT ) < italic_M start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT then
         LL{Cj}𝐿𝐿subscript𝐶𝑗L\leftarrow L\setminus\{C_{j}\}italic_L ← italic_L ∖ { italic_C start_POSTSUBSCRIPT italic_j end_POSTSUBSCRIPT }
     end if
end for
lane instance clusters L={Ci}i=1K𝐿superscriptsubscriptsubscript𝐶𝑖𝑖1𝐾L=\{C_{i}\}_{i=1}^{K}italic_L = { italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_K end_POSTSUPERSCRIPT

We denote the input 3D point clouds as P={(px,py,pz,pi)}𝑃subscript𝑝𝑥subscript𝑝𝑦subscript𝑝𝑧subscript𝑝𝑖P=\{(p_{x},p_{y},p_{z},p_{i})\}italic_P = { ( italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT ) }, where px,pysubscript𝑝𝑥subscript𝑝𝑦p_{x},p_{y}italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT and pzsubscript𝑝𝑧p_{z}italic_p start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT represent the 3D point coordinates in LiDAR frame, and pisubscript𝑝𝑖p_{i}italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT represents the intensity value of this point. First, we use region growing strategy [17] to segment all the input point cloud P𝑃Pitalic_P, and obtain the ground point cloud PGPsubscript𝑃𝐺𝑃P_{G}\subset Pitalic_P start_POSTSUBSCRIPT italic_G end_POSTSUBSCRIPT ⊂ italic_P. It is worth mentioning that lane paintings or road surface markings have distinctive intensity pisubscript𝑝𝑖p_{i}italic_p start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT among their surrounding environment, i.e., asphalt or cement surface with low intensity for the reason that they are painted with special materials to be clearly witnessed even during the night. Therefore, this property leads to an intensity distortion around the lane in the 3D point space. Based on this prior, we filter the ground point clouds by setting a minimum threshold τ𝜏\tauitalic_τ at the intensity to get the preliminary lane candidate points PLPGsubscript𝑃𝐿subscript𝑃𝐺P_{L}\subset P_{G}italic_P start_POSTSUBSCRIPT italic_L end_POSTSUBSCRIPT ⊂ italic_P start_POSTSUBSCRIPT italic_G end_POSTSUBSCRIPT.

For all lane candidate points, to generate 3D lane instance, we use DBSCAN [9] to cluster the segmented candidate points into k𝑘kitalic_k clusters {Ci}iksuperscriptsubscriptsubscript𝐶𝑖𝑖𝑘\{C_{i}\}_{i}^{k}{ italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT } start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_k end_POSTSUPERSCRIPT, where the auto-defined k𝑘kitalic_k represents the number of lane instances segmented by our method.

Finally, to reduce the influence of clustering noise on lane fitting, we used RANSAC [10] to perform curve fitting on each cluster Cisubscript𝐶𝑖C_{i}italic_C start_POSTSUBSCRIPT italic_i end_POSTSUBSCRIPT to obtain 3D lane proposals Y={(px,py,pz)}𝑌subscript𝑝𝑥subscript𝑝𝑦subscript𝑝𝑧Y=\{(p_{x},p_{y},p_{z})\}italic_Y = { ( italic_p start_POSTSUBSCRIPT italic_x end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_y end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_z end_POSTSUBSCRIPT ) }. These 3D lane instances Y𝑌Yitalic_Y are projected to 2D frames to generate 2D lane coordinates y={(pu,pv)}𝑦subscript𝑝𝑢subscript𝑝𝑣y=\{(p_{u},p_{v})\}italic_y = { ( italic_p start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT , italic_p start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT ) }, where pusubscript𝑝𝑢p_{u}italic_p start_POSTSUBSCRIPT italic_u end_POSTSUBSCRIPT and pvsubscript𝑝𝑣p_{v}italic_p start_POSTSUBSCRIPT italic_v end_POSTSUBSCRIPT denote the 2D pixel coordinates on 2D image plain.

Although the pseudo labels y𝑦yitalic_y have considerable accuracy, noise inevitably exists in the annotations, e.g., projection errors in the process from 3D to 2D, as well as missed and mislabelled lanes caused by clustering errors. Training with these noisy labels blindly damages the performance of the lane detectors seriously.

3.3 Self-supervised lane correction network

Refer to caption
Figure 2: Best viewed in color and lane instance number. Our LaneCorrect consists of two collaborative networks, namely online SLC (updated by gradient descend) and target SLC (updated by moving average), to consistently correct the noisy annotation. During training, two different augmented views of pseudo lane annotations are concatenated with images and fed into online and target branches, of which outputs are collected for consistency regularization and instance similarity learning. In consistency regularization, predicted lanes of two branches are constrained to map to the unique noise-free lane locations. In instance similarity learning, multi-objective contrastive learning is adopted to ensure superior lane representation ability. During testing, only online SLC is used to predict refined lanes.

Boosting noisy pseudo labels. We propose a self-supervised lane correction (SLC) network, to improve the quality of the noisy pseudo labels and boost the representation learning for lane detection. The schematic illustration of proposed SLC network is shown in Figure 2. The network takes the noisy results of unsupervised lane segmentation as inputs and performs contrastive learning to consistently correct the noisy annotations. It contains a consistency regularization module and instance similarity learning module. The details of the two modules are introduced in the following.

Consistency regularization module. We denote the noisy pseudo annotation and its counterpart, i.e., the potential ground-truth annotation as y~~𝑦\tilde{y}over~ start_ARG italic_y end_ARG and ygtsubscript𝑦𝑔𝑡y_{gt}italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT respectively, where y~{0,1}H,W~𝑦superscript01𝐻𝑊\tilde{y}\in\{0,1\}^{H,W}over~ start_ARG italic_y end_ARG ∈ { 0 , 1 } start_POSTSUPERSCRIPT italic_H , italic_W end_POSTSUPERSCRIPT and so as ygtsubscript𝑦𝑔𝑡y_{gt}italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT. And we assume the noise added to the ground-truth lane annotations, which is introduced during curve fitting and 3D-to-2D projection, as a stochastic transformation matrix s𝑠sitalic_s distributed as gaussian noise. Our goal is to learn a function G𝐺Gitalic_G, which can predict the corresponding invertible geometrical transformation matrix sTsuperscript𝑠𝑇s^{T}italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT given the input image X3×H×W𝑋superscript3𝐻𝑊X\in\mathbb{R}^{3\times H\times W}italic_X ∈ blackboard_R start_POSTSUPERSCRIPT 3 × italic_H × italic_W end_POSTSUPERSCRIPT and the cue of noisy lane labels:

G(X,y~)=sTandygt=y~sT.𝐺𝑋~𝑦superscript𝑠𝑇andsubscript𝑦𝑔𝑡~𝑦superscript𝑠𝑇G(X,\tilde{y})=s^{T}~{}~{}\text{and}~{}~{}y_{gt}=\tilde{y}\cdot s^{T}.italic_G ( italic_X , over~ start_ARG italic_y end_ARG ) = italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT and italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT = over~ start_ARG italic_y end_ARG ⋅ italic_s start_POSTSUPERSCRIPT italic_T end_POSTSUPERSCRIPT . (1)

In view of the self-supervised learning, we utilize the unlabeled data and noisy annotations to enforce the trained model to be line with geometry consistency assumption. That is, if a realistic geometrical perturbation was to be applied to the pseudo lane annotation, the predicted inverted transformation should not change significantly. So the multiple disturbances of the same noise-free annotation must be restored to the consistent spatial location in an adversarial manner. In the light of this, we restrict our model to generate consistent predictions for the input with different slightly geometric perturbation. Therefore, we design a dual-student framework to learn to capture the geometrical invariability and reconstruct the potential noise-free lane labels.

Following [38, 53], a data augmentation method is used for noisy lane annotations. A pair of lane instances augmented with different geometry noises will be generated by applying rotation and translation operations to the single lane annotation. To create supervision for missed and mislabelled situations, some lane instances will also be randomly removed or injected.

Let G𝐺Gitalic_G represent our SLC network that consists of a backbone network and a lane prediction head. The network G𝐺Gitalic_G can be any kind of existing lane detection model, which shows that our framework is highly adaptable. G𝐺Gitalic_G is designed to predict the corrected lane annotations given images and corresponding noisy annotations. To utilize the pseudo annotation as clue, we augment the original pseudo annotations with symmetrical noise and encode the augmented labels as a binary mask m{0,1}H,W𝑚superscript01𝐻𝑊m\in\{0,1\}^{H,W}italic_m ∈ { 0 , 1 } start_POSTSUPERSCRIPT italic_H , italic_W end_POSTSUPERSCRIPT. With the RGB image inputs X𝑋Xitalic_X and the guidance of perturbed annotations mask m𝑚mitalic_m, we hope our network G𝐺Gitalic_G can reconstruct the noise-free lane predictions, which can be written in a general form:

y^=G(X,m).^𝑦𝐺𝑋𝑚\hat{y}=G(X,~{}m).over^ start_ARG italic_y end_ARG = italic_G ( italic_X , italic_m ) . (2)

Since ground truth annotation is inaccessible in unsupervised setting, we propose a consistency regularization method to reconstruct the single unique lane instance given annotation clues which have been augmented in two different manners. In detail, taking two augmented noisy annotation-clue masks m1subscript𝑚1m_{1}italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and m2subscript𝑚2m_{2}italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT as well as the RGB image X𝑋Xitalic_X as inputs, our SLC model is expected to generate two sets of corrected lane instances y^1subscript^𝑦1\hat{y}_{1}over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT, y^2subscript^𝑦2\hat{y}_{2}over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT:

{y^1=Gθ(X,m1);y^2=Gϕ(X,m2),\left\{\begin{aligned} &\hat{y}_{1}=G_{\theta}(X,~{}m_{1});\\ &\hat{y}_{2}=G_{\phi}(X,~{}m_{2}),\\ \end{aligned}\right.{ start_ROW start_CELL end_CELL start_CELL over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT = italic_G start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT ( italic_X , italic_m start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ) ; end_CELL end_ROW start_ROW start_CELL end_CELL start_CELL over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT = italic_G start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT ( italic_X , italic_m start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , end_CELL end_ROW (3)

where Gθsubscript𝐺𝜃G_{\theta}italic_G start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT is online network updated with gradient, and Gϕsubscript𝐺italic-ϕG_{\phi}italic_G start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT is the target network that has the same architecture as the online network. The parameters of target network Gϕsubscript𝐺italic-ϕG_{\phi}italic_G start_POSTSUBSCRIPT italic_ϕ end_POSTSUBSCRIPT are an exponential moving average of the online network Gθsubscript𝐺𝜃G_{\theta}italic_G start_POSTSUBSCRIPT italic_θ end_POSTSUBSCRIPT.

These two sets of corrected lane predictions refer to the same unique ground truth lane annotations on one single image. As a result, corrected lane predictions of one branch of our SLC model can be used to provide supervision for another branch, which can be written as a consistency loss term:

c=lane(y^1,y^2).subscript𝑐subscript𝑙𝑎𝑛𝑒subscript^𝑦1subscript^𝑦2\mathcal{L}_{c}=\mathcal{L}_{lane}(\hat{y}_{1},~{}\hat{y}_{2}).caligraphic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT = caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) . (4)

lanesubscript𝑙𝑎𝑛𝑒\mathcal{L}_{lane}caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT refers to a general form of lane prediction loss function, which can be specified as any kind of lane detector.

Given merely consistency regularization loss, the model will converge to the trivial solution (e.g., generates all-zero lane instance). In order to prevent model collapse, we introduce a reconstruction loss rsubscript𝑟\mathcal{L}_{r}caligraphic_L start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT, which enables original pseudo annotation y𝑦yitalic_y also being utilized to supervise the online network:

r=lane(y^1,y).subscript𝑟subscript𝑙𝑎𝑛𝑒subscript^𝑦1𝑦\mathcal{L}_{r}=\mathcal{L}_{lane}(\hat{y}_{1},~{}y).caligraphic_L start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_y ) . (5)

Given regularization loss and reconstruction loss above, our whole consistency regularization loss can be defined as:

con=c+λrr.subscript𝑐𝑜𝑛subscript𝑐subscript𝜆𝑟subscript𝑟\mathcal{L}_{con}=\mathcal{L}_{c}+\lambda_{r}\mathcal{L}_{r}.caligraphic_L start_POSTSUBSCRIPT italic_c italic_o italic_n end_POSTSUBSCRIPT = caligraphic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT + italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT . (6)

λrsubscript𝜆𝑟\lambda_{r}italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT denotes the penalty term for reconstruction loss, which is set to 1 in the early stage of training.

Note that although reconstruction loss does help the model converge in the early training and avoid model collapse, it should be adjusted after ϵitalic-ϵ\epsilonitalic_ϵ epochs since we want the SLC network to output noise-free ground truth annotation instead of original pseudo annotation. An adjust strategy for λrsubscript𝜆𝑟\lambda_{r}italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT is defined as:

λr={0,min(IoU(y^1,y),IoU(y^2,y))0.5,1,otherwise.\lambda_{r}=\left\{\begin{aligned} 0,\quad&min(IoU(\hat{y}_{1},~{}y),~{}IoU(% \hat{y}_{2},~{}y))\leq 0.5,\\ 1,\quad&otherwise.\end{aligned}\right.italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT = { start_ROW start_CELL 0 , end_CELL start_CELL italic_m italic_i italic_n ( italic_I italic_o italic_U ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_y ) , italic_I italic_o italic_U ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , italic_y ) ) ≤ 0.5 , end_CELL end_ROW start_ROW start_CELL 1 , end_CELL start_CELL italic_o italic_t italic_h italic_e italic_r italic_w italic_i italic_s italic_e . end_CELL end_ROW (7)

The IoU𝐼𝑜𝑈IoUitalic_I italic_o italic_U represents the intersection-of-union score in pixel level. When the prediction results of our SLC network deviate considerably from the given pseudo annotation input y𝑦yitalic_y, y𝑦yitalic_y is supposed to contain some noise and then reconstruction loss is rejected by setting λrsubscript𝜆𝑟\lambda_{r}italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT equal to 00. Otherwise, λrsubscript𝜆𝑟\lambda_{r}italic_λ start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT is set to 1. In our training process, we set ϵitalic-ϵ\epsilonitalic_ϵ to 10101010.

Instance similarity learning module. In the above part, the consistency regularization module is utilized to realize the constraint of the noisy annotations. However, the consistency supervision mentioned above concentrates on the object level, and no effective supervision is provided on the representation level. To address this issue, we introduce an instance similarity learning module in this part to exploit the appearance similarity on representation level and leverage the trained features to perform label correction.

We consider all the lanes as positive samples and others negative. By maximizing the representation similarity among different lane instances across online and target branches, further regularization is imposed on our SLC network.

After the refined lane annotation y^1subscript^𝑦1\hat{y}_{1}over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is predicted by the network G𝐺Gitalic_G, a set of corresponding pooling masks {p1|p1{0,1}Hf×Wf}conditional-setsubscript𝑝1subscript𝑝1superscript01subscript𝐻𝑓subscript𝑊𝑓\{p_{1}|p_{1}\in\{0,1\}^{H_{f}\times W_{f}}\}{ italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT | italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT ∈ { 0 , 1 } start_POSTSUPERSCRIPT italic_H start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT × italic_W start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT } of the online branch is encoded according to the predicted lane instance locations. p1subscript𝑝1p_{1}italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT is the same width and height as the output feature map fCf×Hf×Wf𝑓superscriptsubscript𝐶𝑓subscript𝐻𝑓subscript𝑊𝑓f\in\mathbb{R}^{C_{f}\times H_{f}\times W_{f}}italic_f ∈ blackboard_R start_POSTSUPERSCRIPT italic_C start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT × italic_H start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT × italic_W start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT of the network Gssuperscript𝐺𝑠G^{\prime}sitalic_G start_POSTSUPERSCRIPT ′ end_POSTSUPERSCRIPT italic_s backbone and represents positive samples of the online branch. Similarly, corresponding target masks {p2}subscript𝑝2\{p_{2}\}{ italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } can also be obtained for the target branch.

Then we select the no-lane locations around the predicted lane and encode the negative masks {n}𝑛\{n\}{ italic_n }.

For every positive mask p𝑝pitalic_p, we downsample the feature map f𝑓fitalic_f with the average pooling operation:

vp=1i,jpi,jpf,vpCf.formulae-sequencesubscript𝑣𝑝1subscript𝑖𝑗subscript𝑝𝑖𝑗𝑝𝑓subscript𝑣𝑝superscriptsubscript𝐶𝑓v_{p}=\frac{1}{\sum_{i,j}p_{i,j}}p\cdot f,\quad v_{p}\in\mathbb{R}^{C_{f}}.italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT = divide start_ARG 1 end_ARG start_ARG ∑ start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT italic_i , italic_j end_POSTSUBSCRIPT end_ARG italic_p ⋅ italic_f , italic_v start_POSTSUBSCRIPT italic_p end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_C start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT . (8)

The same calculation is operated on negative masks to get negative vectors vnCfsubscript𝑣𝑛superscriptsubscript𝐶𝑓v_{n}\in\mathbb{R}^{C_{f}}italic_v start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_C start_POSTSUBSCRIPT italic_f end_POSTSUBSCRIPT end_POSTSUPERSCRIPT. We then transform each of these vectors with a two-layer MLP, yielding non-linear projections zp1,zp2,zndsubscript𝑧subscript𝑝1subscript𝑧subscript𝑝2subscript𝑧𝑛superscript𝑑z_{p_{1}},z_{p_{2}},z_{n}\in\mathbb{R}^{d}italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT , italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT ∈ blackboard_R start_POSTSUPERSCRIPT italic_d end_POSTSUPERSCRIPT. Now we introduce the embedding loss function:

embed=log[1+p2nexp(zp1znzp1zp2)].subscript𝑒𝑚𝑏𝑒𝑑𝑙𝑜𝑔delimited-[]1subscriptsubscript𝑝2subscript𝑛𝑒𝑥𝑝subscript𝑧subscript𝑝1subscript𝑧𝑛subscript𝑧subscript𝑝1subscript𝑧subscript𝑝2\mathcal{L}_{embed}=log[1+\sum_{p_{2}}\sum_{n}exp(z_{p_{1}}\cdot z_{n}-z_{p_{1% }}\cdot z_{p_{2}})].caligraphic_L start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT = italic_l italic_o italic_g [ 1 + ∑ start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ∑ start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT italic_e italic_x italic_p ( italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ⋅ italic_z start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT - italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ⋅ italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT ) ] . (9)

The multi-target positive samples {zp2}subscript𝑧subscript𝑝2\{z_{p_{2}}\}{ italic_z start_POSTSUBSCRIPT italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT end_POSTSUBSCRIPT } are pooled from lane masks {p2}subscript𝑝2\{p_{2}\}{ italic_p start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT } generated by the target branch in the whole batch.

Together, the noisy label correction module objective can be defined as:

=con+λembedembed,subscript𝑐𝑜𝑛subscript𝜆𝑒𝑚𝑏𝑒𝑑subscript𝑒𝑚𝑏𝑒𝑑\mathcal{L}=\mathcal{L}_{con}+\lambda_{embed}\mathcal{L}_{embed},caligraphic_L = caligraphic_L start_POSTSUBSCRIPT italic_c italic_o italic_n end_POSTSUBSCRIPT + italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT , (10)

where λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT denotes the penalty term for embedding loss. With the help of instance similarity learning module, the SLC network can shape lane instance clusters by inheriting advantages of metric learning and leverage the trained features from self-supervised tasks in lane reconstruction.

Refer to caption
Figure 3: The pipeline of pseudo label refinement and distillation. To enable our SLC to end-to-end inference and better align downstream datasets, we propose a pseudo-label refinement approach in the form of distillation.

3.4 Pseudo-label refinement and other details

As noticed, the SLC network accepts both RGB images and pseudo label clues as input. Thus, although SLC predicts noise-free lane detection results, it is infeasible for network to perform further end-to-end inference on downstream datasets. To allevaite this dilemma, we propose a distillation approach to promote our SLC network, as is illustrated in Figure 3. In our pseudo-label refinement stage, pseudo annotations are generated by the naïve lane detector that has been trained on the source dataset as well as our SLC network. The corrected predictions of the SLC model are used as supervision to train a student lane detector. The distilled student is capable to conduct end-to-end inference.

Moreover, this procedure can be easily migrated to downstream datasets. For specifically, we transfer both the naïve lane detector and SLC onto downstream datasets. The naïve lane detector generates noisy but cheap annotations for the SLC, which SLC takes as input and predicts refined lane labels for further distillation. Finally, the distilled student lane detector is evaluated on the target dataset.

During the whole adaptation process, no supervised pre-trained models are required. In fact, for each dataset, there is one lane detector training from scratch.

4 Experiments

4.1 Experimental setting

Datasets.

Pre-train Train Test
Method dataset label dataset label dataset
Supervised ImageNet i.e.TuSimple i.e.TuSimple
Ours Waymo i.e.TuSimple i.e.TuSimple
Table 1: Comparisons of the datasets used between supervised paradigm and our method. ✓and ✗ represent whether labels are demanded during training.

We pre-train our LaneCorrect on large-scale Waymo Open dataset [54]. It contains synchronous LiDAR frames and 2D images. To evaluate our proposed method and make fair comparisons, we distill the SLC network on the target domain to train a student lane detector which can be evaluated directly on the testing set. With the help of our self-supervised pre-trained SLC model, the domain gap is alleviated. Note that we do not introduce LiDAR data in the inference phase and no ImageNet pre-trained model is included in our method. Only the supervised counterparts use backbones pre-trained on ImageNet for comparison. The details can be viewed in Table 1.

We conduct evaluations on four datasets: TuSimple [55], CULane [27], LLAMAS [56] and CurveLanes [4]. TuSimple: TuSimple is a widely used dataset targeted to solve the lane detection problem on highways. It includes 3626 training video clips and 2782 test video clips. Only good weather conditions and daytime data are given. CULane: CULane is a traffic lane detection dataset collected in Bei**g and released by Chinese University of Hong Kong. This dataset provides 133,235 frames form a 55 hours of videos, which is then be divided into training, validation and test set by 88880, 9675 and 34680. Specially, the test set provides abundant scene, including one normal and 8 challenging categories. LLAMAS: LLAMAS is one of the largest lane detection datasets with over 100k images in highway scenarios. This dataset is not manually annotated. Instead, the annotations of LLAMAS were generated automatically using high definition map projections. The testing set annotations have not been released, so the evaluation results on the test set will be computed by the publisher of LLAMAS, following the CULane metric. CurveLanes: CurveLanes contains 150K images with human annotated lane labels for difficult scenarios in traffic lane detection. In some scenarios of this dataset, the lane detection task is quite complex and challenging due to curve and fork lanes. The details of the datasets can be viewed in Table 2.

Dataset Train Val. Test Scenario Type
TuSimple 3k 0.3k 2k Highway
CULane 88k 9k 34k Urban&Highway
LLAMAS 58k 20k 20k Highway
CurveLanes 100k 20k 30k Urban&Highway
Table 2: Details of lane detection datasets utilized.

Implementation details. To generate pseudo 3D lane segmented points and corresponding 2D coordinates, we firstly perform segmentation algorithm on Waymo Open dataset [54]. We only select synchronized 2D images collected by the camera in the front direction and 3D point clouds from the top LiDAR as our inputs. We choose PointLaneNet [3] as our naïve lane detection network and our supervised baseline, with ResNet101 [57] as backbone in the main results. We additionally run experiments with LaneATT [5] as our baseline in ablation to better prove our framework adaptable to arbitrary lane detectors. During SLC network training, the augmentation method consists of random rotation between 5superscript5-5^{\circ}- 5 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT and 5superscript55^{\circ}5 start_POSTSUPERSCRIPT ∘ end_POSTSUPERSCRIPT and pixel translation of up to 5%percent55\%5 % of the width of the input image. We apply an adjusting strategy for reconstruction loss weight to prevent the model overfit to pseudo annotations, which has been detailed described in consistency regularization module. The hyper-paremeter λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT is set to 5555 according to ablation study. All other hyper-parameter settings follow PointLaneNet [3], and our whole architecture is conducted on 8 Nvidia V100 GPU cards.

Details of base lane detector. In our experiments, we adopted anchor-based PointLaneNet [3] as our unsupervised naïve lane detector, and our lane prediction loss was formulated accordingly. Now we give more details about our lane detector.

PointLaneNet [3] can simultaneously perform position prediction and lane classification in a single network. Two 1×1111\times 11 × 1 convolution layers are added on the top of the backbone network, specifying the number of output channels equal to (n+1)𝑛1(n+1)( italic_n + 1 ), where n𝑛nitalic_n refers to the number of x𝑥xitalic_x coordinate offsets {δx1,δx2,,δxn}𝛿subscript𝑥1𝛿subscript𝑥2𝛿subscript𝑥𝑛\{\delta x_{1},\delta x_{2},...,\delta x_{n}\}{ italic_δ italic_x start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_δ italic_x start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT , … , italic_δ italic_x start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT } (fixed y𝑦yitalic_y partitions) relative to the center point of the grid, and 1111 refers to the starting position (y)𝑦(y)( italic_y ) of the lane. As for classification, after two 1×1111\times 11 × 1 convolution layers to the end of the feature map, the number of output channels is specified equal to 2, indicating whether the lane passes through the grid. Given ground truth ygtsubscript𝑦𝑔𝑡y_{gt}italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT, the objective is to optimize the multi-part loss:

lane(y,ygt)=1Nclsi=1wj=1hijcls(yijcls,yij,gtcls)+1Nregi=1wj=1hlijobjijreg(yijreg,yij,gtreg).subscript𝑙𝑎𝑛𝑒𝑦subscript𝑦𝑔𝑡1subscript𝑁𝑐𝑙𝑠superscriptsubscript𝑖1𝑤superscriptsubscript𝑗1superscriptsubscript𝑖𝑗𝑐𝑙𝑠superscriptsubscript𝑦𝑖𝑗𝑐𝑙𝑠subscriptsuperscript𝑦𝑐𝑙𝑠𝑖𝑗𝑔𝑡1subscript𝑁𝑟𝑒𝑔superscriptsubscript𝑖1𝑤superscriptsubscript𝑗1superscriptsubscript𝑙𝑖𝑗𝑜𝑏𝑗superscriptsubscript𝑖𝑗𝑟𝑒𝑔superscriptsubscript𝑦𝑖𝑗𝑟𝑒𝑔subscriptsuperscript𝑦𝑟𝑒𝑔𝑖𝑗𝑔𝑡\begin{aligned} \mathcal{L}_{lane}(y,~{}y_{gt})=\frac{1}{N_{cls}}\sum_{i=1}^{w% }\sum_{j=1}^{h}\mathcal{L}_{ij}^{cls}(y_{ij}^{cls},~{}y^{cls}_{ij,~{}gt})\\ +\frac{1}{N_{reg}}\sum_{i=1}^{w}\sum_{j=1}^{h}l_{ij}^{obj}\mathcal{L}_{ij}^{% reg}(y_{ij}^{reg},~{}y^{reg}_{ij,~{}gt}).\end{aligned}start_ROW start_CELL caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT ( italic_y , italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT ) = divide start_ARG 1 end_ARG start_ARG italic_N start_POSTSUBSCRIPT italic_c italic_l italic_s end_POSTSUBSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j , italic_g italic_t end_POSTSUBSCRIPT ) end_CELL end_ROW start_ROW start_CELL + divide start_ARG 1 end_ARG start_ARG italic_N start_POSTSUBSCRIPT italic_r italic_e italic_g end_POSTSUBSCRIPT end_ARG ∑ start_POSTSUBSCRIPT italic_i = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_w end_POSTSUPERSCRIPT ∑ start_POSTSUBSCRIPT italic_j = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_h end_POSTSUPERSCRIPT italic_l start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_o italic_b italic_j end_POSTSUPERSCRIPT caligraphic_L start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j , italic_g italic_t end_POSTSUBSCRIPT ) . end_CELL end_ROW

(11)

ijcls(yijcls,yij,gtcls)superscriptsubscript𝑖𝑗𝑐𝑙𝑠superscriptsubscript𝑦𝑖𝑗𝑐𝑙𝑠subscriptsuperscript𝑦𝑐𝑙𝑠𝑖𝑗𝑔𝑡\mathcal{L}_{ij}^{cls}(y_{ij}^{cls},~{}y^{cls}_{ij,~{}gt})caligraphic_L start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j , italic_g italic_t end_POSTSUBSCRIPT ) represents the classification confidence loss at anchor (i,j)𝑖𝑗(i,~{}j)( italic_i , italic_j ), which is cross-entropy loss between the prediction results and ground truth. For each anchor with the classfication prediction yclssuperscript𝑦𝑐𝑙𝑠y^{cls}italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT and ygtclssuperscriptsubscript𝑦𝑔𝑡𝑐𝑙𝑠y_{gt}^{cls}italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT, the confidence loss is written as:

cls(ycls,ygtcls)=superscript𝑐𝑙𝑠superscript𝑦𝑐𝑙𝑠superscriptsubscript𝑦𝑔𝑡𝑐𝑙𝑠absent\displaystyle\mathcal{L}^{cls}(y^{cls},y_{gt}^{cls})=caligraphic_L start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ( italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT , italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ) = (12)
[ygtclslnycls+(1ygtcls)ln(1ycls)].delimited-[]superscriptsubscript𝑦𝑔𝑡𝑐𝑙𝑠𝑙𝑛superscript𝑦𝑐𝑙𝑠1superscriptsubscript𝑦𝑔𝑡𝑐𝑙𝑠𝑙𝑛1superscript𝑦𝑐𝑙𝑠\displaystyle{-\left[y_{gt}^{cls}lny^{cls}+(1-y_{gt}^{cls})ln(1-y^{cls})\right% ]}.- [ italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT italic_l italic_n italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT + ( 1 - italic_y start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ) italic_l italic_n ( 1 - italic_y start_POSTSUPERSCRIPT italic_c italic_l italic_s end_POSTSUPERSCRIPT ) ] .

ijreg(yijreg,yij,gtreg)superscriptsubscript𝑖𝑗𝑟𝑒𝑔superscriptsubscript𝑦𝑖𝑗𝑟𝑒𝑔subscriptsuperscript𝑦𝑟𝑒𝑔𝑖𝑗𝑔𝑡\mathcal{L}_{ij}^{reg}(y_{ij}^{reg},~{}y^{reg}_{ij,~{}gt})caligraphic_L start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT italic_i italic_j end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_i italic_j , italic_g italic_t end_POSTSUBSCRIPT ) denotes the Euclidean distance between the predicted locations and ground truth at anchor (i,j)𝑖𝑗(i,~{}j)( italic_i , italic_j ). In general, each anchor generates the regression prediction yreg={y1reg,y2reg,,ynreg,yposreg}superscript𝑦𝑟𝑒𝑔superscriptsubscript𝑦1𝑟𝑒𝑔superscriptsubscript𝑦2𝑟𝑒𝑔superscriptsubscript𝑦𝑛𝑟𝑒𝑔superscriptsubscript𝑦𝑝𝑜𝑠𝑟𝑒𝑔y^{reg}=\{y_{1}^{reg},y_{2}^{reg},...,y_{n}^{reg},y_{pos}^{reg}\}italic_y start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT = { italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , italic_y start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , … , italic_y start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , italic_y start_POSTSUBSCRIPT italic_p italic_o italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT }, where y1regsuperscriptsubscript𝑦1𝑟𝑒𝑔y_{1}^{reg}italic_y start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT, y2regsuperscriptsubscript𝑦2𝑟𝑒𝑔y_{2}^{reg}italic_y start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT, …, ynregsuperscriptsubscript𝑦𝑛𝑟𝑒𝑔y_{n}^{reg}italic_y start_POSTSUBSCRIPT italic_n end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT represent the n𝑛nitalic_n offsets prediction and yposregsuperscriptsubscript𝑦𝑝𝑜𝑠𝑟𝑒𝑔y_{pos}^{reg}italic_y start_POSTSUBSCRIPT italic_p italic_o italic_s end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT represents the starting position of the lane. The loss term can be written as:

reg(yreg,ygtreg)=k=1n(ykregyk,gtreg)2.superscript𝑟𝑒𝑔superscript𝑦𝑟𝑒𝑔subscriptsuperscript𝑦𝑟𝑒𝑔𝑔𝑡superscriptsubscript𝑘1𝑛superscriptsuperscriptsubscript𝑦𝑘𝑟𝑒𝑔superscriptsubscript𝑦𝑘𝑔𝑡𝑟𝑒𝑔2\displaystyle\mathcal{L}^{reg}(y^{reg},~{}y^{reg}_{gt})=\sum_{k=1}^{n}(y_{k}^{% reg}-y_{k,~{}gt}^{reg})^{2}.caligraphic_L start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT ( italic_y start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT , italic_y start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT start_POSTSUBSCRIPT italic_g italic_t end_POSTSUBSCRIPT ) = ∑ start_POSTSUBSCRIPT italic_k = 1 end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_n end_POSTSUPERSCRIPT ( italic_y start_POSTSUBSCRIPT italic_k end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT - italic_y start_POSTSUBSCRIPT italic_k , italic_g italic_t end_POSTSUBSCRIPT start_POSTSUPERSCRIPT italic_r italic_e italic_g end_POSTSUPERSCRIPT ) start_POSTSUPERSCRIPT 2 end_POSTSUPERSCRIPT . (13)

In our proposed LaneCorrect, we adopt the above lane prediction loss function to formulate our reconstruction loss rsubscript𝑟\mathcal{L}_{r}caligraphic_L start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT and consistency loss csubscript𝑐\mathcal{L}_{c}caligraphic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT in our consistency regularization module:

c(y^1,y^2)=lane(y^1,y^2),subscript𝑐subscript^𝑦1subscript^𝑦2subscript𝑙𝑎𝑛𝑒subscript^𝑦1subscript^𝑦2\displaystyle\mathcal{L}_{c}(\hat{y}_{1},~{}\hat{y}_{2})=\mathcal{L}_{lane}(% \hat{y}_{1},~{}\hat{y}_{2}),caligraphic_L start_POSTSUBSCRIPT italic_c end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) , (14)

and

r(y^1,y^2)=lane(y^1,y),subscript𝑟subscript^𝑦1subscript^𝑦2subscript𝑙𝑎𝑛𝑒subscript^𝑦1𝑦\displaystyle\mathcal{L}_{r}(\hat{y}_{1},~{}\hat{y}_{2})=\mathcal{L}_{lane}(% \hat{y}_{1},~{}y),caligraphic_L start_POSTSUBSCRIPT italic_r end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT ) = caligraphic_L start_POSTSUBSCRIPT italic_l italic_a italic_n italic_e end_POSTSUBSCRIPT ( over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT , italic_y ) , (15)

where y^1subscript^𝑦1\hat{y}_{1}over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 1 end_POSTSUBSCRIPT and y^2subscript^𝑦2\hat{y}_{2}over^ start_ARG italic_y end_ARG start_POSTSUBSCRIPT 2 end_POSTSUBSCRIPT are lane predictions of online branch and target branch, and y𝑦yitalic_y denotes input pseudo annotations.

Method F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
Supervised (PointLaneNet) 95.07 96.34 4.67 5.18
Ours (Waymo pre-trained) 83.35 89.34 18.02 12.63
Ours (SLC) 92.91 91.95 6.45 6.58
Table 3: Performance of the proposed method and comparison with counterpart on TuSimple testing set. Supervised PointLaneNet is trained directly using manual annotations. Ours (Waymo pre-trained) is proposed naïve unsupervised lane detector. Ours (SLC) is further applied noisy lane correction network. Our method achieves considerable performance.
Method Total Normal Crowded Dazzle Shadow No Line Arrow Curve Cross Night
Supervised (PointLaneNet) 70.2 88.0 68.1 61.5 63.3 44.0 80.9 65.2 1640 63.2
Ours (Waymo pre-trained) 46.8 57.7 40.9 41.5 35.3 32.4 51.3 48.3 3210 41.5
Ours (SLC) 56.7 69.9 57.1 52.5 49.0 38.4 68.4 53.7 2385 49.0
Table 4: Comparison of F1-measure on CULane testing set. For the Cross scenario, only false positives are shown. The less number means the better performance. Our SLC network can significantly alleviate the domain gap compared with our unsupervised naïve lane detector.

4.2 Main Results

Since there was no previous work addressing unsupervised lane detection task, to conduct comparison fairly, we directly compare our methods with supervised PointLaneNet [3] as counterpart. The comparison shows that our self-supervised method achieves competitive results compared with supervised methods. On LLAMAS val. set, our method even outperforms its supervised counterpart.

Ablated effects of pre-training on Waymo. To make fair comparison and address the concern of utilizing extra Waymo [54] dataset, we both conduct experiments with and without SLC network from Table 3 to Table 6. The performance of model without SLC network, i.e., naïve lane detector simply trained with pseudo labels from Waymo, denotes the potential effects of pre-training on Waymo dataset. Additionally, the SLC network brings significant improvement to the naïve lane detector, demonstrating the effectiveness of the self-supervised lane detection framework.

TuSimple. For TuSimple benchmark, we report both accuracy and F1 score in Table 3. As demonstrated, the gap between method of strongly supervised and our method is quitely small. Especially, our self-supervised method achieves considerable results at 92.91%percent92.9192.91\%92.91 % F1-measure compared with supervised counterpart, which achieves 95.07%percent95.0795.07\%95.07 % at F1-measure. The comparison result demonstrates the efficiency of our proposed framework.

CULane. The results on CULane can be seen in Table 4. Our method achieves 55.7%percent55.755.7\%55.7 % F1-score in total. We observed that our LaneCorrect model encounters a more pronounced domain gap on CULane (collected in Bei**g) compared to TuSimple (collected in the United States, similar to Waymo). Despite the significant domain disparity between our self-supervised source domain and the target CULane dataset, our unsupervised method with the SLC network achieves a reasonable F1-score compared to its strongly supervised counterpart, without touching any ground truth. The comparison result also demonstrates the SLC network brings significant improvements to our unsupervised method and can effectively alleviate the domain gap.

LLAMAS. The performance on LLAMAS is shown in Table 5. Our model is trained only with LLAMAS training images and is evaluated on validation set and official test set. As the results demonstrate, our unsupervised method achieves considerable results at 89.75%percent89.7589.75\%89.75 % F1-measure at testing set and 91.29%percent91.2991.29\%91.29 % at validation set. It is worth noting that, our unsupervised lane detection framework outperforms supervised method on LLAMAS validation set. One of the main reason is that LLAMAS dataset is an unsupervised dataset annotated automatically by high-resolution maps and its projection. Due to uncertainty error and projection bias, the annotations generated sometimes are incorrect, which will damage the performance of the lane detector. The incorrect case is also visualized in Figure 4. From the visualization result, we can see that our unsupervised method is able to perform well in mislabeled scenarios.

Refer to caption
Figure 4: Incorrect annotated cases in LLAMAS. Our method can generate correct predictions in these incorrect labeled scenarios.
Dataset Method F1(%)\uparrow Precision(%)\uparrow Recall(%)\uparrow
Val. Supervised (PointLaneNet) 90.32 96.51 84.87
Ours (Waymo pre-trained) 87.44 89.13 85.81
Ours (SLC) 91.29 92.47 90.13
Test Supervised (PointLaneNet) 95.11 95.17 95.05
Ours (Waymo pre-trained) 85.71 85.24 86.18
Ours (SLC) 89.05 93.95 84.64
Table 5: Comparison on LLAMAS validation and testing set. Our method receives considerable results and even outperforms supervised method on validation set.
Method F1(%)\uparrow Precision(%)\uparrow Recall(%)\uparrow
Supervised (PointLaneNet) 78.47 86.33 72.91
Ours (Waymo pre-trained) 49.24 68.71 38.37
Ours (SLC) 60.39 62.67 58.27
Table 6: Comparison with counterpart on CurveLanes testing set. Our method shows reasonable result and domain gap has been mitigated by the proposed SLC network.

CurveLanes. Table 6 shows the performance of our method on CurveLanes. As the results show, our LaneCorrect achieves considerable results at 60.39%percent60.3960.39\%60.39 % F1-measure, which is a reasonable result compared with supervised method.

4.3 Ablation study

In this part of experiment, we evaluate the impact of the major components of our self-supervised SLC model and the variation of other experimental settings. The ablation study is performed on TuSimple dataset.

Modules of noisy lane correction network. During training, the SLC network improve the unsupervised naïve lane detector significantly. In this work, we explore the benefits gained from each part of proposed network. Table 7 shows that the performance is constantly improved with the gradual introduction of reconstruction loss, consistency regularization and instance similarity learning module. For experiment with reconstruction loss, only the online branch of the SLC network is used. For experiment with consistency regularization, both the branches of the network are used but the embedding head for instance similarity learning is removed. Experiment with contrastive instance similarity learning module is the full version of our LaneCorrect method, which achieves 92.91%percent92.9192.91\%92.91 % F1-score at TuSimple.

Method F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
Supervised (PointLaneNet) 95.07 96.34 4.67 5.18
Unsupervised naïve lane detector 84.08 85.97 13.82 14.10
+ reconstruction loss 88.75+4.67superscript88.75+4.6788.75^{\textbf{+4.67}}88.75 start_POSTSUPERSCRIPT +4.67 end_POSTSUPERSCRIPT 87.82+1.85superscript87.82+1.8587.82^{\textbf{+1.85}}87.82 start_POSTSUPERSCRIPT +1.85 end_POSTSUPERSCRIPT 9.50-4.32superscript9.50-4.329.50^{\textbf{-4.32}}9.50 start_POSTSUPERSCRIPT -4.32 end_POSTSUPERSCRIPT 10.36-3.74superscript10.36-3.7410.36^{\textbf{-3.74}}10.36 start_POSTSUPERSCRIPT -3.74 end_POSTSUPERSCRIPT
+ consistency regularization 91.89+3.14superscript91.89+3.1491.89^{\textbf{+3.14}}91.89 start_POSTSUPERSCRIPT +3.14 end_POSTSUPERSCRIPT 90.65+2.83superscript90.65+2.8390.65^{\textbf{+2.83}}90.65 start_POSTSUPERSCRIPT +2.83 end_POSTSUPERSCRIPT 7.03-2.47superscript7.03-2.477.03^{\textbf{-2.47}}7.03 start_POSTSUPERSCRIPT -2.47 end_POSTSUPERSCRIPT 7.56-2.80superscript7.56-2.807.56^{\textbf{-2.80}}7.56 start_POSTSUPERSCRIPT -2.80 end_POSTSUPERSCRIPT
+ instance similarity learning 92.91+1.02superscript92.91+1.0292.91^{\textbf{+1.02}}92.91 start_POSTSUPERSCRIPT +1.02 end_POSTSUPERSCRIPT 91.95+1.30superscript91.95+1.3091.95^{\textbf{+1.30}}91.95 start_POSTSUPERSCRIPT +1.30 end_POSTSUPERSCRIPT 6.45-0.58superscript6.45-0.586.45^{\textbf{-0.58}}6.45 start_POSTSUPERSCRIPT -0.58 end_POSTSUPERSCRIPT 6.58-0.98superscript6.58-0.986.58^{\textbf{-0.98}}6.58 start_POSTSUPERSCRIPT -0.98 end_POSTSUPERSCRIPT
Table 7: Quantitative results of ablation study of our self-supervised noisy lane correction network on TuSimple. As different portions of the proposed SLC network introduced, the gap between our unsupervised method and supervised counterpart is gradually reduced.
Refer to caption
Figure 5: Visualization of LaneCorrect method on multiple benchmarks compared with supervised counterpart. The top row is performance on TuSimple and the bottom row is performance on LLAMAS. The rest middle rows are qualitative results on CULane. For each row, from left to right are: input image, ground truth, results of supervised counterpart and our LaneCorrect.
Refer to caption
Figure 6: Evaluation results on TuSimple when various amount of data are used for pseudo lane annotations generation.

Efficiency in data utilization. To examine the impact of various amount of data used for pre-training, we randomly sample different portions of Waymo Open dataset according to the video sequence. By conducting this experiment, we prove that efficient data utilization of our self-supervised SLC method is the main reason why our proposed methods achieve excellent results.

As is shown in Figure 6, the performance of both our unsupervised naïve lane detector and student lane detector distilled by SLC network gradually improves as the amount of data used for training increases. On the other hand, with SLC model, we are able to achieve on par performance with a quite small amount of training data, compared with the whole portion of Waymo Open dataset. This further demonstrates the effectiveness of the proposed SLC network.

Generalization. Inspired by [58], we perform experiments on cross domain tasks. To test the generalization performance of SLC, the student lane detector distilled by our SLC network on CULane domain is evaluated on TuSimple testing set. We also transfer the supervised PointLaneNet model trained on the CULane training set to TuSimple testing set. Table 8 shows that compared with supervised method, LaneCorrect achieves excellent progress in generalization, especially in terms of FPR and FNR. Even compared with other state-of-the-art supervised method, our unsupervised framework achieves comparable results, which proves the generalization ability of our method.

Method F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
SIM-CycleGAN+ERFNet * - 62.58 98.86 99.09
UFNet * - 65.53 56.80 65.46
PINet(4H) * - 36.31 48.86 89.88
FOLOLane * - 84.36 39.64 38.41
Supervised (PointLaneNet) 16.03 53.27 42.00 44.97
Ours (Waymo pre-trained) 22.53 58.61 38.07 36.83
Ours (SLC) 67.18 85.34 20.11 29.63
Table 8: Comparison about generalization ability with other supervised methods from CULane training set to TuSimple testing set. “*” represents that the results are from original paper [58]. “-” means that the results are not reported. Our method achieves on par performance with SOTA method at accuracy, but has lower FP and FN rates, resulting a much higher F1 than supervised method.
Baseline Method F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
PointLaneNet Supervised 95.07 96.34 4.67 5.18
Waymo pre-trained 83.35 89.34 18.02 12.63
Ours (SLC) 92.91 91.95 6.45 6.58
LaneATT Supervised 96.06 96.10 4.64 2.17
Waymo pre-trained 86.75 90.03 14.58 9.87
Ours (SLC) 93.95 93.68 5.41 5.06
CLRNet Supervised 97.62 96.83 2.37 2.38
Waymo pre-trained 88.59 92.16 8.62 6.46
Ours (SLC) 96.91 96.06 2.57 2.72
Table 9: Performance of the proposed method and comparison with counterpart on TuSimple testing set using LaneATT and CLRNet. To make comparison, we report results using PointLaneNet as baseline.
Method F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
Noisy pseudo labels 79.68 85.76 15.34 13.87
Naïve lane detector 82.75 86.53 10.82 11.21
SLC network 92.63 95.88 4.17 3.85
Table 10: Improvements of LaneCorrect algorithm at each step on Waymo.
λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
1 91.05 89.47 7.86 8.12
5 92.91 91.95 6.45 6.58
10 91.83 90.23 7.17 7.54
Table 11: Ablation studies on hyper-parameter λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT.
Refer to caption
Figure 7: Qualitative performance of SLC network on TuSimple dataset compared with naïve lane detector. For each row, from left to right are: input image, ground truth, results of unsupervised naïve lane detector without SLC network and results of our LULA method with SLC network.
Refer to caption
Figure 8: Visualization of cross domain performance from CULane to TuSimple. For each row, from left to right are: input image, ground truth, results of supervised counterpart and our LaneCorrect.

Extendability. In our main experiments, we choose PointLaneNet as our naïve lane detector because it is a simple and stable lane detection method. Our SLC network is also based on the PointLaneNet. The design of online and target branch enables our SLC network to realize regularization on geometric consistency and contrast learning in feature representation, so as to correct noisy annotations. To clarify the robust and extendability, we also carry out experiments using LaneATT [5] and CLRNet [30] in Table 9.

The LaneATT and CLRNet baseline achieve considerable results at 93.95%percent93.9593.95\%93.95 % and 96.91%percent96.9196.91\%96.91 % in F1-measure compared with supervised counterpart. Also as the comparison result demonstrates, when a more efficient supervised baseline is adopted, the performance of our unsupervised baseline algorithm and SLC network will also be higher accordingly.

Improvements of SLC network. We are also interested in assessing the quality of noisy pseudo annotations and examining the enhancements brought about by the SLC network. In this section, we conduct experiments to evaluate the pseudo annotations, the naïve lane detector, and the SLC network directly on the Waymo dataset, as shown in Table 10. Since Waymo does not provide lane labels, we manually annotate 2000 samples of the Waymo dataset to create a test subset for evaluation. The results demonstrate the performance of refined pseudo labels generated by the SLC network, thus confirming the high quality of the corrected annotations by our method.

Choice of loss balance term λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT. We conduct ablation studies on Tusimple dataset to determine the best setting of λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT. The ablation result is shown in Table 11. As the ablation result demonstrates, the best choice of hyper-parameter λembedsubscript𝜆𝑒𝑚𝑏𝑒𝑑\lambda_{embed}italic_λ start_POSTSUBSCRIPT italic_e italic_m italic_b italic_e italic_d end_POSTSUBSCRIPT should be 5555.

Backbone F1(%)\uparrow ACC(%)\uparrow FPR(%)\downarrow FNR(%)\downarrow
VGG16 90.83 90.27 7.94 8.15
ResNet18 92.07 91.43 7.23 7.45
ResNet50 92.63 92.07 6.78 6.82
ResNet101 92.91 91.95 6.45 6.58
Table 12: Ablation studies on CNN backbones.

Effects of backbones. To explore the effects of CNN backbones, we conduct the ablation study in Table 12. The largest performance gap, with a difference of 2.08% in F1 score, is observed between ResNet101 [57] and VGG16 [59].

4.4 Visualization

Main visualizations. We have compared the quantified results of LaneCorrect with supervised method on four major lane detection benchmarks. In this section, we present visualization results on multiple datasets in Figure 5.

As is shown in Figure 5, our LaneCorrect method demonstrates considerable performance compared with existing supervised counterpart. The top and bottom row present the performance on TuSimple and LLAMAS. The rest middle rows show qualitative results on CULane in different scenarios. The visulizations further prove that our LaneCorrect method achieves considerable results in multiple benchmarks and various driving scenarios, including highway, urban, curves, night and others, which indicates the generalizability of the proposed approach.

Effects of SLC network. In the ablation study section of the main paper, we have explored the impact of the SLC network. We now present some qualitative results regarding the impact of the SLC network.

As Figure 7 demonstrates, with the help of self-supervised trained SLC network, the performance of our unsupervised lane detector is substantially improved. The visualization results are generated on Tusimple dataset. The third column shows scenarios in which unsupervised naïve lane detector predicts incorrectly, and the fourth column shows that with distillation of the self-supervised pre-trained SLC network, our unsupervised lane detector is able to generate correct lane predictions in these cases where naïve lane detector mispredicts.

The first row presents the missing prediction of our naïve lane detector due to occlusion. However, our SLC network can detect all the lanes correctly. The second row shows the case where naïve lane detector incorrectly detects the curb as lane and the correct prediction of our method. In the third row, we present our SLC network can automatically refine the inaccurate lane locations predicted by unsupervised naïve lane detector.

It is worth noting that, our SLC network significantly improves the performance of model without SLC, which proves the effectiveness of our self-supervised approach.

Generalization. Here we show some qualitative results on cross domain task in Figure 8. The third column presents the visualization results of supervised method, PointLaneNet [3], which is strongly supervised trained on the CULane training set and then directly test on TuSimple test set. To test the generalization performance of LULA, we distill SLC network to a student lane detector on CULane and then directly evaluated on TuSimple test set. The performance is shown in the fourth column.

As is shown in Figure 8, our LaneCorrect method performs better than that of strongly supervised. The qualitative results show that there are obvious cases of missing and false lane predictions, which proves the performance of supervised learning method is not ideal when transferred to other datasets. One of the main reason is that the over-fitting of training datasets limits the generalization performance of the supervised model. Our unsupervised method achieves excellent results on cross-domain tasks, which proves the generalization ability of our method.

5 Conclusions

We have shown the LiDAR view for the lane instance can be utilized as pseudo labels for lane detection task. We have proposed a novel self-supervised training scheme for automatically correcting the noisy pseudo annotation with consistency and contrastive representation learning. To perform lane detetion, we distill the pre-trained correction model to a student lane detector on arbitrary target lane benchmark without touching its ground-truth. Our model achieves comparable performance with existing supervised counterpart (pre-trained on ImageNet [60]) on four major benchmarks and shows superior performance on the domain adaptation setting. We believe self-supervised learning method on lane detection can serve as a strong competitor to the supervised rivals for its scalability and generalizability. The datasets generated during and/or analysed during the current study are available from the corresponding author on reasonable request.

6 Data Availability Statement

The datasets generated during and/or analysed during the current study are available in the Waymo [54], TuSimple [55], CULane [27], LLAMAS [56] and CurveLanes [4].

References

  • \bibcommenthead
  • Pan et al. [2018] Pan, X., Shi, J., Luo, P., Wang, X., Tang, X.: Spatial as deep: Spatial cnn for traffic scene understanding. In: AAAI (2018)
  • Hou et al. [2019] Hou, Y., Ma, Z., Liu, C., Loy, C.C.: Learning lightweight lane detection cnns by self attention distillation. In: ICCV (2019)
  • Chen et al. [2019] Chen, Z., Liu, Q., Lian, C.: Pointlanenet: Efficient end-to-end cnns for accurate real-time lane detection. In: IV (2019)
  • Xu et al. [2020] Xu, H., Wang, S.-J., Cai, X., Zhang, W., Liang, X., Li, Z.: Curvelane-nas: Unifying lane-sensitive architecture search and adaptive point blending. In: ECCV (2020)
  • Tabelini et al. [2021] Tabelini, L., Berriel, R., Paixão, T.M., Badue, C., Souza, A.D., Oliveira-Santos, T.: Keep your eyes on the lane: Real-time attention-guided lane detection. In: CVPR (2021)
  • Zeng et al. [2019] Zeng, D., Zeng, G., Kodom, P.: Research on recognition technology of vehicle rolling line violation in highway based on visual uav. In: ICRCA (2019)
  • Cao et al. [2019] Cao, J., Song, S., Xiao, W., Peng, Z.: Lane detection algorithm for intelligent vehicles in complex road conditions and dynamic environments. Sensors (2019)
  • Tian et al. [2021] Tian, H., Chen, Y., Dai, J., Zhang, Z., Zhu, X.: Unsupervised object detection with lidar clues. In: CVPR (2021)
  • Xu et al. [2018] Xu, Y., Yao, W., Tuttas, S., Hoegner, L., Stilla, U.: Unsupervised segmentation of point clouds from buildings using hierarchical clustering based on gestalt principles. IEEE Journal of Selected Topics in Applied Earth Observations and Remote Sensing (2018)
  • Fischler and Bolles [1981] Fischler, M., Bolles, R.: Random sample consensus: a paradigm for model fitting with applications to image analysis and automated cartography. Commun. ACM (1981)
  • Ouali et al. [2020] Ouali, Y., Hudelot, C., Tami, M.: An overview of deep semi-supervised learning. arXiv preprint (2020)
  • He et al. [2020] He, K., Fan, H., Wu, Y., Xie, S., Girshick, R.B.: Momentum contrast for unsupervised visual representation learning. In: CVPR (2020)
  • Zhang et al. [2021] Zhang, Y., Zongqing, l., Zhang, X., Xue, J.-H., Liao, Q.: Deep learning in lane marking detection: A survey. IEEE Transactions on Intelligent Transportation Systems (2021)
  • Nguyen and Le [2013] Nguyen, A., Le, B.: 3d point cloud segmentation: A survey. (2013)
  • Bhanu et al. [1986] Bhanu, B., Lee, S., Ho, C., Henderson, T.: Range data processing: Representation of surfaces by edges. In: ICPR (1986)
  • Jiang et al. [1996] Jiang, X.Y., Meier, U., Bunke, H.: Fast range image segmentation using high-level segmentation primitives. In: WACV (1996)
  • Ning et al. [2009] Ning, X., Zhang, X., Wang, Y., Jaeger, M.: Segmentation of architecture shape information from 3d point cloud. (2009)
  • Tóvári and Pfeifer [2012] Tóvári, D., Pfeifer, N.: Segmentation based robust interpolation- a new approach to laser data filtering. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences (2012)
  • Dong et al. [2018] Dong, Z., Yang, B., Hu, P., Scherer, S.: An efficient global energy optimization approach for robust 3d plane segmentation of point clouds. ISPRS Journal of Photogrammetry and Remote Sensing (2018)
  • Rabbani et al. [2006] Rabbani, T., Heuvel, F.A., Vosselman, G.: Segmentation of point clouds using smoothness constraint. International Archives of Photogrammetry, Remote Sensing and Spatial Information Sciences (2006)
  • Hough [1962] Hough, P.V.C.: Method and means for recognizing complex patterns. U.s.patent (1962)
  • Fischler and Bolles [1981] Fischler, M.A., Bolles, R.C.: Random sample consensus: A paradigm for model fitting with applications to image analysis and automated cartography. Commun. ACM (1981)
  • Shahzad et al. [2012] Shahzad, M., Zhu, X., Bamler, R.: Façade structure reconstruction using spaceborne tomosar point clouds. International Geoscience and Remote Sensing Symposium (2012)
  • Zhu and Shahzad [2014] Zhu, X.X., Shahzad, M.: Facade reconstruction using multiview spaceborne tomosar point clouds. IEEE Transactions on Geoscience and Remote Sensing (2014)
  • Sampath and Shan [2010] Sampath, A., Shan, J.: Segmentation and reconstruction of polyhedral building roofs from aerial lidar point clouds. IEEE T. Geoscience and Remote Sensing (2010)
  • Ferraz et al. [2010] Ferraz, A., Bretar, F., Jacquemoud, S., Gonçalves, G., Pereira, L.: 3d segmentation of forest structure using a mean-shift based algorithm. In: ICIP (2010)
  • Pan et al. [2018] Pan, X., Shi, J., Luo, P., Wang, X., Tang, X.: Spatial as deep: Spatial cnn for traffic scene understanding. In: AAAI (2018)
  • Xu et al. [2022] Xu, S., Cai, X., Zhao, B., Zhang, L., Xu, H., Fu, Y., Xue, X.: Rclane: Relay chain prediction for lane detection. In: European Conference on Computer Vision, pp. 461–477 (2022). Springer
  • Li et al. [2019] Li, X., Li, J., Hu, X., Yang, J.: Line-cnn: End-to-end traffic line detection with line proposal unit. TIP (2019)
  • Zheng et al. [2022] Zheng, T., Huang, Y., Liu, Y., Tang, W., Yang, Z., Cai, D., He, X.: Clrnet: Cross layer refinement network for lane detection. In: CVPR (2022)
  • Liu et al. [2021] Liu, L., Chen, X., Zhu, S., Tan, P.: Condlanenet: a top-to-down lane detection framework based on conditional convolution. In: ICCV (2021)
  • Qin et al. [2020] Qin, Z., Wang, H., Li, X.: Ultra fast structure-aware deep lane detection. In: ECCV (2020)
  • Tabelini et al. [2021] Tabelini, L., Berriel, R., Paixao, T.M., Badue, C., De Souza, A.F., Oliveira-Santos, T.: Polylanenet: Lane estimation via deep polynomial regression. In: ICPR (2021)
  • Nishi et al. [2021] Nishi, K., Ding, Y., Rich, A., Höllerer, T.: Augmentation strategies for learning with noisy labels. arXiv preprint (2021)
  • Malach and Shalev-Shwartz [2017] Malach, E., Shalev-Shwartz, S.: Decoupling ”when to update” from ”how to update”. In: NeurIPS (2017)
  • Jiang et al. [2018] Jiang, L., Zhou, Z., Leung, T., Li, L.-J., Fei-Fei, L.: Mentornet: Learning data-driven curriculum for very deep neural networks on corrupted labels. In: ICML (2018)
  • Patrini et al. [2017] Patrini, G., Rozza, A., Menon, A., Nock, R., Qu, L.: Making deep neural networks robust to label noise: A loss correction approach. In: CVPR (2017)
  • Chen et al. [2019] Chen, H., Xie, W., Vedaldi, A., Zisserman, A.: Autocorrect: Deep inductive alignment of noisy geometric annotations. In: BMVC (2019)
  • Garnett et al. [2020] Garnett, N., Uziel, R., Efrat, N., Levi, D.: Synthetic-to-real domain adaptation for lane detection. In: Accv (2020)
  • Lin et al. [2021] Lin, Y., Pintea, S.-L., Gemert, J.: Semi-supervised lane detection with deep hough transform. In: ICIP (2021)
  • Hadsell et al. [2006] Hadsell, R., Chopra, S., LeCun, Y.: Dimensionality reduction by learning an invariant map**. In: CVPR (2006)
  • Chen et al. [2020] Chen, T., Kornblith, S., Norouzi, M., Hinton, G.E.: A simple framework for contrastive learning of visual representations. In: ICML (2020)
  • Wu et al. [2018] Wu, Z., Xiong, Y., Yu, S.X., Lin, D.: Unsupervised feature learning via non-parametric instance discrimination. In: CVPR (2018)
  • Asano et al. [2020] Asano, Y.M., Rupprecht, C., Vedaldi, A.: Self-labelling via simultaneous clustering and representation learning. arXiv preprint (2020)
  • Caron et al. [2019] Caron, M., Bojanowski, P., Mairal, J., Joulin, A.: Leveraging large-scale uncurated data for unsupervised pre-training of visual features. CoRR (2019)
  • Caron et al. [2020] Caron, M., Misra, I., Mairal, J., Goyal, P., Bojanowski, P., Joulin, A.: Unsupervised learning of visual features by contrasting cluster assignments. Advances in neural information processing systems (2020)
  • Goyal et al. [2021] Goyal, P., Caron, M., Lefaudeux, B., Xu, M., Wang, P., Pai, V., Singh, M., Liptchinsky, V., Misra, I., Joulin, A., Bojanowski, P.: Self-supervised pretraining of visual features in the wild. arXiv preprint (2021)
  • He et al. [2022] He, K., Chen, X., Xie, S., Li, Y., Dollár, P., Girshick, R.: Masked autoencoders are scalable vision learners. In: CVPR (2022)
  • Gao et al. [2022] Gao, P., Ma, T., Li, H., Lin, Z., Dai, J., Qiao, Y.: Mcmae: Masked convolution meets masked autoencoders. Advances in Neural Information Processing Systems (2022)
  • Van Gansbeke et al. [2021] Van Gansbeke, W., Vandenhende, S., Georgoulis, S., Van Gool, L.: Unsupervised semantic segmentation by contrasting object mask proposals. In: ICCV (2021)
  • Zhang and Maire [2020] Zhang, X., Maire, M.: Self-supervised visual representation learning from hierarchical grou**. Advances in Neural Information Processing Systems (2020)
  • Hénaff et al. [2021] Hénaff, O.J., Koppula, S., Alayrac, J.-B., Oord, A., Vinyals, O., Carreira, J.: Efficient visual pretraining with contrastive detection. In: ICCV (2021)
  • Zorzi et al. [2020] Zorzi, S., Bittner, K., Fraundorfer, F.: Map-repair: Deep cadastre maps alignment and temporal inconsistencies fix in satellite images. IEEE International Geoscience and Remote Sensing Symposium (2020)
  • Sun et al. [2020] Sun, P., Kretzschmar, H., Dotiwalla, X., Chouard, A., Patnaik, V., Tsui, P., Guo, J., Zhou, Y., Chai, Y., Caine, B., et al.: Scalability in perception for autonomous driving: Waymo open dataset. In: CVPR (2020)
  • TuSimple [2019] TuSimple: TuSimple Benchmark. https://github.com/TuSimple/tusimple-benchmark (2019)
  • Behrendt and Soussan [2019] Behrendt, K., Soussan, R.: Unsupervised labeled lane markers using maps. In: ICCV (2019)
  • He et al. [2016] He, K., Zhang, X., Ren, S., Sun, J.: Deep residual learning for image recognition. In: CVPR (2016)
  • Qu et al. [2021] Qu, Z., **, H., Zhou, Y., Yang, Z., Zhang, W.: Focus on local: Detecting lane marker from bottom up via key point. arXiv preprint (2021)
  • Simonyan and Zisserman [2014] Simonyan, K., Zisserman, A.: Very deep convolutional networks for large-scale image recognition. CoRR (2014)
  • Deng et al. [2009] Deng, J., Dong, W., Socher, R., Li, L.-J., Li, K., Fei-Fei, L.: ImageNet: A Large-Scale Hierarchical Image Database