on git build release mode add some todos
Some checks failed
Build Typst document / build_typst_documents (push) Failing after 10s
Some checks failed
Build Typst document / build_typst_documents (push) Failing after 10s
This commit is contained in:
parent
1b41fff04b
commit
53d11ae459
3
.github/workflows/buildtypst.yml
vendored
3
.github/workflows/buildtypst.yml
vendored
@ -11,6 +11,9 @@ jobs:
|
|||||||
uses: lvignoli/typst-action@main
|
uses: lvignoli/typst-action@main
|
||||||
with:
|
with:
|
||||||
source_file: main.typ
|
source_file: main.typ
|
||||||
|
options: |
|
||||||
|
--input inwriting=false
|
||||||
|
--input draft=false
|
||||||
- name: Upload PDF file
|
- name: Upload PDF file
|
||||||
uses: actions/upload-artifact@v3
|
uses: actions/upload-artifact@v3
|
||||||
with:
|
with:
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
#import "@preview/subpar:0.1.1"
|
#import "@preview/subpar:0.1.1"
|
||||||
|
#import "utils.typ": todo
|
||||||
|
|
||||||
= Material and Methods
|
= Material and Methods
|
||||||
|
|
||||||
@ -87,8 +88,8 @@ These models learn a representation of each class and classify new examples base
|
|||||||
) <prototypefewshot>
|
) <prototypefewshot>
|
||||||
|
|
||||||
The first and easiest method of this bachelor thesis uses a simple ResNet to calucalte those embeddings and is basically a simple prototypical netowrk.
|
The first and easiest method of this bachelor thesis uses a simple ResNet to calucalte those embeddings and is basically a simple prototypical netowrk.
|
||||||
See //%todo link to this section
|
See #todo[link to this section]
|
||||||
// todo proper source
|
#todo[proper source]
|
||||||
|
|
||||||
=== Generalisation from few samples
|
=== Generalisation from few samples
|
||||||
|
|
||||||
@ -102,8 +103,8 @@ In few-shot learning the model has to generalize from just a few samples.
|
|||||||
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>)
|
||||||
|
#todo[Absatz umformulieren und vereinfachen]
|
||||||
|
|
||||||
// todo vll ersten absatz umofrmulieren und vereinfachen
|
|
||||||
The PatchCore framework leverages a pre-trained convolutional neural network (e.g., WideResNet50) to extract mid-level features from image patches.
|
The PatchCore framework leverages a pre-trained convolutional neural network (e.g., WideResNet50) to extract mid-level features from image patches.
|
||||||
By focusing on intermediate layers, PatchCore balances the retention of localized information with a reduction in bias associated with high-level features pre-trained on ImageNet.
|
By focusing on intermediate layers, PatchCore balances the retention of localized information with a reduction in bias associated with high-level features pre-trained on ImageNet.
|
||||||
To enhance robustness to spatial variations, the method aggregates features from local neighborhoods using adaptive pooling, which increases the receptive field without sacrificing spatial resolution. #cite(<patchcorepaper>)
|
To enhance robustness to spatial variations, the method aggregates features from local neighborhoods using adaptive pooling, which increases the receptive field without sacrificing spatial resolution. #cite(<patchcorepaper>)
|
||||||
@ -112,6 +113,7 @@ A crucial component of PatchCore is its memory bank, which stores patch-level fe
|
|||||||
This memory bank represents the nominal distribution of features against which test patches are compared.
|
This memory bank represents the nominal distribution of features against which test patches are compared.
|
||||||
To ensure computational efficiency and scalability, PatchCore employs a coreset reduction technique to condense the memory bank by selecting the most representative patch features.
|
To ensure computational efficiency and scalability, PatchCore employs a coreset reduction technique to condense the memory bank by selecting the most representative patch features.
|
||||||
This optimization reduces both storage requirements and inference times while maintaining the integrity of the feature space. #cite(<patchcorepaper>)
|
This optimization reduces both storage requirements and inference times while maintaining the integrity of the feature space. #cite(<patchcorepaper>)
|
||||||
|
#todo[reference to image below]
|
||||||
|
|
||||||
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.
|
||||||
@ -122,8 +124,6 @@ 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>)],
|
||||||
@ -136,6 +136,7 @@ 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.
|
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.
|
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>)
|
This results in reduced latency while retains the ability to generate patch-level features.~#cite(<efficientADpaper>)
|
||||||
|
#todo[reference to image below]
|
||||||
|
|
||||||
The detection of anomalies is achieved through a student-teacher framework.
|
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.
|
The teacher network is a PDN and pre-trained on normal (good) images and the student network is trained to predict the teachers output.
|
||||||
@ -148,10 +149,7 @@ This is done by the integration of an autoencoder trained to replicate the teach
|
|||||||
|
|
||||||
By comparing the outputs of the autoencdoer and the student logical anomalies are effectively detected.
|
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>)
|
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 maybe add key advantages such as low computational cost and high performance
|
|
||||||
//
|
|
||||||
// todo reference to image below
|
|
||||||
|
|
||||||
|
|
||||||
#figure(
|
#figure(
|
||||||
@ -201,8 +199,13 @@ For this bachelor theis the ResNet-50 architecture was used to predict the corre
|
|||||||
=== CAML
|
=== CAML
|
||||||
// https://arxiv.org/pdf/2310.10971v2
|
// https://arxiv.org/pdf/2310.10971v2
|
||||||
CAML (Context aware meta learning) is one of the state-of-the-art methods for few-shot learning.
|
CAML (Context aware meta learning) is one of the state-of-the-art methods for few-shot learning.
|
||||||
|
#todo[Here we should describe in detail how caml works]
|
||||||
|
|
||||||
|
#figure(
|
||||||
|
image("rsc/caml_architecture.png", width: 80%),
|
||||||
|
caption: [Architecture of CAML. #cite(<caml_paper>)],
|
||||||
|
) <camlarchitecture>
|
||||||
|
|
||||||
Todo
|
|
||||||
=== P$>$M$>$F
|
=== P$>$M$>$F
|
||||||
Todo
|
Todo
|
||||||
|
|
||||||
|
BIN
rsc/caml_architecture.png
Normal file
BIN
rsc/caml_architecture.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 218 KiB |
10
sources.bib
10
sources.bib
@ -108,3 +108,13 @@
|
|||||||
primaryClass={cs.LG},
|
primaryClass={cs.LG},
|
||||||
url={https://arxiv.org/abs/1703.05175},
|
url={https://arxiv.org/abs/1703.05175},
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@misc{caml_paper,
|
||||||
|
title={Context-Aware Meta-Learning},
|
||||||
|
author={Christopher Fifty and Dennis Duan and Ronald G. Junkins and Ehsan Amid and Jure Leskovec and Christopher Re and Sebastian Thrun},
|
||||||
|
year={2024},
|
||||||
|
eprint={2310.10971},
|
||||||
|
archivePrefix={arXiv},
|
||||||
|
primaryClass={cs.LG},
|
||||||
|
url={https://arxiv.org/abs/2310.10971},
|
||||||
|
}
|
||||||
|
10
utils.typ
10
utils.typ
@ -1,11 +1,15 @@
|
|||||||
#let inwriting = false
|
#import "@preview/drafting:0.2.1": margin-note
|
||||||
#let draft = false
|
|
||||||
|
#let inp = sys.inputs
|
||||||
|
|
||||||
|
#let inwriting = inp.at("inwriting", default: "true") == "true"
|
||||||
|
#let draft = inp.at("draft", default: "true") == "true"
|
||||||
|
|
||||||
#assert(not(inwriting and not(draft)), message: "If inwriting is true, draft should be true as well.")
|
#assert(not(inwriting and not(draft)), message: "If inwriting is true, draft should be true as well.")
|
||||||
|
|
||||||
#let todo(it) = [
|
#let todo(it) = [
|
||||||
#if inwriting [
|
#if inwriting [
|
||||||
#text(size: 0.8em)[#emoji.pencil] #text(it, fill: red, weight: 600)
|
#margin-note(it)
|
||||||
]
|
]
|
||||||
]
|
]
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user