Real-Time Lane Detection Network for Autonomous Driving

Source: Deep Learning on Medium


Personal notes on a way to building self-driving cars

Go to the profile of Max Larionov

The Problem

Detecting accurate locations and shapes for road markup is one of the key techniques to enable modern autonomous driving systems. This article is going to share the progress of developing a deep learning model for road markup detection.

Dataset and the Training Process

Model training has been done on an Apple MacBook 2017 Pro with AMD Radeon Pro 555 on board. The process took around 24 hours and required constant supervision so the laptop does not overheat. The hardware cooling setup included a beer bottle cap set under the edge of a laptop to provide cold air intake.

The training has been performed on Radeon Pro 555, which does not support CUDA for obvious reasons. Therefore, PlaidML Keras Backend was used instead of Tensorflow. However, the model does not require any change to switch to Tensorflow.

Initial training has been performed using CULane Dataset.

CULane is a large scale challenging dataset for academic research on traffic lane detection. It is collected by cameras mounted on six different vehicles driven by different drivers in Beijing. More than 55 hours of videos were collected and 133,235 frames were extracted. Data examples are shown above. We have divided the dataset into 88880 for training set, 9675 for validation set, and 34680 for test set. The test set is divided into normal and 8 challenging categories, which correspond to the 9 examples above.

(CULane Dataset https://xingangpan.github.io/projects/CULane.html )

Deep Learning Model

Straight to the point. I know what you are here for.

I will come up with a fancy diagram later

Results

Again, straight to the point.

Markup detection results
Markup detection results
Training accuracy
Binary cross-entropy loss

Conclusion

The current state of the model requires a lot of adjustment, refinement and hyperparameter optimization. Future plans include using a custom loss function and adding an upsampling network to get a high-resolution image. The result achieved so far is a small success which brought a lot of experience and taught me to apply deep learning convolutional neural networks to real-life problems.