save another day

This commit is contained in:
Simon Lübeß
2026-04-06 21:58:49 +02:00
parent a73f68c578
commit f0f6496ac9
102 changed files with 884 additions and 62 deletions

View File

@@ -0,0 +1,131 @@
# Plan: Kapitel 6 (Versuchsaufbau) restrukturieren
## Context
Kapitel 6 (`06_Versuchsaufbau.tex`, 344 Zeilen) enthält den Großteil des inhaltlichen Materials, ist aber flach organisiert und entspricht nicht der Zielstruktur aus `Gliederung Kapitel 4-7.md`. Hardware steckt unter Exp 1.1, es gibt keine gemeinsamen Auswertungsprinzipien, und Exp 2 hat eine andere Subsection-Hierarchie als gewünscht. Zusätzlich gibt es die verwaiste Datei `0X_PerformanceVerbesserung.tex`, deren Phasenbeschreibungen bereits in Kap. 6 dupliziert sind (Profiling-Tabelle/Analyse → 7.2, Code-Änderungen → 5.8).
**Ziel:** Die Datei umschreiben nach der Gliederung, unter maximaler Wiederverwendung des bestehenden Textes.
**Stilhinweise:**
- Skript- und Tool-Namen (`extract_frames.py`, `prepare_training_data.py`) gehören NICHT in Kap. 6. Stattdessen methodisch beschreiben, *was* gemacht wurde und nach welchen Kriterien.
- Überschriften "6.0" und "6.5.0" sind nur Planungsgerüst, erscheinen nicht in LaTeX als nummerierte Sections. Stattdessen: unnummerierte Einleitungsabsätze direkt unter `\chapter` bzw. `\section`.
---
## Zielstruktur vs. Bestandsinhalt
### Kapiteleinleitung (kein eigener \section)
- **Status:** Existiert (Z. 4-6), aber mit `\fixme` und zu knapp
- **Aktion:** Neu schreiben. Kurzer Absatz, der die drei Experimente benennt und ihre Rolle einordnet
### 6.1 Hardware und Testumgebung
- **Status:** Inhalt existiert unter Exp 1.1 (Z. 66-72)
- **Aktion:**
- Text aus Z. 66-72 extrahieren als eigene `\section`
- Überschrift korrigieren ("Genutzte" statt "Genutze")
- Nur **Hardware** ist hier global (CPU, GPU, RAM, OS). **Software-Versionen** (Blender 4.5/5.0) sind für Exp 1.1 teil des Versuchsdesigns und gehören daher in den jeweiligen Experiment-Abschnitt, nicht hierher
- Satz, dass Hintergrundprozesse minimiert wurden (aus Z. 72)
### 6.2 Gemeinsame Auswertungsprinzipien
- **Status:** NEU zu schreiben (kurz, ca. 0,5 Seite)
- **Aktion:** Schlanker Abschnitt mit nur:
- Wiederholungsdesign: 15 Durchläufe pro Bedingung (alle Experimente)
- Reproduzierbarkeit und Seed-Strategie:
- Exp 1.1/1.2: Alle Durchläufe verwenden denselben Seed → identische Szenen, Unterschiede resultieren nur aus Software-Konfiguration
- Exp 2: 15 Seeds, zwischen Baseline und Current **gepaart** (gleicher Seed = ein Modellpaar) → ermöglicht gepaarten statistischen Vergleich
- Deskriptive Statistik: Mittelwert, Median, Standardabweichung als Lage-/Streuungsmaße
- Expliziter Hinweis: Experiment-spezifische Metriken und Inferenzstatistik werden jeweils im zugehörigen Experiment-Abschnitt beschrieben
- **NICHT hierher:** Wilcoxon, BCa, Primärmetrik, qualitative Modellauswahl (gehört in die Experiment-Abschnitte)
### 6.3 Experiment 1.1: Globaler Laufzeitvergleich
- **Status:** Inhalt weitgehend vorhanden (Z. 8-65), braucht Umrahmung und Bereinigung
- **Aktionen:**
1. **Versuchsdesign beschreiben** (NEU): Einleitenden Absatz ergänzen, der die zwei Einflussfaktoren benennt: Implementierungsstand (Baseline/Current) und Blender-Version (4.5/5.0), woraus sich vier Konfigurationen ergeben. Die Auswertung erfolgt über **inhaltlich motivierte Paarvergleiche** (z.B. Blender 4 vs. 5 bei gleicher Implementierung), NICHT als formales faktorielles Design (Kap. 7 macht paarweise Bootstrap-KI-Vergleiche, keine ANOVA/Interaktionseffekte)
2. **Zielbeschreibung neutraler formulieren**: Statt "Quelle der Verbesserungen lokalisieren" (vorwegnehmend) besser: "Es soll untersucht werden, ob und in welchen Phasen sich Unterschiede zwischen den Konfigurationen zeigen."
3. **"Evaluierte Versionen" (Z. 14-29):** Inhalt beibehalten, `\fixme`-Referenzen auflösen, Punkt 4 sauber formulieren
4. **"Herleitung relevanter Laufzeiten" (Z. 31-41):** Beibehalten
5. **"Laufzeiten und erwartete Ergebnisse" (Z. 43-59):** Entfernen: $t_{total}$, $t_{script}$ (nicht ausgewertet), $t_{init}$ (in Kap. 7 nicht als eigene Metrik berichtet, nur indirekt als First-Frame-Overhead erwähnt). Beibehalten: $t_{config}$, $t_{render}$, $t_{frame}$
6. **"Versuchsdurchführung" (Z. 61-63):** Kürzen, da Wiederholungsdesign jetzt in 6.2 steht. Nur experiment-spezifische Details behalten (Aufwärmphase, 100 Bilder Begründung, Auflösung 640×480)
7. **"Genutze Hardware" (Z. 66-72):** Entfernen (nach 6.1 verschoben)
8. **Leere Zeilen (Z. 73-83):** Aufräumen
9. **Auswertungsansatz** (NEU, kurzer Absatz am Ende): $t_{config}$, $t_{render}$, $t_{frame}$ werden deskriptiv verglichen (Mean, Median, SD). Paarweise Unterschiede werden mit 95%-Bootstrap-Konfidenzintervallen quantifiziert. Keine formalen Hypothesentests.
### 6.4 Experiment 1.2: Detaillierte Laufzeitanalyse und Optimierungsevaluation
- **Status:** Grundstruktur vorhanden (Z. 84-133), Subsection-Gliederung anpassen
- **Aktionen:**
1. **Einleitungsabsatz (Z. 86):** Beibehalten und verstärken: Exp 1.2 ist explizit als **iterative Folgeanalyse** aus Exp 1.1 motiviert (Kap. 7/Exp 1.1 zeigt unerwartet hohen Konfigurationszeitanteil → das motiviert die detaillierte Instrumentierung)
2. **6.4.1 Instrumentierung und gemessene Phasen (Z. 89-125):** Beibehalten. Die Phasenbeschreibungen sind gut geschrieben
3. **6.4.2 Auswahl der Optimierungsziele (NEU):** Kurzen Absatz schreiben, der die *allgemeinen Kriterien* beschreibt: Optimiert wurden Phasen mit hohem Laufzeitanteil an $t_{config}$, erkennbarem Einfluss auf die Gesamtlaufzeit und realistisch umsetzbarem technischem Verbesserungspotenzial. **Keine** konkreten Schwellwerte erfinden (z.B. kein ">1%"). Die eigentliche Profiling-Analyse mit Messwerten kommt in 7.2
4. **6.4.3 Versuchsaufbau des Vorher-Nachher-Vergleichs (Z. 127-133):** Beibehalten, Verweis auf 6.2 für Wiederholungsdesign
5. **Auswertungsansatz** (NEU, kurzer Absatz): Vorher-Nachher-Vergleich der Phasenzeiten, deskriptiv (Mean, Median, SD) plus prozentuale Reduktion
6. **Leere Zeilen (Z. 134-153):** Aufräumen
### 6.5 Experiment 2: YOLO-Training
- **Status:** Umfangreichster Teil (Z. 154-345), gut geschrieben, andere Subsection-Struktur als Ziel
- **Aktionen:** Bestehenden Text in neue Hierarchie umverteilen
#### Einleitung (kein eigener \subsection)
- NEU: Kurzer Absatz mit Ziel, Begründung und Forschungsfrage: "Verbessert periorbital Formvariation die Segmentierungsleistung auf echten Daten?"
#### 6.5.1 Datensatzquellen
- **Synthetische Trainingsdaten:** Text aus "Datensätze" (Z. 157-169) + "Generierung der synthetischen Daten" (Z. 315-319) zusammenführen
- **Testdatensatz:** Text aus "Auswahl des Test-Datensates" (Z. 174-181) + "Extraktion der Bilder" (Z. 234-271). Methode des zweistufigen Extraktionsverfahrens (SSIM-Vorauswahl + Diversity-Ranking) beschreiben, aber **ohne Skriptnamen**
- Auskommentierte alte Version (Z. 192-232) entfernen
- **Data-Leakage-Transparenz** (aus Z. 293, expliziter formulieren): "Der reale Testdatensatz wurde ausschließlich für die Evaluation und die Ableitung der Generierungsparameter verwendet, nicht für das Training der Modelle."
#### 6.5.2 Trainings- und Validierungsaufteilung
- 80/20-Split (aus Z. 172) hierher
- 15 gepaarte Seeds pro Bedingung (Verweis auf 6.2)
- YOLO-Modell und Trainingsparameter methodisch beschreiben (nicht als Parameterdump):
- Modell: YOLO26s-seg (Small-Variante, Segmentierung), vortrainiert (Transfer Learning)
- Epochen: 100, Early Stopping mit Patience 20
- Bildgröße: 192 px (entspricht Testdatensatz), Batch-Größe: 32
- Lernrate und Augmentierungen: Ultralytics-Defaults
#### 6.5.3 Kalibrierung, Parametrisierung und Filterung
*(Umbenannt von "Vorverarbeitung und Filterung", da Luminanzkalibrierung keine Vorverarbeitung ist, sondern Generierungsparametrisierung)*
- **Luminanz-Kalibrierung:** Block "Bestimmung der Luminanzwerte" (Z. 275-293) + "Anpassung der Hautluminanz" (Z. 295-299) + "Bestimmung der Glint-Parameter" (Z. 301-305) + "Parametrisierung des Lidschlusses" (Z. 307-309) + "Anpassung der Unschärfe" (Z. 311-313). Methodisch beschreiben, welche Kalibrierungsentscheidungen getroffen wurden und warum, ohne Tool-Namen
- **Okklusionsfilterung:** "Filterung der generierten Daten" (Z. 321-334) hierher. Methodisch beschreiben (Okklusionsgrad-Schwelle, Formeln beibehalten)
#### 6.5.4 Metriken und statistische Auswertung
- **Primärmetrik für den Bedingungsvergleich:** Dice-Score. Kurze Definition. (Z. 339-343, die "etwas kürzer"-Version verwenden, "Etwas kürzer:"-Label entfernen)
- **Auswahl repräsentativer Modelle:** Das Modell mit dem medianen mittleren Dice-Score wird als repräsentatives Modell für die qualitative Analyse verwendet. Das ist eine **andere Rolle** derselben Metrik als beim Bedingungsvergleich und muss getrennt beschrieben werden
- **Sekundärmetriken:** IoU, Centroid-Error und Ellipsen-Fit-Error **vollständig in Kap. 6 definieren** (nicht "aus Kap. 7 ableiten"). Kurze Formel/Beschreibung je Metrik
- **Inferenzstatistik:** Wilcoxon Signed-Rank-Test auf den **15 gepaarten Seed-Differenzen** (nicht auf Einzelbildern, um Pseudoreplikation auszuschließen). Effektgröße: 95%-BCa-Bootstrap-KI für die mittlere gepaarte Differenz. Signifikanzniveau: $\alpha = 0{,}05$
---
## Reihenfolge der Bearbeitung
1. Gesamte Datei lesen und als Arbeitskopie behandeln
2. Auskommentierte Blöcke (Z. 192-232) und excessive Leerzeilen entfernen
3. Kapiteleinleitung neu schreiben
4. 6.1 Hardware extrahieren und als erste Section setzen
5. 6.2 Gemeinsame Auswertungsprinzipien neu schreiben
6. 6.3 Exp 1.1 umstrukturieren (Paarvergleiche statt 2x2, neutrale Zielbeschreibung, $t_{init}$ entfernen, Hardware entfernen, fixmes auflösen)
7. 6.4 Exp 1.2 umstrukturieren (iterative Folge betonen, 6.4.2 ohne Schwellwert)
8. 6.5 Exp 2 in neue Subsection-Hierarchie umverteilen (Skriptnamen raus, Metriken selbstständig definieren)
9. Alle `\fixme`, `\todo` durchgehen und auflösen oder als bewusste Platzhalter markieren
10. Querverweise prüfen und aktualisieren
## Was NICHT in dieser Datei passiert
- `0X_PerformanceVerbesserung.tex`: Profiling-Tabelle und "Beurteilung des Optimierungspotenzials" → 7.2, Code-Änderungen → 5.8. Die Datei wird nicht angefasst.
- Kapitel 7 wird nicht verändert
- Keine neuen Dateien erstellt (Kapitel 6 bleibt eine einzelne Datei)
## Geklärte Fragen
1. **$t_{total}$, $t_{script}$, $t_{init}$:** Alle entfernt. $t_{total}$/$t_{script}$ nicht ausgewertet, $t_{init}$ in Kap. 7 nicht als eigene Metrik berichtet.
2. **YOLO-Trainingsparameter** (aus `train_yolo.py`):
- Modell: `yolo26s-seg` (Small, Segmentierung), vortrainiert
- Epochen: 100, Early Stopping Patience 20
- Bildgröße: 192 px, Batch: 32
- Lernrate/Augmentierungen: Ultralytics-Defaults
- Seed: pro Lauf variabel (15 gepaarte Seeds)
3. **Kein 2x2-Design:** Kap. 7 macht paarweise Bootstrap-KI-Vergleiche, kein ANOVA/Interaktion. Exp 1.1 wird als vier Konfigurationen mit inhaltlich motivierten Paarvergleichen gerahmt.
4. **LaTeX-Kompilierung:** Wird vom User in Overleaf geprüft.
## Verbleibende offene Frage
- **VirtualDub2-Screenshot (Z. 188):** `\todo{Bild von VirtualDub2}` bleibt als Platzhalter stehen