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])