Výrobní smlouva

Od fotografie k samolepce

Deterministická pipeline vybere motivy, vytvoří přesnou masku a odvodí autoritativní CutContour. Každá barva musí mít digitální master a odpovídající print master.

Detektor
detr-resnet-50
Segmenter
sam2.1-hiera-small
Open-world
grounding-dino-tiny

Celkový tok

Pipeline odděluje návrh modelu od rozhodnutí

Modely navrhují kandidáty. Deterministická pravidla musí rozhodnout o výběru, spojení a CutContour pomocí měřitelných prahů.

flowchart TD
  A["Fotografie / ilustrace
od zákazníka"] --> B["Detekce
DETR (COCO třídy)"] B --> C{"Kurace
skóre · pozadí · duplicity · okraje"} C -- "nic nezbylo" --> D["Open-world fallback
grounding-DINO s prompty"] C --> E{"Vztahy
osoby za sebou · držené objekty"} D --> E E --> F["Segmentace SAM 2
výběr varianty masky"] F --> G["Dokompletování tvarů
ploché ilustrace"] G --> H["CutContour
jedna souvislá křivka"] H --> I["Výplň kapes
lem vs. původní motiv"] I --> J["Render každé barvy
digitální a print master
1024 px · 600 dpi"] J --> K["Print master
bleed 1,5 mm · 3 px dovnitř"] J --> L["manifest.json
CutContour · snapshot · SHA-256"]
Pipeline zpracuje každý motiv samostatně. Selhání jednoho motivu nesmí zastavit ostatní.

Čtyři fáze

Každá fáze má jednu odpovědnost

  1. 01

    Detekce a kurace

    DETR navrhne kandidáty z tříd COCO. Kurace musí odmítnout pozadí, okrajové fragmenty a duplicity podle konfidence, plochy, polohy a zajímavosti. Open-world detektor může doplnit kandidáty pouze tehdy, když po kuraci žádný nezůstane.

  2. 02

    Vztahy

    Překrývající se osoby mohou vytvořit jednu společnou samolepku. Držený nebo nošený objekt může vytvořit skupinuperson-with-X. Deduplicace musí odstranit téměř shodné masky a falešné vztahy.

  3. 03

    Segmentace

    SAM 2 vrátí tři varianty masky. Výběr musí zohlednit celý viditelný rozsah motivu u rámu a úplnost připojeného objektu. Dokompletování může u ploché ilustrace přidat souvislou část, kterou detektor podvybral.

  4. 04

    Řez a render

    Pipeline odvodí CutContour z přesné masky. Renderer musí pro každou barvu vytvořit digitální master a print master na plném plátně 1024 × 1024 px při 600 dpi. Print master musí přidat bleed 1,5 mm vně CutContour a zachovat stejnou barvu nejméně 3 px dovnitř.

Řezatelnost

CutContour musí být jedna řezatelná křivka

Přesná maska určuje obsah samolepky. CutContour používá konzervativnější tvar v milimetrech cílového tisku. Křivka nesmí obsahovat díry. Prvek musí mít nejméně 3,5 mm a poloměr křivosti nejméně 1 mm.

flowchart TD
  A["Vyčištěná maska ze SAM"] --> B["1 · Zaplnit všechny vnitřní díry"]
  B --> C{"2 · Více ploch?"}
  C -- "mezera ≤ 3,5 mm" --> D["Přemostit můstkem"]
  C -- "vzdálený satelit" --> E["Zahodit a zalogovat"]
  C -- "jedna plocha" --> F
  D --> F["3 · Uzavřít konkávy
closing v mm jednotkách"] E --> F F --> G["4 · Vyhladit obrys
rám fotky zůstává rovný"] G --> H{"5 · Téměř kruh?"} H -- "ano" --> I["Přichytit k elipse
nafouknuté přes motiv"] H -- "ne" --> J I --> J{"6 · Křivost v normě?"} J -- "ano" --> K["Hotový obal"] J -- "ne" --> L["Fallback žebřík
větší closing → konvexní obal"] L --> K
Nevyhovující křivost musí aktivovat konzervativnější tvar.

Vzhled

Kapsa použije motiv nebo barvu lemu

Vyplnění konkávy vytvoří plochu mezi motivem a CutContour. Pipeline smí použít zdrojové pixely jen tehdy, když obsah patří k motivu. Při nejistotě musí použít barvu lemu.

flowchart TD
  P["Kapsa obalu
(plocha mezi motivem a řezem)"] --> Q{"Uzavřená díra,
nebo hluboká kapsa?"} Q -- "mělký záliv" --> LEM["Barva lemu"] Q -- "ano" --> R{"Patří obsah k motivu?"} R -- "exaktně ploché pozadí
a světlý obsah" --> FILL["Původní motiv
(zdrojové pixely)"] R -- "uzavřená díra
a světlý obsah" --> FILL R -- "téměř bílé světlo
(obloha, papír)" --> FILL R -- "odstín pokračuje
paletu motivu" --> FILL R -- "tmavý či cizí obsah" --> LEM
Při nejistotě musí kapsa použít barvu lemu.