# CloudControlNet **Repository Path**: YuePanEdward/CloudControlNet ## Basic Information - **Project Name**: CloudControlNet - **Description**: No description available - **Primary Language**: C++ - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2020-03-21 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Cloud Control Net ### Cloud Control Net (CCN): a robust and efficient framework for multiple source point cloud adjustment and fusion ### Under development ### How to use 1. Install dependent 3rd libraries [PCL(>=1.7)](https://github.com/PointCloudLibrary/pcl), [LibLas(Optional for las data IO)](https://github.com/libLAS/libLAS), [Proj4(Optional for geo-projection)](https://proj.org/), [g2o(<=2017version)](https://github.com/RainerKuemmerle/g2o/releases/tag/20170730_git) or [ceres](http://ceres-solver.org/) ``` #you may run the following shell file to install all the dependent libs sh script/install_dep_lib.sh ``` 2. Compile ``` mkdir build cd build cmake .. make cd .. ``` 3. Prepare data Use your own data or use the [ISPRS Multiplatform Very High Resolution Photogrammetry Dataset](https://github.com/YuePanEdward/CloudControlNet/blob/master/assets/download_isprs_mpp_dataset.pdf) to test the project. The data folder structure should be as following: ``` _____ALS_foler |___ALS_strip_00.las (single-scanline , optional) |___ALS_strip_00 . |____ALS_block_0000.las . |____ALS_block_0001.las . |____ALS_block_.....las |___ALS_strip_00_dataconfig.txt (optional) |___ALS_strip_01.las (single-scanline , optional) |___ALS_strip_01 . |____ALS_block_0100.las . |____ALS_block_0101.las . |____ALS_block_.....las |___ALS_strip_01_dataconfig.txt (optional) |___ALS_strip_02.las (single-scanline , optional) |___ALS_strip_02 . |____ALS_block_.....las |___ALS_strip_02_dataconfig.txt (optional) |___ALS_strip... _____MLS_foler |___MLS_strip_00.las (single-scanline , optional) |___MLS_strip_00 . |____MLS_block_0000.las . |____MLS_block_0001.las . |____MLS_block_.....las |___MLS_strip_00_dataconfig.txt (optional) |___MLS_strip_00_station_pose.txt (multi-scanline , optional) |___MLS_strip_01.las (single-scanline , optional) |___MLS_strip_01 . |____MLS_block_0100.las . |____MLS_block_0101.las . |____MLS_block_.....las |___MLS_strip_01_dataconfig.txt (optional) |___MLS_strip_01_station_pose.txt (multi-scanline , optional) |___MLS_strip... _____BPLS_foler |___BPLS_strip_00.las (single-scanline , optional) |___BPLS_strip_00 . |____BPLS_block_0000.las . |____BPLS_block_0001.las . |____BPLS_block_.....las |___BPLS_strip_00_dataconfig.txt (optional) |___BPLS_strip_00_station_pose.txt (multi-scanline , optional) |___BPLS_strip... _____TLS_folder_base |___ TLS_folder . |____TLS_station_0000.las . |____TLS_station_0001.las . |____TLS_station_.....las |____TLS_folder_dataconfig.txt (optional) |____TLS_folder_station_position.txt (geo-referenced with gnss-spp/ppp/rtk, optional) ``` logs and results folder: ``` _____log |____test _____project_foler |____registration_results_experiment_id.txt |____pose_result_experiment_id.txt |____constraints_experiment_id.txt |____... ``` 4. configure the data path and parameters ``` #in ./script/run_ccn.sh #data path ALS_data_path=ALS_foler; TLS_data_path=TLS_foler; MLS_data_path=MLS_folder; BPLS_data_path=BPLS_folder; project_folder=project_foler; log_folder=log_folder; ``` 5. Run ``` # for the cloud control net, you can run sh script/run_ccn.sh # if you'd like to test the cross-template fine registration module # edit the script/test_unit_reg.sh file, specify the data path and then run sh script/test_unit_reg.sh ``` ## Cross-template point cloud fine registration #### Geometric feature points rough classification ![alt text](assets/compare2.png) Left: ALS , Right: TLS #### Multiple Metrics Linear Least Sqaure Iterative Closest Points (MMLLS-ICP) ![alt text](assets/compare1.png) Left: Before registration, Right: After registration ## Cloud Control Net (Pose graph optimization) ### Framework ![alt text](assets/framework.jpg) ### Application 1: ALS Point Cloud Refinement ALS refinement using TLS or MLS data for highway expansion and reconstruction egineering ![alt text](assets/1.jpg) Generated Pose Graph (Red: ALS block, Green: TLS station, Blue: MLS block, Yellow: BPLS block, Cyan: Adjacent Smooth Edge, Purple: Overlapping Registration Edge) ![alt text](assets/2.jpg) ALS correction result: (a) Before optimization (b) After optimization ### Application 2:Multi-Source Point Cloud Fusion ![alt text](assets/4.jpg) Multi-template point cloud data fusion result (a) TLS (b) TLS+BPLS (c)TLS+BPLS+MLS (d)TLS+BPLS+MLS+ALS