Skip to content

deemoe404/volcal_baseline

Repository files navigation

volcal_baseline

A data-driven pipeline for large-scale open-pit-mine excavation monitoring from multi-temporal 3-D point clouds

Journal DOI License: MIT

📢 Announcements

volcal_baseline is the reference implementation that accompanies our paper
“A Data-driven solution for large-scale open-pit mines excavation monitoring based on 3-D point cloud” published in IET Image Processing (2025). The code turns two (or more) raw point-cloud epochs into sub-percent volumetric change estimates without manual parameter tuning by chaining:

  1. Exhaustive Grid Search (EGS) coarse alignment
  2. Generalised ICP (G-ICP) fine alignment (adaptive correspondence distance)
  3. M3C2 robust 3-D change detection with local LoD uncertainty
  4. DEM-based cut / fill computation with adaptive grid resolution

Experiments on the WHU–TLS benchmark and a real UAV survey from Tongjiang quarry show < 1 % volume error for volumes > 800 m³ and < 2 % under worst-case noise & mis-alignment. Datasets we used are listed below, and the code is available as a Jupyter notebook for quick start.

Dataset Link Notes
WHU–TLS benchmark https://3s.whu.edu.cn/ybs/en/benchmark.htm 115 terrestrial scans used for robustness tests
Tongjiang Aerial (UAV) https://zenodo.org/records/15614501 4 missions over active limestone quarry

You can download the pre-processed datasets & logs from the Internet Archive. The final folder structure should look like this:

.
├── exhaustive-grid-search/    # submodule (coarse alignment)
├── py4dgeo/                   # submodule fork (M3C2 implementation)
├── datasets/                  # Pre-processed datasets
│   ├── WHU-TLS
│   └── Tongjiang_Aerial
├── sweep/
│   ├── batch_run.py           # Benchmarking script
│   ├── batch_visualise.py     # Benchmarking visualisation script
│   ├── exp_*.py               # Ablation study scripts
│   └── vis_*.py               # Ablation study visualisation scripts
├── pipeline.py                # Orchestrates the workflow
├── requirements.txt           # core Python deps
├── rotation_modifier.ipynb    # Jupyter notebook to build custom rotation presets
├── exp_WHU-TLS.ipynb          # WHU-TLS dataset
└── exp_Tongjiang_Aerial.ipynb # Tongjiang Aerial

Quick start

For a quick start, clone the repository and install the dependencies using conda and pip. The code is tested with Python 3.11 and requires a capable GPU/iGPU for EGS. The following commands will set up the environment:

# Clone incl. submodules (EGS and Py4DGeo forks)
git clone --recursive https://github.com/deemoe404/volcal_baseline.git
cd volcal_baseline

# Create conda environment with Python 3.11
conda create -n volcal_env python=3.11 libstdcxx-ng -c conda-forge -y
conda activate volcal_env

# Install dependencies
pip install -r requirements.txt

cd py4dgeo
python -m pip install -v --editable .

Then, open the Jupyter notebooks exp_WHU-TLS or exp_Tongjiang_Aerial to run the pipeline on the corresponding datasets. The notebooks contain detailed instructions on how to run the pipeline and visualise the results.

License

This project is released under the Apache-2.0 License – see LICENSE for details.

About

A data-driven pipeline for excavation monitoring from multi-temporal 3D point clouds (TLS/UAV).

Resources

License

Stars

Watchers

Forks

Contributors