04. Technische Leitentscheidungen - MatthiasBurger-Coder/BackgroundRemover GitHub Wiki

4.1 PNG-Sequenz nur optional

Die Umwandlung des gesamten Videos in durchnummerierte PNGs ist für Debugging, Reproduzierbarkeit und manuelle Korrektur sehr nützlich. Für den produktiven Pfad sollte sie aber optional sein, weil sonst sehr viel I/O und Speicherlast entsteht.

Darum gibt es zwei Modi:

  • Debug/Research Mode: Video → PNG-Sequenz
  • Fast/Production Mode: direkte Frame-Dekodierung ohne PNG-Zwischenspeicherung

4.2 Gesichtserkennung nicht als Hauptlogik

Die Idee, mit OpenCV Gesichter zu erkennen, ist brauchbar als Seed-Hilfe, aber für „Person freistellen“ zu eng. Ein Gesicht ist nur ein kleiner Teil der Person. Daher gilt:

  • Gesichtserkennung ist optional
  • Besser ist eine Initial-Box / ROI
  • Für schwierige Clips kann die Person manuell auf einem Keyframe angepromptet werden

4.3 SAM 2.1 ist der Hauptmotor

SAM 2 ist nicht nur ein Bildsegmentierer, sondern ausdrücklich auch für Video-Segmentierung gedacht. Genau deshalb sollte nicht jeder Frame isoliert segmentiert werden, sondern die Architektur muss den Video-Predictor / die Propagation als Hauptweg behandeln. ([GitHub][1])

4.4 Motion-Schätzung ist Helfer, nicht Ersatz

Bewegungsinformationen sollen verwendet werden, um:

  • Suchräume zu verkleinern
  • Masken vorzuschieben
  • zeitliche Stabilität zu verbessern
  • Rechenzeit zu sparen

Die Hauptquelle der Maske bleibt aber SAM. Für Bewegungsschätzung ist optischer Fluss in OpenCV ein natürlicher Weg; OpenCV dokumentiert dichten Optical Flow, etwa mit Farneback, als Flussfeld über alle Punkte im Frame. ([OpenCV Dokumentation][3])

4.5 H.264 nur für Preview

H.264 bleibt im Projekt, aber nur als Vorschauformat. Das Final-Ergebnis mit transparentem Hintergrund wird in einem Format mit Alpha exportiert, z. B. ProRes 4444. ([Apple Support][2])