Robuste Szenen-Erkennung (Slice Detection)

Ansatz für eine robuste Szenen-Erkennung (Slice-Detection) auf Grundlage einer Gewichtung verschiedener Verfahren, kaskadierte Kombination.

Definition und Einleitung

Als Szenen-Erkennung wird oftmals die Zerlegung eines Films in zeitliche Einheiten zwischen Filmschnitten bezeichnet. Damit ist diese Bezeichnung  irreführend, da die dramaturgische Einteilung eines Filmprojektes zwischen Szenen und Einstellungen (Shots) unterscheidet und eine Szene dabei für gewöhnlich aus mehreren Einstellungen besteht.

Für die technische Arbeit an Filmen bietet sich jedoch eine klare Einteilung gemäß der Einstellungen zwischen Schnitten an. Aus diesem
Grund verwenden wir die Bezeichnung Slice-Detection. Hier sei technisch ergänzt, dass eine Überblendung zwei Einstellungen visuell verbindet,
wodurch diese technisch zu einer werden.

Die Zerlegung eines Projektes anhand der Schnitte (Slices) ist besonders für alle zeitlichen Verfahren wie DeFlicker oder die automatische Erkennung/Entfernung von Staub und Dreck wichtig. Durch diese Einteilung ist eindeutig, welche Bildinhalte zusammen gehören und für Korrekturen verwendet werden können.

Schwächen bestehender Verfahren

Viele Programme benutzen heute noch Ansätze, die zwar effizient sind, aber auch klare Schwächen im Bezug auf ihre Robustheit aufweisen. Vielfach wird dabei auf Helligkeitsschwankungen gesetzt. Diese werden durch den Mittelwert (Mean) aller Pixel ermittelt und dann von Bild zu Bild verglichen. Bleibt der Wert ähnlich, gehören die Bilder zu einer Einstellung. Weist der “Mean” zwischen zwei Bildern einen größeren Unterschied auf, liegt wahrscheinlich ein Schnitt vor.

kwc_slc1-meanBild 1) Beispiel für Schnitt bei ähnlichem Mittelwert (Dem Film fehlen hier Frames, vgl. Klebestellen)

Die Schwächen sind hierbei recht eindeutig. Zwei unterschiedliche Einstellungen einer Szene (zwei durch einen Schnitt (Slice) getrennte Einstellungen) können leicht sehr ähnliche Mittelwerte aufweisen. Zudem ist das Verfahren bei Material mit starken Helligkeitsschwankungen nicht ideal, da leicht Fehlerkennungen (false positives) vorkommen oder zwei unterschiedliche Bilder mit ähnlichem “Mean” als zu einer Einstellung gehörend übersehen werden.

kwc_slc2-meanBild 2) Falsche Erkennung einer Szene durch Helligkeitsschwankung (z.B. durch unterschiedliche Belichtungen)

Unser Ansatz

Wir haben einen Ansatz entwickelt, welcher die Schwächen eines individuellen Ansatzes durch die Stärken eines anderen ausgleicht und nutzen dazu Analyseansätze, welche in Leistung/Effektivität und Robustheit stark von einander abweichen. Auf diese Weise können präzise Methoden mit höherem Berechnungsaufwand gezielt nur an einer guten Vorauswahl von möglichen Kandidaten ausgeführt werden.

In Tests erwies sich als Arbeitsauflösung eine Bildhöhe von 192px als effektiv. Dies reichte vollkommen aus für alle Verfahren und bringt durch die deutlich reduzierte Datenmenge einen klaren Zuwachs der Gesamtleistung (Performance). In einem ersten Analyseschritt wird sequentiell nach signifikanten Änderungen des Mittelwertes zwischen Bildern gesucht. Dies wird ergänzend auch für den Schwerpunkt (Center of Mass) gemacht. Umgangssprachlich ist dies der Punkt auf den man ein Bild waagerecht über die Spitze eines Bleistiftes legen könnte, sodass es dort ausbalanciert zum Liegen kommt.

Ein klarer Vorteil dieser Methode ist die Robustheit im Bezug auf globale Hellligkeitsschwankungen. Ein Nachteil liegt hingegen in der Fehleranfälligkeit in dunkleren Bildern unter einem Mittelwert von einer Luminanz von 10. In diesen Bereichen wurden Erkennungen durch starke Veränderungen in der Positionen des Schwerpunktes für ungültig erklärt.

kwc_slc1-mean-comBild 3) Mean zeigt keine Abweichung zu Einzelbild 113109. Die Position des Schwerpunktes (CenterOfMass, CM) durchaus.

Angewendet auf ein Beispiel mit messtechnisch starken Helligkeitsveränderungen, zeigt den Unterschied zwischen den Mittelwert- und Schwerpunkt-Methoden.

kwc_slc2-mean-com
Bild 4) Falsche Erkennung durch Mittelwert (Mean). Der Schwerpunkt ist jedoch stabil.

Visuell dargestellt, bewegt sich der Schwerpunkt inhaltsbezogen. Somit kann eine Erkennung basierend auf diesem Kriterium Schwächen einer reinen Erkennung anhand des Mittelwertes ausgleichen. Beide Verfahren liefern eine gute Grundlage an Kanditaten für Schnitte, die in einem nachgeschalteten Prozess validiert werden soll.

moving-comBild 5) Schwerpunkt farbig dargestellt. Abhängig vom Bildinhalt ändert sich die Position.

Testreihen mit Encoder (H.264)

Zusätzlich zu obigem Ansatz bietet sich die Extraktion von Daten eines Encoders an. In Testreihen zwischen H.265 und H.264 hat sich der zuletzt genannte ältere Standard als interessant erwiesen. Die Schnitte benötigt der Algorithmus des Encoders zur sinnvollen Platzierung von GOPs (Gruppen zusammenhängender/ähnlicher Bilder). Über die Kommandozeile lässt sich ein Film leicht mit zwei unterschiedlichen Einstellungen analysieren und diese Angaben als Datei ausgeben.

