06. Modulplan - MatthiasBurger-Coder/BackgroundRemover GitHub Wiki

Ich würde das Projekt in diese Module schneiden:

6.1 video_io

Verantwortung:

  • Video lesen
  • FPS, Auflösung, Codec-Metadaten
  • Frames streamen
  • optional PNG-Sequenz schreiben

Klassen:

  • VideoReader
  • FrameExtractor
  • PngSequenceWriter

6.2 seed_detection

Verantwortung:

  • Start-ROI bestimmen
  • optional Gesichtserkennung
  • manuelle Box/Punkte übernehmen

Klassen:

  • SeedDetector
  • FaceSeedDetector
  • ManualPromptAdapter
  • PromptNormalizer

6.3 segmentation

Verantwortung:

  • SAM 2.1 initialisieren
  • Prompts auf Keyframe anwenden
  • Video-Propagation

Klassen:

  • SamImageSegmenter
  • SamVideoSegmenter
  • PromptSession
  • SegmentationResult

6.4 motion

Verantwortung:

  • Bewegung zwischen Frames schätzen
  • Maske vorschieben
  • Suchfenster eingrenzen

Klassen:

  • OpticalFlowEstimator
  • MaskWarpService
  • MotionConfidenceEstimator

6.5 mask_refinement

Verantwortung:

  • Löcher schließen
  • kleine Inseln entfernen
  • Flackern reduzieren
  • Kanten beruhigen

Klassen:

  • MaskCleaner
  • TemporalSmoother
  • EdgeRefiner

6.6 alpha_compositing

Verantwortung:

  • RGBA-Frames erzeugen
  • Vordergrund transparent freistellen

Klassen:

  • AlphaComposer
  • RgbaFrameBuilder

6.7 rendering

Verantwortung:

  • Preview-Video erstellen
  • Final Alpha Video exportieren

Klassen:

  • PreviewRenderer
  • AlphaRenderer
  • RenderProfile

6.8 jobs

Verantwortung:

  • Jobstatus
  • Fortschritt
  • Dateipfade
  • Artefakte
  • Wiederaufnahme

Klassen:

  • JobService
  • JobState
  • ArtifactRegistry

6.9 api

FastAPI-Endpunkte:

  • POST /jobs
  • GET /jobs/{id}
  • GET /jobs/{id}/artifacts
  • POST /jobs/{id}/prompt
  • POST /jobs/{id}/preview
  • POST /jobs/{id}/finalize

6.10 ui

Streamlit-Seiten:

  • Upload & Projektstart
  • Keyframe & Prompt
  • Segmentation Debug
  • Preview Render
  • Final Export
  • Performance Dashboard