Digital maps with lane-level details are the foundation of many applications. However, creating and maintaining digital maps especially maps with lane-level details, are labor-intensive and expensive. In this work, we propose a mapping pipeline to extract lane-level street maps from aerial imagery automatically. Our mapping pipeline first extracts lanes at non-intersection areas, then it enumerates all the possible turning lanes at intersections, validates the connectivity of them, and extracts the valid turning lanes to complete the map. We evaluate the accuracy of our mapping pipeline on a dataset consisting of four U.S. cities, demonstrating the effectiveness of our proposed mapping pipeline and the potential of scalable mapping solutions based on aerial imagery.
The code should be able to run in the following (or a compatible) environment.
Python versions: Python 2.7.12 (python) and Python 3.5.2 (python3).
Python 2 Tensorflow version: 1.15.0
CUDA version: 10.0
CUDNN version: 7
NVIDIA driver version: 418.165.02
Please check the instructions in code/hdmapeditor.
We have the raw dataset in the dataset folder. To train the models, we have to first create the necessary data, e.g., the lane segmentation.
cd code
python3 create_training_data.py
Train the lane-and-direction extraction model.
cd code/laneAndDirectionExtraction
python train.py resnet34v3
Train the turning lane validation model.
cd code/turningLaneValidation
python train.py
Train the turning lane extraction model.
cd code/turningLaneExtraction
python train.py
This part is not done yet. However, there is some untested code in the code_for_reference_untested folder which might be useful.