- experiment_charts.py generates 4 figures from experiments/ artifacts: held-out per-film F1, 16-combo ranking, DE search landscape, and the Downton detector-vs-tracker ghost timeline (replaces the blank title-card screenshot) - new frames: 19-correct wedding shot (success case), Many Saints ghost-vs-unknown frame (three error classes in one image) - rename rep4-optimizer-results.md -> model-bakeoff.md; rep4 kept only as the on-disk artifact prefix, explained once - repo file references are now links via https://REPOLINK/<path> placeholders; build_site.sh pins them to the HEAD commit's raw URLs and fails the build if a linked path doesn't exist at HEAD - drop references to removed scripts (scene_score.py, score_config.py) and to session-memory names; mark artifact-registry paths with their pull commands - commit readme_example.jpg + pipeline_topology.svg so README renders on the plain Gitea repo view - deploy_pages.sh: push built site/ to the gitea-pages branch
60 lines
2.8 KiB
XML
60 lines
2.8 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 980 260" font-family="-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif">
|
|
<style>
|
|
.box { fill:#1f6feb; stroke:#0d4f9e; stroke-width:1.5; }
|
|
.box-debug { fill:#57534e; stroke:#3a3733; stroke-width:1.5; }
|
|
.lbl { fill:#ffffff; font-size:13px; text-anchor:middle; dominant-baseline:middle; }
|
|
.arrow { stroke:#57534e; stroke-width:2; marker-end:url(#arrowhead); fill:none; }
|
|
.arrow-debug { stroke:#a8a29e; stroke-width:2; stroke-dasharray:4,3; marker-end:url(#arrowhead-debug); fill:none; }
|
|
.caption { fill:#57534e; font-size:11px; text-anchor:middle; }
|
|
</style>
|
|
<defs>
|
|
<marker id="arrowhead" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
|
|
<path d="M0,0 L8,4 L0,8 Z" fill="#57534e"/>
|
|
</marker>
|
|
<marker id="arrowhead-debug" markerWidth="8" markerHeight="8" refX="7" refY="4" orient="auto">
|
|
<path d="M0,0 L8,4 L0,8 Z" fill="#a8a29e"/>
|
|
</marker>
|
|
</defs>
|
|
|
|
<!-- top row: main chain -->
|
|
<rect class="box" x="10" y="40" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="70" y="65">frame_source</text>
|
|
|
|
<rect class="box" x="160" y="40" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="220" y="65">face_detector</text>
|
|
|
|
<rect class="box" x="310" y="40" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="370" y="65">face_aligner</text>
|
|
|
|
<rect class="box" x="460" y="40" width="110" height="50" rx="6"/>
|
|
<text class="lbl" x="515" y="65">embedder</text>
|
|
|
|
<rect class="box" x="600" y="40" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="660" y="65">face_tracker</text>
|
|
|
|
<rect class="box" x="750" y="40" width="130" height="50" rx="6"/>
|
|
<text class="lbl" x="815" y="65">identity_matcher</text>
|
|
|
|
<line class="arrow" x1="130" y1="65" x2="158" y2="65"/>
|
|
<line class="arrow" x1="280" y1="65" x2="308" y2="65"/>
|
|
<line class="arrow" x1="430" y1="65" x2="458" y2="65"/>
|
|
<line class="arrow" x1="570" y1="65" x2="598" y2="65"/>
|
|
<line class="arrow" x1="720" y1="65" x2="748" y2="65"/>
|
|
|
|
<!-- second row: scene_tracker + result_sink -->
|
|
<line class="arrow" x1="815" y1="90" x2="815" y2="150"/>
|
|
<rect class="box" x="720" y="150" width="130" height="50" rx="6"/>
|
|
<text class="lbl" x="785" y="175">scene_tracker</text>
|
|
<line class="arrow" x1="718" y1="175" x2="582" y2="175"/>
|
|
<rect class="box" x="452" y="150" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="512" y="175">result_sink</text>
|
|
|
|
<!-- debug fan-out -->
|
|
<line class="arrow-debug" x1="855" y1="90" x2="920" y2="148"/>
|
|
<rect class="box-debug" x="855" y="150" width="120" height="50" rx="6"/>
|
|
<text class="lbl" x="915" y="168">debug_renderer /</text>
|
|
<text class="lbl" x="915" y="184">preview (opt-in)</text>
|
|
|
|
<text class="caption" x="490" y="230">solid = always-on data path · dashed = optional debug/preview fan-out from identity_matcher's output</text>
|
|
</svg>
|