/anomaly-detection-3d

An implementation of the "Anomaly Detection in 3D Point Clouds using Deep Geometric Descriptors" paper in Python without pre-training with the ModelNet10 dataset and without generating the synthetic data.

Primary LanguagePythonMIT LicenseMIT

Anomaly Detection 3D

An implementation of the "Anomaly Detection in 3D Point Clouds using Deep Geometric Descriptors" paper in Python without pre-training with the ModelNet10 dataset and without generating the synthetic data.

Training

After downloading the repo, complete the following:

  1. Download the MVTec 3D-AD dataset dataset and place its unzipped contents (it should be a folder titled "mvtec_3d_anomaly_detection") in the "datasets" folder.
  2. Run train script (py -3 -m train)

If you are having issues or if it is running slowly, run the systemtest script.

Also note that I trained these models on a NVIDIA GeForce RTX 3050 Ti Laptop GPU, so if you make some minor alterations to the train code (number of epochs or fixed_size for example), you can likely train better models than those found here. The models linked below only went through 8 epochs each, and ideally you want 11+ for this kind of model.

Test

Run the test/visualize script with py -3 -m test or py -3 -m test filenamehere.png

Example Results

Carrot

a cut carrot

anomaly pointcloud of the cut carrot

Bagel

a damaged bagel

anomaly pointcloud of the damaged bagel

Models

Models uploaded to my drive, here: anomaly-detection-3d-models.

train loss curve