--pass 1 --keyint 999999 --scenecut 40 --bitrate 500 --stats "file1"

--pass 1 --keyint 999999 --scenecut 100 --bitrate 500 --stats "file2"

Datei 1 ist dabei mit einem kleineren Grenzwert zur Erkennung von Schnitten eher konservativ. Datei 2 hingegen ist sensitiv und wird eher auch fälschlicherweise Schnitte erkennen. Das Ergebnis ist eine große Schnittmenge an erkannten Szenen und eine kleinere Menge an Abweichungen, die vornehmlich der sensitiven Methode zuzuschreiben sind.

Schwächen dieser Methode gibt es in Bereichen sehr schneller Bewegung. Dennoch liefert auch dieser Ansatz eine sinnvolle Grundlage für eine nachgeschaltete Auswertung.

Validierung

An dieser Stelle liegen Kanditaten vor, die von sehr effizienten Verfahren als Schnitte erkannt wurden (vgl. Mean, CenterOfMass & H.264). Es soll nun mit einem abschließenden Schritt eine Gewichtung als Auswertung dieser erkannten Bilder geben. Zu diesem Zweck eignet sich ein Vergleich zwischen jeweils zwei Bildern auf ihre Ähnlichkeit hin. Dies geschieht auf Basis der Erkennung von Bildmerkmalen, welche zwischen zwei aufeinanderfolgenden Bildern einer Sequenz in vielen Punkten ähnlich sind. Die Summe der Merkmale bildet dabei eine Matrix, welche bestimmte Toleranzen, als Transformations-Modell hinterlegt, ihrer Morphologie aufweisen darf. Beispielsweise planar verschoben.

kwc_slice3-feature-matchingBild 5) Zwei Bilder vor/nach Schnitt mit korrespondierenden Merkmalen

In Abhängigkeit der gewählten Transformations-Matrix werden korrespondierende Merkmale in den Bereichen globaler Bewegung gefunden und lokale Bewegungen wie die durch Schauspieler werden nicht einbezogen. Hier werden mögliche Korrespondenz-Kandidaten ausgeschlossen.

Als Verfahren für Testreihen nutzten wir SIFT (scale-invariant feature transform) mit folgenden Einstellungen.

initial_gaussian_blur = 2;
steps_per_scale_octave = 3;
minimum_image_size = 64;
maximum_image_size = 1024;
feature_descriptor_size = 4;
feature_descriptor_orientation_bins = 8;
closest_ratio = 0.92;
maximal_alignment_error = 25;
minimal_inlier_ratio= 0.05;
minimal_number_of_inliers = 7;
expected_transformation = "Rigid";

Grundsätzliches Prozedere

Gegeben ist die Menge aller erkannten Schnitte durch obige Verfahren, die nun zur Validierung stehen. Zu diesem Zweck werden nun jeweils die zwei Einzelbilder vor und nach einem möglichen Schnitt untersucht. Dazu ergeben sich gemäß Bild 5 drei konsekutive Bildpaare.

  • Frame 34921 und Frame 34922 (pair-a)
  • Frame 34922 und Frame 34923 (pair-b)
  • Frame 34923 und Frame 34924 (pair-c)

Nun gibt es folgende Auswertungen (Match (true/false):

  1. matching(“pair-a”) ==  true && matching(“pair-b”) ==  false && match(“pair-c”) ==  true
  2. matching(“pair-a”) == true && matching(“pair-b”) ==  true && match(“pair-c”) ==  true
  3. matching(“pair-a”) ==  true && matching(“pair-b”) ==  false && match(“pair-c”) ==  false
  4. matching(“pair-a”) ==  false && matching(“pair-b”) ==  false && match(“pair-c”) ==  true
  5. Alle anderen Szenarien

Für diese 5 Fälle gibt es dann Kategorien, um eine manuelle Sondierung effizient zu gestalten:

  1. Robust, diese Erkennung ist mit sehr hoher Sicherheit ein Schnitt
  2. Negativ, hier liegt kein Schnitt vor
  3. Wahrscheinlich, diese Erkennung mag ein Schnitt und valide sein, sollte aber überprüft werden
  4. Wahrscheinlich, diese Erkennung mag ein Schnitt und valide sein, sollte aber überprüft werden
  5. Sonderfall/Ausreißer, diese Gruppe ist auch manuell zu sichten

In den hier durchgeführten Testreihen vereinen die Szenarien 1+2 bereits 80 bis 90% aller Kanditaten, wodurch die manuelle Sichtung der übrigen beiden Kategorien (Wahrscheinlich und Sonderfälle) nur wenig Zeit in Anspruch nimmt. Die Dauer der Validierung kann darüber hinaus weiter verkürzt werden, indem nicht alle Kandidaten komplett durch diesen nachgeschaltete Prozess gehen oder indem nicht alle drei Paare für alle Szenarien überprüft werden. Der manuelle Zeitaufwand liegt schlussendlich bei 5-20 Minuten.

Es sind noch weitere Testreihen und Anpassungen sinnvoll, um eine effiziente und gleichzeitig robuste Erkennung zu erhalten, mit der beispielsweise auch verschiedene Schnittfassungen eines Filmes ausgewertet werden können. Ziel ist auch dabei, dem Menschen gezielt zuzuarbeiten.

Quellen:

  1. Centroid Calculation Function
  2. SIFT Patent
  3. Bilder “Kennwort Canary/The Yellow Canary” als Beispielansichten. Alle Rechte obliegen dem rechtmäßigen Eigentümer.