Files
reTraining/docs/diagram-alur.fodg

468 lines
24 KiB
XML

<?xml version="1.0" encoding="UTF-8"?>
<office:document
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:ooo="http://openoffice.org/2004/office"
xmlns:ooow="http://openoffice.org/2004/writer"
xmlns:oooc="http://openoffice.org/2004/calc"
xmlns:dom="http://www.w3.org/2001/xml-events"
xmlns:drawooo="http://openoffice.org/2010/draw"
xmlns:loext="urn:org:documentfoundation:names:experimental:office:xmlns:loext:1.0"
office:version="1.3"
office:mimetype="application/vnd.oasis.opendocument.graphics">
<office:meta>
<dc:title>Diagram Alur Arsitektur &amp; Pipeline Data Sistem Retraining Karung</dc:title>
<dc:description>Diagram Alur Arsitektur 8-Tahap: Video Ingest, FFmpeg Slicing, SAM3 Grounding, Review Canvas, Data Prep &amp; Triage, Master Dataset, YOLO Retraining, Live Inference &amp; Benchmark</dc:description>
<meta:creation-date>2026-08-27T00:00:00Z</meta:creation-date>
<meta:generator>Retraining Studio FODG Specification Generator</meta:generator>
</office:meta>
<office:font-face-decls>
<style:font-face style:name="Inter" svg:font-family="Inter, -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif"/>
<style:font-face style:name="JetBrains Mono" svg:font-family="JetBrains Mono, Menlo, Monaco, Consolas, monospace"/>
</office:font-face-decls>
<office:styles>
<!-- Directional Arrowhead Markers -->
<draw:marker draw:name="Arrow" svg:viewBox="0 0 20 20" svg:d="M 0 0 L 20 10 L 0 20 z"/>
<draw:marker draw:name="ArrowLeft" svg:viewBox="0 0 20 20" svg:d="M 20 0 L 0 10 L 20 20 z"/>
<draw:marker draw:name="ArrowUp" svg:viewBox="0 0 20 20" svg:d="M 0 20 L 10 0 L 20 20 z"/>
<draw:marker draw:name="ArrowDown" svg:viewBox="0 0 20 20" svg:d="M 0 0 L 10 20 L 20 0 z"/>
<style:default-style style:family="graphic">
<style:graphic-properties svg:stroke-color="#334155" draw:fill-color="#1e293b" fo:wrap-option="wrap"/>
<style:paragraph-properties fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="9pt" fo:color="#e2e8f0"/>
</style:default-style>
</office:styles>
<office:automatic-styles>
<!-- Page Layout: 44.0cm x 25.5cm Landscape -->
<style:page-layout style:name="PM_Diagram">
<style:page-layout-properties
fo:page-width="44.0cm"
fo:page-height="25.5cm"
style:print-orientation="landscape"
fo:margin-top="1.0cm"
fo:margin-bottom="1.0cm"
fo:margin-left="1.0cm"
fo:margin-right="1.0cm"/>
</style:page-layout>
<style:style style:name="dp1" style:family="drawing-page">
<style:drawing-page-properties
draw:background-size="border"
draw:fill="solid"
draw:fill-color="#0b0f19"/>
</style:style>
<!-- Header Banner Style -->
<style:style style:name="gr_header" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#38bdf8"
draw:corner-radius="0.3cm"
fo:padding-top="0.25cm"
fo:padding-bottom="0.25cm"
fo:padding-left="0.5cm"
fo:padding-right="0.5cm"/>
</style:style>
<!-- Footer Banner Style -->
<style:style style:name="gr_footer" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.04cm"
svg:stroke-color="#334155"
draw:corner-radius="0.3cm"
fo:padding-top="0.2cm"
fo:padding-bottom="0.2cm"
fo:padding-left="0.4cm"
fo:padding-right="0.4cm"/>
</style:style>
<!-- Stage 1 (Blue) -->
<style:style style:name="gr_card_s1" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#3b82f6"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 2 (Cyan) -->
<style:style style:name="gr_card_s2" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#06b6d4"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 3 (Violet) -->
<style:style style:name="gr_card_s3" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#8b5cf6"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 4 (Emerald) -->
<style:style style:name="gr_card_s4" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#10b981"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 5 (Amber) -->
<style:style style:name="gr_card_s5" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#f59e0b"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 6 (Indigo) -->
<style:style style:name="gr_card_s6" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#6366f1"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 7 (Rose) -->
<style:style style:name="gr_card_s7" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#f43f5e"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Stage 8 (Teal) -->
<style:style style:name="gr_card_s8" style:family="graphic">
<style:graphic-properties
draw:fill="solid"
draw:fill-color="#0f172a"
draw:stroke="solid"
svg:stroke-width="0.05cm"
svg:stroke-color="#14b8a6"
draw:corner-radius="0.35cm"
fo:padding="0.3cm"/>
</style:style>
<!-- Connector Styles -->
<style:style style:name="gr_conn_forward" style:family="graphic">
<style:graphic-properties
draw:stroke="solid"
svg:stroke-width="0.06cm"
svg:stroke-color="#38bdf8"
draw:marker-end="Arrow"
draw:marker-end-width="0.26cm"
draw:fill="none"/>
</style:style>
<style:style style:name="gr_conn_down" style:family="graphic">
<style:graphic-properties
draw:stroke="solid"
svg:stroke-width="0.06cm"
svg:stroke-color="#10b981"
draw:marker-end="ArrowDown"
draw:marker-end-width="0.26cm"
draw:fill="none"/>
</style:style>
<style:style style:name="gr_conn_backward" style:family="graphic">
<style:graphic-properties
draw:stroke="solid"
svg:stroke-width="0.06cm"
svg:stroke-color="#f59e0b"
draw:marker-end="ArrowLeft"
draw:marker-end-width="0.26cm"
draw:fill="none"/>
</style:style>
<style:style style:name="gr_conn_feedback" style:family="graphic">
<style:graphic-properties
draw:stroke="dash"
svg:stroke-width="0.06cm"
svg:stroke-color="#14b8a6"
draw:marker-end="ArrowUp"
draw:marker-end-width="0.26cm"
draw:fill="none"/>
</style:style>
<!-- Paragraph Styles -->
<style:style style:name="P_Title" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="14pt" fo:font-weight="bold" fo:color="#f8fafc"/>
</style:style>
<style:style style:name="P_Subtitle" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0.08cm" fo:margin-bottom="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="8.5pt" fo:color="#94a3b8"/>
</style:style>
<style:style style:name="P_Stage_Title_S1" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#60a5fa"/>
</style:style>
<style:style style:name="P_Stage_Title_S2" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#22d3ee"/>
</style:style>
<style:style style:name="P_Stage_Title_S3" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#a78bfa"/>
</style:style>
<style:style style:name="P_Stage_Title_S4" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#34d399"/>
</style:style>
<style:style style:name="P_Stage_Title_S5" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#fbbf24"/>
</style:style>
<style:style style:name="P_Stage_Title_S6" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#818cf8"/>
</style:style>
<style:style style:name="P_Stage_Title_S7" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#fb7185"/>
</style:style>
<style:style style:name="P_Stage_Title_S8" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="10pt" fo:font-weight="bold" fo:color="#2dd4bf"/>
</style:style>
<style:style style:name="P_Stage_Sub" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0.05cm" fo:margin-bottom="0.15cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="7.5pt" fo:color="#94a3b8"/>
</style:style>
<style:style style:name="P_Badge_Row" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0cm" fo:margin-bottom="0.2cm" fo:text-align="left"/>
<style:text-properties style:font-name="JetBrains Mono" fo:font-size="7pt" fo:color="#38bdf8"/>
</style:style>
<style:style style:name="P_Bullet" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0.04cm" fo:margin-bottom="0.06cm" fo:text-align="left" fo:line-height="115%"/>
<style:text-properties style:font-name="Inter" fo:font-size="7.5pt" fo:color="#cbd5e1"/>
</style:style>
<style:style style:name="P_IO_Meta" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0.15cm" fo:margin-bottom="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="JetBrains Mono" fo:font-size="7pt" fo:color="#64748b"/>
</style:style>
<style:style style:name="P_Footer_Heading" style:family="paragraph">
<style:paragraph-properties fo:margin="0cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="8.5pt" fo:font-weight="bold" fo:color="#38bdf8"/>
</style:style>
<style:style style:name="P_Footer_Text" style:family="paragraph">
<style:paragraph-properties fo:margin-top="0.05cm" fo:margin-bottom="0.05cm" fo:text-align="left"/>
<style:text-properties style:font-name="Inter" fo:font-size="7.5pt" fo:color="#94a3b8"/>
</style:style>
</office:automatic-styles>
<office:master-styles>
<style:master-page style:name="Default" style:page-layout-name="PM_Diagram" draw:style-name="dp1"/>
</office:master-styles>
<office:body>
<office:drawing>
<draw:page draw:name="DiagramAlurSistem" draw:style-name="dp1" draw:master-page-name="Default">
<!-- Header Banner -->
<draw:custom-shape draw:style-name="gr_header" svg:x="1.5cm" svg:y="1.0cm" svg:width="41.0cm" svg:height="2.2cm">
<text:p text:style-name="P_Title">Sistem Retraining &amp; Live Counter Feedmill — Arsitektur &amp; Pipeline Data 8 Tahap</text:p>
<text:p text:style-name="P_Subtitle">Pipeline Closed-Loop End-to-End: Ingest CCTV 06:00, Ekstraksi FFmpeg, Auto-Label SAM3, Review Canvas, Triage Data, Dataset Freezing, YOLO Retraining &amp; Live Inference</text:p>
</draw:custom-shape>
<!-- TOP ROW: Stages 1 to 4 -->
<!-- Stage 1 -->
<draw:custom-shape draw:style-name="gr_card_s1" svg:x="1.5cm" svg:y="3.8cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S1">1. Video Archive &amp; CCTV Ingest</text:p>
<text:p text:style-name="P_Stage_Sub">Siklus 24 Jam (06:00 Cutoff) &amp; Ingestion</text:p>
<text:p text:style-name="P_Badge_Row">[RTSP :8554] [06:00 Cutoff] [Sidecar JSON]</text:p>
<text:p text:style-name="P_Bullet">• Ingest stream Dahua RTSP :8554 / WHEP :8889</text:p>
<text:p text:style-name="P_Bullet">• Pengenalan OCR timestamp video otomatis</text:p>
<text:p text:style-name="P_Bullet">• Partisi batch per hari kerja feedmill (06:00-05:59)</text:p>
<text:p text:style-name="P_Bullet">• Metadata sidecar JSON &amp; storage read-only</text:p>
<text:p text:style-name="P_IO_Meta">IN: RTSP Stream / Batch MP4 | OUT: Indexed Video</text:p>
</draw:custom-shape>
<!-- Connector 1 -> 2 -->
<draw:connector draw:style-name="gr_conn_forward" svg:x1="10.9cm" svg:y1="7.6cm" svg:x2="12.0cm" svg:y2="7.6cm"/>
<!-- Stage 2 -->
<draw:custom-shape draw:style-name="gr_card_s2" svg:x="12.0cm" svg:y="3.8cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S2">2. Video Library &amp; FFmpeg Slicing</text:p>
<text:p text:style-name="P_Stage_Sub">Sub-Sampling Engine &amp; Frame Extraction</text:p>
<text:p text:style-name="P_Badge_Row">[FFmpeg 1.0 FPS] [Range Trim] [%06d.jpg]</text:p>
<text:p text:style-name="P_Bullet">• Range streaming &amp; visual time-range trimmer</text:p>
<text:p text:style-name="P_Bullet">• Ekstraksi frame presisi (default: 1.0 FPS)</text:p>
<text:p text:style-name="P_Bullet">• Penulisan sekuens zero-padded 000001.jpg</text:p>
<text:p text:style-name="P_Bullet">• Atomic write ke data/batches/&lt;batch-id&gt;/frames/</text:p>
<text:p text:style-name="P_IO_Meta">IN: Video Batch + Range | OUT: JPG Frames</text:p>
</draw:custom-shape>
<!-- Connector 2 -> 3 -->
<draw:connector draw:style-name="gr_conn_forward" svg:x1="21.4cm" svg:y1="7.6cm" svg:x2="22.5cm" svg:y2="7.6cm"/>
<!-- Stage 3 -->
<draw:custom-shape draw:style-name="gr_card_s3" svg:x="22.5cm" svg:y="3.8cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S3">3. SAM3 Grounding Engine</text:p>
<text:p text:style-name="P_Stage_Sub">Singleton CUDA &amp; Zero-Shot Auto-Label</text:p>
<text:p text:style-name="P_Badge_Row">[Singleton GPU] [1 set_image] [Exemplar Pool]</text:p>
<text:p text:style-name="P_Bullet">• Singleton CUDA manager (1 set_image per frame)</text:p>
<text:p text:style-name="P_Bullet">• Multi-prompt zero-shot grounding per kelas</text:p>
<text:p text:style-name="P_Bullet">• Cross-prompt NMS &amp; ekstraksi polygon mask</text:p>
<text:p text:style-name="P_Bullet">• Exemplar visual tuning (positive/negative points)</text:p>
<text:p text:style-name="P_IO_Meta">IN: JPG Frames + Prompts | OUT: Polygon Labels</text:p>
</draw:custom-shape>
<!-- Connector 3 -> 4 -->
<draw:connector draw:style-name="gr_conn_forward" svg:x1="31.9cm" svg:y1="7.6cm" svg:x2="33.0cm" svg:y2="7.6cm"/>
<!-- Stage 4 -->
<draw:custom-shape draw:style-name="gr_card_s4" svg:x="33.0cm" svg:y="3.8cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S4">4. Review Canvas &amp; Editor</text:p>
<text:p text:style-name="P_Stage_Sub">Dark-Mode Interactive Workspace</text:p>
<text:p text:style-name="P_Badge_Row">[Dark Canvas] [Vertex/BBox] [Hotkeys Space/W/D]</text:p>
<text:p text:style-name="P_Bullet">• Manipulasi interaktif vertex polygon &amp; bounding box</text:p>
<text:p text:style-name="P_Bullet">• Hotkey efisiensi (Space approve, W triage, D delete)</text:p>
<text:p text:style-name="P_Bullet">• Re-assignment kelas label &amp; filmstrip quick reclass</text:p>
<text:p text:style-name="P_Bullet">• Pelacakan sumber (auto SAM3 vs manual edit)</text:p>
<text:p text:style-name="P_IO_Meta">IN: Candidate Labels | OUT: Approved Annotations</text:p>
</draw:custom-shape>
<!-- DOWNWARD CONNECTOR: Stage 4 -> Stage 5 -->
<draw:connector draw:style-name="gr_conn_down" svg:x1="37.7cm" svg:y1="11.4cm" svg:x2="37.7cm" svg:y2="13.0cm"/>
<!-- BOTTOM ROW: Stages 5 to 8 (Serpentine Right-to-Left) -->
<!-- Stage 5 -->
<draw:custom-shape draw:style-name="gr_card_s5" svg:x="33.0cm" svg:y="13.0cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S5">5. Data Prep &amp; Outlier Triage</text:p>
<text:p text:style-name="P_Stage_Sub">Multi-Signal Quality Filter &amp; Augment</text:p>
<text:p text:style-name="P_Badge_Row">[Scatter Plot] [Crop Grid] [Augment Presets]</text:p>
<text:p text:style-name="P_Bullet">• Filter keep-ranges (score, area_pct, aspect_ratio)</text:p>
<text:p text:style-name="P_Bullet">• Scatter plot interaktif (Score x Area) &amp; crop grid</text:p>
<text:p text:style-name="P_Bullet">• Manual override per bounding box (keep/ignore)</text:p>
<text:p text:style-name="P_Bullet">• Preset augmentasi (Off, Light, Medium, Aggressive)</text:p>
<text:p text:style-name="P_IO_Meta">IN: Approved Batches | OUT: Filtered Annotations</text:p>
</draw:custom-shape>
<!-- Connector 5 -> 6 -->
<draw:connector draw:style-name="gr_conn_backward" svg:x1="33.0cm" svg:y1="16.8cm" svg:x2="31.9cm" svg:y2="16.8cm"/>
<!-- Stage 6 -->
<draw:custom-shape draw:style-name="gr_card_s6" svg:x="22.5cm" svg:y="13.0cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S6">6. Master Dataset Freezing</text:p>
<text:p text:style-name="P_Stage_Sub">Deterministic Immutable Repository</text:p>
<text:p text:style-name="P_Badge_Row">[SHA1 Stable Val] [Immutable] [YOLO TXT]</text:p>
<text:p text:style-name="P_Bullet">• Val split stabil permanen berbasis hash SHA1</text:p>
<text:p text:style-name="P_Bullet">• Ekspor label format YOLO TXT (class x y w h)</text:p>
<text:p text:style-name="P_Bullet">• Generasi manifest data.yaml &amp; snapshot rules</text:p>
<text:p text:style-name="P_Bullet">• Integrasi base datasets eksternal (train-only)</text:p>
<text:p text:style-name="P_IO_Meta">IN: Filtered Labels | OUT: dataset/ train/ val/</text:p>
</draw:custom-shape>
<!-- Connector 6 -> 7 -->
<draw:connector draw:style-name="gr_conn_backward" svg:x1="22.5cm" svg:y1="16.8cm" svg:x2="21.4cm" svg:y2="16.8cm"/>
<!-- Stage 7 -->
<draw:custom-shape draw:style-name="gr_card_s7" svg:x="12.0cm" svg:y="13.0cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S7">7. YOLO Retraining &amp; Benchmark</text:p>
<text:p text:style-name="P_Stage_Sub">Ultralytics Fine-Tuning &amp; Evaluation</text:p>
<text:p text:style-name="P_Badge_Row">[Ultralytics YOLO11] [mAP Compare] [Auto VRAM]</text:p>
<text:p text:style-name="P_Bullet">• Fine-tuning YOLO11 dari base model terdaftar</text:p>
<text:p text:style-name="P_Bullet">• VRAM auto-tuning &amp; hardware agnostic execution</text:p>
<text:p text:style-name="P_Bullet">• Evaluasi otomatis metrik mAP50 &amp; mAP50-95</text:p>
<text:p text:style-name="P_Bullet">• Ekspor model terbaik best.pt &amp; log metrics.json</text:p>
<text:p text:style-name="P_IO_Meta">IN: Master Dataset | OUT: best.pt + Metrics</text:p>
</draw:custom-shape>
<!-- Connector 7 -> 8 -->
<draw:connector draw:style-name="gr_conn_backward" svg:x1="12.0cm" svg:y1="16.8cm" svg:x2="10.9cm" svg:y2="16.8cm"/>
<!-- Stage 8 -->
<draw:custom-shape draw:style-name="gr_card_s8" svg:x="1.5cm" svg:y="13.0cm" svg:width="9.4cm" svg:height="7.6cm">
<text:p text:style-name="P_Stage_Title_S8">8. Live Inference &amp; Counter</text:p>
<text:p text:style-name="P_Stage_Sub">Real-Time Belt Counting &amp; Benchmark</text:p>
<text:p text:style-name="P_Badge_Row">[ByteTrack] [LineCross y1] [WHEP Stream :8889]</text:p>
<text:p text:style-name="P_Bullet">• ByteTrack tracking &amp; tripwire line cross (y1 edge)</text:p>
<text:p text:style-name="P_Bullet">• Deploy best.pt ke runtime menghitung-karung</text:p>
<text:p text:style-name="P_Bullet">• Stream low-latency WHEP di UI operator (:5000)</text:p>
<text:p text:style-name="P_Bullet">• Headless benchmark otomatis vs Ground Truth Excel</text:p>
<text:p text:style-name="P_IO_Meta">IN: best.pt + Live Video | OUT: Real-Time Counts</text:p>
</draw:custom-shape>
<!-- UPWARD FEEDBACK CONNECTOR: Stage 8 -> Stage 1 -->
<draw:connector draw:style-name="gr_conn_feedback" svg:x1="6.2cm" svg:y1="13.0cm" svg:x2="6.2cm" svg:y2="11.4cm"/>
<!-- FOOTER: Architecture & Data Store Reference Bar -->
<draw:custom-shape draw:style-name="gr_footer" svg:x="1.5cm" svg:y="21.2cm" svg:width="41.0cm" svg:height="3.0cm">
<text:p text:style-name="P_Footer_Heading">Infrastruktur &amp; Storage Bus Terintegrasi</text:p>
<text:p text:style-name="P_Footer_Text">• Storage Hierarchy: data/app.db (SQLite WAL) | data/projects/&lt;slug&gt;/dataset/ (Images, Labels, data.yaml) | data/batches/ (Frames 1.0 FPS) | models/&lt;v&gt;/best.pt</text:p>
<text:p text:style-name="P_Footer_Text">• Port Matrix: Web UI (:8080) | FastAPI REST API (:8000) | Frontend Dev (:5173) | Operator Live Counter (:5000) | CCTV RTSP (:8554) | MediaMTX WHEP (:8889)</text:p>
<text:p text:style-name="P_Footer_Text">• Operational Invariants: 1. Val Split Stabil Permanen (SHA1 Hash) | 2. 1 set_image() Per Image di SAM3 | 3. Video Archive Read-Only | 4. Dynamic GPU Auto-Tuning</text:p>
</draw:custom-shape>
</draw:page>
</office:drawing>
</office:body>
</office:document>