Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection

August 12, 2024 ยท View on GitHub

Paper

PWC PWC

Official PyTorch Implementation for the "Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection" paper.


Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection
Yunkang Cao, Xiaohao Xu, Weiming Shen
https://arxiv.org/abs/2303.13194

Abstract: Point cloud (PCD) anomaly detection steadily emerges as a promising research area. This study aims to improve PCD anomaly detection performance by combining handcrafted PCD descriptions with powerful pre-trained 2D neural networks. To this end, this study proposes Complementary Pseudo Multimodal Feature (CPMF) that incorporates local geometrical information in 3D modality using handcrafted PCD descriptors and global semantic information in the generated pseudo 2D modality using pre-trained 2D neural networks. For global semantics extraction, CPMF projects the origin PCD into a pseudo 2D modality containing multi-view images. These images are delivered to pre-trained 2D neural networks for informative 2D modality feature extraction. The 3D and 2D modality features are aggregated to obtain the CPMF for PCD anomaly detection. Extensive experiments demonstrate the complementary capacity between 2D and 3D modality features and the effectiveness of CPMF, with 95.15% image-level AU-ROC and 92.93% pixel-level PRO on the MVTec3D benchmark.

Framework

Framework

Rendered Samples

Our method uses open-3d for rendering, and here are some sample results. Rendered Samples

Qualitative Results

Here are the qualitative results of our method. Qualitative Results

Getting Started

Setup

  1. Clone the repo:
git https://github.com/caoyunkang/CPMF
cd CPMF
  1. Create a new environment and install the libraries:
conda create -n 3d_cpmf python=3.7
conda activate 3d_cpmf
sh init.sh
  1. Download and extract the dataset
data_dir=../datasets/mvtec_3d
cd $data_dir # data dir for the dataset
wget https://www.mydrive.ch/shares/45920/dd1eb345346df066c63b5c95676b961b/download/428824485-1643285832/mvtec_3d_anomaly_detection.tar.xz
mkdir mvtec_3d
tar -xvf mvtec_3d_anomaly_detection.tar.xz -c ./mvtec_3d
  1. preprocess datasets. i.e., remove backgrounds and then render multi-view images.

MVTec 3D-AD

sh preprocess_dataset.sh

Eyecandies

sh preprocess_dataset_eyecandies.sh


Training

To run on a single category:

python main.py --category  bagel --n-views 27 --no-fpfh False --data-path $data_dir --exp-name $exp_name --backbone resnet18

To reproduce the experiments. Note: please make sure the directories are properly set.

python run_exp.py

Image ROCAUC Results

MethodBagelCable GlandCarrotCookieDowelFoamPeachPotatoRopeTireMean
Voxel GAN0.38300.62300.47400.63900.56400.40900.61700.42700.66300.57700.5376
Voxel AE0.69300.42500.51500.79000.49400.55800.53700.48400.63900.58300.5718
Voxel VM0.75000.74700.61300.73800.82300.69300.67900.65200.60900.69000.6994
Depth GAN0.53000.30700.60100.60300.49700.48400.52500.48900.60900.53600.5233
Depth AE0.46800.73100.49700.67300.53400.41700.48500.54900.56400.54600.5464
Depth VM0.51000.54200.46900.57600.60900.69900.45000.41900.66800.52000.5462
AST0.88100.57600.95600.95700.67900.79700.99000.91500.95600.61100.8318
BTF (Depth iNet)0.68600.53200.76900.85300.85700.51100.57300.62000.75800.59000.6749
BTF (Raw)0.62700.50600.59900.65400.57300.53100.53100.61100.41200.67800.5722
BTF (HoG)0.48700.58800.69900.54600.64300.59300.61600.58400.50600.42900.5582
BTF (SIFT)0.71100.65600.89200.75400.82800.68600.62200.75400.76700.59800.7268
BTF (FPFH)0.82500.55100.95200.79700.88300.58200.75800.88900.92900.65300.7819
CPMF0.98300.88940.98850.99100.95780.80940.98840.95900.97920.96920.9515

AU PRO Results

MethodBagelCable GlandCarrotCookieDowelFoamPeachPotatoRopeTireMean
Voxel GAN0.44000.45300.82500.75500.78200.37800.39200.63900.77500.38900.5828
Voxel AE0.26000.34100.58100.35100.50200.23400.35100.65800.01500.18500.3478
Voxel VM0.45300.34300.52100.69700.68000.28400.34900.63400.61600.34600.4923
Depth GAN0.11900.04200.21200.17400.16300.10700.07300.04200.46400.07500.1423
Depth AE0.14700.06900.29300.21700.20700.18100.16400.06600.54500.14200.2031
Depth VM0.28000.37400.24300.52600.48500.31400.19900.38800.54300.38500.3737
3D-ST1280.95000.48300.98600.92100.90500.63200.94500.98800.97600.54200.8328
BTF (Depth iNet)0.76900.66400.88700.88000.86400.26900.87600.86500.85200.62400.7550
BTF (Raw)0.40100.31100.63800.49800.25000.25400.52700.53000.80800.20100.4418
BTF (HoG)0.71100.76300.93100.49700.83300.50200.94800.91600.85800.85800.7742
BTF (SIFT)0.94200.84200.97400.89600.91000.72300.94400.98100.95300.92900.9094
BTF (FPFH)0.97300.87900.98200.90600.89200.73500.97700.98200.95600.96100.9243
CPMF0.95760.94560.97930.86810.89740.74600.97950.98070.96100.97730.9293


Additional Results

We sincerely thank zhiqing0205 for providing the evaluation results of CPMF with solely depth maps on Eyecandies.

CandyCaneChocolateCookieChocolatePralineConfettoGummyBearHazelnutTruffleLicoriceSandwichLollipopMarshmallowPeppermintCandyaverage
I-AUROC77.2879.5275.0484.6474.0458.4074.5681.9971.0481.2875.78
P-AUROC98.7293.0989.9395.0490.0986.8692.8198.3990.5192.6592.81
AUPRO94.0775.6158.4479.5372.8456.1467.9190.8369.6078.3874.34

Citation

If you find this repository useful for your research, please use the following.

@article{cao2023CPMF,
	title = {Complementary Pseudo Multimodal Feature for Point Cloud Anomaly Detection},
	journal = {arXiv preprint arXiv:2303.13194},
	author = {Cao, Yunkang and Xu, Xiaohao and Shen, Weiming},
	year = 2023,
}

Acknowledgments

Some codes are borrowed from BTF. Thanks for their work.

@article{horwitz2022empirical,
  title={An Empirical Investigation of 3D Anomaly Detection and Segmentation},
  author={Horwitz, Eliahu and Hoshen, Yedid},
  journal={arXiv preprint arXiv:2203.05550},
  year={2022}
}