diff --git a/.obsidian/workspace.json b/.obsidian/workspace.json index 1fea1ff..3b3735c 100644 --- a/.obsidian/workspace.json +++ b/.obsidian/workspace.json @@ -8,7 +8,7 @@ "type": "tabs", "children": [ { - "id": "4bdce0f00e5922e0", + "id": "b6275d9071b5833b", "type": "leaf", "state": { "type": "markdown", @@ -22,7 +22,21 @@ } }, { - "id": "b6275d9071b5833b", + "id": "4bdce0f00e5922e0", + "type": "leaf", + "state": { + "type": "markdown", + "state": { + "file": "Paperung/Medizinischer Hintergrund/Der Periorbitalbereich.excalidraw.md", + "mode": "source", + "source": false + }, + "icon": "lucide-file", + "title": "Der Periorbitalbereich.excalidraw" + } + }, + { + "id": "32ad19c1f2e85f7e", "type": "leaf", "state": { "type": "markdown", @@ -36,17 +50,17 @@ } }, { - "id": "32ad19c1f2e85f7e", + "id": "9dbde1a58fba4c7c", "type": "leaf", "state": { "type": "markdown", "state": { - "file": "Paperung/Augenfeatures/Augenfeatures.md", + "file": "Prewrite/Hilfe, ich bin am verzweifeln.md", "mode": "source", "source": false }, "icon": "lucide-file", - "title": "Augenfeatures" + "title": "Hilfe, ich bin am verzweifeln" } } ] @@ -81,7 +95,7 @@ "state": { "type": "search", "state": { - "query": "", + "query": "wimpern", "matchingCase": false, "explainSearch": false, "collapseAll": false, @@ -202,53 +216,53 @@ "pdf-plus:PDF++: Toggle auto-paste": false } }, - "active": "4bdce0f00e5922e0", + "active": "b6275d9071b5833b", "lastOpenFiles": [ + "Paperung/Medizinischer Hintergrund/Der Periorbitalbereich.excalidraw.md", + "Paperung/Medizinischer Hintergrund/Äquator_Auge.avif", + "Paperung/Augenfeatures/Augenfeatures.md", + "Prewrite/8. Abschluss - Stilanalyse und Schreibplan.md", + "Prewrite/Kapiteleinleitungen - Stilreferenz.md", + "TODO - Was wirklich noch passieren muss.md", + "Prewrite/Hilfe, ich bin am verzweifeln.md", + "Prewrite/Änderungen an Szene und Code/Hair Node System für Wimpern und Augenbrauen.md", + "Attachments/Images/Grundlagen/Subdiv.png", + "Attachments/Images/Grundlagen/Subdiv.png.0.pdnSave", + "Attachments/Images/Grundlagen", + "Attachments/Images/Neuer Ordner", + "Prewrite/1. Einleitung - Schreibplan.md", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_auf.bak.png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_halb.bak.png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_altzu.bak.png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_zu.bak.png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_auf (Benutzerdefiniert).png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_altzu (Benutzerdefiniert).png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_zu (Benutzerdefiniert).png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_halb (Benutzerdefiniert).png", + "Attachments/Images/WimpernAugenbrauen/besser/cropped/bulk-image-crop.zip", + "Attachments/Images/WimpernAugenbrauen/besser/cropped", + "Attachments/Images/WimpernAugenbrauen/besser/Neuer Ordner", + "Attachments/Images/WimpernAugenbrauen/besser/Screenshots(9).zip", + "Attachments/Images/WimpernAugenbrauen/besser", + "Attachments/Images/WimpernAugenbrauen/Neuer Ordner", + "Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key", + "Prewrite/5.5 Augenbrauen und Wimpern - Schreibplan.md", "Prewrite/Gliederung Kapitel 4-7.md", + "Prewrite/Genereller Maßstab.md", + "Was ich so gemacht habe/Arbeitszeit und so.md", + "Prewrite/4. Methodik - Schreibplan.md", + "Prewrite/Plan Kapitel 5.8 Performance-Optimierungen.md", + "Paperung/Experimente/Experiment 2 - NN performance.md", + "Prewrite/Kontext Periorbitale Formvariation.md", + "Prewrite/6. Versuchsaufbau - Schreibplan.md", "Prewrite/4.3 Parametrisierung und Randomisierung - Schreibplan.md", "Prewrite/4.2 Konzept Formvariation - Schreibplan.md", "Prewrite/4.1 Gesamtkonzept und Anforderungen - Schreibplan.md", - "Prewrite/4. Methodik - Schreibplan.md", "Abgabe.md", "Prewrite/2. Grundlagen - Ergebnisse Deep Research 2.md", "Prewrite/2. Grundlagen - Ergebnisse Deep Research 1.md", "Prewrite/2. Grundlagen - Ergebnisse Deep Research 3.md", "Prewrite/2. Grundlagen - Deep Research Prompts.md", - "fact_check_report.md", - "Prewrite/2. Grundlagen - Schreibplan.md", - "Prewrite/2. Grundlagen - Schreibplan.md.tmp.16196.1775067187513", - "Prewrite/2. Grundlagen.md", - "Prewrite/Implementierung.md", - "Prewrite/Genereller Maßstab.md", - "Paperung/Experimente/Experiment 2 - NN performance.md", - "Prewrite/Änderungen an Szene und Code/Compositor Rewrite.md", - "1_Trash/Unbenannt.md", - "Paperung/Augenfeatures/Augenfeatures.md", - "Paperung/Related Works/3.1 - Synthetische Datengenerierung für Eyetracking (Infos aus Deep Research).md", - "Prewrite/Änderungen an Szene und Code/Random Änderungen.md", - "Prewrite/Änderungen an Szene und Code/Hair Node System für Wimpern und Augenbrauen.md", - "Paperung/Medizinischer Hintergrund/Der Periorbitalbereich.excalidraw.md", - "Paperung/Augenfeatures/Wisetchat - Description-Based Visualisation of Ethnic Facial Types.pdf", - "Attachments/Video_Augenlider_und_vertikale_Blickrichtung_2.mp4", - "Attachments/Video_Augenlider_und_vertikale_Blickrichtung.mp4", - "Attachments/EyeParameters from Wisetchat.png", - "Attachments/Images/final_skin_shader.png", - "Attachments/Images/final_compositing_tree.png", - "Attachments/Images/Comparing_three_images.png", - "Attachments/Images/References/Eyelashes_Eyes_open.png", - "Attachments/Images/References/115676614-eyelash-extension-procedure-woman-eye-with-long-false-eyelashes-close-up-macro-shot-of-fashion.avif.png", - "Attachments/Images/References/20674399-female-eye-with-long-eyelashes-close-up.avif.png", - "Attachments/Images/Eye_Edge/open_soft.png", - "Attachments/Images/Eye_Edge/open_hard.png", - "Attachments/Images/Eye_Edge/open_crease_weight_1.png", - "1_Trash/CompositorUp0date/Compositor.excalidraw.md", - "TODO - Was wirklich noch passieren muss.md", - "Untitled.base", - "1_Trash/Unbenannt 1.md", - "Paperung/Medizinischer Hintergrund/René - 2006 - Update on orbital anatomy.pdf", - "Bekerman et al. - 2014 - Variations in Eyeball Diameters of the Healthy Adults.pdf", - "Paperung/Unbenannt", - "Prewrite/Änderungen an Szene und Code", - "Paperung/Experimente" + "fact_check_report.md" ] } \ No newline at end of file diff --git a/Attachments/Images/Grundlagen/Subdiv.png b/Attachments/Images/Grundlagen/Subdiv.png new file mode 100644 index 0000000..8644ca9 Binary files /dev/null and b/Attachments/Images/Grundlagen/Subdiv.png differ diff --git a/Attachments/Images/ShapeKeys/ECF_weigth.png b/Attachments/Images/ShapeKeys/ECF_weigth.png new file mode 100644 index 0000000..213cf26 Binary files /dev/null and b/Attachments/Images/ShapeKeys/ECF_weigth.png differ diff --git a/Attachments/Images/ShapeKeys/ENC_angle.png b/Attachments/Images/ShapeKeys/ENC_angle.png new file mode 100644 index 0000000..11a366d Binary files /dev/null and b/Attachments/Images/ShapeKeys/ENC_angle.png differ diff --git a/Attachments/Images/ShapeKeys/ENC_x.png b/Attachments/Images/ShapeKeys/ENC_x.png new file mode 100644 index 0000000..9cb8272 Binary files /dev/null and b/Attachments/Images/ShapeKeys/ENC_x.png differ diff --git a/Attachments/Images/ShapeKeys/ENC_y.png b/Attachments/Images/ShapeKeys/ENC_y.png new file mode 100644 index 0000000..b361b82 Binary files /dev/null and b/Attachments/Images/ShapeKeys/ENC_y.png differ diff --git a/Attachments/Images/ShapeKeys/EXC_x.png b/Attachments/Images/ShapeKeys/EXC_x.png new file mode 100644 index 0000000..0698913 Binary files /dev/null and b/Attachments/Images/ShapeKeys/EXC_x.png differ diff --git a/Attachments/Images/ShapeKeys/EXC_y.png b/Attachments/Images/ShapeKeys/EXC_y.png new file mode 100644 index 0000000..8f7e722 Binary files /dev/null and b/Attachments/Images/ShapeKeys/EXC_y.png differ diff --git a/Attachments/Images/ShapeKeys/LPF_depth.png b/Attachments/Images/ShapeKeys/LPF_depth.png new file mode 100644 index 0000000..a375634 Binary files /dev/null and b/Attachments/Images/ShapeKeys/LPF_depth.png differ diff --git a/Attachments/Images/ShapeKeys/LPF_depth_shaded.png b/Attachments/Images/ShapeKeys/LPF_depth_shaded.png new file mode 100644 index 0000000..4827dcf Binary files /dev/null and b/Attachments/Images/ShapeKeys/LPF_depth_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/SPC_weight.png b/Attachments/Images/ShapeKeys/SPC_weight.png new file mode 100644 index 0000000..90fa542 Binary files /dev/null and b/Attachments/Images/ShapeKeys/SPC_weight.png differ diff --git a/Attachments/Images/ShapeKeys/SPC_weight_shaded.png b/Attachments/Images/ShapeKeys/SPC_weight_shaded.png new file mode 100644 index 0000000..6645d73 Binary files /dev/null and b/Attachments/Images/ShapeKeys/SPC_weight_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/STF_weight.png b/Attachments/Images/ShapeKeys/STF_weight.png new file mode 100644 index 0000000..0d59655 Binary files /dev/null and b/Attachments/Images/ShapeKeys/STF_weight.png differ diff --git a/Attachments/Images/ShapeKeys/STF_weight_shaded.png b/Attachments/Images/ShapeKeys/STF_weight_shaded.png new file mode 100644 index 0000000..4e666ff Binary files /dev/null and b/Attachments/Images/ShapeKeys/STF_weight_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/bulk-image-crop (2).zip b/Attachments/Images/ShapeKeys/bulk-image-crop (2).zip new file mode 100644 index 0000000..96ba4af Binary files /dev/null and b/Attachments/Images/ShapeKeys/bulk-image-crop (2).zip differ diff --git a/Attachments/Images/ShapeKeys/bulk-image-crop.zip b/Attachments/Images/ShapeKeys/bulk-image-crop.zip new file mode 100644 index 0000000..ad34696 Binary files /dev/null and b/Attachments/Images/ShapeKeys/bulk-image-crop.zip differ diff --git a/Attachments/Images/ShapeKeys/correction/auge_auf.png b/Attachments/Images/ShapeKeys/correction/auge_auf.png new file mode 100644 index 0000000..d2ee965 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/auge_auf.png differ diff --git a/Attachments/Images/ShapeKeys/correction/bulk-image-crop.zip b/Attachments/Images/ShapeKeys/correction/bulk-image-crop.zip new file mode 100644 index 0000000..0badc31 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/bulk-image-crop.zip differ diff --git a/Attachments/Images/ShapeKeys/correction/corr_only.png b/Attachments/Images/ShapeKeys/correction/corr_only.png new file mode 100644 index 0000000..2b88486 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/corr_only.png differ diff --git a/Attachments/Images/ShapeKeys/correction/corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/corr_shape_key_auge_zu.png new file mode 100644 index 0000000..e59d65e Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/auge_auf.png b/Attachments/Images/ShapeKeys/correction/cropped/auge_auf.png new file mode 100644 index 0000000..cde5b4c Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/auge_auf.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop.zip b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop.zip new file mode 100644 index 0000000..c66d4ce Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop.zip differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/auge_auf.png b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/auge_auf.png new file mode 100644 index 0000000..4af3421 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/auge_auf.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_only.png b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_only.png new file mode 100644 index 0000000..bbb53d0 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_only.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_shape_key_auge_zu.png new file mode 100644 index 0000000..5b0cee4 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/no_corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/no_corr_shape_key_auge_zu.png new file mode 100644 index 0000000..7090d28 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/bulk-image-crop/no_corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/corr_only.png b/Attachments/Images/ShapeKeys/correction/cropped/corr_only.png new file mode 100644 index 0000000..a982cf3 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/corr_only.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/cropped/corr_shape_key_auge_zu.png new file mode 100644 index 0000000..8412c56 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/correction/cropped/no_corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/cropped/no_corr_shape_key_auge_zu.png new file mode 100644 index 0000000..1592476 Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/cropped/no_corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/correction/no_corr_shape_key_auge_zu.png b/Attachments/Images/ShapeKeys/correction/no_corr_shape_key_auge_zu.png new file mode 100644 index 0000000..0aea41c Binary files /dev/null and b/Attachments/Images/ShapeKeys/correction/no_corr_shape_key_auge_zu.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/ECF_weight.png b/Attachments/Images/ShapeKeys/cropped/ECF_weight.png new file mode 100644 index 0000000..3d26e43 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/ECF_weight.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/ENC_angle.png b/Attachments/Images/ShapeKeys/cropped/ENC_angle.png new file mode 100644 index 0000000..bc6ba7c Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/ENC_angle.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/ENC_x.png b/Attachments/Images/ShapeKeys/cropped/ENC_x.png new file mode 100644 index 0000000..538938f Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/ENC_x.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/ENC_y.png b/Attachments/Images/ShapeKeys/cropped/ENC_y.png new file mode 100644 index 0000000..1bcd471 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/ENC_y.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/EXC_x.png b/Attachments/Images/ShapeKeys/cropped/EXC_x.png new file mode 100644 index 0000000..92fc74a Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/EXC_x.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/EXC_y.png b/Attachments/Images/ShapeKeys/cropped/EXC_y.png new file mode 100644 index 0000000..1ed57ec Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/EXC_y.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/LPF_depth.png b/Attachments/Images/ShapeKeys/cropped/LPF_depth.png new file mode 100644 index 0000000..45fa477 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/LPF_depth.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/LPF_depth_shaded.png b/Attachments/Images/ShapeKeys/cropped/LPF_depth_shaded.png new file mode 100644 index 0000000..eb7c00a Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/LPF_depth_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_x.png b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_x.png new file mode 100644 index 0000000..538938f Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_x.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_y.png b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_y.png new file mode 100644 index 0000000..1bcd471 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/ENC_y.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/min_shape.png b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/min_shape.png new file mode 100644 index 0000000..e629013 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/Neuer Ordner/min_shape.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/SPC_weight.png b/Attachments/Images/ShapeKeys/cropped/SPC_weight.png new file mode 100644 index 0000000..9ead876 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/SPC_weight.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/SPC_weight_shaded.png b/Attachments/Images/ShapeKeys/cropped/SPC_weight_shaded.png new file mode 100644 index 0000000..b112ec9 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/SPC_weight_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/STF_weight.png b/Attachments/Images/ShapeKeys/cropped/STF_weight.png new file mode 100644 index 0000000..ae58d92 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/STF_weight.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/STF_weight_shaded.png b/Attachments/Images/ShapeKeys/cropped/STF_weight_shaded.png new file mode 100644 index 0000000..72dc713 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/STF_weight_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/max_shape.png b/Attachments/Images/ShapeKeys/cropped/max_shape.png new file mode 100644 index 0000000..ea4e45c Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/max_shape.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/max_shape_eyelid_closed.png b/Attachments/Images/ShapeKeys/cropped/max_shape_eyelid_closed.png new file mode 100644 index 0000000..307031a Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/max_shape_eyelid_closed.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/min_shape.png b/Attachments/Images/ShapeKeys/cropped/min_shape.png new file mode 100644 index 0000000..e629013 Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/min_shape.png differ diff --git a/Attachments/Images/ShapeKeys/cropped/min_shape_shaded.png b/Attachments/Images/ShapeKeys/cropped/min_shape_shaded.png new file mode 100644 index 0000000..f4fee5a Binary files /dev/null and b/Attachments/Images/ShapeKeys/cropped/min_shape_shaded.png differ diff --git a/Attachments/Images/ShapeKeys/max_shape.png b/Attachments/Images/ShapeKeys/max_shape.png new file mode 100644 index 0000000..2f4073f Binary files /dev/null and b/Attachments/Images/ShapeKeys/max_shape.png differ diff --git a/Attachments/Images/ShapeKeys/max_shape_eyelid_closed.png b/Attachments/Images/ShapeKeys/max_shape_eyelid_closed.png new file mode 100644 index 0000000..514f698 Binary files /dev/null and b/Attachments/Images/ShapeKeys/max_shape_eyelid_closed.png differ diff --git a/Attachments/Images/ShapeKeys/min_shape.png b/Attachments/Images/ShapeKeys/min_shape.png new file mode 100644 index 0000000..764744f Binary files /dev/null and b/Attachments/Images/ShapeKeys/min_shape.png differ diff --git a/Attachments/Images/ShapeKeys/min_shape_shaded.png b/Attachments/Images/ShapeKeys/min_shape_shaded.png new file mode 100644 index 0000000..181cfd3 Binary files /dev/null and b/Attachments/Images/ShapeKeys/min_shape_shaded.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_altes_zu.png b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_altes_zu.png new file mode 100644 index 0000000..a0f5a8a Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_altes_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_auf.png b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_auf.png new file mode 100644 index 0000000..fd037c1 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_zu.png b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_zu.png new file mode 100644 index 0000000..b1aada0 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/alte_wimpern_shape_key_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/blender_W037bpYzvy.png b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/blender_W037bpYzvy.png new file mode 100644 index 0000000..ea0c9ca Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alt_auf_shape_key/blender_W037bpYzvy.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_alteszu.png b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_alteszu.png new file mode 100644 index 0000000..14b3a07 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_alteszu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_auf.png b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_auf.png new file mode 100644 index 0000000..1c599ad Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_halb.png b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_halb.png new file mode 100644 index 0000000..5b37b31 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_zu.png b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_zu.png new file mode 100644 index 0000000..35e9bef Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/alte_wimpern_shape_key_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/Screenshots(9).zip b/Attachments/Images/WimpernAugenbrauen/besser/Screenshots(9).zip new file mode 100644 index 0000000..7f1cdd6 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/Screenshots(9).zip differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_altzu.png b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_altzu.png new file mode 100644 index 0000000..5b75826 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_altzu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_auf.png b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_auf.png new file mode 100644 index 0000000..552184c Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_halb.png b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_halb.png new file mode 100644 index 0000000..42ca9bd Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_zu.png b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_zu.png new file mode 100644 index 0000000..e194306 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/alte_wimpern_shape_key_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_altzu.png b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_altzu.png new file mode 100644 index 0000000..425d7c8 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_altzu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_auf.png b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_auf.png new file mode 100644 index 0000000..07b9426 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_halb.png b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_halb.png new file mode 100644 index 0000000..1770a23 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_zu.png b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_zu.png new file mode 100644 index 0000000..250c606 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/cropped/alte_wimpern_shape_key_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/besser/cropped/bulk-image-crop.zip b/Attachments/Images/WimpernAugenbrauen/besser/cropped/bulk-image-crop.zip new file mode 100644 index 0000000..e5ceaeb Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/besser/cropped/bulk-image-crop.zip differ diff --git a/Attachments/Images/WimpernAugenbrauen/creation.zip b/Attachments/Images/WimpernAugenbrauen/creation.zip new file mode 100644 index 0000000..414cdf1 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/creation.zip differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_alteszu.png b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_alteszu.png new file mode 100644 index 0000000..625d72c Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_alteszu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_auf.png b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_auf.png new file mode 100644 index 0000000..85590c3 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_halb.png b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_halb.png new file mode 100644 index 0000000..d285737 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_zu.png b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_zu.png new file mode 100644 index 0000000..5dbfd63 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/alte_wimpern_shape_key_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/final.png b/Attachments/Images/WimpernAugenbrauen/cropped/final.png new file mode 100644 index 0000000..1c90e4b Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/final.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/final_ohne_modifier.png b/Attachments/Images/WimpernAugenbrauen/cropped/final_ohne_modifier.png new file mode 100644 index 0000000..6e0543f Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/final_ohne_modifier.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/haare_kämmen.png b/Attachments/Images/WimpernAugenbrauen/cropped/haare_kämmen.png new file mode 100644 index 0000000..8a10bda Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/haare_kämmen.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/haare_plaziert.png b/Attachments/Images/WimpernAugenbrauen/cropped/haare_plaziert.png new file mode 100644 index 0000000..f400c27 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/haare_plaziert.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/neu_alteszu.png b/Attachments/Images/WimpernAugenbrauen/cropped/neu_alteszu.png new file mode 100644 index 0000000..b111d41 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/neu_alteszu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/neu_auf.png b/Attachments/Images/WimpernAugenbrauen/cropped/neu_auf.png new file mode 100644 index 0000000..a2530aa Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/neu_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/neu_halb.png b/Attachments/Images/WimpernAugenbrauen/cropped/neu_halb.png new file mode 100644 index 0000000..8e326cc Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/neu_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped/neu_zu.png b/Attachments/Images/WimpernAugenbrauen/cropped/neu_zu.png new file mode 100644 index 0000000..3f9d05e Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped/neu_zu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/cropped_old_new.zip b/Attachments/Images/WimpernAugenbrauen/cropped_old_new.zip new file mode 100644 index 0000000..f368a3c Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/cropped_old_new.zip differ diff --git a/Attachments/Images/WimpernAugenbrauen/final.png b/Attachments/Images/WimpernAugenbrauen/final.png new file mode 100644 index 0000000..0bd0e1f Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/final.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/final_ohne_modifier.png b/Attachments/Images/WimpernAugenbrauen/final_ohne_modifier.png new file mode 100644 index 0000000..731aad9 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/final_ohne_modifier.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/haare_kämmen.png b/Attachments/Images/WimpernAugenbrauen/haare_kämmen.png new file mode 100644 index 0000000..fb23412 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/haare_kämmen.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/haare_plaziert.png b/Attachments/Images/WimpernAugenbrauen/haare_plaziert.png new file mode 100644 index 0000000..a6bf77f Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/haare_plaziert.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/neu_alteszu.png b/Attachments/Images/WimpernAugenbrauen/neu_alteszu.png new file mode 100644 index 0000000..6c46c6d Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/neu_alteszu.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/neu_auf.png b/Attachments/Images/WimpernAugenbrauen/neu_auf.png new file mode 100644 index 0000000..07a27f0 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/neu_auf.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/neu_halb.png b/Attachments/Images/WimpernAugenbrauen/neu_halb.png new file mode 100644 index 0000000..d445424 Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/neu_halb.png differ diff --git a/Attachments/Images/WimpernAugenbrauen/neu_zu.png b/Attachments/Images/WimpernAugenbrauen/neu_zu.png new file mode 100644 index 0000000..98eb80f Binary files /dev/null and b/Attachments/Images/WimpernAugenbrauen/neu_zu.png differ diff --git a/Prewrite/1. Einleitung - Schreibplan.md b/Prewrite/1. Einleitung - Schreibplan.md new file mode 100644 index 0000000..d63ea67 --- /dev/null +++ b/Prewrite/1. Einleitung - Schreibplan.md @@ -0,0 +1,77 @@ +# Schreibplan: Kapitel 1 Einleitung + +Struktur orientiert an Kaminski, Remiorz und Kleipsties (Referenzarbeiten am selben Fachgebiet). + +## 1.1 Motivation und Problemstellung + +Trichterform vom Großen ins Kleine. Jede Behauptung mit Quelle belegt. Fließtext, keine Aufzählungen. Schlank halten, Kap. 3 nicht vorwegnehmen. + +### Absatz 1: Eye-Tracking und Pupillensegmentierung als Anwendungsfeld (kurz, 2-3 Sätze) + +- Pupillensegmentierung als Grundlage für valide Pupillometrie (Pupillendynamik als Marker für kognitive/neurologische Zustände) +- Anwendungsbeispiel Gehirnerschütterungsdiagnostik im Sport kurz erwähnen, nicht auswalzen +- **Quellen:** `mathotPupillometryPsychologyPhysiology2018`, `masterUtilityPupillaryLight2020`, `hansenEyeBeholderSurvey2010` + +### Absatz 2: Technische Herausforderung der robusten Pupillensegmentierung + +- Variable Beleuchtung, spekulare Reflexionen (Glints), partielle Okklusion durch Augenlider/Wimpern, Blickwinkel-bedingte Verzerrungen +- ML/DL-Ansätze sind leistungsfähiger als regelbasierte Verfahren, brauchen aber große annotierte Datensätze +- **Quellen:** `kothariEllSegEllipseSegmentation2021`, `chaudharyRITnetRealtimeSemantic2019`, `fuhl500kImagesCloser2019` + +### Absatz 3: Das Datenproblem und synthetische Daten als Lösung + +- Erstellung realer annotierter Datensätze: aufwändig, datenschutzrechtlich problematisch, begrenzte Variabilität +- Synthetische Datengenerierung: kontrollierbar, skalierbar, automatisch pixelgenau annotiert +- Mehrere Pipelines existieren (SynthesEyes, UnityEyes, RIT-Eyes, LEyes), am CHI: HEyes (Kaminski) +- **Quellen:** `woodRenderingEyesEyeShape2015`, `woodLearningAppearancebasedGaze2016a`, `nairRITEyesRenderingNeareye2020`, `byrneLEyesLightweightFramework2025`, `kaminskiBestimmungPupillendurchmessersUnabhaengig2025`, `tobinDomainRandomizationTransferring2017` + +### Absatz 4: Die konkrete Lücke (KNAPP, nicht Kap. 3 vorwegnehmen) + +- Bestehende Pipelines variieren dynamische Parameter, aber stabile interindividuelle Augenformmerkmale sind nicht als unabhängige Variationsachsen modelliert +- HEyes erzeugt alle Bilder mit derselben Augenform +- Periorbitale Morphologie variiert in der Realität systematisch zwischen Individuen +- Keine Pipeline-Vergleiche, keine anthropometrische Detailanalyse (Kap. 3) +- **Quellen:** `farkasInternationalAnthropometricStudy2005`, `kaminskiBestimmungPupillendurchmessersUnabhaengig2025` + +--- + +## 1.2 Zielsetzung und Forschungsfragen + +### Übergeordnetes Ziel (1-2 Sätze) + +Erweiterung der HEyes-Pipeline um parametrisierbare periorbitale Formvariation. Untersuchung, ob diese Variationsachse die Generalisierung eines Segmentierungsmodells auf reale Daten beeinflusst. Zusätzlich: Auswirkungen auf Laufzeit und praktische Nutzbarkeit. + +### Forschungsfrage 1 (Hauptfrage) + +Beeinflusst die Variation der periorbitalen Augenform in synthetischen Trainingsdaten die Segmentierungsleistung eines auf synthetischen Daten trainierten YOLO-Modells auf realen Augenbildern? + +**Nullhypothese:** Die Variation der periorbitalen Augenform in den synthetischen Trainingsdaten hat keinen Einfluss auf die Segmentierungsleistung auf realen Augenbildern. + +### Forschungsfrage 2 (Nebenfrage, Praktikabilität) + +Wie wirken sich die im Rahmen dieser Arbeit vorgenommenen Erweiterungen der HEyes-Pipeline auf die Laufzeit und damit auf die praktische Nutzbarkeit der Datengenerierung aus, und inwieweit lassen sich Laufzeiteffekte durch gezielte Optimierungen reduzieren? + +**Arbeitshypothese:** Die im Rahmen dieser Arbeit vorgenommenen strukturellen Änderungen sowie gezielten Optimierungen verbessern die Laufzeit und damit die praktische Nutzbarkeit der Pipeline. + +--- + +## 1.3 Aufbau der Arbeit + +Fließtext mit Kapitelverweisen, ca. 3/4 bis 1 Seite. Kap. 2-5 knapp funktional, Kap. 6-7 etwas ausführlicher. Bei Kap. 7 deutlich machen, dass dort ALLE drei Experimente ausgewertet werden. + +- **Kap. 2 Grundlagen:** Anatomische, computergrafische und methodische Grundlagen. +- **Kap. 3 Stand der Forschung:** Bestehende Pipelines, Sim-to-Real-Transfer, periorbitale Variation. Forschungslücke. +- **Kap. 4 Methodik:** Gesamtkonzept, Formvariationsansatz, Evaluationslogik. +- **Kap. 5 Implementierung:** Technische Umsetzung in Blender. +- **Kap. 6 Versuchsaufbau:** Drei Experimente (Laufzeit-Benchmark, Profiling/Optimierung, YOLO-Training). +- **Kap. 7 Ergebnisse und Analyse:** Auswertung aller drei Experimente (Laufzeit, Optimierung, Segmentierung). +- **Kap. 8 Abschluss und Diskussion:** Fazit, Limitationen, Ausblick. + +--- + +## Stilhinweise + +- Keine Gedankenstriche oder Semikolons +- Alle Behauptungen mit `\cite{}` belegt +- Fließtext in 1.1 und 1.3 +- Forschungsfragen/Hypothesen in 1.2 als strukturierte Absätze diff --git a/Prewrite/5.5 Augenbrauen und Wimpern - Schreibplan.md b/Prewrite/5.5 Augenbrauen und Wimpern - Schreibplan.md new file mode 100644 index 0000000..e3d96c7 --- /dev/null +++ b/Prewrite/5.5 Augenbrauen und Wimpern - Schreibplan.md @@ -0,0 +1,56 @@ +# 5.5 Augenbrauen und Wimpern + +## Roter Faden + +Ausgangsproblem (starre Geometrie inkompatibel) -> verworfener Ansatz (Hair Particles instabil) -> funktionierender Ansatz (Hair Curves + Surface Deform) -> verbleibende Grenzen + +## Einleitungsabsatz + +- Als notwendige technische Konsequenz der Architekturanderungen in 5.3/5.4 rahmen +- Neues Lidmodell + periorbiale Formvariation erfordern deformierbare Anbindung +- NICHT: "war nicht geplant" + +## 5.5.1 Grenzen fester Geometrie + +- Bisheriger Zustand: Augenbrauen und Wimpern als separate, starre Modelle +- **Wimpern**: Vorher Kind-Objekt des Augenlids, Rotation reichte. Jetzt Shape-Key-basierte Deformation, starre Wimpern konnen dem nicht folgen +- **Augenbrauen**: Vorher unproblematisch (Gesichtsform unverandert). Jetzt mit periorbitaler Formvariation verschieben sich die Hautbereiche +- Wimpern kritischer als Augenbrauen: sitzen direkt auf stark deformierter Lidrandgeometrie +- Fazit: Deformierbare Bindung fur beide Haartypen erforderlich + +## 5.5.2 Gescheiterter Hair-Particles-Ansatz + +- Blenders Hair-Particle-System: Partikel vom Typ "Hair" auf Haut-Mesh +- Grundsatzlich moglich: Haare platzieren, Lange einstellen, kammen +- **Beobachtung**: Bei Anderung des Lidschluss-Shape-Keys unkontrollierte Deformationen (Drehung, Krauselung, Verschiebung) +- **Persistenz**: Deformierte Haargeometrie blieb auch nach Rucksetzen des Shape-Key-Werts erhalten +- **Ausschlussgrund**: Nicht robust gegenuber wiederholter Shape-Key-Anderung, damit ungeeignet fur Pipeline mit zufaliger Pro-Bild-Parametrisierung +- Nur Beobachtung, KEINE Spekulation uber technische Ursache +- Sachlich-beobachtend schreiben, nicht dramatisch + +## 5.5.3 Umsetzung mit dem Hair-Modifier-System + +Logische Reihenfolge im Fliesstext (keine sichtbare Nummerierung): + +1. **Warum dieses System**: Geometry-Node-basiertes Haarsystem (Hair Curves) unterstutzt deformierbare Bindung an Mesh +2. **Kernmechanismus Surface Deform**: Hair Curves uber Surface Deform an Haut-Mesh gebunden. Haare folgen Mesh-Deformationen. "Adressiert das zentrale Bindungsproblem" (nicht "lost", da 5.5.4 Grenzen nennt) +3. **Workflow** (kurz): Haar-Kurven auf Haut-Mesh erzeugen, im Sculpt-Modus platzieren und ausrichten, Dicke/Profil einstellen +4. **Modifier zur Formgebung**: Gleicher Grundansatz fur Augenbrauen, obere und untere Wimpern, aber unterschiedliche Anforderungen. Verschiedene formgebende Modifier je nach Haartyp (Clump, Frizz, Smooth, Trim, Profile). Iterativ abgestimmt. Modifier-Namen knapp und eingebettet nennen, nicht als Liste +5. **Stabilitat**: Deutlich konsistentere Bindung als Particle-Ansatz, fur Pipeline-Einsatz hinreichend stabil +6. **Nicht variiert**: Klar trennen zwischen "deformierbar angebunden" (ja) und "parametrisch variiert" (nein). Farbe/Luminanz, Lange, Augenbrauenform bleiben konstant. Nicht im Scope, aber durch Geometry-Node-Architektur zukunftig umsetzbar + +## 5.5.4 Verbleibende Grenzen und mogliche Erweiterungen + +Nach Schweregrad geordnet: + +1. **Leichte Verschiebungen** (akzeptabel): Bei Anderung des Lidschluss-Shape-Keys. Bei identischem Wert keine erkennbaren Abweichungen. Fur Pipeline unkritisch (fester Parameterzustand pro Bild) +2. **Clipping** (sichtbare Artefakte): Wimpern clippen durch Hautgeometrie bei stark ausgepragter Epikantusfalte (ECF_weight) +3. **Erweiterungen** (knapp, zwei Gruppen): (a) Variation von Haareigenschaften, (b) Variation der Augenbrauenform +4. **Technischer Abschluss**: Gesamtfunktion zusammenfassen. "Deformierbare und hinreichend stabile Anbindung an variierende Periorbitalgeometrie" + +## Stilhinweise + +- 5.5.1 und 5.5.2 leisten nicht dasselbe: 5.5.1 = konzeptionelle Uneignung starrer Geometrie, 5.5.2 = praktisches Scheitern eines konkreten deformierbaren Ansatzes +- 5.5.3 knapp und fokussiert halten, nicht in Blender-Dokumentation abgleiten +- Augenbrauen im gesamten Abschnitt sichtbar halten +- Keine Gedankenstriche, keine Semikolons diff --git a/Prewrite/6. Versuchsaufbau - Schreibplan.md b/Prewrite/6. Versuchsaufbau - Schreibplan.md new file mode 100644 index 0000000..49e140a --- /dev/null +++ b/Prewrite/6. Versuchsaufbau - Schreibplan.md @@ -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 diff --git a/Prewrite/8. Abschluss - Stilanalyse und Schreibplan.md b/Prewrite/8. Abschluss - Stilanalyse und Schreibplan.md new file mode 100644 index 0000000..f6cf23a --- /dev/null +++ b/Prewrite/8. Abschluss - Stilanalyse und Schreibplan.md @@ -0,0 +1,63 @@ +# 8. Abschluss und Diskussion - Stilanalyse und Schreibplan + +## Stilanalyse (basierend auf Kaminski, Remiorz, Kleipsties) + +### Beobachtete Kapitelstrukturen + +| Arbeit | Kapitelname | Sections | +|--------|-------------|----------| +| **Kaminski** | "Fazit und Ausblick" | 8.1 Zentrale Erkenntnisse, 8.2 Ausblick (4 Unter-Sections), 8.3 Fazit | +| **Remiorz** | "Diskussion" | 8.1 Diskussion der Ergebnisse (pro FF/Hypothese), 8.2 Limitationen, 8.3 Fazit, 8.4 Ausblick | +| **Kleipsties** | "Abschluss" | 8.1 Zusammenfassung, 8.2 Ausblick, 8.3 Fazit | + +### Gemeinsame Elemente +- **Fazit** und **Ausblick** haben alle drei +- Alle adressieren Limitationen (Kleipsties inline, Remiorz eigene Section, Kaminski in Zusammenfassung) +- Remiorz hat als einziger systematische FF/Hypothesen-Beantwortung als eigene Section + +### Stil-Merkmale +- **Zusammenfassung:** Greift Einleitung auf, rekapituliert methodischen Weg und Ergebnisse knapp +- **Fazit:** Kurz und fokussiert (1 Absatz oder nummerierte Liste). Bewertet die Arbeit insgesamt +- **Ausblick:** Konkret und spezifisch. Strukturierte Aufzählungen +- **Limitationen:** Ehrlich, direkt, nur methodische Einschränkungen der Aussagekraft +- **Länge:** 3-6 Seiten. Unser Ziel: 3-4 Seiten + +### Fachgebiets-Vorgabe +- Zusammenfassung soll Einleitung aufgreifen und beurteilen +- Kurze Idee von Verbesserung +- Ausblicke nicht zu schwammig, kurz und prägnant + +--- + +## Unsere Struktur + +Orientiert an Remiorz (systematische FF-Beantwortung), bereinigt um Überlappungen. + +### 8.1 Zusammenfassung und Diskussion der Ergebnisse +- FF2 zuerst (positiv), dann FF1 (differenziert) +- Pro FF: Ergebnis, Einordnung, wichtigste Erklärung +- Verdichten, nicht nochmals analysieren (Kap. 7 hat eigene Fazits) +- Experimente verknüpfen: Exp 1 ermöglicht die Lösung für Exp 2s Limitation + +### 8.2 Limitationen der Arbeit +- Strikt: nur was die Aussagekraft begrenzt +- Confounder (Okklusion), Sparse Sampling, nur YOLO, Luminanz-Kalibrierung +- Ausbau-Wünsche gehören in den Ausblick + +### 8.3 Fazit +- Höhere Ebene als 8.1: wissenschaftlicher Beitrag +- Bogen Kap. 3 -> 5 -> 7 -> 8 schließen +- Nicht defensiv: Negativer Befund als wertvolle Erkenntnis + +### 8.4 Ausblick +- Erst: direkt aus Limitationen abgeleitete Studien +- Dann: wissenschaftliche Vertiefung +- Dann: Pipeline-Ausbau + +--- + +## Stilregeln +- Keine Gedankenstriche, keine Semikolons +- Sachlich-nüchtern, keine Euphemismen +- Nur tragende Zahlen (35.4%, Dice/IoU signifikant schlechter, Okklusionsverschiebung) +- Kausalaussagen vorsichtig: "unter den getesteten Bedingungen", "nicht eindeutig zuzuschreiben" diff --git a/Prewrite/Hilfe, ich bin am verzweifeln.md b/Prewrite/Hilfe, ich bin am verzweifeln.md new file mode 100644 index 0000000..32ba6e3 --- /dev/null +++ b/Prewrite/Hilfe, ich bin am verzweifeln.md @@ -0,0 +1,102 @@ +Wenn du offen schreibst, dass die Formvariation **nicht populationsstatistisch validiert**, sondern **anatomisch motiviert und heuristisch modelliert** ist, nimmst du dem Ganzen schon sehr viel Sprengstoff. Genau diese Linie ist in deinem Material ja schon angelegt. + +Die eigentliche Gefahr wäre nicht, **wenig** gemacht zu haben. +Die eigentliche Gefahr wäre, **zu viel zu behaupten**. + +Deshalb würde ich innerlich ab jetzt auf diese drei Sätze umschalten: + +1. **Ich habe nicht das gesamte Problem gelöst.** +2. **Ich habe aber einen funktionsfähigen, integrierten und parametrisierbaren Teilansatz umgesetzt.** +3. **Die Grenzen dieses Ansatzes benenne ich offen.** + +Das ist wissenschaftlich völlig okay. + +Für Prüfung oder Kolloquium würde ich es ungefähr so sagen: + +> Der Umfang der modellierten Formvariation blieb hinter der ursprünglichen Zielvorstellung zurück. Der tatsächliche Beitrag der Arbeit liegt daher nicht in einer vollständigen morphologischen Abdeckung, sondern in der technischen Erweiterung der Pipeline um ausgewählte, semantisch steuerbare periorbitale Variationsachsen einschließlich Parametrisierung, Randomisierung und korrektiver Mechanismen für problematische Kombinationen. + + +# WArum ich so viel kram gemacht habe, der nichts mit dem Thema zu tun hat: + +Nicht so: + +> Ich habe hier noch Blender 5, da noch Performance, da noch Type Annotations, und irgendwo auch Augenformen. + +Sondern so: + +> Um periorbitale Formvariation in der Pipeline überhaupt belastbar nutzbar zu machen, mussten zunächst die strukturellen Voraussetzungen im Modell und in der Softwarebasis geschaffen werden. Dazu gehören ein robustes Augenlidmodell, die konsistente Einbettung formabhängiger Wimpern- und Augenbrauengeometrie, die technische Migration auf die verwendete Blender-Version sowie begleitende Maßnahmen zur Wartbarkeit und Laufzeitstabilität. + +Dann sind Performance und Typannotationen **nicht mehr Nebenkriegsschauplätze**, sondern **Stützarbeiten**. +## Der entscheidende gedankliche Shift + +Dein eigentlicher Beitrag ist dann nicht: + +> „Ich habe sehr viele Augenformen gebaut.“ + +sondern: + +> **„Ich habe die Pipeline so umgebaut, dass periorbitale Formvariation technisch sinnvoll integriert werden kann.“** + +Dazu gehören dann drei Ebenen: + +1. **Geometrische Voraussetzung** + - neues Augenlidmodell + - vernünftige Kopplung an die Gesichtsgeometrie +2. **Systemische Voraussetzung** + - Shape-Keys als parametrierbare Variationsachsen + - Haare reagieren auf Formänderungen + - spätere Erweiterbarkeit, etwa über Geometry Nodes +3. **Operative Voraussetzung** + - stabile, wartbare, reproduzierbare Pipeline + - Performance im praktikablen Bereich + - saubere Softwarebasis + +So wird aus „verzettelt“ plötzlich **infrastrukturorientiert**. +## Was du dabei offen zugeben darfst + +Du solltest trotzdem nicht verstecken, dass die **eigentliche Formvariation im engeren Sinn** hinter den Plänen zurückblieb. + +Aber eben so: + +> Der Schwerpunkt der tatsächlichen Umsetzung verlagerte sich teilweise von der Breite des modellierten Formraums auf die Schaffung der technischen Voraussetzungen, unter denen eine solche Formvariation in der bestehenden Pipeline überhaupt konsistent eingesetzt werden kann. + +Das ist ein starker Satz. +Er sagt: + +- ja, weniger Formmerkmale als geplant, +- aber nein, nicht ziellos, +- sondern Verschiebung auf Voraussetzungen. + +## Performance und Typannotationen retten das Narrativ nur dann, wenn du sie sauber einordnest + +**Performance-Optimierungen** +nicht als „auch noch gemacht“, sondern als: + +> notwendig, damit die erweiterte Pipeline trotz zusätzlicher Modell- und Konfigurationsschritte praktisch nutzbar bleibt. + +**Typannotationen** +nicht als „fleißige Aufräumarbeit“, sondern als: + +> Beitrag zur Wartbarkeit, Fehlerminimierung und sicheren Weiterentwicklung einer gewachsenen Experimentierpipeline. + +Sie dürfen da sein. Sie dürfen sogar wichtig sein. +Sie dürfen nur **nicht den Ton angeben**. + +## Praktisch für den Textaufbau + +Ich würde die Arbeit innerlich an diesem roten Faden aufhängen: + +> **Ziel:** Einbeziehung verschiedener Augenformen in eine automatisierte Pipeline +> **Problem:** Die bestehende Pipeline war dafür geometrisch und technisch nur begrenzt geeignet +> **Lösung:** Schaffung der Voraussetzungen + begrenzte Implementierung erster Formvariationsachsen +> **Ergebnis:** Kein vollständiger Formraum, aber eine erweiterte, robustere Grundlage für weitere Variation + +Damit wirken die starken Nebenteile plötzlich nicht mehr wie Ablenkung, sondern wie **Fundamentarbeiten**. + +## Das würde ich sogar explizit im Fazit sagen + +Zum Beispiel: + +> Die Arbeit realisiert keinen umfassenden morphologischen Formraum der Periorbitalregion. Ihr Beitrag liegt vielmehr in der technischen Erweiterung der Pipeline um die dafür erforderlichen Voraussetzungen: ein formrobustes Augenlidmodell, die Anbindung formabhängiger peripherer Geometrie, parametrisierbare Variationsachsen sowie Maßnahmen zur Wartbarkeit und praktischen Nutzbarkeit der Gesamtpipeline. Darauf aufbauend wurde ein erster, in Umfang begrenzter Satz periorbitaler Formmerkmale implementiert. + +Das ist ehrlich und stark zugleich. \ No newline at end of file diff --git a/Prewrite/Kapiteleinleitungen - Stilreferenz.md b/Prewrite/Kapiteleinleitungen - Stilreferenz.md new file mode 100644 index 0000000..d4beed2 --- /dev/null +++ b/Prewrite/Kapiteleinleitungen - Stilreferenz.md @@ -0,0 +1,110 @@ +# Kapiteleinleitungen der CHI-Vorarbeiten - Stilreferenz + +Analyse der Kapiteleinleitungen aus drei Masterarbeiten am CHI, die als Stilreferenz für die eigene Arbeit dienen. + +--- + +## Beobachtete Muster + +- **Kap. 1 (Einleitung):** Alle drei Arbeiten haben **keine** Kapiteleinleitung, sondern gehen direkt in Abschnitt 1.1 +- **Kap. 2-7:** Jedes Kapitel hat einen Einleitungsabsatz zwischen Kapitelüberschrift und erstem Abschnitt +- **Struktur:** Fast immer: (1) Kurzer Satz zum Zweck/Thema des Kapitels, (2) Aufzählung der Abschnitte in Reihenfolge mit je einem Halbsatz +- **Länge:** Typisch 1 langer Absatz (5-10 Sätze) +- **Stil:** "In diesem Kapitel wird...", "Zunächst wird in Abschnitt X.1 ..., anschließend ... in Abschnitt X.2 ..., den Abschluss bildet ..." +- **Ausnahmen:** Ergebnis-/Fazitkapitel haben manchmal kürzere, inhaltlichere Einleitungen statt Strukturvorschau + +### Muster-Vorlage + +``` +[1 Satz: Was dieses Kapitel leistet / worum es geht] +Zunächst wird in Abschnitt X.1 [Thema]. +Anschließend beschreibt Abschnitt X.2 [Thema]. +Abschnitt X.3 [Thema]. +Den Abschluss bildet Abschnitt X.4 mit [Thema]. +``` + +--- + +## Kaminski (2025) - Bestimmung des Pupillendurchmessers + +### Kap. 1: Einleitung +Keine Kapiteleinleitung. Geht direkt in 1.1. + +### Kap. 2: Grundlagen +> In diesem Kapitel werden die theoretischen und methodischen Grundlagen vorgestellt, die für die Erstellung des Workflows in dieser Arbeit wesentlich sind. Zunächst wird auf anatomische und optische Aspekte des Auges sowie auf die Reaktion der Pupille unter verschiedenen Licht- und Blickwinkelsituationen eingegangen (Abschnitt 2.1). Anschließend folgt ein Überblick über klassische und KI-basierte Video-Eye-Tracking-Verfahren (Abschnitt 2.2). Da das zentrale Ziel dieser Arbeit die Erzeugung synthetischer Augenbilder für das Training und die Evaluierung verschiedener Segmentierungsansätze ist, wird in Abschnitt 2.3 das Prinzip der computergestützten Datengenerierung erläutert. In Abschnitt 2.5 werden die mathematischen Grundlagen zur konsistenten Bestimmung der Pupillenellipse dargelegt. Abschließend wird in Abschnitt 2.6 der Bezug zur Gehirnerschütterungs-Diagnostik hergestellt und verdeutlicht, welchen Beitrag eine präzise Pupillenerkennung aus medizinischer Perspektive leisten kann. + +### Kap. 3: Stand der Forschung +> In diesem Kapitel werden aktuelle Entwicklungen in der videobasierten Pupillenerfassung und zugehörige Forschungsthemen dargestellt. Abschnitt 3.1 beleuchtet Head-Mounted Systeme und Brillen zur Pupillenerfassung sowie deren Herausforderungen in medizinischen und sportlichen Anwendungsszenarien. Anschließend werden in Abschnitt 3.2 verschiedene Studien und Frameworks zur synthetischen Eye-Tracking-Datenerzeugung diskutiert. Einen kurzen Einblick in moderne KI-Ansätze zur Pupillensegmentierung gibt Abschnitt 3.3, bevor in Abschnitt 3.4 verbleibende Lücken und ein Ausblick auf mögliche Weiterentwicklungen gegeben werden. + +### Kap. 4: Methodik und Konzeption +> In der vorliegenden Arbeit wird ein mehrstufiger Ansatz entwickelt und demonstriert, bei dem zunächst synthetische Daten aus einer fotorealistischen Blender-Szene generiert werden. Anschließend werden diese Daten mithilfe eines KI-basierten Segmentierungsmodells verarbeitet, um letztlich den Pupillendurchmesser zu bestimmen. Ein Vergleich mit dem abstrahierten Verfahren LEyes liefert hierbei erste Anhaltspunkte zu Laufzeit und Erkennungsleistung. + +### Kap. 5: Implementierung +> Dieses Kapitel beschreibt die praktische Umsetzung der in dieser Arbeit entwickelten Pipeline zur Bestimmung des Pupillendurchmessers in synthetisch erzeugten Augenbildern. Im Mittelpunkt stehen die verwendeten Python-Skripte, die Projektstruktur sowie typische Herausforderungen und Fehlerquellen. Zunächst wird erläutert, wie das fotorealistische Rendering in Blender automatisiert wird, um automatisierte Annotationen zu generieren. Anschließend wird dargestellt, wie aus diesen annotierten Aufnahmen ein YOLO-kompatibles Trainingsset entsteht und welche Schritte beim Training sowie bei der Anwendung des Modells (Inferenz) ausgeführt werden. + +### Kap. 6: Experimente +Keine Kapiteleinleitung. Geht direkt in 6.1 "Experimentelles Setup" (wobei 6.1 selbst wie eine Kapiteleinleitung beginnt). + +### Kap. 7: Interpretation +> Obwohl beide Experimente vor allem einen Proof-of-Concept liefern sollen und nicht als abschließende Bewertung des Verfahrens zu verstehen sind, ergeben sich bereits einige wichtige Schlussfolgerungen sowie Hinweise auf notwendige Folgeschritte. + +### Kap. 8: Fazit und Ausblick +> In dieser Arbeit wurde ein neuartiger Workflow zur fotorealistischen, synthetischen Datengenerierung von Augenbildern in Blender vorgestellt und exemplarisch für die Pupillensegmentierung sowie -durchmessermessung erprobt. Im Vergleich zu bestehenden abstrahierten Ansätzen (LEyes) bietet der Ansatz eine fein abgestimmte Steuerung von Beleuchtung, Lidabdeckung, Pupillengröße und Hauttexturen, was grundsätzlich eine größere Realitätsnähe ermöglicht. + +--- + +## Remiorz (2025) - Verbesserung der Pupillenerkennung unter schwierigen Bedingungen + +### Kap. 1: Einleitung +Keine Kapiteleinleitung. Geht direkt in 1.1. + +### Kap. 2: Grundlagen +> Dieses Kapitel legt die fundamentalen Grundlagen, die für das Verständnis dieser Arbeit essenziell sind. Es beginnt in Abschnitt 2.1 mit einer Darstellung der anatomischen Strukturen des menschlichen Auges und der Pupillendynamiken, um den biologischen Kontext der Pupillenerkennung zu schaffen. Daran anknüpfend gibt Abschnitt 2.2 eine umfassende Einführung in die Funktionsweise und die Trainingskonzepte von neuronalen Netzen, welche das technologische Fundament der Bildsegmentierung bilden. Darauf aufbauend werden in Abschnitt 2.3 die spezifischen Modellarchitekturen vorgestellt, die in dieser Arbeit evaluiert werden. Anschließend erörtert Abschnitt 2.4 das Konzept der synthetischen Daten als Lösungsansatz für die Limitierungen realer Datensätze im maschinellen Lernen. Den Abschluss des Kapitels bildet in Abschnitt 2.5 eine detaillierte Beschreibung der Evaluationsmetriken, die zur objektiven Leistungsbewertung der entwickelten Segmentierungsmodelle herangezogen werden. + +### Kap. 3: Stand der Forschung +> Dieses Kapitel gibt einen Überblick über den aktuellen Stand der Forschung in den für diese Arbeit relevanten Bereichen. Die Auswahl der hier vorgestellten Arbeiten erhebt keinen Anspruch auf Vollständigkeit, sondern zielt darauf ab, eine fundierte Grundlage für die in dieser Masterarbeit behandelten Themen zu schaffen. Zunächst werden in Abschnitt 3.1 grundlegende Arbeiten zur Pupillenerkennung vorgestellt, die von systematischen Reviews bis zu einflussreichen, auf neuronalen Netzen basierenden Ansätzen reichen. Anschließend wird in Abschnitt 3.2 das fundamentale Konzept des Trainings neuronaler Netze mit synthetischen Daten und der damit verbundenen Technik der Domain Randomization erläutert. Abschnitt 3.3 überträgt diesen Ansatz auf den spezifischen Anwendungsfall der Pupillendetektion und stellt Arbeiten vor, die synthetische Augendaten nutzen. Die praktischen Werkzeuge zur Erzeugung solcher Daten werden in Abschnitt 3.4 untersucht. Zur Evaluation der entwickelten Modelle werden etablierte, öffentliche Datensätze benötigt, die in Abschnitt 3.5 detailliert beschrieben werden. Das Kapitel schließt mit einer Zusammenfassung des Forschungsstandes in Abschnitt 3.6, aus der die Forschungslücke abgeleitet und der Beitrag der vorliegenden Arbeit positioniert wird. + +### Kap. 4: Methodik und experimentelles Setup +> In diesem Kapitel werden die Methodik und die experimentellen Grundlagen dieser Arbeit detailliert beschrieben, um die systematische Untersuchung der zentralen Forschungsfrage und die Reproduzierbarkeit der Ergebnisse zu gewährleisten. Dazu wird zunächst in Abschnitt 4.1 die zentrale Forschungsfrage formuliert und das darauf aufbauende, dreiteilige Versuchsdesign vorgestellt. Die Datengrundlage der Experimente wird anschließend in Abschnitt 4.2 erläutert, was die verwendeten Datensätze, deren Vorverarbeitung, Augmentierung sowie die strategische Aufteilung in Trainings-, Validierungs- und Testdaten umfasst. In Abschnitt 4.3 wird die Auswahl der vier evaluierten neuronalen Netzarchitekturen begründet. Abschließend legt Abschnitt 4.4 die technischen Rahmenbedingungen fest, indem die Trainingskonfigurationen, Hyperparameter, Evaluationsmetriken sowie die genutzte Hard- und Softwareumgebung spezifiziert werden. + +### Kap. 5: Generierung eines synthetischen Datensatzes +> Dieses Kapitel legt die Grundlage für den Ansatz, neuronale Netze gezielt mit synthetischen Daten zu trainieren, die schwierige Szenarien abbilden. Zunächst wird in Abschnitt 5.1 eine systematische Analyse von Störfaktoren auf Basis relevanter Fachliteratur und einer eigens erstellten Störungsmatrix durchgeführt, um die für die Datengenerierung prioritären Herausforderungen zu identifizieren. Aufbauend auf dieser Analyse beschreibt Abschnitt 5.2 die Methodik der synthetischen Datenerstellung. Schließlich dokumentiert Abschnitt 5.3 den gesamten Prozess der Datensatzerstellung, von der Nutzung der Recheninfrastruktur bis hin zur finalen Zusammensetzung und Charakterisierung des Datensatzes. + +### Kap. 6: Implementierung +> Dieses Kapitel beschreibt die technische Umsetzung der für diese Arbeit entwickelten Softwarearchitektur. Der Fokus der Implementierung liegt auf einem modularen, reproduzierbaren und konfigurationsgesteuerten Ansatz, um eine systematische Durchführung der Experimente zu gewährleisten. Zu diesem Zweck wurden drei zentrale, aufeinander aufbauende Pipelines entwickelt, deren Aufbau und Funktionalität detailliert erläutert werden. +> +> Zunächst wird in Abschnitt 6.1 die grundlegende Projektstruktur vorgestellt. Darauf aufbauend wird in Abschnitt 6.2 die Implementierung der Datenpipeline beschrieben. Anschließend wird in Abschnitt 6.3 die Trainingspipeline erläutert. Den Abschluss bildet die Vorstellung der Evaluationspipeline in Abschnitt 6.4. Zusammen bilden diese Komponenten die technische Grundlage für die in den folgenden Kapiteln präsentierten experimentellen Untersuchungen. + +### Kap. 7: Trainingsergebnisse und Analyse +> In diesem Kapitel werden die Ergebnisse der durchgeführten Experimente präsentiert und systematisch analysiert. Der erste Schritt ist die detaillierte Untersuchung des Trainingsverlaufs in Abschnitt 7.1, um die Konvergenz und Stabilität der unterschiedlichen Modell- und Datenkombinationen zu bewerten. Darauf aufbauend erfolgt in Abschnitt 7.2 der quantitative und qualitative Leistungsvergleich der finalen Modelle auf dem internen Testdatensatz. Um die tatsächliche Generalisierungsfähigkeit zu prüfen, werden die Modelle in Abschnitt 7.3 auf dem externen und gänzlich ungesehenen LPW-Datensatz evaluiert. Neben der reinen Segmentierungsgenauigkeit ist die Praxistauglichkeit entscheidend, weshalb in Abschnitt 7.4 ein Effizienzvergleich hinsichtlich Inferenzgeschwindigkeit, Speicherbedarf und Trainingsdauer durchgeführt wird. Das Kapitel schließt mit Abschnitt 7.5, der die zentralen Erkenntnisse zusammenfasst und die Grundlage für die abschließende Diskussion legt. + +### Kap. 8: Diskussion +Nicht verfügbar (Volltext endet vor diesem Kapitel). + +--- + +## Kleipsties (2025) - Neuronale Architektursuche für Pupillensegmentierung + +### Kap. 1: Einleitung +Keine Kapiteleinleitung. Geht direkt in 1.1. + +### Kap. 2: Grundlagen +> Dieses Kapitel schafft das fachliche Fundament für die in dieser Arbeit verfolgte neuronale Architektursuche eines U-Net inspirierten Pupillensegmentierungsmodells. Zunächst werden in Abschnitt 2.1 die anatomischen Grundlagen des menschlichen Auges dargestellt. Abschnitt 2.2 führt in die künstlichen neuronalen Netze ein und behandelt Feed-Forward-Netze, Convolutional Neural Networks und die U-Net-Architektur. In Abschnitt 2.3 wird das Konzept der neuronalen Architektursuche vorgestellt, einschließlich Multi-Fidelity- und Multi-Objective-Optimierung mittels NSGA-II. Abschnitt 2.4 beschreibt die YOLO11-Architektur, die als Baseline dient. + +### Kap. 3: Stand der Forschung +> Kurzer Einleitungsabsatz mit Verweis auf: evolutionäre NAS für U-Net-Architekturen (3.1), Multi-Objective-Optimierung (3.2), Multi-Fidelity-Strategien (3.3), Pupillensegmentierung (3.4) und identifizierte Forschungslücken (3.5). + +### Kap. 4: Daten und Datengenerierung +> Ausführliche Einleitung mit Beschreibung der zwei Datenquellen: der reale 500K-Images-Datensatz (4.1) und das synthetische LEyes-Framework (4.2), einschließlich Details zu Datenaufteilung, HDF5-Konsolidierung, Augmentierung und LEyes-Integration. + +### Kap. 5: Methodik und Versuchsplanung +> Einleitung beschreibt vier sequenzielle Experimente: Exp I (Datensatzvergleich), Exp II (Hyperparameter-Optimierung pro Modellgrößenklasse), Exp III (Bi-Objective NAS via NSGA-II mit Multi-Fidelity), Exp IV (finales Training und YOLO-Baseline-Vergleich). + +### Kap. 6: Implementierung +> Kurze Einleitung: Projektstrukturübersicht (6.1), wiederverwendbare Module und Übersetzung von Individuen zu U-Nets (6.2), NSGA-II-Implementierung (6.3) und Experiment-Implementierungen (6.4). + +### Kap. 7: Ergebnisse +> Einleitung mit Verweis auf: Ausführungsprobleme (7.1), Datensatzvergleich (7.2), HPO-Ergebnisse (7.3), NAS-Modelle (7.4), YOLO-Baseline-Vergleich (7.5) und Zusammenfassung/Diskussion (7.6). + +### Kap. 8: Abschluss +Nicht verfügbar (Volltext endet vor diesem Kapitel). diff --git a/Prewrite/Kontext Periorbitale Formvariation.md b/Prewrite/Kontext Periorbitale Formvariation.md new file mode 100644 index 0000000..5875a6a --- /dev/null +++ b/Prewrite/Kontext Periorbitale Formvariation.md @@ -0,0 +1,147 @@ +# Kontext: Periorbitale Formvariation + +Zusammenfassung aller relevanten Infos zur Planung und zum Schreiben der Abschnitte 4.2 (Methodik) und 5.4 (Implementierung) zur periorbitalen Formvariation. + +--- + +## Was bereits geschrieben ist (Stand: 2026-04-03) + +### Methodik 4.2 (fertig geschrieben) +Datei: `04_Methodik/2_KonzeptFormvariation.tex` + +Deckt ab: +- Motivation: Bestehende Pipelines nutzen feste Modelle oder PCA (semantisch opak) +- Wisetchats TFM als konzeptuelle Referenz +- Warum Shape-Keys (vs. diskrete Modellsammlungen, PCA, Skelett-Rigs, prozedural) +- Zentrale Eigenschaft: lineare Superposition, einzeln parametrierbar +- Kurze Erwahnung von Konsequenzen (Wimpern/Brauen, Augenlid, Korrekturmechanismen) +- Verweis auf `\fref{sec:impl_periorbital}` fur Details +- Formulierung: "nicht populationsstatistisch validiert, sondern anatomisch motiviert, visuell plausibel" + +### Implementierung 5.6 Parametrisierung (fertig geschrieben) +Datei: `05_Implementierung/6_Parametrisierung.tex` + +Deckt ab: +- Ubersichtstabelle aller randomisierten Parameter (Shape-Keys als einziger neuer Eintrag) +- JSON-Config-Schema mit allen 9 Shape-Keys und ihren Bereichen (als Listing) +- Erklarung ECF_weight negativer Bereich (-0.3): Basismodell hat bereits leichte Falte +- Config-Parsing und Validierung +- Sampling: uniform pro Bild, unabhangige Ziehungen +- Verweis auf Korrektur-Shape-Keys in 5.4 +- Seed/Reproduzierbarkeit +- Laufzeit: vernachlassigbar (t_shape_keys) + +### Implementierung 5.3 Augenlidmodell (fertig geschrieben) +Datei: `05_Implementierung/3_Augenlidmodell.tex` + +Deckt ab: +- Probleme des alten Modells (separate Geometrie, Rotation statt Shape-Key) +- Neues Augenlid als Teil des Gesichts-Meshes mit Shape-Keys +- Catmull-Clark-Subdivision, Crease an Lidkante +- Clipping-Problem und Shrinkwrap-Modifier als Losung +- Bilder sind vorhanden + +--- + +## Was in 5.4 rein muss (noch zu schreiben) + +Datei: `05_Implementierung/4_PeriorbitaleFormvariation.tex` + +5.4 behandelt ausschliesslich die **3D-Modellierungsseite**: Was stellen die Shape-Keys anatomisch dar, wie wurden sie im Mesh modelliert, und wie funktionieren die Korrektur-Driver. Keine Uberschneidung mit Config/Randomisierung (das steht in 5.6) oder konzeptuelle Begrundung (das steht in 4.2). + +### Geplante Struktur + +#### 5.4.1 Modellierte Formmerkmale +- Tabelle aller 9 Shape-Keys mit anatomischer Bedeutung und Abbildung (min vs. max) +- Kategorisierung: + - **Positionale Merkmale**: ENC_x, ENC_y, EXC_x, EXC_y (verschieben die Kanthi) + - **Winkelmerkmale**: ENC_angle (Lidspaltenneigung am medialen Kanthus) + - **Formmerkmale**: ECF_weight (Epikantusfalte), SPC_weight (Oberlidfalte/Suprapalpebral Crease), STF_weight (Supratarsalfalte), LPF_depth (Unterlidfurche) +- Bezug zu Wisetchats 17 Features: welche umgesetzt, welche nicht und warum + - PLATZHALTER: Grunde fur das Weglassen der restlichen 8 Features mussen noch recherchiert werden + - Bekannt: mindestens ein Unteraugen-Parameter kollidiert mit dem Shrinkwrap-Modifier (2mm Mindestabstand) + +#### 5.4.2 Modellierung und Grenzen +- Heuristische Modellierung in Blender anhand visueller Plausibilitat +- Mesh-Topologie: Balanceakt zwischen Detail fur Furchen/Falten und Regularitat fur saubere Subdivision +- Herausforderung oberes Augenlid: Tarsus-Falten (ECF, STF) auf dunner Haut vs. umliegende Fettgewebe-Strukturen (SPS, STC, SPC, PNS, PTF) +- Technische Einschrankung Shrinkwrap: Kollision mit Unteraugen-Parametern (PLATZHALTER fur Details) + +#### 5.4.3 Korrektur-Shape-Keys mit Drivern +- Problem: Unabhangiges Sampling (beschrieben in 5.6) kann bei bestimmten Kombinationen Artefakte erzeugen +- Losung: Korrektive Shape-Keys im Blender-Modell, gesteuert uber Blender-interne Driver +- Mechanismus: Driver berechnet Gewicht = Produkt der auslosenden Shape-Keys + - Korrektur greift nur, wenn beide stark + - Pipeline-Code muss nichts uber Korrekturen wissen, da Blender die Driver automatisch auswertet +- Konkretes Beispiel: Augenlid-Schliessung x ENC_y -> Korrektur am Endokanthion bei geschlossenem Auge mit stark verschobenem Endokanthion +- Weitere Korrektur-Paare (PLATZHALTER) + +#### 5.4.4 Randomisierung zur Laufzeit +- ENTFALLT: Wird komplett in 5.6 behandelt. Nur kurzer Verweis auf 5.6 notig. + +--- + +## Die 9 implementierten Shape-Keys (aus config.json) + +| Shape-Key | Bereich | Anatomische Bedeutung | +|-----------|---------|----------------------| +| ECF_weight | [-0.3, 1.0] | Epikantusfalte (mediale Kanthusbedeckung). Negativ, da Basismodell bereits leichte Falte hat. | +| ENC_angle | [0.0, 1.0] | Kanthalwinkel am Endokanthion (Neigung der Lidspalte am medialen Kanthus) | +| ENC_x | [0.0, 1.0] | Horizontalposition des Endokanthion (medial-lateral) | +| ENC_y | [0.0, 1.0] | Vertikalposition des Endokanthion (superior-inferior) | +| EXC_x | [0.0, 1.0] | Horizontalposition des Exokanthion (medial-lateral) | +| EXC_y | [0.0, 1.0] | Vertikalposition des Exokanthion (superior-inferior) | +| SPC_weight | [0.0, 1.0] | Tiefe der Oberlidfalte (Suprapalpebral Crease / Double Eyelid vs. Monolid) | +| LPF_depth | [0.0, 1.0] | Tiefe der Unterlidfurche (Lower Palpebral Fossa) | +| STF_weight | [0.0, 1.0] | Supratarsalfalte (Auspraegung der Lidfalte oberhalb des Tarsus) | + +## Wisetchats 17 Augenattribute (davon 9 umgesetzt) + +Wisetchat definiert 17 Eye Attributes: 10 unsigned (0-1) und 7 signed (-1 bis 1). +Davon wurden 9 fur HEyes implementiert. Die restlichen 8 wurden nicht umgesetzt. + +**Nicht umgesetzt (PLATZHALTER - Grunde mussen noch recherchiert werden):** +- Vermutlich: Features ausserhalb des sichtbaren Bereichs in NIR-Eye-Tracking-Bildern +- Vermutlich: Features, die mit der vorhandenen Mesh-Topologie nicht umsetzbar waren +- Bekannt: Mindestens ein Unteraugen-Parameter kollidiert mit Shrinkwrap-Modifier + +## Quasi-Orthogonalitat (aus Wisetchat) + +Wisetchat definiert quasi-orthogonale Merkmale: +- **Orthogonal**: Features modifizieren verschiedene Vertex-Regionen, oder gleiche Region aber orthogonale Achsen (z.B. Breite vs. Hohe) +- **Nicht orthogonal**: Features uberlappen und modifizieren gleiche Vertices in ahnlicher Weise +- In extremen Kombinationen konnen Ergebnisse unplausibel sein, aber die meisten Kombinationen sind plausibel +- Fur problematische Kombinationen: Korrektur-Shape-Keys + +## Korrektur-Shape-Keys (aus Gesprach mit User) + +- Existieren als Blender-interne Mechanismen (nicht im Python-Code) +- Gesteuert uber Blender-Driver: Gewicht = Produkt der auslosenden Shape-Keys +- Beispiel: Korrektur-Shape-Key fur Augenlid x ENC_y + - Driver multipliziert Gewichte beider Shape-Keys + - Korrektur wird nur vollstandig angewendet, wenn Augenlid zu IST UND ENC_y maximal verschoben +- Vorteil: Pipeline-Code (gaze_controller.py) setzt nur die Shape-Key-Werte, Blender wertet Driver automatisch aus + +## Technische Details aus dem Code + +- Zielobjekt: "Skin" (das Periorbital-Geometrie-Mesh in Blender) +- Anwendung: `gaze_controller.py`, Methode `random_skin_model_modification()` + - Holt Skin-Objekt und dessen shape_keys + - Iteriert uber alle konfigurierten Shape-Keys + - Zieht uniform aus [min, max] + - Setzt Wert direkt auf den Blender Shape-Key +- Aufruf in Pipeline: nach `random_eyeball_rotation()`, vor Compositing +- Timing: `RenderTimes.set_shape_keys` (< 0.2ms, vernachlassigbar) + +## Offene Punkte / Platzhalter + +1. **Welche der 17 Wisetchat-Features wurden bewusst weggelassen und warum?** User erinnert sich nicht genau. Bekannt: Shrinkwrap-Kollision bei mind. einem Unteraugen-Parameter. Wird ggf. nochmal uberarbeitet. +2. **Weitere Korrektur-Shape-Key-Paare**: Nur das Beispiel Augenlid x ENC_y ist bekannt. Weitere mussen in Blender recherchiert werden. +3. **Min/Max-Bilder der Shape-Keys**: User wird diese noch rendern. Pro Shape-Key: Minimum-Auspraegung vs. Maximum-Auspraegung. + +## Modellierungsherausforderungen (aus Augenfeatures.md) + +- Oberes Augenlid besonders schwierig: dunne Falten des Tarsus (ECF, STF) auf dunner Haut, wahrend umliegende Furchen und Konvexitaten (SPS, STC, SPC, PNS, PTF) Eigenschaften des Fettgewebes darstellen +- Mesh-Topologie: Je simpler das Basis-Mesh, desto glatter die Subdivision-Oberflache. Aber genug Detail noetig fur Furchen und Falten. +- Basismodell stellt keinen Ethnotypen dar und entspricht keinem Durchschnitt +- Blender-Vorteil gegenuber Maya (Wisetchat): Shape-Keys sind Eigenschaften eines einzelnen Meshes, keine separaten Kopien. Topologie-Anderungen nach Shape-Key-Erstellung moeglich. diff --git a/Prewrite/Plan Kapitel 5.8 Performance-Optimierungen.md b/Prewrite/Plan Kapitel 5.8 Performance-Optimierungen.md new file mode 100644 index 0000000..4c23e35 --- /dev/null +++ b/Prewrite/Plan Kapitel 5.8 Performance-Optimierungen.md @@ -0,0 +1,68 @@ +# Plan: Kapitel 5.8 Performance-Optimierungen + +## Kontext und Abgrenzung + +Kapitel 5.8 beschreibt die **technische Umsetzung** der Performance-Optimierungen. Strikte Trennung: +- **5.8** = Code-Änderungen, Invarianten, warum die Änderung korrekt ist +- **6.4.1** = Phasenbeschreibung (was jede Timing-Phase misst) +- **7.2** = Profiling-Analyse, Bottleneck-Identifikation, Vorher-Nachher-Vergleich + +**Harte Regel für 5.8:** Keine konkreten Vorher-Nachher-Zahlen, keine Signifikanzaussagen, keine Bottleneck-Interpretation, keine Rangfolge der Effekte. Jeweils Verweis auf 7.2. + +Umfang: ~1.5-2.5 Seiten. Nicht das Hauptthema der Arbeit. + +## Übergeordnete Story + +Zwei der drei Optimierungen folgen demselben Prinzip: Teure, innerhalb eines Render-Durchlaufs invariante Berechnungen werden aus der Per-Frame-Schleife herausgezogen und nur einmal ausgeführt (Hautluminanz, Compositing). Die dritte betrifft lokale Umformulierungen in der CPU-seitigen Texturerzeugung (Sklera). + +## Gliederung + +### Einleitung (2-3 Sätze) +- Verweis auf Exp. 1.2 als Folgeanalyse +- Trennung: hier technische Änderungen, quantitative Bewertung in 7.2 +- Übergeordnete Strategie elegant in 2 Sätzen, nicht als Klassifikationsschema + +### 5.8.1 Caching der Hauttextur-Luminanzwerte (~0.75-1 Seite) + +Detailliertester Unterabschnitt. Muster: Ausgangsproblem → Invariante → Änderung → warum Verhalten gleich bleibt. + +- **Ausgangsproblem:** `luminance_range()` lud das Bildobjekt wiederholt neu, berechnete Min/Max/Avg-Luminanz (Rec. 709) über alle Pixel in einer Python-Schleife, und entfernte das temporäre Bild anschließend wieder. Das fand für jeden zu erzeugenden Frame erneut statt. + - Hinweis: "Festplatte" vermeiden, neutral formulieren als wiederholtes Laden/Entfernen +- **Invariante:** Die zugrunde liegende Hauttextur ändert sich innerhalb eines Render-Durchlaufs nicht. Ihre Luminanzstatistiken sind daher über alle Frames konstant. +- **Änderung:** + - Signatur: akzeptiert nun ein bereits geladenes Bildobjekt statt eines Dateipfads + - `LuminanceStats`-Dataclass speichert min/max/avg + - Klassenvariable wird beim ersten Frame berechnet und wiederverwendet +- **Warum Verhalten gleich bleibt:** Die gecachten Werte dienen nur als Eingangspunkte der RGB-Curve. Die pro Frame randomisierte Ausgangsluminanz wird weiterhin jedes Mal neu bestimmt. +- Verweis auf 7.2 + +### 5.8.2 Wiederverwendung des Compositing-Graphen (~3-5 Sätze) + +Sehr kurz. Darf sich **nicht** mit 5.7.3 überschneiden. 5.7.3 = Architektur des Graphen. 5.8.2 = nur Lebenszyklus-Optimierung. + +- Vorher: Instanziierung pro Frame +- Nachher: Einmalige Instanziierung, Wiederverwendung +- Invariante (defensiv): "Die Struktur des Graphen und die zugehörige Ausgabe-Konfiguration bleiben innerhalb eines Render-Durchlaufs unverändert." +- Einschränkung: Falls zukünftig Parameter pro Frame variieren, müsste der Graph modifiziert oder der Cache invalidiert werden +- Verweis auf 7.2 + +### 5.8.3 Lokale Optimierungen der Sklera-Texturgenerierung (~0.5 Seite) + +Kompakter. Keine Invariante im Cache-Sinn, sondern lokal äquivalente Umformulierungen. + +- Implementierte Änderungen: + - Array-Initialisierung: `np.ones` + RGB-Zuweisung → `np.full` mit Skalar + Alpha-Kanal + - Kreismaske: Einschränkung auf Bounding-Box statt gesamtes Bild + - Array-Transformation: Spiegeln und Linearisierung in einer Operation +- Mikrobenchmarks: **ein Satz** ("Zur Auswahl der Varianten wurden Mikrobenchmarks durchgeführt.") +- Verworfene Glint-Optimierungen: **ein Nebensatz** +- Formulierung: "Die Änderungen formulieren bestehende Operationen effizienter um, ohne die erzeugte Textur semantisch zu verändern." +- **Keine** Aussage zur Signifikanz oder zum Engpass +- Verweis auf 7.2 + +## Schreibhinweise + +1. Keine Commit-Hashes oder Zeilennummern im Fließtext. Auf Module, Funktionen, Datenstrukturen referenzieren. +2. "Warum Verhalten gleich bleibt" bei Sklera weicher formulieren als bei Caching/Compositing. +3. Keine Gedankenstriche, keine Semikolons (Stilpräferenz). +4. Verweise auf Kap. 7: `\fref{sec:ergebnisse_experiment1_2}` diff --git a/TODO - Was wirklich noch passieren muss.md b/TODO - Was wirklich noch passieren muss.md index 2775569..b96100b 100644 --- a/TODO - Was wirklich noch passieren muss.md +++ b/TODO - Was wirklich noch passieren muss.md @@ -1,10 +1,12 @@ # Schreiben: - [ ] Abstract +- [ ] Zusammenfassung - [ ] 1. Einleitung - - [ ] Motivation und Problemstellung - - [ ] Zielsetzung und Forschungsfragen - - [ ] Aufbau der Arbeit + - [x] Motivation und Problemstellung + - [x] Zielsetzung und Forschungsfragen + - [x] Aufbau der Arbeit + - [ ] (Wenn wir es den Bois geschickt haben) TODO: Quellen prüfen! - [ ] 2. Grundlagen - [ ] Einleitung Schreiben @@ -25,36 +27,39 @@ - [ ] 5. Implementierung - [ ] Einleitung Schreiben - [x] 1. Projektstruktur - - [x] 2. AnpassungenAnPipeline + - [ ] 2. AnpassungenAnPipeline + - [ ] Einleitung schreiben/framing - [ ] 3. Augenlidmodell - [x] Schreiben - [ ] (Gibbidy noch nötig) - - [ ] 4. PeriorbitaleFormvariation - - [ ] Planen - - [ ] Schreiben - - [ ] 5. AugenbrauenUndWimpern - - [ ] Planen - - [ ] Schreiben + - [x] 4. PeriorbitaleFormvariation + - [x] Planen + - [x] Schreiben + - [x] 5. AugenbrauenUndWimpern + - [x] Planen + - [x] Schreiben - [x] 6. Parametrisierung - [ ] 7. SzenenUndAusgabearchitektur - [x] Schreiben - [ ] (Gibbidy noch nötig) - - [ ] 8. PerformanceOptimierungen - - [ ] Planen - - [ ] Schreiben + - [x] 8. PerformanceOptimierungen + - [x] Planen + - [x] Schreiben - [x] 9. Experimentwerkzeuge - [ ] 6. Versuchsaufbau - - [ ] Einleitung schreiben - - [ ] Bestehenden Inhalt umschreiben + - [x] Einleitung schreiben + - [x] Bestehenden Inhalt umschreiben + - [ ] (Gibbidy noch nötig) - [ ] 7. Experimentauswertung - [x] Einleitung - [x] Ergebnisse - [x] Auswertung - [x] Analyse - - [ ] Die Auswertung auf der die Optimierung aufbaut nochmal checken - + - [x] Die Auswertung auf der die Optimierung aufbaut nochmal checken + - [ ] Konfidenzintervalle als BCa neuberechnen + - [ ] Ex 1.2: Im Versuchsaufbau verspreche ich die Prozentuale Beschleunigung zu berechnen - [ ] 8. Diskussion und Abschluss - [ ] Einleitung - [ ] Zusammenfassung der Arbeit @@ -66,4 +71,53 @@ # Repo aufräumen: - [ ] Code kommentieren - [ ] Readme-Dateien - - [ ] Am besten so, dass man für Reproduktion einfach Kommandos Copy-Pasten kann \ No newline at end of file + - [ ] Am besten so, dass man für Reproduktion einfach Kommandos Copy-Pasten kann + + + + +# Sachen, die Gemini noch angemerkt hat: + +### 2. Dringende "Red Flags" im Rohtext (Kapitel 1 bis 7) + +Beim Lesen deines Textes sind mir deine ehrlichen (und teils lustigen) Selbstnotizen aufgefallen. Diese musst du vor der Abgabe zwingend bereinigen, da hier echte "rote Flaggen" für Prüfer lauern: + +- **S. 16: _"Gucken, ob das 1 zu 1 von Meiko kopiert wurde..."_** + + - **ACHTUNG! Höchste Plagiatsgefahr!** Wenn das die Plagiatssoftware oder dein Betreuer liest, hast du ein massives Problem. Schreibe die Definitionen der Metriken (IoU, Dice etc.) zwingend in deinen eigenen Worten neu und zitiere korrekt. + +- **S. xiv (Glossar): _"clipping [...] Keine Ahnung man... google das doch selber"_** + + - 😉 Vergiss nicht, das zu löschen oder eine ordentliche Definition ("Das unerwünschte Durchdringen von Polygonen im 3D-Raum...") hinzuzufügen. + +- **S. 17: _"Das ist doch quatsch!"_** + + - Kläre, was du hier meinst. Falls es sich auf die Formel Dice=1+IoU2⋅IoU​ bezieht: Die stimmt für den binären Fall mathematisch absolut, das ist der harmonische Mittelwert. + +- **S. 7: _"Ist Ptosis wirklich wichtig?"_** + + - **Ja!** Ptosis (das Herabhängen des Oberlids) ist extrem wichtig, weil sie genau das verursacht, was dein Modell verwirrt: _Verdeckung der Pupille_. Es rechtfertigt perfekt, warum man das Augenlid und die Form parametrisieren muss. + +- **S. 73 & 87: _"!!! Für Experiment 1 die Konfidenzintervalle als BCa neu berechnen !!!"_** + + - _Tipp:_ Quäl dich nicht. Wenn dir die Zeit davonläuft, nutze einfach normale (Perzentil-)Bootstrap-Intervalle, streiche das Wort "BCa" aus Kapitel 2.5.5 und pass den Text an. Das ist für einen reinen Laufzeit-Benchmark völlig legitim, solange du im Text transparent bleibst. + + +### 3. Copy-Paste Fehler und Widersprüche + +- **Redundante Absätze:** Du hast versehentlich Absätze doppelt im Text: + + - **S. 3:** _"Darauf aufbauend gibt Kapitel 3..."_ steht zweimal untereinander. + + - **S. 26:** _"Zusammenfassend zeigt sich, dass..."_ vs. _"Zusammenfassend haben sich..."_ + + - **S. 66 & 74:** Die Erklärung _"Für Experiment 1.2 wurde derselbe Benchmark-Ansatz um eine feingranulare Instrumentierung..."_ taucht mehrfach fast identisch auf. + +- **Der "Blender 5" Widerspruch (S. 75/76):** + + - Du optimierst in Experiment 1 massiv auf Blender 5. In Kapitel 6.5.1 schreibst du dann, dass du die 5.000 Bilder für Exp 2 wegen eines _Memory Leaks_ in Blender 5 doch mit Blender 4 rendern musstest. + + - _Tipp:_ Verkaufe das in Kapitel 8 als starkes Engineering-Ergebnis! _„Während die Architektur-Optimierungen in Blender 5 isoliert enorme Geschwindigkeitsvorteile brachten, zeigte sich bei der Batch-Generierung, dass die Engine in dieser frühen Version aufgrund von Memory Leaks noch nicht praxistauglich für großkalibrige Datensätze ist.“_ + + +**Fazit für deinen Endspurt:** Gehe am Ende mit `Strg + F` durch den LaTeX-Code und suche nach "TODO", "!!!", "???" und "Quelle". Räume das Dokument formal auf. Wenn du dann Kapitel 8 um eine echte Diskussion erweiterst und die "Schuld" für den sinkenden Dice-Score präzise auf die Störvariable (Okklusion) und den Fluch der Dimensionalität lenkst, wird das eine exzellente Abschlussarbeit! Viel Erfolg! \ No newline at end of file