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

2. Real masonry arch

3. Real tunnel

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.