3D Multimodal Feature for Infrastructure Anomaly Detection

August 23, 2025 ยท View on GitHub

This paper proposed a method to detect structural defects by leveraging anomaly detection from infrastructure point clouds. For simplicity, we integrated all functions from our previous paper: Anomaly detection of cracks in synthetic masonry arch bridge point clouds using fast point feature histograms and PatchCore into this repository.

Authors

Setup

This code has been tested with Python 3.8, CUDA 11.8, and Pytorch 2.0.1 on Ubuntu 18.04. FPFH is computed with 128GB of memory. CPMF is tested on RTX3080.

  conda create -n infra_inspect python=3.8
  conda activate infra_inspect
  pip install -r requirements.txt

Dataset

Crack3D-Defect is a multimodal 3D point cloud dataset designed for anomaly detection in infrastructure components such as masonry arches and tunnel rings. It includes synthetic data generated from FEM simulations and real scans of infrastructure collected at multiple time steps. It is available here. Please download the infra_3DALv2.zip file and unzip all datasets in the \infra_3DALv2 path to reproduce our results.

Usage

The algorithm can be used for computing anomalies on large-scale infrastructure point clouds.

1. Generate downsampled point clouds(voxelization) and images(projected from 3D to 2D)

  • Run:
  python multi_view_main.py 

2. Evaluate synthetic masonry arch point clouds

  • (1) All synthetic masonry arch point clouds
  python main.py '++general.inspect_target="syn_arch"'
  • (2) Only on different support movement cases
  python main.py 
  '++general.inspect_target="syn_arch"' 
  '++general.synarch_names=["disp_x_40cm", "disp_z", "disp_xz", "rot_x"]'
  • (3) Only on varying support movement magnitude(It is not included in this paper for the length limit, though it is a good demonstration for comparing the difference in whether or not new surfaces are added to the synthetic dataset)
  python main.py 
  '++general.inspect_target="syn_arch"' 
  '++general.synarch_names=["disp_x_8cm", "disp_x_12cm", "disp_x_8cm_noinnerc", "disp_x_12cm_noinnerc"]'

3. Evaluate on real masonry arch point clouds

  • Run:
  python main.py '++general.inspect_target="real_arch"'

4. Evaluate real tunnel point clouds

  • Run:
  python main.py 
  '++general.inspect_target="tunnel"'
  '++al_detector.feature_types=["FPFH", "FPFH_naiveRGB", "FPFH_relaRGB"]'
  '++al_detector.radius_fs_ratios=[30]'

Results

Comparison of different feature types in anomaly detection:

1. Synthetic masonry arch

Results

2. Real masonry arch

Results

3. Real tunnel

Results

Citations

If you find the code is beneficial to your research, please consider citing:

@article{jing2024anomaly,
  title={Anomaly detection of cracks in synthetic masonry arch bridge point clouds using fast point feature histograms and PatchCore},
  author={Jing, Yixiong and Zhong, Jia-Xing and Sheil, Brian and Acikgoz, Sinan},
  journal={Automation in Construction},
  volume={168},
  pages={105766},
  year={2024},
  publisher={Elsevier}
}

@article{jing20253d,
  title={3D multimodal feature for infrastructure anomaly detection},
  author={Jing, Yixiong and Lin, Wei and Sheil, Brian and Acikgoz, Sinan},
  journal={Automation in Construction},
  volume={178},
  pages={106388},
  year={2025},
  publisher={Elsevier}
}

Acknowledge

We used some code from CPMF to make comparisons in our work. We would like to thank them for their sharing.

License

Our work is subjected to MIT License.