From 2eeed2c31eed593d4e30e4d5a73d91ce10df1dc0 Mon Sep 17 00:00:00 2001 From: lukas-heiligenbrunner Date: Fri, 3 Jan 2025 21:48:48 +0100 Subject: [PATCH] add images for final results --- experimentalresults.typ | 36 ++++++++++++++++++++++++++++----- implementation.typ | 23 +++++++++++++++++---- rsc/comparison-2way-bottle.png | Bin 0 -> 38232 bytes rsc/comparison-2way-cable.png | Bin 0 -> 29822 bytes 4 files changed, 50 insertions(+), 9 deletions(-) create mode 100644 rsc/comparison-2way-bottle.png create mode 100644 rsc/comparison-2way-cable.png diff --git a/experimentalresults.typ b/experimentalresults.typ index f88c27c..9647729 100644 --- a/experimentalresults.typ +++ b/experimentalresults.typ @@ -1,15 +1,41 @@ +#import "utils.typ": todo +#import "@preview/subpar:0.1.1" + = Experimental Results == Is Few-Shot learning a suitable fit for anomaly detection? +_Should Few-Shot learning be used for anomaly detection tasks? +How does it compare to well established algorithms such as Patchcore or EfficientAD?_ -Should Few-Shot learning be used for anomaly detection tasks? -How does it compare to well established algorithms such as Patchcore or EfficientAD? +@comparison2waybottle shows the performance of the 2-way classification (anomaly or not) on the bottle class and @comparison2waycable the same on the cable class. +The performance values are the same as in @experiments but just merged together into one graph. +As a reference Patchcore reaches an AUROC score of 99.6% and EfficientAD reaches 99.8% averaged over all classes provided by the MVTec AD dataset. +Both are trained with samples from the 'good' class only. +So there is a clear performance gap between Few-Shot learning and the state of the art anomaly detection algorithms. + +That means if the goal is just to detect anomalies, Few-Shot learning is not the best choice and Patchcore or EfficientAD should be used. + +#subpar.grid( + figure(image("rsc/comparison-2way-bottle.png"), caption: [ + Bottle class + ]), , + figure(image("rsc/comparison-2way-cable.png"), caption: [ + Cable class + ]), , + columns: (1fr, 1fr), + caption: [2-Way classification performance], + label: , +) == How does disbalancing the Shot number affect performance? -Does giving the Few-Shot learner more good than bad samples improve the model performance? +_Does giving the Few-Shot learner more good than bad samples improve the model performance?_ + +As all three method results in @experiments show, the performance of the Few-Shot learner decreases with an increasing number of good samples. +Which is an result that is unexpected. +#todo[Image of disbalanced shots] == How does the 3 (ResNet, CAML, \pmf) methods perform in only detecting the anomaly class? -How much does the performance improve if only detecting an anomaly or not? -How does it compare to PatchCore and EfficientAD? +_How much does the performance improve if only detecting an anomaly or not? +How does it compare to PatchCore and EfficientAD?_ == Extra: How does Euclidean distance compare to Cosine-similarity when using ResNet as a feature-extractor? diff --git a/implementation.typ b/implementation.typ index 670f668..37fc3b1 100644 --- a/implementation.typ +++ b/implementation.typ @@ -6,7 +6,7 @@ = Implementation The three methods described (ResNet50, CAML, P>M>F) were implemented in a Jupyter notebook and compared to each other. -== Experiments +== Experiments For all of the three methods we test the following use-cases:#todo[maybe write more to each test] - Detection of anomaly class (1,3,5 shots) - 2 Way classification (1,3,5 shots) @@ -20,7 +20,7 @@ Those experiments were conducted on the MVTEC AD dataset on the bottle and cable == Experiment Setup All the experiments were done on the bottle and cable classes of the MVTEC AD dataset. The correspoinding number of shots were randomly selected from the dataset. -The rest of the images were used to test the model and measure the accuracy. +The rest of the images was used to test the model and measure the accuracy. #todo[Maybe add real number of samples per classes] == ResNet50 @@ -86,7 +86,7 @@ In the following diagram the ResNet50 architecture is visualized and the cut-poi After creating the embeddings for the support and query set the euclidean distance is calculated. The class with the smallest distance is chosen as the predicted class. -=== Results +=== Results This method performed better than expected wich such a simple method. As in @resnet50bottleperfa with a normal 5 shot / 4 way classification the model achieved an accuracy of 75%. When detecting only if there occured an anomaly or not the performance is significantly better and peaks at 81% with 5 shots / 2 ways. @@ -131,10 +131,25 @@ but this is expected as the cable class consists of 8 faulty classes. == P>M>F === Approach +For P>M>F the pretrained model weights from the original paper were used. +As backbone feature extractor a DINO model is used, which is pre-trained by facebook. +This is a vision transformer with a patch size of 16 and 12 attention heads learned in a self-supervised fashion. +This feature extractor was meta-trained with 10 public image dasets #footnote[ImageNet-1k, Omniglot, FGVC- +Aircraft, CUB-200-2011, Describable Textures, QuickDraw, +FGVCx Fungi, VGG Flower, Traffic Signs and MSCOCO~#cite()] + of diverse domains by the authors of the original paper.#cite() + +Finally, this model is finetuned with the support set of every test iteration. +Everytime the support set changes we need to finetune the model again. +In a real world scenario this should not be the case because the support set is fixed and only the query set changes. + === Results The results of P>M>F look very promising and improve by a large margin over the ResNet50 method. In @pmfbottleperfa the model reached an accuracy of 79% with 5 shots / 4 way classification. -#todo[write bit more here] +The 2 way classification (faulty or not) performed even better and peaked at 94% accuracy with 5 shots.#todo[Add somehow that all classes are stacked] + +Similar to the ResNet50 method in @resnet50perf the tests with an inbalanced class distribution performed worse than with balanced classes. +So it is clearly a bad idea to add more good shots to the support set. #subpar.grid( figure(image("rsc/pmf/P>M>F-bottle.png"), caption: [ diff --git a/rsc/comparison-2way-bottle.png b/rsc/comparison-2way-bottle.png new file mode 100644 index 0000000000000000000000000000000000000000..10c148ceb3665cf7acc18000b8011bd0ee7d530d GIT binary patch literal 38232 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 a@3_^tIw$#95?7<(pGV@dVp$^EZ~qUoV6YPa literal 0 HcmV?d00001 diff --git a/rsc/comparison-2way-cable.png b/rsc/comparison-2way-cable.png new file mode 100644 index 0000000000000000000000000000000000000000..dd8982f33b0f71db722f7e16729ce359175ede2c GIT binary patch literal 29822 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�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 literal 0 HcmV?d00001