Code of paper "Noisy Dual Principal Component Pursuit", ICML 2019
- Armadillo (C++ scientific computing library)
- numpy, matplotlib
- [optional] OpenBLAS
Basically, we use MATLAB for simple tasks, C++ for heavy jobs and Python to do some plotting after obtaining data through MATLAB/C++ programs.
Usage (tested under Mac OS)
- Matlab program can be executed directly
- Generally, each
.cppfile is paired with a
driver.pyfile (just run the driver file is enough)
- An installation of OpenBLAS will further accelerate the C++ programs but the compilation in
driver.pyneeds to be changed accordingly
3D Roadplane Estimation
demo.mis a toy example that runs single subspace learning algorithms on real 3D road plane detection data. Once we have selected the frame and click run button, it instantly runs the algorithms and returns the clustering metrics, geometric metrics and algorithmic metrics as mentioned in the paper. Also, a poster showing the projections of the separated point clouds onto the image is generated after the execution of the program.
/datais a folder containing annotations for point clouds and corresponding images.
/algorithmsis a folder containing various single subspace learning algorithms.