diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json
index d660996..2f8b8e6 100644
--- a/.obsidian/workspace.json
+++ b/.obsidian/workspace.json
@@ -27,15 +27,16 @@
"state": {
"type": "markdown",
"state": {
- "file": "Paperung/Experimente/Experiment 1 - Renderzeit.md",
+ "file": "Paperung/Experimente/Experiment 2 - NN performance.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
- "title": "Experiment 1 - Renderzeit"
+ "title": "Experiment 2 - NN performance"
}
}
- ]
+ ],
+ "currentTab": 1
}
],
"direction": "vertical"
@@ -188,11 +189,12 @@
"pdf-plus:PDF++: Toggle auto-paste": false
}
},
- "active": "59d92020d0753901",
+ "active": "82d87f6698a469e1",
"lastOpenFiles": [
- "Paperung/Experimente/Experiment 1 - Renderzeit.md",
"Prewrite/Genereller Maßstab.md",
+ "Prewrite/1. Einleitung.md",
"Paperung/Experimente/Experiment 2 - NN performance.md",
+ "Paperung/Experimente/Experiment 1 - Renderzeit.md",
"Prewrite/Änderungen an Szene und Code/Random Änderungen.md",
"Notizen/16.10.2025.md",
"Notizen/09.10.2025 - Anmeldung.md",
@@ -234,7 +236,6 @@
"Paperung/Zusammenfassung Facial Features.md",
"Was ich so gemacht habe/Arbeitszeit und so.md",
"Paperung/Drawing 2025-11-30 22.08.28.excalidraw.md",
- "Paperung/Untitled.md",
- "Paperung/Facial modeling and measurement based upon homologous topographical features.md"
+ "Paperung/Untitled.md"
]
}
\ No newline at end of file
diff --git a/Paperung/Experimente/Experiment 2 - NN performance.md b/Paperung/Experimente/Experiment 2 - NN performance.md
index 6dc3f50..f3d2783 100644
--- a/Paperung/Experimente/Experiment 2 - NN performance.md
+++ b/Paperung/Experimente/Experiment 2 - NN performance.md
@@ -81,6 +81,7 @@ Datensätze, die explizit verschiedene Ethnien enthalten sind rar. Viele Datens
Für diese Arbeit wurde sich für den 500k-Datensatz entschieden, da dieser direkt Bilder und Pupillen-Masken liefert (ohne wie z. B. bei LPW über TEyeD gehen zu müssen). Außerdem ist er in zwei Teile geteilt, wobei der erste aus 10 Aufnahmen mit laborähnlichen Bedingungen besteht, was die Einflussfaktoren wie Beleuchtungsänderung, Verdeckung, Reflektionen, etc. minimiert. Des Weiteren ist er mehrfach im Rahmen vorheriger Abschlussarbeiten am CHI verwendet worden, was theoretisch eine gewisse Vergleichbarkeit zu diesen Arbeiten ermöglicht.
## Konstruktion des Datensatzen
+BEGIN GESCHRIEBEN
Der 500k Datensatz wird als zwei Videos geliefert. Im Datensatz sind Videos von 20 Teilnehmern. Das erste Video enthält 10 Aufnahmen unter kontrollierten, laborähnlichen auffnahmen. Das zweite Video enthält 10 schwierige Aufnahmen unter realien Bedingungen mit wechselnden Beleuchtungsszenarien, Reflektionen und Verdeckung z. B. durch eine Brille.
Wir wollen den isolierten Einfluss von unterschiedlichen Formen des Auges untersuchen, daher bietet sich das erste Video mit den laborähnlichen Aufnahmen an. Das erste Video enthält insgesamt 509379 Bilder. Dabei sei Angemerkt, dass zwischen den einzelnen Aufnahmen einige Bilder mehrfach vorkommen. Pro Teilnehmer sind enthält es im Schnitt 50937 Bilder. Was in etwa 14 Minuten Videomaterial bedeutet. Die genauen Zeitpunkte und Frame-Nummern der Teilnehmer wurden manuell mit Hilfe des Programms [VirtualDub2](http://virtualdub2.com/) ermittelt. Dieses Programm erlaubt es ein Video zu öffnen und Bild für Bild zu inspizieren. Durch ziehen der Laufleiste wurde der ungefähre Zeitraum ermittelt, an dem das Subjekt wechselt. Dann wurde Frame für Frame vor bzw. zurück gegangen, bis der exakte Frame des Wechsels gefunden wurde. VirtualDub2 zeigt dann die Frame-Nummer und den exakten Zeitstempel an.
@@ -108,7 +109,7 @@ Phase 1:
Phase 2:
1. Alle Bilder aus Phase 1 werden auf 32 x 32 herunterskaliert, zu einem 1024-Komponenten-Vektor geplättet und auf den Bereich 0..1 normiert.
-2. Wähle einen zeitlich mittleren Kandidaten als erstes finales Bild aus.
+2. Wähle den mittleren Kandidaten als erstes finales Bild aus.
3. Wiederhole, bis die gewünschte Anzahl finaler Bilder gefunden wurde:
4. Bestimme für jeden verbleibenden Kandidaten den kleinsten Abstand zu den bereits final ausgewählten Bildern.
5. Wähle den Kandidaten, dessen kleinster Abstand am größten ist.
@@ -121,11 +122,13 @@ TODO: Auflisten, wie viele Bilder pro Person nach Phase 1 übrig blieben. Parame
Die x unterschiedlichsten Bilder pro Teilnehmer wurden zusätzlich gesondert abgespeichert, um für die Kalibrierung der Luminanzwerte verwendet zu werden.
+END GESCHRIEBEN
## Bestimmung der Luminanz-Werte des Testdatensatzes
+BEGIN GESCHRIEBEN
Die in der Datenextraktion ausgewählten Bilder wurden mit Hilfe des LEyes-parameter-Pickers, der am CHI entwickelt wurde bestimmt (Github-Link). Der LEyes-Parameter-Picker, der in Abbildung XYZ gezeigt wird erlaubt es einen Ordner mit Bildern zu öffnen. Die Bilder des Datensatzes können dann geöffnet werden und Segmentierungsmasken (Roter Bereich in der Abbildung) können mit einem Füll-Werkzeug oder einem Pinsel-Werkzeug gemalt werden. Die Anwendung zeigt dann für den gesamte Datensatz verschiedene Metriken wie durchschnittliche Luminanz und Standardabweichung an.
(TODO: Gucken, ob ich dass erwähnen möchte)
-Für diese Arbeit wurden einige Änderungen und Erweiterungen am Parameter-Picker vorgenommen:
+Für diese Arbeit wurden einige Änderungen und Erweiterungen am Parameter-Picker vorgenommen, die in Abschnitt XX erläutert werden.
1. Anzeigen von 5, 10, 90 und 95%-Quantile der Luminanz-Werte
2. .... das ist glaube ich für meine Arbeit irrelevant
@@ -133,6 +136,7 @@ Für jeden der fünf Teilnehmer wurden die fünf als am znterschiedlichsten bewe
Im Parameters Picker wurden erst 1 Bild pro Person, dann 2, dann 3 bis fünf segmentiert. Dabei hat sich gezeigt, dass bereits nach wenigen Bildern pro Teilnehmer die Kenngrößen nur noch wenig Veränderung aufweisen. Somit wurden 5 Bilder pro Testperson als praktikabler Kompromiss zwischen Arbeitsaufwand und statistischer Stabilität gewählt.
Da ein möglichst diverses Set erzeugt wurde, gab es auch einige Bilder, auf denen die Augen fast oder vollständig geschlossen waren. Damit dennoch fünf Bilder pro Teilnehmer vorlagen wurden in diesen Fällen statt den betroffenen Bildern jeweils die nächsten vom Algorithmus ausgewählten Bilder hinzugezogen. Dabei ist anzumerken, dass die Segmentierungsmasken, die im Datensatz für Pupille und Lidspaltöffnung vorhanden sind nicht direkt verwendet werden können, da z.B. Glanzlichter und ggf. Wimpern auf bzw. vor der Pupille nicht in die Grauwertverteilung für die Pupille einbezogen werden dürfen, da diese separat gerendert werden. Daher mussten Manuell neue Masken erstellt werden. (eben mit dem Parameter Picker)
+BEGIN GESCHRIEBEN

**Markierung der Iris um die Luminanzwerte zu extrahieren:** Beachte, wie Glanzlichter und Schatten nicht markiert werden, da diese nicht in der Statistik berücksichtigt werden dürfen. Würde man die Schatten mit segmentieren, würde das die durchschnittliche Helligkeit zu niedrig ansetzen, und somit tendenziell unfair nah an der Pupille dran sein. Bei Glanzlichtern wäre sie zu hell.
@@ -148,7 +152,6 @@ In der Bildgenerierungspipeline wird für Haut, Sclera und Pupille jeweils ein z
In der Konfiguration für die Bild-Generierung kann für jeden diese vier Bereiche die Normalverteilung konfiguriert werden. Dazu kann ein Mittelwert sowie die Standardabweichung festgelegt werden. Zusätzlich können ein Minimal- und ein Maximalwert eingestellt werden. Das stellt sicher, dass keine extremen Ausreißer außerhalb der angegebenen Reichweite erzeugt werden. Die Standardabweichung und die Normalverteilung wurden direkt auf die mit dem Parameter-Picker ermittelten Werte festgelegt. Für die Minima- und Maximalwerte wurden jedoch nicht die ermittelten Maximal- und Minimalwerte verwendet. Stattdessen wurde das 5%-Quantil als Minimalwert und das 95%-Quantil als Maximalwert gewählt. Das wurde getan, da Aufnahmen mit Kameras immer ein wenig Rauschen haben und somit extreme Ausreißer nicht als valide Werte angenommen werden können. So wurde z. B. für die Haut ein Wertebereich von \[0 - 242\] ermittelt. Die 5%- und 95%-Quantile sind jedoch 66 und 217. Eine Helligkeit von 0 ist für die Haut unplausibel. Es kann sein, dass ein Pixel tatsächlich einen Wert von 0 hat, z. B. weil er einen sehr dunklen Schatten repräsentiert, in der vorliegenden Pipeline würde das zufällige ziehen des Wertes 0 - oder nahe 0 - die gesamte Haut, und folglich fast das gesamte Bild schwarz wäre. Durch dass wählen des 5%-Quantils als Untergrenze wird sichergestellt, dass zwar durchaus ein dunkler, aber dennoch stets ein im Vergleich zum Testset ein plausibler Grauwert gewählt wird.
Es sei an dieser Stelle angemerkt, dass zwar kein direktes Leck von Test-Daten in das Training vorliegt, aber durch das wählen der Luminanz-Bereiche anhand der Test-Daten, liegt hier ein geringfügig vom Testset informiertes Training vor. Das ist für diese Arbeit akzeptabel, da ziel dieser Untersuchung nicht die allgemeine Generalisierungsfähigkeit von Neuronalen Netzen anhand der generierten synthetischen Daten ist, sondern nur der Einfluss von verschiedenen Augenformen von Interesse für dieses Experiment ist.
-
# Beheben von Luminanzwerten für die Haut
Bei Tests ist aufgefallen, dass mit den neu extrahierten Werten die Haut sowohl in der alten als auch der neuen Pipeline visuell sehr falsch dargestellt wurde... Es schien, als wäre der Kontrast stark erhöht, was nicht passieren sollte...
@@ -187,11 +190,12 @@ Config:
- Eyelid-Exponent: 0.4 -> sah ganz gut aus
- Auflösung: wie bei 500k-Datensatz 192 x 144
-Die Baseline Bilder wurden innerhalb von 00:54:30 generiert. Die neuen Bilder in 00:57:45. Hierbei sei angemerkt, dass diese Zeiten nicht vergleichbar sind mit denen aus Experiment 1. Abgesehen davon, dass die Auflösung geringer ist und die Optimierte Sclera-Textur-Generierung von der neuen Version in die alte übernommen wurde, wurde der Computer während der Generierung für andere Dinge verwendet. Außerdem hat Blender 5 scheinbar ein Memory-Leak, weshalb die Bilder für die neue Pipeline auch mit Blender 4 generiert werden mussten.
+Die Baseline Bilder wurden innerhalb von 00:54:30 generiert. Die neuen Bilder in 00:57:45. Hierbei sei angemerkt, dass diese Zeiten nicht vergleichbar sind mit den Ergebnissen aus Experiment 1 \todo{referenz}. Abgesehen davon, dass die Auflösung geringer ist und die Optimierte Sclera-Textur-Generierung von der neuen Version in die alte übernommen wurde, wurde der Computer während der Generierung für andere Dinge verwendet. Außerdem hat Blender 5 scheinbar ein Memory-Leak, weshalb die Bilder für die neue Pipeline auch mit Blender 4 generiert werden mussten.
```sh
# Generieren mit dem Kommando: (blender4 muss auf Blender4-Exe zeigen)
> blender4 --background Objects.blend --python render.py
```
+TODO: Warum habe ich das Kommando hier gezeigt?!
## Filtern der generierten Daten
Die Pipeline berücksichtigt nicht, ob die Pupille sichtbar ist oder nicht. Die Pupillen-Masken enthalten immer die gesamte Pupille, auch wenn sie z. B. teilweise oder ganz vom Augenlid verdeckt wird. Daher wurde das Script `prepare_training_data.py` geschrieben. Diesem Script wird bei der Ausführung übergeben, wie viel Prozent der Pupille mindestens sichtbar sein soll. Die Pupillenmasken sind Schwarz-Weiß-Bilder, wobei weiße Pixel bedeuten, dass die Pupille sichtbar ist. Die rgb_mask_covered Bilder enthalten kombinierte Segmentierungsmasken für Pupille (Rot), Iris (Grün) und die Sclera (Blau). Hier werden auch Verdeckungen berücksichtigt. Somit kann ermittelt werden, wie viel Prozent der Pupille sichtbar ist, indem die weißen Pixel in der Pupillen-Maske gezählt werden. Und dann wird gezählt, wie viele der weißen Pixel aus der Pupillen-Maske in der rgb_mask_covered Rot sind. Wenn sie nicht rot sind, sind sie nämlich verdeckt. Daraus kann der Prozentsatz errechnet werden. Für Pupillen über dem Schwellwert wird die original Pupillen-Maske ins Ausgabeverzeichnis kopiert, sonst wird eine komplett schwarze Maske kopiert. Manuelles Probieren hat gezeigt, dass bei einem Schwellwert von ca. 20%
TODO! ein Grayscale, Pupil und rgb_mask_covered Bild zeigen
@@ -205,9 +209,12 @@ Falls du es etwas vorsichtiger-wissenschaftlich formuliert haben möchtest, mein
> In Anlehnung an EllSeg wurden Pupillen mit einem Okklusionsgrad von mindestens 0,7 nicht mehr als regulär sichtbar behandelt, sondern beim Training durch eine leere Segmentierungsmaske repräsentiert. Damit orientiert sich die gewählte Schwelle an einer bestehenden empirischen Kategorisierung starker Okklusion, wird im vorliegenden Fall jedoch direkt über den pixelbasiert bestimmten Flächenanteil der Verdeckung umgesetzt.
-Durch dieses Vorgehen wurden für den Baseline-Datensatz 783 Bilder als vollständig Verdeckt interpretiert. Im neuen Datensatz wurden 1394 Bilder als vollständig verdeckt interpretiert. Dabei sei angemerkt, dass mit der neuen Pipeline 890 Bilder tatsächlich vollständig verdeckt (also 100% verdeckt) erzeugt wurden, während in der alten lediglich 368 solche Bilder existierte. Das liegt daran, dass in den mit der neuen Pipeline generierten Bildern deutlich häufiger das Augenlid soweit geschlossen ist, dass es die Pupille vollständig verdeckt. Das kann damit zusammenhängen, dass in der neuen Pipeline das Auge tatsächlich vollständig geschlossen werden kann, weshalb der selbe zufällige Schlusswert (0.0 = offen 1.0 = maximal geschlossen) tendenziell das Auge etwas weiter schließt. Daher nähern sich die Verhältnisse bei steigendem Schwellwert auch an.
+Durch dieses Vorgehen wurden für den Baseline-Datensatz 783 Bilder als vollständig Verdeckt interpretiert. Im neuen Datensatz wurden 1394 Bilder als vollständig verdeckt interpretiert. Dabei sei angemerkt, dass mit der neuen Pipeline 890 Bilder tatsächlich vollständig verdeckt (also 100% verdeckt) erzeugt wurden, während in der alten lediglich 368 solche Bilder existierte. Meine Theorie: Das liegt vielleicht möglicherweise daran, dass in den mit der neuen Pipeline generierten Bildern deutlich häufiger das Augenlid soweit geschlossen ist, dass es die Pupille vollständig verdeckt. Das kann damit zusammenhängen, dass in der neuen Pipeline das Auge tatsächlich vollständig geschlossen werden kann, weshalb der selbe zufällige Schlusswert (0.0 = offen 1.0 = maximal geschlossen) tendenziell das Auge etwas weiter schließt als die alte Pipeline, da diese das Auge nur etwa 70% schließen kann (ich weiß nicht, wie steil diese These ist, aber im Grunde habe ich so manuell ausprobiert (bitte nicht in den finalen Text schreiben): Das Augenlid ist in der alten Implementierung ein eigenes 3D-Objekt, das rotiert wird. Es kann von 90° - ganz offen - bis 125° rotiert werden. Damit man vom Auge nichts mehr sieht müsste man bis etwa 140° drehen. Ich weiß nicht ,ob die INfo hilft und in wie Weit das erwähnt werden muss).
+END GESCHRIEBEN
# Training mit Yolo
+ TODO: Wohin hiermit?!
+
Yolo erwartet als ground truth keine Segmentierungsmasken, sodnern Polygone, die die segmentierte Region einschließen. Daher werden keine Bilder, sondern Textdateien als Labels verwendet.
Pro Bild gibt es eine Text-Datei. Jede Zeile dieser Textdatei enthält als erstes den Index der Klasse des Objekts gefolgt von den Koordinaten der Eckpunkte des Polygons welches das Objekt einschließt. Eine Zeile ist also in folgendem Format:
```
@@ -399,4 +406,471 @@ Was ich jetzt habe (und noch Plane):
Das bedeutet, dass eine Modell hat versagt, das andere aber nicht (entweder korrekt keine Pupille segmentiert, oder zumindest teilweise segmentiert)
4. TODO: In wie vielen Fällen ist Baseline Dice besser, in wie vielen ist Current Dice
1. TODO: Fälle mit größter Dice-Differenz visuell beurteilen
- 5. TODO: In wie vielen Fällen hat eines der beiden Modelle Dice < 0.5
\ No newline at end of file
+ 5. TODO: In wie vielen Fällen hat eines der beiden Modelle Dice < 0.5
+
+
+
+
+# Auswertung von neuem: (Von Gibbidy)
+## Auswertungsschema
+
+Ich würde die Auswertung **zweistufig** aufbauen:
+
+1. **Hauptauswertung auf Run-Ebene**
+ Damit prüfst du die eigentliche Hypothese zur **Wirkung des Datensatzes**.
+
+2. **Ergänzende Fehleranalyse auf Bild-Ebene**
+ Damit zeigst du, **wo** sich die Modelle unterscheiden.
+
+
+---
+
+# 1. Ziel der Auswertung
+
+Ziel ist zu untersuchen, ob das Training mit dem Datensatz, der unterschiedliche Augenformen berücksichtigt, gegenüber dem Baseline-Datensatz zu einer Verbesserung der Segmentierungsleistung auf realen Testdaten führt.
+
+Da pro Datensatz **15 Modelle mit unterschiedlichen Seeds** trainiert wurden, wird die Modellleistung nicht anhand einzelner Trainingsläufe, sondern anhand der **Verteilung über mehrere Trainingsläufe** verglichen.
+
+---
+
+# 2. Datengrundlage
+
+- **2 Trainingsbedingungen**
+
+ - Baseline-Datensatz
+
+ - Current-Datensatz
+
+- **je 15 Trainingsläufe**
+
+ - identische Trainingsprozedur
+
+ - unterschiedliche Seeds
+
+- **gemeinsames Testset**
+
+ - 2000 reale Bilder
+
+
+Für jedes Modell werden auf dem Testset dieselben Metriken berechnet.
+
+---
+
+# 3. Zu berichtende Metriken
+
+## 3.1 Hauptmetriken
+
+Für jedes Modell auf dem gesamten Testset:
+
+- mittlerer **Dice-Score**
+
+- mittlere **IoU**
+
+- optional zusätzlich:
+
+ - Median Dice
+
+ - Median IoU
+
+
+## 3.2 Ergänzende Metriken
+
+Für jedes Modell:
+
+- mittlerer **Pupil Center Error (Centroid)**
+
+- mittlerer **Pupil Center Error (Ellipsenfit)**
+
+
+Dabei sollte der Center Error nur für Bilder berechnet werden, in denen in Ground Truth **und** Vorhersage eine Pupille vorhanden ist. Fälle ohne definierbares Zentrum werden separat gezählt.
+
+---
+
+# 4. Hauptanalyse auf Run-Ebene
+
+## 4.1 Warum Run-Ebene?
+
+Die Forschungsfrage betrifft den **Einfluss des Trainingsdatensatzes**.
+Deshalb sind die **15 Trainingsläufe pro Bedingung** die zentrale statistische Einheit, nicht die 2000 Einzelbilder.
+
+Für jeden Run wird daher zunächst je Metrik **ein aggregierter Kennwert** bestimmt, zum Beispiel:
+
+- mittlerer Dice über alle 2000 Testbilder
+
+- mittlere IoU über alle 2000 Testbilder
+
+- mittlerer Center Error über alle gültigen Testbilder
+
+
+So entstehen pro Metrik zwei Stichproben:
+
+- 15 Werte für Baseline
+
+- 15 Werte für Current
+
+
+---
+
+## 4.2 Deskriptive Statistik
+
+Für jede Metrik und jede Trainingsbedingung berichten:
+
+- Mittelwert
+
+- Standardabweichung
+
+- Median
+
+- Q1
+
+- Q3
+
+- IQR
+
+
+---
+
+## 4.3 Statistischer Vergleich
+
+Falls dieselben Seeds in beiden Bedingungen verwendet wurden, würde ich die Runs **paarweise** vergleichen:
+
+$$
+\Delta_i = m_i^{Current} - m_i^{Baseline}
+$$
+
+$mit (i = 1, \dots, 15).$
+
+Dann pro Metrik:
+
+- **Wilcoxon Signed-Rank Test**
+
+- **95%-Konfidenzintervall** der Differenz, idealerweise per Bootstrap
+
+- zusätzlich:
+
+ - Mittelwert der Differenzen
+
+ - Median der Differenzen
+
+
+### Begründung
+
+Der Wilcoxon-Test ist hier sinnvoll, da:
+
+- gepaarte Beobachtungen vorliegen,
+
+- die Verteilung der Metriken nicht notwendigerweise normalverteilt ist,
+
+- Dice und IoU oft Randhäufungen nahe 0 oder 1 aufweisen.
+
+
+---
+
+## 4.4 Interpretation bezogen auf die Hypothese
+
+Da deine Hypothese lautet, dass die Berücksichtigung unterschiedlicher Augenformen **keine Verbesserung** bewirkt, würde ich die Ergebnisse vorsichtig so interpretieren:
+
+- **signifikanter Vorteil von Current**
+ → Hypothese wird nicht gestützt
+
+- **kein signifikanter Unterschied**
+ → es konnte kein Vorteil nachgewiesen werden
+
+
+Wichtig:
+„Kein signifikanter Unterschied“ bedeutet methodisch **nicht automatisch Gleichheit**, sondern nur, dass unter den gegebenen Bedingungen **kein statistisch belastbarer Vorteil** gezeigt werden konnte.
+
+---
+
+# 5. Darstellung der Hauptanalyse
+
+## 5.1 Tabellen
+
+Eine Haupttabelle pro Metrikgruppe, z. B.:
+
+- Baseline: Mean ± SD, Median \[Q1, Q3\]
+
+- Current: Mean ± SD, Median \[Q1, Q3\]
+
+- Differenz Current − Baseline
+
+- 95%-CI
+
+- p-Wert
+
+
+Das für:
+
+- Dice
+
+- IoU
+
+- Center Error (Centroid)
+
+- Center Error (Ellipse)
+
+
+---
+
+## 5.2 Plots
+
+Für die Run-Ebene:
+
+- Boxplot oder Stripplot der **15 Run-Werte** je Bedingung
+
+- optional mit verbundenen Punkten bei gepaarten Seeds
+
+
+Gerade die verbundenen Punkte sind schön, weil man direkt sieht, ob Current pro Seed eher besser oder schlechter ist.
+
+---
+
+# 6. Ergänzende Bildanalyse
+
+Diese Analyse dient nicht primär dem Hypothesentest, sondern der **Fehlercharakterisierung**.
+
+## 6.1 Verteilungsanalyse pro Modell
+
+Für ausgewählte repräsentative Modelle, zum Beispiel:
+
+- medianer Run der Baseline
+
+- medianer Run von Current
+
+
+berichten:
+
+- Tabelle mit Mean, SD, Median, Q1, Q3, IQR für Dice und IoU
+
+- Boxplots für Dice und IoU
+
+- optional Boxplots pro Proband
+
+
+### Warum nicht für alle 30 Modelle?
+
+Weil das schnell unübersichtlich wird.
+Für die Arbeit reicht meist ein repräsentativer Vergleich auf Bild-Ebene, während die eigentliche Signifikanzprüfung auf Run-Ebene erfolgt.
+
+---
+
+## 6.2 Analyse pro Proband
+
+Da das Testset aus 10 Probanden besteht, würde ich für ausgewählte Modelle zusätzlich untersuchen:
+
+- Dice-Verteilung pro Proband
+
+- IoU-Verteilung pro Proband
+
+
+Damit lässt sich prüfen, ob Unterschiede zwischen den Datensätzen konsistent über verschiedene Personen hinweg auftreten oder ob sie nur durch einzelne Probanden getragen werden.
+
+---
+
+# 7. Analyse von Fehlfällen
+
+## 7.1 Totalausfälle
+
+Hier würde ich harte Fehlfälle definieren als:
+
+- **GT leer, Prediction nicht leer** → False Positive
+
+- **GT nicht leer, Prediction leer** → False Negative
+
+- **GT nicht leer, Prediction nicht leer, aber IoU = 0** → keine Überlappung trotz segmentierter Region
+
+
+Zusätzlich kann gezählt werden:
+
+- Anzahl Bilder mit **Dice = 0**
+
+- Anzahl Bilder mit **IoU = 0**
+
+
+---
+
+## 7.2 Schwere Fehlsegmentierungen
+
+Als weichere Fehlerschwelle:
+
+- Anteil Bilder mit **Dice < 0.5**
+
+
+Das würde ich nicht als Totalausfall bezeichnen, sondern als **schwere Fehlsegmentierung**.
+
+---
+
+## 7.3 Qualitativer paarweiser Vergleich
+
+Für ausgewählte Modellpaare oder repräsentative Runs:
+
+$$
+\Delta Dice_j = Dice_{Current,j} - Dice_{Baseline,j}
+$$
+
+für jedes Testbild $j$.
+
+Dann auswerten:
+
+- Anzahl Bilder mit $\Delta Dice > 0$
+
+- Anzahl Bilder mit $\Delta Dice < 0$
+
+- Anzahl Bilder mit $\Delta Dice = 0$
+
+
+Optional zusätzlich mit praktischem Schwellenwert:
+
+- $\Delta Dice > 0.1$ → Current deutlich besser
+
+- $\Delta Dice < -0.1$ → Baseline deutlich besser
+
+
+Dasselbe optional für IoU.
+
+---
+
+## 7.4 Visuelle Begutachtung
+
+Besonders sinnvoll:
+
+- Bilder mit größtem Vorteil für Current
+
+- Bilder mit größtem Vorteil für Baseline
+
+- typische Totalausfälle
+
+- typische Fälle mit Dice < 0.5
+
+
+Dann qualitativ prüfen:
+
+- Okklusion
+
+- Glints
+
+- Randlage
+
+- kleine Pupille
+
+- Kontrast
+
+- extreme Blickwinkel
+
+- ungewöhnliche Augenform
+
+
+Das ist meist der Punkt, an dem man die eigentliche inhaltliche Diskussion gewinnt.
+
+---
+
+# 8. Behandlung des Pupil Center Error
+
+## 8.1 Gültige Fälle
+
+Center Error nur berechnen, wenn:
+
+- Ground Truth Pupille vorhanden
+
+- Prediction Pupille vorhanden
+
+
+## 8.2 Ungültige Fälle
+
+Wenn kein Zentrum definiert werden kann:
+
+- GT leer und Prediction leer
+
+- GT leer und Prediction nicht leer
+
+- GT nicht leer und Prediction leer
+
+
+dann:
+
+- Center Error = **NaN**
+
+- Fall separat mitzählen
+
+
+Nicht auf 0 setzen, da sonst die Center-Error-Verteilung künstlich verbessert würde.
+
+---
+
+# 9. Empfohlene Reihenfolge im Ergebniskapitel
+
+## 9.1 Hauptvergleich der Trainingsbedingungen
+
+- Run-Ebene
+
+- Dice, IoU, Center Error
+
+- Tabellen
+
+- statistische Tests
+
+- Konfidenzintervalle
+
+
+## 9.2 Verteilungsanalyse repräsentativer Modelle
+
+- Bildweise Boxplots
+
+- ggf. pro Proband
+
+
+## 9.3 Fehleranalyse
+
+- Totalausfälle
+
+- Dice < 0.5
+
+- Fälle mit größter Differenz
+
+
+## 9.4 Qualitative Diskussion
+
+- Welche Bildtypen profitieren?
+
+- Wo versagen beide Modelle?
+
+- Gibt es systematische Vorteile der neuen Pipeline?
+
+
+---
+
+# 10. Knapp formulierte Methodik für die Arbeit
+
+Du könntest das ungefähr so schreiben:
+
+> Zur Untersuchung des Einflusses der Trainingsdaten wurden für jede der beiden Trainingsbedingungen 15 Modelle mit unterschiedlichen Initialisierungen trainiert und auf demselben realen Testdatensatz ausgewertet. Für jedes Modell wurden der mittlere Dice-Score, die mittlere Intersection over Union (IoU) sowie der mittlere Pupil Center Error bestimmt. Die statistische Auswertung erfolgte auf Ebene der Trainingsläufe, da die Forschungsfrage auf den Einfluss des Trainingsdatensatzes und nicht auf einzelne Testbilder abzielt. Für jede Metrik wurden deskriptive Kennwerte berichtet und die beiden Trainingsbedingungen mithilfe eines gepaarten Wilcoxon-Signed-Rank-Tests verglichen. Ergänzend wurden bildweise Verteilungen, Totalausfälle und Fälle mit besonders großen Leistungsunterschieden zwischen beiden Bedingungen qualitativ analysiert.
+
+---
+
+# 11. Meine konkrete Empfehlung in kurz
+
+**Pflichtteil**
+
+- Run-Ebene als Hauptanalyse
+
+- Wilcoxon
+
+- 95%-CI
+
+- Dice, IoU, Center Error
+
+
+**Ergänzend**
+
+- Boxplots auf Bild-Ebene für repräsentative Runs
+
+- pro Proband
+
+- Totalausfälle
+
+- Dice < 0.5
+
+- visuelle Analyse der größten Unterschiede
+
+
+Wenn du möchtest, mein Herr, formuliere ich dir das direkt als **masterarbeitstauglichen Fließtext in LaTeX**.
\ No newline at end of file