/RoadMarkingExtraction

A C++ Program for automatically extraction of road markings from MLS or ALS point cloud [ISPRS-A' 19]

Primary LanguageC++

RoadMarkingExtraction

This repository contains a C++ implementation of the automatic extraction, classification and vectorization of road markings from MLS point cloud. It's based on traditional image & point cloud processing approaches, which can act as the easy baseline for novel learning-based methods.

alt text


About

Version 1.2: passed on Ubuntu 16.04. For former versions, please check the other branches.

Dependent 3rd Party Libs: Eigen3, PCL1.8, OpenCV2, LibLas, DXFLib

Application Scenarios: MLS or ALS point cloud for highway or urban roads

How to use

  1. Install dependent libs by sh ./script/download_dependent_lib.sh.

  2. Build the repository:

mkdir build
cd build
cmake .. 
make 
cd ..
  1. Prepare the model pool (take ./model_pool/xxx as an example) and configure the parameter list (take ./config/xxx.txt as an example).

  2. Configure the input (*.las or *.pcd point cloud) and output path in ./script/run_xxx.sh.

  3. Run sh ./script/run_xxx.sh.

  4. Check the results in your output folder. You may use CloudCompare to visualize the point cloud and use AutoCAD or ShareCAD to visualize the dxf files.


Citation

If you find this code useful for your work or use it in your project, please consider citing:

@article{pan2019automatic,
  title={Automatic Road Markings Extraction, Classification and Vectorization from Mobile Laser Scanning Data.},
  author={Pan, Yue and Yang, B and Li, S and Yang, H and Dong, Z and Yang, X},
  journal={International Archives of the Photogrammetry, Remote Sensing \& Spatial Information Sciences},
  year={2019}
}

paper link

Workflow

alt text

Image Processing

alt text

Demo

alt text

Acknowledgement:

Thanks hibetterheyj for the effort to migrate the codes on Linux.