add efficientad section
All checks were successful
Build Typst document / build_typst_documents (push) Successful in 50s

This commit is contained in:
lukas-heilgenbrunner 2024-12-19 15:24:36 +01:00
parent 18025d10c5
commit 9386971006
3 changed files with 35 additions and 8 deletions

View File

@ -100,9 +100,9 @@ To everyone who contributed to this thesis, directly or indirectly, I offer my h
// Set citation style // Set citation style
#set cite(style: "iso-690-author-date") // page info visible // #set cite(style: "iso-690-author-date") // page info visible
//#set cite(style: "iso-690-numeric") // page info visible //#set cite(style: "iso-690-numeric") // page info visible
//#set cite(style: "springer-basic")// no additional info visible (page number in square brackets) #set cite(style: "springer-basic")// no additional info visible (page number in square brackets)
//#set cite(style: "alphanumeric")// page info not visible //#set cite(style: "alphanumeric")// page info not visible

View File

@ -98,6 +98,7 @@ This helps the model to learn the underlying patterns and to generalize well to
In few-shot learning the model has to generalize from just a few samples. In few-shot learning the model has to generalize from just a few samples.
=== Patchcore === Patchcore
// https://arxiv.org/pdf/2106.08265
PatchCore is an advanced method designed for cold-start anomaly detection and localization, primarily focused on industrial image data. PatchCore is an advanced method designed for cold-start anomaly detection and localization, primarily focused on industrial image data.
It operates on the principle that an image is anomalous if any of its patches is anomalous. It operates on the principle that an image is anomalous if any of its patches is anomalous.
The method achieves state-of-the-art performance on benchmarks like MVTec AD with high accuracy, low computational cost, and competitive inference times. #cite(<patchcorepaper>) The method achieves state-of-the-art performance on benchmarks like MVTec AD with high accuracy, low computational cost, and competitive inference times. #cite(<patchcorepaper>)
@ -114,22 +115,49 @@ This optimization reduces both storage requirements and inference times while ma
During inference, PatchCore computes anomaly scores by measuring the distance between patch features from test images and their nearest neighbors in the memory bank. During inference, PatchCore computes anomaly scores by measuring the distance between patch features from test images and their nearest neighbors in the memory bank.
If any patch exhibits a significant deviation, the corresponding image is flagged as anomalous. If any patch exhibits a significant deviation, the corresponding image is flagged as anomalous.
For localization, the anomaly scores of individual patches are spatially aligned and upsampled to generate segmentation maps, providing pixel-level insights into the anomalous regions. #cite(<patchcorepaper>) For localization, the anomaly scores of individual patches are spatially aligned and upsampled to generate segmentation maps, providing pixel-level insights into the anomalous regions.~#cite(<patchcorepaper>)
Patchcore reaches a 99.6% AUROC on the MVTec AD dataset when detecting anomalies. Patchcore reaches a 99.6% AUROC on the MVTec AD dataset when detecting anomalies.
A great advantage of this method is the coreset subsampling reducing the memory bank size significantly. A great advantage of this method is the coreset subsampling reducing the memory bank size significantly.
This lowers computational costs while maintaining detection accuracy. #cite(<patchcorepaper>) This lowers computational costs while maintaining detection accuracy.~#cite(<patchcorepaper>)
// todo reference to image below
#figure( #figure(
image("rsc/patchcore_overview.png", width: 80%), image("rsc/patchcore_overview.png", width: 80%),
caption: [Architecture of Patchcore. #cite(<patchcorepaper>)], caption: [Architecture of Patchcore. #cite(<patchcorepaper>)],
) <patchcoreoverview> ) <patchcoreoverview>
// https://arxiv.org/pdf/2106.08265
=== EfficientAD === EfficientAD
todo stuff #cite(<efficientADpaper>)
// https://arxiv.org/pdf/2303.14535 // https://arxiv.org/pdf/2303.14535
EfficientAD is another state of the art method for anomaly detection.
It focuses on maintining performance as well as high computational efficiency.
At its core, EfficientAD uses a lightweight feature extractor, the Patch Description Network (PDN), which processes images in less than a millisecond on modern hardware.
In comparison to Patchcore which relies on a deeper, more computationaly heavy WideResNet-101 network, the PDN uses only four convulutional layers and two pooling layers.
This results in reduced latency while retains the ability to generate patch-level features.~#cite(<efficientADpaper>)
The detection of anomalies is achieved through a student-teacher framework.
The teacher network is a PDN and pre-trained on normal (good) images and the student network is trained to predict the teachers output.
An anomalie is identified when the student failes to replicate the teachers output.
This works because of the abscence of anomalies in the training data and the student network has never seen an anomaly while training.
A special loss function helps the student network not to generalize too broadly and inadequatly learn to predict anomalous features.~#cite(<efficientADpaper>)
Additionally to this structural anomaly detection EfficientAD can also address logical anomalies, such as violations in spartial or contextual constraints (eg. object wrong arrangments).
This is done by the integration of an autoencoder trained to replicate the teacher's features.~#cite(<efficientADpaper>)
By comparing the outputs of the autoencdoer and the student logical anomalies are effectively detected.
This is a challenge that Patchcore does not directly address.~#cite(<efficientADpaper>)
// todo maybe add key advantages such as low computational cost and high performance
//
// todo reference to image below
#figure(
image("rsc/efficientad_overview.png", width: 80%),
caption: [Architecture of EfficientAD. #cite(<efficientADpaper>)],
) <efficientadoverview>
=== Jupyter Notebook === Jupyter Notebook
@ -150,8 +178,7 @@ Pooling layers sample down the feature maps created by the convolutional layers.
This helps reducing the computational complexity of the overall network and help with overfitting. This helps reducing the computational complexity of the overall network and help with overfitting.
Common pooling layers include average- and max pooling. Common pooling layers include average- and max pooling.
Finally, after some convolution layers the feature map is flattened and passed to a network of fully connected layers to perform a classification or regression task. Finally, after some convolution layers the feature map is flattened and passed to a network of fully connected layers to perform a classification or regression task.
@cnnarchitecture shows a typical binary classification task. @cnnarchitecture shows a typical binary classification task.~#cite(<cnnintro>)
#cite(<cnnintro>)
#figure( #figure(
image("rsc/cnn_architecture.png", width: 80%), image("rsc/cnn_architecture.png", width: 80%),

Binary file not shown.

After

Width:  |  Height:  |  Size: 205 KiB