on git build release mode add some todos
Some checks failed
Build Typst document / build_typst_documents (push) Failing after 10s

This commit is contained in:
lukas-heilgenbrunner 2024-12-20 11:52:51 +01:00
parent 1b41fff04b
commit 53d11ae459
5 changed files with 33 additions and 13 deletions

View File

@ -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:

View File

@ -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

Binary file not shown.

After

Width:  |  Height:  |  Size: 218 KiB

View File

@ -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},
}

View File

@ -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)
] ]
] ]