DE102020129800A1 - Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen - Google Patents

Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen Download PDF

Info

Publication number
DE102020129800A1
DE102020129800A1 DE102020129800.5A DE102020129800A DE102020129800A1 DE 102020129800 A1 DE102020129800 A1 DE 102020129800A1 DE 102020129800 A DE102020129800 A DE 102020129800A DE 102020129800 A1 DE102020129800 A1 DE 102020129800A1
Authority
DE
Germany
Prior art keywords
volume
feature
segmentation
video frame
convolutional
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102020129800.5A
Other languages
English (en)
Inventor
Anthony Rhodes
Manan Goel
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Intel Corp
Original Assignee
Intel Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Intel Corp filed Critical Intel Corp
Publication of DE102020129800A1 publication Critical patent/DE102020129800A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/24Classification techniques
    • G06F18/241Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
    • G06F18/2413Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on distances to training or reference patterns
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T3/00Geometric image transformations in the plane of the image
    • G06T3/40Scaling of whole images or parts thereof, e.g. expanding or contracting
    • G06T3/4046Scaling of whole images or parts thereof, e.g. expanding or contracting using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/11Region-based segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/174Segmentation; Edge detection involving the use of two or more images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/194Segmentation; Edge detection involving foreground-background segmentation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • G06T9/002Image coding using neural networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/20Image preprocessing
    • G06V10/26Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/764Arrangements for image or video recognition or understanding using pattern recognition or machine learning using classification, e.g. of video objects
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/46Extracting features or characteristics from the video content, e.g. video fingerprints, representative shots or key frames
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/40Scenes; Scene-specific elements in video content
    • G06V20/49Segmenting video sequences, i.e. computational techniques such as parsing or cutting the sequence, low-level clustering or determining units such as shots or scenes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/10Image acquisition modality
    • G06T2207/10016Video; Image sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20081Training; Learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20084Artificial neural networks [ANN]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20092Interactive image processing based on input by user
    • G06T2207/20104Interactive definition of region of interest [ROI]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2207/00Indexing scheme for image analysis or image enhancement
    • G06T2207/20Special algorithmic details
    • G06T2207/20212Image combination
    • G06T2207/20221Image fusion; Image merging

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Multimedia (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Data Mining & Analysis (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Bioinformatics & Cheminformatics (AREA)
  • Databases & Information Systems (AREA)
  • Evolutionary Biology (AREA)
  • Medical Informatics (AREA)
  • Bioinformatics & Computational Biology (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Physics (AREA)
  • Image Analysis (AREA)

Abstract

Es werden Techniken in Verbindung mit einem automatischen Segmentieren von Videoframes in pro Pixel wiedergabegetreue Bereiche mit einem interessierenden Objekt und Hintergrundbereiche besprochen. Derartige Techniken enthalten ein Anwenden von Tessellation auf einen Videoframe, um Merkmalsframes zu generieren, die dem Videoframe entsprechen, und Anwenden eines Segmentierungsnetzes, das kontextsensitive Skip-Verbindungen implementiert, auf ein Eingabevolumen, das die Merkmalsframes enthält, und ein Kontextmerkmalsvolumen, das dem Videoframe entspricht, um eine Segmentierung für den Videoframe zu generieren.

Description

  • STAND DER TECHNIK
  • In einer interaktiven Videosegmentierung wird eine Benutzereingabe empfangen, die über Benutzerklicks auf ein Bild ein Vordergrundobjekt oder interessierendes Objekt (z. B. positive Klicks) und einen Hintergrund (z. B. negative Klicks) des Bilds anzeigt. Die Benutzereingabe wird dann eingesetzt, um automatisch im gesamten Videoclip eine Segmentierung des interessierenden Objekts auf Pixelebene vom Hintergrund zu rendern. Eine derartige interaktive Videosegmentierung kann bei Rotoskopie (z. B. dem Prozess des Übertragens eines Bilds in eine andere Videosequenz) oder anderen Anwendungen verwendet werden. Insbesondere sind die resultierenden Segmentierungsdaten in einer Vielfalt von Kontexten, wie zum Beispiel Anwendungen für visuelle Effekte, nützlich. Eine automatische Videosegmentierung kann zum Beispiel vorteilhafterweise arbeitsintensive und teure Rotoskopie-Techniken ersetzen, die in Medien, Film und verwandten Branchen verwendet werden.
  • Aktuelle semantische Segmentierungstechniken enthalten die Verwendung von manuell erstellten Merkmalen und Distanzmetriken sowie die Verwendung von faltenden neuronalen Netzen, um ein Standbild beispielsweise in Vordergrund- und Hintergrundbereiche zu segmentieren. Es besteht jedoch andauerndes Interesse in verbesserter High-Fidelity-Segmentierung. Die vorliegenden Verbesserungen wurden in Bezug auf diese und andere Überlegungen benötigt. Derartige Verbesserungen können mit wachsendem Wunsch, Segmentierung mit hoher Wiedergabetreue in Video anzuwenden, wesentlich werden.
  • Figurenliste
  • Das hierin beschriebene Material wird in den begleitenden Figuren beispielhaft und nicht einschränkend veranschaulicht. Zur Einfachheit und Klarheit der Veranschaulichung sind die in den Figuren veranschaulichten Elemente nicht unbedingt maßstabgerecht gezeichnet. Zum Beispiel können die Dimensionen mancher Elemente relativ zu anderen Elementen zur Klarheit übertrieben werden. Ferner, wo als angebracht erachtet, wurden Referenzzeichen unter den Figuren wiederholt, um entsprechende oder analoge Elemente anzuzeigen. In den Figuren:
    • 1 veranschaulicht ein System zur Segmentierung eines Videoframes in einen oder mehrere Segmentierungsframes;
    • 2 veranschaulicht beispielhafte tiefgehende faltende Tessellationstechniken, die auf einen aktuellen Videoframe angewandt werden, um ein Merkmalsvolumen zu generieren;
    • 3 veranschaulicht ein beispielhaftes Volumen von Faltungsnetzmerkmalen für ein beispielhaftes Eingabebild, die aus Faltungsschichten eines faltenden neuronalen Objektklassifizierungsnetzes extrahiert wurden, wie es auf das Eingabebild angewandt wurde;
    • 4 veranschaulicht ein beispielhaftes Bild;
    • 5 veranschaulicht eine beispielhafte Merkmalskarte, die aus dem beispielhaften Bild ohne Tessellation erhalten wurde;
    • 6 veranschaulicht eine beispielhafte Merkmalskarte, die aus dem beispielhaften Bild mit Tessellation erhalten wurde;
    • 7 veranschaulicht eine beispielhafte Komprimierung eines Merkmalsvolumens, um Merkmalsframes für eine Segmentierungsnetzeingabe zu generieren;
    • 8 veranschaulicht ein beispielhaftes Segmentierungsnetz mit kontextsensitiven Skip-Verbindungen;
    • 9 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Generieren einer Segmentierung aus Eingabevideo und Benutzer-Objekt- und Hintergrundauswahlen veranschaulicht;
    • 10 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Training eines Segmentierungsnetzes veranschaulicht;
    • 11 veranschaulicht einen beispielhaften Eingabevideoframe zur Segmentierung und eine entsprechende resultierende Segmentierung;
    • 12 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bereitstellen einer Segmentierung in Video unter Verwendung eines Segmentierungsnetzes veranschaulicht, das kontextsensitive Verbindungen einsetzt;
    • 13 ist ein Ablaufdiagramm, das einen beispielhaften Prozess zum Bereitstellen einer Segmentierung in Video unter Verwendung von Tessellationstechniken veranschaulicht;
    • 14 ist ein veranschaulichendes Diagramm eines beispielhaften Systems zum Bereitstellen einer Segmentierung in Video;
    • 15 ist ein veranschaulichendes Diagramm eines beispielhaften Systems; und
    • 16 veranschaulicht eine beispielhafte Vorrichtung, die alle nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet sind.
  • AUSFÜHRLICHE BESCHREIBUNG
  • Eine oder mehrere Ausführungsformen oder Implementierungen werden nun unter Bezugnahme auf die beigefügten Figuren beschrieben. Während spezifische Konfigurationen und Anordnungen besprochen werden, sollte klar sein, dass dies nur für veranschaulichende Zwecke erfolgt. Fachleute auf dem relevanten Gebiet werden erkennen, dass andere Konfigurationen und Anordnungen eingesetzt werden können, ohne vom Geist und Umfang der Beschreibung abzuweichen. Es wird Fachleuten auf dem relevanten Gebiet klar sein, dass hierin beschriebene Techniken und/oder Anordnungen auch in einer Vielfalt von anderen Systemen und Anwendungen als den hierin beschriebenen eingesetzt werden können.
  • Während die folgende Beschreibung verschiedene Implementierungen darlegt, die in Architekturen wie beispielsweise Ein-Chip-Systemarchitekturen (SoC-Architekturen) offenbart werden können, ist bzw. sind eine Implementierung der hierin beschriebenen Techniken und/oder Anordnungen nicht auf bestimmte Architekturen und/oder Rechensysteme beschränkt und können durch eine beliebige Architektur und/oder ein beliebiges Rechensystem für ähnliche Zwecke implementiert werden. Verschiedene Architekturen, die beispielsweise mehrere integrierte Schaltkreischips (IC-Chips) und/oder Pakete einsetzen, und/oder verschiedene Rechenvorrichtungen und/oder elektronische Endverbrauchervorrichtungen (CE-Vorrichtungen) wie Set-Top-Boxen, Smartphones usw. können die hierin beschriebenen Techniken und/oder Anordnungen implementieren. Während ferner die folgende Beschreibung zahlreiche spezifische Details, wie Logikimplementierungen, Typen und Zwischenbeziehungen von Systemkomponenten, Logikpartitionierung/Integrationsoptionen usw. darlegt, kann der beanspruchte Gegenstand ohne derartige spezifische Details umgesetzt werden. In anderen Fällen wird irgendein Material, wie beispielsweise Steuerstrukturen und vollständige Softwareanweisungsfolgen, möglicherweise nicht im Detail gezeigt, um das hierin offenbarte Material nicht zu verschleiern.
  • Das hierin offenbarte Material kann in Hardware, Firmware, Software oder einer beliebigen Kombination daraus implementiert werden. Das hierin offenbarte Material kann auch als Anweisungen implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind und von einem oder mehreren Prozessoren gelesen und ausgeführt werden können. Ein maschinenlesbares Medium kann ein beliebiges Medium und/oder einen beliebigen Mechanismus zum Speichern oder Übertragen von Informationen in einer von einer Maschine (z. B. einer Rechenvorrichtung) lesbaren Form enthalten. Ein maschinenlesbares Medium kann zum Beispiel schreibgeschützten Arbeitsspeicher (ROM); Arbeitsspeicher mit wahlfreiem Zugriff (RAM); magnetische Plattenspeichermedien; optische Speichermedien; Flashspeichervorrichtungen; elektrische, optische, akustische oder andere Formen von verbreiteten Signalen (z. B. Trägerwellen, Infrarotsignale, Digitalsignale usw.) und andere enthalten.
  • Bezugnahmen in der Beschreibung auf „eine einzige Implementierung“, „eine Implementierung“, „ein Implementierungsbeispiel“ usw. zeigen an, dass die beschriebene Implementierung ein bestimmtes Merkmal, eine bestimmte Struktur oder Eigenschaft enthalten kann, aber jede Ausführungsform muss nicht notwendigerweise das bestimmte Merkmal, die bestimmte Struktur oder Eigenschaft enthalten. Darüber hinaus beziehen sich derartige Formulierungen nicht notwendigerweise auf die gleiche Implementierung. Ferner, wenn ein bestimmtes Merkmal, Struktur oder Eigenschaft in Verbindung mit einer Ausführungsform beschrieben wird, wird vorgebracht, dass es im Wissen von Fachleuten liegt, ein solches Merkmal, eine solche Struktur oder Eigenschaft in Verbindung mit anderen Implementierungen zu erwirken, egal, ob es bzw. sie hierin explizit beschrieben wird oder nicht.
  • Verfahren, Vorrichtungen, Einrichtungen, Rechenplattformen und Artikel sind hierin in Bezug auf eine semantische Segmentierung mit hoher Wiedergabetreue in Video unter Verwendung von tiefen Faltungstessellationen und kontextsensitiven Skip-Verbindungen beschrieben.
  • Wie oben beschrieben kann es vorteilhaft sein, jeden Videoframe einer Videosequenz beispielsweise in Vordergrund- und Hintergrundbereiche semantisch zu segmentieren. Es ist anzumerken, dass eine interaktive Videosegmentierung Frames sein kann, als das Problem zum Anwenden einer Benutzereingabe (z. B. positive und negative Klicks und/oder ungefähre Segmentierungen), um automatisch eine Segmentierung eines interessierenden Objekts auf Pixelebene in einem gesamten Videoclip zu rendern. Beispielsweise kann ein Benutzer Klicks auf einem ersten Videoframe einer Sequenz liefern, um Positionen im Frame anzuzeigen, die ein interessierendes Objekt (z. B. positive Klicks) und Hintergrundpositionen oder Positionen enthalten, die das interessierende Objekt nicht enthalten (z. B. negative Klicks). Unter Verwendung derartiger vom Benutzer bereitgestellter Informationen ist es wünschenswert, jeden Videoframe in einen Bereich mit dem interessierenden Objekt und einen anderen Bereich mit dem Hintergrund zu segmentieren. Genaue Segmentierungsdaten mit hoher Wiedergabetreue sind in einer Vielfalt von Kontexten für visuelle Effekte wünschenswert. Derartige Segmentierungsdaten können beliebige pixelweise Informationen (oder dichte Bereichsinformationen, wie 2×2-Pixelbereiche) enthalten, die anzeigen, ob sich das Pixel im interessierenden Objekt oder dem Hintergrund befindet. Derartige Daten können binär sein oder können eine Likelihood oder Wahrscheinlichkeit anzeigen (z. B. von 0 bis inklusive 1), dass sich das Pixel im interessierenden Objekt befindet. Derartige Wahrscheinlichkeitsdaten können verwendet werden, um zum Beispiel unter Verwendung eines Schwellenwerts von 0,5 eine binäre Maske zu generieren. Wie hierin verwendet, kann der Begriff Segmentierung oder Segmentierungsframe eine beliebige Datenstruktur enthalten, die derartige pixelweise Informationen oder dichte Bereichsinformationen bereitstellt.
  • Wie hierin besprochen, wird ein Segmentierungsnetz (ein faltendes neuronales Segmentierungsnetz (Segmentierungs-CNN)) verwendet, um eine oder mehrere Segmentierungen für einen aktuellen Videoframe auf Grundlage einer Anwendung des Segmentierungsnetzes auf ein Eingabevolumen zu generieren. Das Eingabevolumen enthält eine Anzahl von Frames. Wie hierin verwendet, bezeichnet der Begriff Frame im Kontext einer CNN-Eingabe eine 2D-Datenstruktur mit einem Merkmalswert für jedes Pixel des Frames. Derartige Merkmalswerte enthalten beispielsweise für einen Videoframe Rotwerte, Grünwerte und Blauwerte (z. B. einen Eingabeframe für jeden der RGB-Farbwerte), einen Indikator auf einen positiven Benutzerklick oder einen vorhergesagten positiven Benutzerklick (z. B. einen Wert von 1 an Positionen eines positiven Benutzerklicks und Werte von 0 anderswo), Werte, die auf eine Distanz vom Pixel zu einem positiven oder negativen Benutzerklick hinweisen, Werte, die auf Bewegung hinweisen (z. B. Geschwindigkeitsbewegungsvektoren pro Pixel), Merkmalswerte, die aus Schichten eines Objektklassifizierungs-CNNs komprimiert sind, und so weiter. Derartige Datenstrukturen werden hierin weiter besprochen.
  • In einigen Ausführungsformen enthält das Segmentierungsnetz-Eingabevolumen ein Kontextmerkmalsvolumen (oder einfach ein Merkmalsvolumen) und eine Anzahl von Merkmalsframes oder tiefen Merkmalsframes. Der Begriff Kontextmerkmalsvolumen bezeichnet Merkmale, die aus dem aktuellen Videoframe stammen und zu diesem Kontext bereitstellen. Beispielsweise kann das Kontextmerkmalsvolumen eines oder mehrere von einem aktuellen Videoframe, einem zeitlich vorhergehenden Videoframe, einem Benutzereingabeframe, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe enthält, einem Benutzereingabeframe, der einen oder mehrere Indikatoren auf einen Hintergrund des aktuellen Videoframes enthält, einem positiven Distanztransformationsframe (der Informationen in Bezug auf eine Nähe von Pixeln zu Indikatoren auf ein interessierendes Objekt enthält), einem negativen Distanztransformationsframe (der Informationen in Bezug auf eine Nähe von Pixeln zu Indikatoren auf einen Hintergrund enthält), einem Bewegungsframe, der Bewegungsindikatoren enthält, die auf eine Bewegung vom vorhergehenden Videoframe zum aktuellen Videoframe hinweisen, enthalten.
  • Die Merkmalsframes enthalten Merkmale, die aus Merkmalsschichten eines faltenden neuronalen Objektklassifizierungsnetzes komprimiert sind. Das heißt, das faltende neuronale Objektklassifizierungsnetz wird auf den aktuellen Videoframe angewandt und es werden für einige oder alle der Faltungsschichten des faltenden neuronalen Objektklassifizierungsnetzes Merkmalswerte erhalten. Die Merkmalswerte können zum Beispiel die gleiche Auflösung wie der aktuelle Videoframe aufweisen, und eine Anzahl von Merkmalswerten wird für jedes Pixel des aktuellen Videoframes erhalten. Insbesondere kann eine Anzahl von Merkmalswerten für jedes Pixel an jeder Faltungsschicht erhalten werden, abhängig von der Tiefe des Ausgabevolumens aus der Faltungsschicht. Für eine Faltungsschicht mit einer Tiefe von 75 werden zum Beispiel 75 Merkmalswerte für jedes Pixel erhalten. Dadurch können Hunderte oder gar über ein Tausend (z. B. 1.500) Merkmalswerte für jedes Pixel erhalten werden. Die Merkmalswerte für jedes Pixel können als eine Hyperkolumne gekennzeichnet sein und alle der Hyperkolumnen gemeinsam können als ein faltendes neuronales Objektklassifizierungsnetz, ein Ausgabevolumen, ein Merkmalsvolumen usw. gekennzeichnet sein. Das vollständige Merkmalsvolumen kann dann unter Verwendung einer Tucker-Zerlegung komprimiert werden, um die Merkmalsframes zu generieren, die wie besprochen aus den Merkmalsschichten des faltenden neuronalen Objektklassifizierungsnetzes komprimiert sind.
  • Das Kontextmerkmalsvolumen (z. B. eine Anzahl von Kontextframes) wird dann mit den tiefen Merkmalsframes kombiniert (z. B. verkettet) und dem Segmentierungsnetz als Eingabe bereitgestellt. In einigen Ausführungsformen werden die tiefen Merkmalsframes unter Verwendung von Tessellationstechniken generiert. Derartige Tessellationstechniken enthalten eine Größenänderung (z. B. Hochrechnen) des aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe unter Verwendung von Interpolationstechniken, sodass der aktuelle Videoframe mit geänderter Größe ein Raster von Teilbildern enthält, die jeweils Dimensionen aufweisen, die den Dimensionen entsprechen, die verwendet werden, um das faltende neuronale Objektklassifizierungsnetz zu trainieren. Falls das faltende neuronale Objektklassifizierungsnetz beispielsweise an 224×224-Bildern trainiert wird, wird der aktuelle Videoframe mit geänderter Größe hochskaliert, sodass er ein Raster von 224×224-Teilbildern enthält, sodass die Teilbilder die Gesamtheit des aktuellen Videoframes mit geänderter Größe füllen. Die Teilbilder werden dann vom faltenden neuronalen Objektklassifizierungsnetz verarbeitet, optional parallel, und für jedes Pixel wird eine Anzahl von Merkmalswerten (z. B. eine Hyperkolumne) erhalten. Die Hyperkolumnen können dann zusammengeführt werden, um ein Merkmalsvolumen mit einer Auflösung des aktuellen Videoframes mit geänderter Größe und einer Tiefe der Anzahl der Merkmalswerte zu bilden. Wie hierin verwendet, bezeichnet der Begriff Auflösung in Bezug auf einen Frame oder ein Volumen die Höhe und Breite der Frames in der räumlichen oder Pixeldomäne, während die Tiefe einen Wert oder ein Merkmal für jedes Pixel anzeigt. Beispielsweise weist ein RGB-Frame mit 1920x1080 eine Auflösung von 1920x1080 und eine Tiefe von 3 (jeweils eine für R, G und B) auf, während ein Merkmalsvolumen für ein Teilbild mit 224×224 Pixeln und mit einem Gesamtvolumen von 224×224×75 eine Auflösung von 224×224 (der Höhe und Breite von im Pixelraum oder in der Domäne entsprechend) und eine Tiefe von 75 Merkmalen aufweist. Insbesondere würde das Eingabeteilbild mit einem Volumen von 224x224x3 eine Auflösung von 224×224 (z. B. Pixelauflösung) und eine Tiefe von 3 (jeweils eine für R, G und B) aufweisen.
  • Zur Besprechung der zusammengeführten Hyperkolumnen zurückkehrend, kann die Größe des resultierenden Merkmalsvolumens mit einer Auflösung des aktuellen Videoframes mit geänderter Größe dann auf die Auflösung des aktuellen Videoframes geändert (oder abwärtsskaliert) werden. Das abwärtsskalierte Merkmalsvolumen kann dann wie besprochen komprimiert werden, um Merkmalsframes zu generieren. Insbesondere kann eine Komprimierung oder Zerlegung des abwärtsskalierten Merkmalsvolumens die Anzahl der Merkmale für eine verbesserte Recheneffizienz stark reduzieren, während wichtige Merkmalsinformationen zur Segmentierung behalten werden.
  • Das kombinierte Kontextmerkmalsvolumen und tiefe Merkmalsframes (egal, ob sie unter Verwendung von Tessellation generiert wurden oder nicht) können als ein Segmentierungsnetz-Eingabevolumen gekennzeichnet werden. Das vortrainierte Segmentierungsnetz wird dann auf das Segmentierungsnetz-Eingabevolumen angewandt, um eine oder mehrere Segmentierungen für den aktuellen Frame zu generieren. In einigen Ausführungsformen enthält das Segmentierungsnetz kontextsensitive Skip-Verbindungen. Wie hierin verwendet, bezeichnet der Begriff kontextsensitive Skip-Verbindung eine Skip-Verbindung, die eine Ausgabe von einer vorhergehenden Faltungsschicht mit dem vorher besprochenen Kontextmerkmalsvolumen kombiniert, um ein Faltungsschicht-Eingabevolumen für eine unmittelbar nächste Faltungsschicht des Segmentierungsnetzes zu generieren. Insbesondere kombiniert die Skip-Verbindung die Ausgabe von der vorhergehenden Faltungsschicht mit einer anderen Ausgabe von einer anderen vorhergehenden Faltungsschicht nicht. Stattdessen stellen die hierin besprochenen kontextsensitiven Skip-Verbindungen das Kontextmerkmalsvolumen (z. B. aktueller Videoframe, vorhergehender Videoframe usw.) als Eingabe in einige oder alle der Faltungsschichten des Segmentierungsnetzes bereit. Dadurch weisen einige oder alle der Faltungsschichten vollständige Kontextinformationen (z. B. ohne Verlust durch eine Anwendung von beliebigen vorhergehenden Faltungsschichten des Netzes) für eine verbesserte Segmentierungswiedergabetreue auf. In einigen Ausführungsformen können sowohl Tessellationstechniken als auch kontextsensitive Skip-Verbindungen angewandt werden.
  • Die hierin besprochenen Techniken stellen architektonische Verbesserungen an Techniken für tiefgehendes Lernen für das Problem der interaktiven Objektsegmentierung in Videodaten bereit. Derartige Techniken können einen durchgehenden Arbeitsablauf für tiefgehendes Lernen mit hoher Wiedergabetreue unter Verwendung eines dichten faltenden Netzes, dichte hochauflösende Bildmerkmale bereitstellen, die mit einer faltenden Tessellationsprozedur und kontextsensitiven Skip-Verbindungen gerendert werden. Derartige Techniken bieten eine verbesserte Segmentierung mit hoher Wiedergabetreue zur Verwendung in einer Vielfalt von Kontexten.
  • 1 veranschaulicht ein System 100 zur Segmentierung eines Videoframes 111 in einen oder mehrere Segmentierungsframes 151, die nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet sind. Insbesondere kann eine Eingabe eines faltenden neuronalen Netzes (CNN) oder eine Segmentierungsnetzeingabe 121 in ein Segmentierungsnetz 101 eingegeben werden, um einen oder mehrere Segmentierungsframes 151 des aktuellen Videoframes 111 zu erhalten. Wie hierin verwendet, bezeichnet der Begriff Segmentierungsnetz oder Segmentierungs-CNN auf ein CNN, das auf Grundlage einer Segmentierungseingabe eine einzelne Segmentierung oder mehrere Segmentierungskandidaten generiert, sodass jede Segmentierung eine Wahrscheinlichkeit anzeigt, dass sich jedes Pixel davon in einem interessierenden Objekt befindet. Die Wahrscheinlichkeit kann binär (z. B. 1 für im interessierenden Objekt oder 0 für außerhalb des interessierenden Objekts) oder auf einen bestimmten Bereich skaliert (z. B. von 0 bis inklusive 1) sein.
  • Wie in 1 gezeigt, enthält das System 100 ein Segmentierungsnetz 101, ein Merkmalsextrahierungsmodul 102 und ein Merkmalskomprimierungsmodul 103. Das System 100 kann einen Prozessor, einen Arbeitsspeicher usw. enthalten, die über eine beliebige Vorrichtung mit geeignetem Formfaktor implementiert sein können, wie hierin besprochen. Das System 100 kann zum Beispiel als ein Personalcomputer, ein Laptop-Computer, ein Tablet, ein Phablet, ein Smartphone, eine Digitalkamera, eine Spielekonsole, eine tragbare Vorrichtung, eine Anzeigevorrichtung, eine Multifunktionsvorrichtung, eine Dualfunktionsvorrichtung oder dergleichen implementiert sein. Beispielsweise kann das System 100 eine Segmentierung wie hierin besprochen durchführen. In einigen Ausführungsformen enthält das System 100 ferner eine oder mehrere Bilderfassungsvorrichtungen, um Eingabevideo 110 zu erfassen, obwohl ein derartiges Eingabevideo von einer anderen Vorrichtung empfangen werden kann.
  • Eine Segmentierungsnetzeingabe 121 enthält ein Kontextmerkmalsvolumen 130 und Merkmalsframes 119 (Φt). Das Kontextmerkmalsvolumen 130 und die Merkmalsframes 119 können zum Beispiel verkettet werden, um die Segmentierungsnetzeingabe 121 zu bilden. Insbesondere kann das Kontextmerkmalsvolumen 130 einen Stapel von Frames enthalten und mehrere Merkmalsframes 119 können gleichermaßen als ein Volumen gekennzeichnet sein. Ferner können die Frames des Kontextmerkmalsvolumens 130 und jeder der Merkmalsframes 119 die gleiche Auflösung aufweisen (z. B. die des aktuellen Videoframes 111).
  • Wie gezeigt kann das Kontextmerkmalsvolumen 130 den aktuellen Videoframe 111 (Xt) des Eingabevideos 110, einen vorhergehenden Videoframe 112 (Xt-1) des Eingabevideos 110, einen Bewegungsframe 113 (MVt), einen vorhergehenden Segmentierungsframe 114 (Mt-1), einen Indikatorframe für ein interessierendes Objekt 115 (oder positiven Indikatorframe) (Sp), einen Hintergrundindikatorframe 117 (oder negativen Indikatorframe) (Sn), einen positiven Distanztransformationsframe 116 (oder Indikatorframe für die Distanz zum interessierenden Objekt) (Tp) und einen negativen Distanztransformationsframe 118 (oder Indikatorframe für die Distanz zum Hintergrund) (Tn) enthalten. Jeder von derartigen Frames des Kontextmerkmalsvolumens 130 wird hierin unten besprochen. Ferner enthalten Merkmalsframes 119 Merkmale, die aus Schichten eines faltenden neuronalen Objektklassifizierungsnetzes, wie es auf den aktuellen Videoframe angewandt wurde, komprimiert sind, wie hierin unten weiter besprochen.
  • Das System 100 empfängt ein Eingabevideo 110 und Benutzerklickindikatoren 120. Das Eingabevideo 110 kann beliebige geeignete Videoframes, Videobilder, Sequenzen von Videoframes, eine Gruppe von Bildern, Gruppen von Bildern, Videodaten oder dergleichen in einer beliebigen geeigneten Auflösung enthalten. Beispielsweise kann das Video Video Graphics Array (VGA), High Definition (HD), Full-HD (z. B. 1080p), Video mit 2K-Auflösung, Video mit 4K-Auflösung, Video mit 8K-Auflösung oder dergleichen sein, und das Video kann eine beliebige Anzahl von Videoframes, Sequenzen von Videoframes, Bilder, Gruppen von Bildern oder dergleichen enthalten. In einigen Ausführungsformen wird die Auflösung des Eingabevideos 110 vor der CNN-Verarbeitung verringert. Hierin besprochene Techniken werden der Klarheit der Darstellung halber in Bezug auf Videoframes besprochen. Derartige Frames können jedoch als Bilder, Videobilder, Sequenzen von Bildern, Videosequenzen usw. gekennzeichnet sein. In einigen Ausführungsformen weist das Eingabebild drei Kanäle auf, wie RGB-Kanäle, obwohl andere Formate wie YUV, YCbCR usw. verwendet werden können. Insbesondere, wie hierin verwendet, kann ein (aktueller oder vorhergehender) Videoframe, falls Teil des Kontextmerkmalsvolumens 130, einen einzigen Frame (z. B. einen Luma-Frame) oder mehrere Frames (z. B. einen Frame für den R-Kanal, einen Frame für den G-Kanal und einen Frame für den B-Kanal) enthalten. Der vorhergehende Videoframe 112 kann ein beliebiger zeitlich vorheriger oder vorhergehender (in Erfassungs- und Anzeigereihenfolge) in Bezug auf den aktuellen Videoframe 111 sein, wie ein unmittelbar zeitlich vorheriger Frame, sodass es keine dazwischenliegenden Frames zwischen dem vorhergehenden Videoframe 112 und dem aktuellen Videoframe 111 gibt.
  • Wie besprochen empfängt das System 100 auch Benutzerklickindikatoren 120, die auf Positionen innerhalb oder inklusive eines interessierenden Objekts (z. B. innerhalb der Giraffe), die als positive Klicks gekennzeichnet sind, und Positionen außerhalb oder exklusive des interessierenden Objekts hinweisen (z. B. außerhalb der Giraffe). Wie hierin verwendet, bezeichnet der Begriff interessierendes Objekt auf ein beliebiges Objekt innerhalb eines Bilds, das ein Benutzer vom Rest (z. B. dem Hintergrund) des Bilds segmentieren will. Oft ist ein interessierendes Objekt dahingehend kontinuierlich, dass es eine einzige Begrenzung aufweist und im Innern der Begrenzung ein ununterbrochenes Ganzes bildet. Das interessierende Objekt kann ein beliebiges Objekt, eine beliebige Person, ein beliebiges Tier usw. sein. Die Benutzereingabe kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken empfangen werden. In einigen Ausführungsformen können Positionen in und außerhalb des interessierenden Objekts anstatt von derartigen Benutzerklickindikatoren 120 unter Verwendung eines Objekterkennungs-CNN oder anderer maschineller Lerntechniken erhalten werden. Ferner, wie besprochen, können Benutzerklickindikatoren 120 nur für einen ersten Videoframe des Eingabevideos 110 empfangen werden. Für nachfolgende Frames des Eingabevideos 110 können positive Positionen, wie eine positive Position 122 (z. B. eine Position eines positiven Indikators, der auf eine Position innerhalb des interessierenden Objekts hinweist) innerhalb eines Indikatorframes für ein interessierendes Objekt 115 von den anfänglichen Benutzerklickpositionen projiziert werden. Beispielsweise kann die positive Position 122 für den Indikatorframe für ein interessierendes Objekt 115 aus einer positiven Anfangsposition in einem anfänglichen Frame für das interessierende Objekt so projiziert werden, dass die positive Anfangsposition vom Benutzer bereitgestellt wurde. In einer Ausführungsform enthält ein Projizieren einer positiven (oder negativen) Position ein Verschieben der Position in Übereinstimmung mit einem Bewegungsvektor (der eine Geschwindigkeit pro Pixel anzeigt) des Bewegungsframes 113, der der Position entspricht (z. B. einem gemeinsam angeordneten Bewegungsvektor, einem Durchschnitt von Bewegungsvektoren in einer Nähe um die Position herum usw.).
  • Gleichermaßen kann eine negative Position 124 (z. B. eine Position eines negativen Indikators, der auf eine Position ohne das interessierende Objekt hinweist) innerhalb eines Hintergrundindikatorframes 117 aus den anfänglichen Benutzerklickpositionen projiziert werden. Beispielsweise kann die negative Position 124 für den Hintergrundindikatorframe 117 aus einer negativen Anfangsposition in einem anfänglichen Hintergrundframe so projiziert werden, dass die negative Anfangsposition vom Benutzer bereitgestellt wurde. Obwohl in Bezug auf eine einzige positive Position 122 und eine einzige negative Position 124 veranschaulicht, kann eine beliebige Anzahl von positiven und negativen Positionen verwendet werden.
  • Der Indikatorframe für ein interessierendes Objekt 115 kann eine beliebige geeignete Datenstruktur, die Indikatoren enthält, die auf Positionen (z. B. einen oder mehrere Indikatoren, die einer oder mehreren Positionen entsprechen) innerhalb eines interessierenden Objekts hinweisen, wie ein erster Wert (z. B. 1) für Pixelpositionen, die als eine Position eines interessierenden Objekts identifiziert sind, und ein zweiter Wert (z. B. 0) für alle anderen Pixelpositionen. Gleichermaßen kann der Hintergrundindikatorframe Objekt 117 kann eine beliebige geeignete Datenstruktur, die Indikatoren enthält, die auf Positionen innerhalb des Hintergrunds und ohne ein interessierendes Objekt hinweisen, wie ein erster Wert (z. B. 1) für Pixelpositionen, die als im Hintergrund identifiziert sind, und ein zweiter Wert (z. B. 0) für alle anderen Pixelpositionen. Der Indikatorframe für ein interessierendes Objekt 115 und der Hintergrundindikatorframe 117 enthalten zum Beispiel Indikatoren auf ein interessierendes Objekt und einen Hintergrund, sodass die Indikatoren Pixel (z. B. unter Verwendung eines ersten Werts) anzeigen, die das interessierende Objekt bzw. Hintergrund enthalten.
  • Der Bewegungsframe 113 kann eine beliebige Datenstruktur enthalten, die auf Bewegung vom vorhergehenden Videoframe 112 zum aktuellen Videoframe 111 hinweist. Der Bewegungsframe 113 enthält zum Beispiel Indikatoren, die auf Bewegung vom vorhergehenden Videoframe 112 zum aktuellen Videoframe 111 hinweisen, wie beispielsweise Geschwindigkeitsbewegungsvektoren pro Pixel (z. B. ein Bewegungsvektor für jedes Pixel davon) oder andere Bewegungsindikatoren. Ferner kann der Bewegungsframe 113 unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken generiert werden, wie beispielsweise dichter optischer Flusstechniken. In einer Ausführungsform Kontextmerkmalsvolumen 130, sodass das Segmentierungsnetz 101 dichte optische Flussmerkmale empfängt, die zwischen dem vorhergehenden Videoframe 112 und dem aktuellen Videoframe 111 ermittelt wurden, die über den Bildraum angewandt wurden.
  • Der positive Distanztransformationsframe 116 und der negative Distanztransformationsframe 118 können aus dem Indikatorframe für ein interessierendes Objekt 115 bzw. dem Hintergrundindikatorframe 117 generiert werden. Der positive Distanztransformationsframe 116 und der negative Distanztransformationsframe 118 können beliebige geeignete Datenstrukturen enthalten, die auf eine Nähe zu Positionen von positiven und negativen Indikatoren innerhalb des Indikatorframes für ein interessierendes Objekt 115 und dem Hintergrundindikatorframe 117 hinweisen. In einer Ausführungsform enthält der positive Distanztransformationsframe 116 für jedes Pixel davon einen Wert, der auf eine Minimaldistanz zu irgendeiner der Position(en) von positiven Indikatoren im Indikatorframe für ein interessierendes Objekt 115 hinweist. Gleichermaßen enthält der negative Distanztransformationsframe 118 in einer Ausführungsform für jedes Pixel davon einen Wert, der auf eine Minimaldistanz zu irgendeiner der Position(en) von negativen Indikatoren im Hintergrundindikatorframe 117 hinweist. In einer Ausführungsform wird jeder Wert des positiven Distanztransformationsframes 116 und des negativen Distanztransformationsframes 118 wie in Bezug auf Gleichungen (1) gezeigt ermittelt: T p ( p ) = min q S p p q 2 T n ( p ) = min q S n p q 2
    Figure DE102020129800A1_0001
    wobei Tp der positive Distanztransformationsframe 116 ist, Tn der negative Distanztransformationsframe 118 ist, p eine beliebige Pixelposition im positiven Distanztransformationsframe 116 oder im negativen Distanztransformationsframe ist, q eine nächstgelegene Position eines positiven Indikators (z. B. die positive Position 122 im Indikatorframe für ein interessierendes Objekt 115) oder eines negativen Indikators (z. B. die negative Position 124 im Indikatorframe für ein interessierendes Objekt 115) ist. Im Beispiel der Gleichungen (1) werden die Minimaldistanzen pro Pixel als euklidische Distanzen ermittelt, es kann jedoch ein beliebiges geeignetes Distanzmaß verwendet werden.
  • Wie in Bezug auf den positiven Distanztransformationsframe 116 gezeigt, generiert eine Anwendung der Gleichungen (1) einen Bereich 123 um die in Bezug auf die positive Position 122 gemeinsam angeordnete Position herum, sodass der Bereich 123 größere Werte beim konzentrischen Wegbewegen von der in Bezug auf die positive Position 122 gemeinsam angeordneten Position aufweist. Obwohl in Bezug auf kleine Werte an der in Bezug auf die positive Position 122 gemeinsam angeordneten Position und größeren Werten beim Wegbewegen davon besprochen, können alternativ größere Werte an der in Bezug auf die positive Position 122 gemeinsam angeordneten Position verwendet werden, wobei Werte beim Wegbewegen davon kleiner werden. Die Inversen der Gleichungen (1) können zum Beispiel verwendet werden usw. Gleichermaßen generiert eine Anwendung der Gleichungen (1) einen Bereich 125 um die gemeinsam angeordnete Position in Bezug auf die negative Position 124 herum, sodass der Bereich 125 wieder größere Werte beim konzentrischen Wegbewegen davon aufweist, obwohl auch die Umkehrung verwendet werden kann. Wie klar sein wird, bietet eine Anwendung mehrerer positiver Positionen 122 (oder negativer Positionen 124) zusätzliche Bereiche 123 (oder Bereiche 125), die überlappen können. Beispielsweise stellen der positive Distanztransformationsframe 116 und der negative Distanztransformationsframe 118 Heatmaps oder Konturen in Bezug auf eine Distanz zu einer nächstgelegenen positiven oder negativen Position bereit, um ein CNN in Gebiete zu lenken, die wahrscheinlich ein interessierendes Objekt oder ein Hintergrundbereich sind.
  • Ferner enthält die Segmentierungsnetzeingabe 121 den vorhergehenden Segmentierungsframe 114, der eine Segmentierung ist, die einem vorhergehenden Videoframe 112 entspricht. Es ist anzumerken, dass für einen ersten Frame des Eingabevideos 110 ein Standbildsegmentierungs-CNN und ein Standbildauswahl-CNN oder ein Objekterkennungs-CNN verwendet werden können, um einen anfänglichen Segmentierungsframe zu generieren. Nachfolgende Segmentierungsframes werden vom Segmentierungsnetz 101 wie hierin besprochen generiert. Der vorhergehende Segmentierungsframe 114 kann eine beliebige geeignete Datenstrukturierung enthalten, die eine Segmentierung beispielsweise pro Pixelwerten anzeigt, die für jedes Pixel die Likelihood anzeigt, dass sich das Pixel in einem interessierenden Objekt befindet, wie zum Beispiel einem Wert, der von 0 bis inklusive 1 reicht, oder einem Wert von 0 oder 1.
  • Die Merkmalsframes 119 werden zur Aufnahme in die Segmentierungsnetzeingabe 121 generiert, sodass Merkmalsframes 119 jeweils Merkmale enthalten, die aus Schichten eines faltenden neuronalen Objektklassifizierungsnetzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde. Wie hierin verwendet, bezeichnet der Begriff Merkmal oder Merkmalswert einen Wert, der ein Teil einer Merkmalskarte oder eines Merkmalsframes ist, sodass alle Merkmale in einer Merkmalskarte oder einem Merkmalsframe dahingehend entsprechen, dass sie durch die gleiche Verarbeitung erhalten wurden, wie durch eine Anwendung eines CNN, Komprimierung usw. Insbesondere können die Merkmalsframes 119 viele (z. B. ungefähr 700) Merkmalsframes mit jedem Frame enthalten, einschließlich von Merkmalen pro Pixel mit der Auflösung des aktuellen Videoframes 111, sodass die Merkmalsframes 119 aus dem Kontextmerkmalsvolumen 130 (z. B. ungefähr 1400) mit einer Komprimierungsrate wie zum Beispiel 50 % komprimiert sind. Obwohl in Bezug auf eine 50-prozentige Komprimierungsrate besprochen, kann eine beliebige Rate verwendet werden, wie eine Reduktion der Merkmalsframes um 30 % bis 40 %, eine Reduktion von Merkmalsframes um 40 % bis 60 % oder dergleichen.
  • In einigen Ausführungsformen werden die Merkmalsframes 119 durch Anwenden eines Objektklassifizierungs-CNN auf den aktuellen Videoframe 111, Abrufen, für jedes Pixel des aktuellen Videoframes 111, mehrerer Werte jeweils von einer der Schichten des faltenden neuronalen Klassifizierungsnetzes, um eine Hyperkolumne mit Merkmalswerten für jedes Pixel durch das Merkmalsextrahierungsmodul 102 zu generieren, und Komprimieren der Hyperkolumnen in Merkmalsframes 119 durch das Merkmalskomprimierungsmodul 103 generiert. Gemeinsam definiert die Hyperkolumne mit Merkmalswerten aus dem Objektklassifizierungs-CNN wie vom Merkmalsextrahierungsmodul 102 angewandt mehrere Merkmalskarten, die danach durch das Merkmalskomprimierungsmodul 103 in weniger Merkmalskarten komprimiert werden. Wenn man die Anwendung des Objektklassifizierungs-CNN auf eine andere Weise betrachtet, können nach der Anwendung mehrere Merkmalskarten vom Objektklassifizierungs-CNN abgerufen werden, sodass jede Merkmalskarte einer Schicht des Objektklassifizierungs-CNN entspricht, wobei jede Merkmalskarte einen Merkmalswert aufweist, der einem Pixel des aktuellen Videoframes 111 entspricht.
  • In einigen Ausführungsformen werden Tessellationstechniken vom Merkmalsextrahierungsmodul 102 angewandt, um das Merkmalsvolumen 130 zu generieren. In einigen Ausführungsformen wird die Größe des aktuellen Videoframes 111 vor der Anwendung des Objektklassifizierungs-CNN auf einen aktuellen Videoframe mit geänderter Größe geändert, sodass der aktuelle Videoframe mit geänderter Größe ein Raster mit Teilbildern enthält, die jeweils eine Größe oder Dimensionen aufweisen, die der Bildgröße oder den Bilddimensionen entsprechen, die zur Verarbeitung durch das Objektklassifizierungs-CNN angenommen wird bzw. werden (z. B. die Bildgröße oder Bilddimensionen, mit der bzw. denen das Objektklassifizierungs-CNN vortrainiert ist). Das Objektklassifizierungs-CNN wird dann, optional zumindest teilweise parallel, separat auf jedes der Teilbilder angewandt, und wie oben besprochen eine Hyperkolumne mit Merkmalswerten wird dann für jedes Pixel jedes der Teilbilder abgerufen. Die zusammengeführten Hyperkolumnen stellen ein Merkmalsvolumen bereit, dessen Größe geändert (z. B. abwärtsskaliert) werden kann, um das Merkmalsvolumen 130 zu bilden, sodass das Merkmalsvolumen 130 eine Größe oder Auflösung aufweist, die gleich dem aktuellen Videoframe 111 in der Pixeldomäne ist, während es eine beliebige Anzahl von Merkmalswerten aufweist (z. B. ungefähr 1400 oder ungefähr 1500). Das Merkmalskomprimierungsmodul 103 kann dann das Merkmalsvolumen 130 komprimieren, um die Merkmalsframes 119 zu generieren. Insbesondere bieten derartige Techniken wesentlich höhere Merkmalsauflösungen für verbesserte Segmentierungsergebnisse.
  • Wie besprochen wird ein Objektklassifizierungs-CNN auf den aktuellen Videoframe 111 angewandt und das Merkmalsvolumen 130 wird aus Schichten des Objektklassifizierungs-CNN extrahiert. Wie hierin verwendet, bezeichnet der Begriff Objektklassifizierungs-CNN auf ein beliebiges CNN, das verwendet wird, um eine Objekterkennung und/oder -klassifizierung an einem Eingabebild durchzuführen. Obwohl in Bezug auf ein Objektklassifizierungs-CNN besprochen, kann ein beliebiges vortrainiertes CNN verwendet werden. In einer Ausführungsform ist das Objekterkennungs-CNN ein vortrainiertes CNN, wie das VGG-19 CNN. In einer Ausführungsform ist das Merkmalsvolumen 130 Merkmalskarten, die aus Faltungsschichten des Objekterkennungs-CNN extrahiert wurden. Das heißt, Merkmalskarten aus Faltungsschichten können kopiert und gestapelt werden, um das Merkmalsvolumen 130 zu bilden, das ein Volumen von pixelweisen Merkmalen enthält. Beispielsweise kann eine Spalte von Merkmalen (eine aus jeder der extrahierten Merkmalskarte) für jedes Pixel als eine Hyperkolumne gekennzeichnet werden. Die Hyperkolumnen stellen gemeinsam ein Volumen aus pixelweisen Merkmalen für den aktuellen Videoframe 111 bereit.
  • 2 veranschaulicht beispielhafte tiefgehende Faltungstessellationstechniken, die auf den aktuellen Videoframe 111 angewandt werden, um das Merkmalsvolumen 130 zu generieren, nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet. Die in Bezug auf 2 besprochenen Operationen können zum Beispiel durch das Merkmalsextrahierungsmodul 102 durchgeführt werden. Wie in 2 gezeigt, wird der aktuelle Videoframe 111 zur Verarbeitung empfangen. In der veranschaulichten Ausführungsform weist der aktuelle Videoframe 111 eine Auflösung von 1920×1080 und eine Tiefe von 3 auf (z. B. eine rote Bildebene, eine grüne Bildebene und eine blaue Bildebene). Der aktuelle Videoframe 111 kann jedoch eine beliebige geeignete Auflösung aufweisen, die als wI×hI verallgemeinert wird (wobei I Eingabe repräsentiert). Insbesondere kann das Objektklassifizierungs-CNN 202 vortrainiert sein, um Bilder mit einer bestimmten Größe oder Auflösung (z. B. mit bestimmten Dimensionen) zu akzeptieren und zu verarbeiten. Beispielsweise werden umfangreiche vortrainierte tiefe CNN-Modelle an Bilddaten mit relativ geringer Auflösung mit einer durchschnittlichen Auflösung von ungefähr 469×387 trainiert, was zu Merkmalen mit relativ geringer Wiedergabetreue führt, wie in Bezug auf 5 veranschaulicht. In der veranschaulichten Ausführungsform ist das Objektklassifizierungs-CNN 202 ausgelegt, Bilder mit einer Auflösung von 224×224 mit einer Tiefe von 3 (z. B. für RGB) zu verarbeiten. Die Objekterkennung kann jedoch ausgelegt und vortrainiert sein, ein Bild mit einer beliebigen Auflösung (geringer als die Auflösung des aktuellen Videoframes 111) zu verarbeiten, als whM verallgemeinert (wobei M das Modell repräsentiert).
  • Die Größe des aktuellen Videoframes 111 wird bei der Größenänderungsoperation 201 auf ein interpoliertes Bild 211 geändert, das auch als ein aktueller Videoframe mit geänderter Größe, ein Frame mit geänderter Größe usw. gekennzeichnet werden kann. Das interpolierte Bild 211 kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken, wie einer linearen oder nichtlinearen Interpolation usw., vom aktuellen Videoframe 111 hochskaliert werden. Insbesondere wird das interpolierte Bild 211 so generiert, dass seine Tiefe mit der des aktuellen Videoframes 111 (z. B. einer Tiefe von 3 für RGB) übereinstimmt, während seine Auflösung so erhöht wurde, dass das interpolierte Bild 211 aus einem Raster von Teilbildern 221 wie Teilbild 212, 213 besteht. Insbesondere kann das interpolierte Bild 211 in seiner Gesamtheit und gleichmäßig in ein Raster von Teilbildern 221 aufgeteilt sein. Die Größe des aktuellen Videoframes 111 wird zum Beispiel auf den aktuellen Videoframe mit geänderter Größe oder das interpolierte Bild 211 geändert, sodass das interpolierte Bild 211 die Teilbilder 221 jeweils mit Dimensionen enthält, die Dimensionen des Objektklassifizierungs-CNN 221 entsprechen. Das heißt, die Größe und Dimensionen der Teilbilder 221 stimmen mit der Größe und den Dimensionen für ein Bild überein, das durch das Objektklassifizierungs-CNN 221 zu verarbeiten ist.
  • In einigen Ausführungsformen kann die Größe des interpolierten Bilds 211, die als wR×hR verallgemeinert werden kann (wobei R die Größenänderung repräsentiert) wie gezeigt in Bezug auf Gleichung (2) generiert sein: w R × h R = w M [ w I w M ] × h M [ h I h M ]
    Figure DE102020129800A1_0002
    wobei wR die Breite des interpolierten Bilds 211 ist, hR die Höhe des interpolierten Bilds 211 ist, wI die Breite des aktuellen Videoframes 111 ist, hI die Höhe des aktuellen Videoframes 111 ist, wM die Breite eines vom Objektklassifizierungs-CNN 202 zu verarbeitenden Bilds ist (z. B. eine Eingabebreite des Objektklassifizierungs-CNN 202), hM die Höhe eines vom Objektklassifizierungs-CNN 202 zu verarbeitenden Bilds ist (z. B. eine Eingabehöhe des Objektklassifizierungs-CNN 202) und [ ] die Aufrundungsfunktion ist, die ihre Eingabe auf die kleinste ganze Zahl abbildet, die größer als die Eingabe ist. Wie hierin in Bezug auf das Objektklassifizierungs-CNN 202 der Begriff Breite
  • Wie in Gleichung (2) vorgesehen, weist die Auflösung des interpolierten Bilds 211 (d. h. eines aktuellen Videoframes mit geänderter Größe) eine Breite (d. h. wR) auf, die ein Produkt einer Eingabebreite des Objektklassifizierungs-CNN 202 (d. h. wM) und einer Ausgabe von einer Aufrundungsfunktion ist, die auf ein Verhältnis einer Breite des aktuellen Videoframes 111 (d. h. wI) zur Eingabebreite des Objektklassifizierungs-CNN 202 (d. h. wM) angewandt wurde, und gleichermaßen weist die Auflösung des interpolierten Bilds 211 (d. h. eines aktuellen Videoframes mit geänderter Größe) eine Höhe (d. h. hR) auf, die ein Produkt einer Eingabehöhe des Objektklassifizierungs-CNN 202 (d. h. hM) und einer Ausgabe von einer Aufrundungsfunktion ist, die auf ein Verhältnis einer Höhe des aktuellen Videoframes 111 (d. h. hI) zur Eingabehöhe des Objektklassifizierungs-CNN 202 (d. h. hM) angewandt wurde. Wie hierin verwendet, bezeichnen die Begriffe Eingabebreite und Eingabehöhe die Breite und Höhe (d. h. Auflösung) eines vom CNN zu verarbeitenden Eingabebilds. Insbesondere weist die Eingabe auch eine Tiefe wie 3 (für ein RGB-Bild), 1 (für ein Grauskalenbild) oder dergleichen auf.
  • In der veranschaulichten Ausführungsform weist der aktuelle Videoframe 111 eine Auflösung von 1920×1080 auf und das Objektklassifizierungs-CNN 202 weist eine Eingabeauflösung von 224×224 auf. Wie durch Anwendung von Gleichung (2) gesehen werden kann, weist das interpolierte Bild 211 dann eine Auflösung von 2016×1120 auf, sodass ein Raster von Teilbildern 221 ein 9×5-Raster von Teilbildern 221 enthält. Wie besprochen ist jedes Pixel des interpolierten Bilds 211 ein Teil genau von einem einzigen der Teilbilder 221 und kein Pixel des interpolierten Bilds 211 ist nicht Teil von genau einem einzigen der Teilbilder 221. Das heißt, das interpolierte Bild 211 (d. h. ein aktueller Videoframe mit geänderter Größe) wird so bereitgestellt, dass das interpolierte Bild 211 aus einem Raster von Teilbildern 221 besteht.
  • Das interpolierte Bild 211 wird dann umgeordnet oder gestapelt oder dergleichen, bei Stapeloperation 203, von einem 3D-Bildtensor mit einer Größe von wR×hR×dR, wobei d die Tiefe repräsentiert (z. B. 2016×1120×3), auf einen 4D-Tensor mit einer Größe von (wR/wM)(hR/hM)×dwhM (z. B. 45 geordnete Teilbilder mit jeweils der Größe 224×224×3 mit 4D-Dimensionen von 45×3×224×224). Beispielsweise können die Teilbilder 221 in eine Anordnung in einer Rasterabtastreihenfolge oder dergleichen gereiht werden, um einen 4D-Tensor 222 bereitzustellen, der eine geordnete Anordnung aus 3D-gekachelten Tensoren 223 umfasst, die den Teilbildern 221 entsprechen. Beispielsweise kann der 4D-Tensor 222, der die gekachelten Tensoren 223 enthält, die dem Raster aus Teilbildern 221 entsprechen, eine Größe von (wR/wM)(hR/hM) aufweisen (z. B. im veranschaulichten Beispiel 45), was die Anzahl von Kacheln (d. h. Teilbilder 221) repräsentiert. Wie gezeigt sind die 3D-gekachelten Tensoren 223 entlang einer ersten Achse des Tensors gestapelt, die die Reihenfolge der gekachelten Tensoren 223 repräsentiert. Das heißt, die erste Achse des 4D-Tensors 222 kann entlang der geordneten gekachelten Tensoren 223 verlaufen oder diese darstellen. In einigen Ausführungsformen kann der 4D-Tensor 222 als I' gekennzeichnet sein.
  • Wie gezeigt wird der 4D-Tensor 222 bei der Merkmalsextrahierungsoperation 204 durch das Objektklassifizierungs-CNN 202 (oder ein beliebiges geeignetes CNN, wie hierin besprochen) geleitet, um das Objektklassifizierungs-Ausgabevolumen 214 zu generieren. Das Objektklassifizierungs-Ausgabevolumen 214 kann auch als eine Tessellationsausgabe, eine CNN-Ausgabe oder dergleichen gekennzeichnet sein, und das Objektklassifizierungs-Ausgabevolumen 214 enthält für jedes Pixel von jedem der Teilbilder 221 (und deshalb für jeden der gekachelten Tensoren 223) eine beliebige Anzahl von Merkmalswerten jeweils von einer der Schichten des Objektklassifizierungs-Ausgabevolumens 214. Das heißt, es wird auf die Ausgabe aus einer beliebigen Schicht von Faltungsschichten des Objektklassifizierungs-Ausgabevolumens 214 zugegriffen und die Gesamtheit des Ausgabevolumens oder einer oder mehrere Frames des Ausgabevolumens von den Faltungsschichten werden verkettet, um das Objektklassifizierungs-Ausgabevolumen 214 zu generieren. Für ein bestimmtes Pixel des Teilbilds 212 wird zum Beispiel auf eine beliebige Anzahl von Faltungsschichten zugegriffen, und einige oder alle der Merkmalswerte für die Pixel im entsprechenden Faltungsschicht-Ausgabevolumen werden abgerufen. Deshalb wird für jedes Pixel jedes der Teilbilder 221 eine Hyperkolumne von Merkmalen erhalten und zusammengenommen stellen die Hyperkolumnen das Objektklassifizierungs-Ausgabevolumen 214 bereit. In einigen Ausführungsformen können nicht alle Faltungsschichten verwendet werden und nicht alle Merkmale aus den ausgewählten Schichten können verwendet werden. Wie hierin verwendet, bezeichnet der Begriff CNN auf ein vortrainiertes neuronales Netz für tiefgehendes Lernen, das eine beliebige Anzahl von Faltungsschichten enthält, die jeweils mindestens eine Faltungsoperation enthalten (und optional beispielsweise eine Leaky-RELU-Schicht, eine Pooling- oder Summierungsschicht und/oder eine Normalisierungsschicht enthalten). Der Begriff Faltungsschicht bezeichnet auf eine Schicht, die durch Anwenden einer beliebigen Anzahl von Faltungskernels eine Faltungsoperation an einem Eingabevolumen der Schicht bereitstellt, um ein Ausgabevolumen zu generieren. Derartige Faltungsschichten können auch andere Operationen enthalten.
  • Wie besprochen wird ein 4D-Tensor 222 (I') durch das Objektklassifizierungs-CNN 202 (Modell, M) geleitet. In einigen Ausführungsformen wird der 4D-Tensor 222 durch das Objektklassifizierungs-CNN 202 als ein Mini-Batch entlang der besprochenen ersten Achse (z. B. mit einer Größe von 45) geleitet, sodass das Modell (z. B. das Objektklassifizierungs-CNN 202) parallel aufgerufen werden kann, sodass das Modell parallel einen oder mehrere der 3D-gekachelten Tensoren 223 für verbesserte Geschwindigkeit und Verarbeitungseffizienz bearbeitet. In einigen Ausführungsformen enthält das Anwenden des Objektklassifizierungs-CNN 202 auf die Teilbilder 221 ein paralleles Anwenden der Teilbilder 221 zwei oder mehr der Teilbilder 221 (z. B. das erste und das zweite Teilbild), sodass die Merkmalswertgenerierung und der Abruf für zwei oder mehr der Teilbilder 221 parallel durchgeführt werden. Ferner stellt eine Anwendung des Objektklassifizierungs-CNN 202 (Modells, M) für den 4D-Tensor 222 einen Ausgabe-4D-Tensor mit der gleichen Dimension entlang der ersten Achse (z. B. 45 oder allgemeiner (wR/wM)(hR/hM)) bereit, wobei jeder eine gleiche Auflösung (z. B. 224×224 oder allgemeiner wM×hM) aufweist und jeder eine Tiefe der Anzahl von abgerufenen Merkmalen (z. B. 1500 oder allgemeiner dF, wobei F die Anzahl von Merkmalen anzeigt) aufweist. Die Ausgabe-4D-Tensoren (nicht gezeigt) können dann zusammengeführt oder entfaltet oder dergleichen werden, um das 3D-Objektklassifizierungs-Ausgabevolumen 214 zu generieren. Ein derartiges Zusammenführen kann durch Zusammenführen jedes 4D-Tensors in Übereinstimmung mit dem Raster der Teilbilder 221 bereitgestellt werden. Falls zum Beispiel eine Rasterabtastung verwendet wurde, um den 4D-Tensor 222 zu generieren, kann eine Umkehrung der Rasterabtastung verwendet werden, um das Raster der Teilbilder 221 zusammenzusetzen. Insbesondere weist das Raster der Teilbilder 221 die gleiche Auflösung wie das interpolierte Bild 211 und eine Tiefe auf, die gleich der Anzahl von extrahierten Merkmalen ist (z. B. wR×hR×dF).
  • Die Größe des Objektklassifizierungs-Ausgabevolumens 214 wird dann bei Größenänderungsoperation 205 auf die Auflösung des aktuellen Videoframes 111 geändert, um das Merkmalsvolumen 130 zu generieren. Die Größenänderungsoperation 205 kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken wie Abwärtsskalierungstechniken oder dergleichen durchgeführt werden. Wie gezeigt wird die Größe des Objektklassifizierungs-Ausgabevolumens 214 geändert, um das Merkmalsvolumen 130 mit Dimensionen von wI×hI×dF zu generieren, sodass die Auflösung die gleiche wie die des aktuellen Videoframes 111 (wI×hI) ist und die Tiefe die gleiche wie die des Objektklassifizierungs-Ausgabevolumens 214 (dF) ist.
  • In Bezug auf 1 wird das Merkmalsvolumen 130 dem Merkmalskomprimierungsvolumen 103 bereitgestellt, das das Merkmalsvolumen 130 auf die Merkmalsframes 119 komprimiert, wie hierin weiter besprochen. Die Merkmalstiefe des Merkmalsvolumens 130 (z. B. ungefähr 1500 Merkmale) können zum Beispiel durch eine Komprimierungsrate von ungefähr 50 % komprimiert werden, um Merkmalsframes 119 mit ungefähr 750 Merkmalen zu generieren. Eine derartige Merkmalsreduktion kann die rechnerische Leistung des Segmentierungsnetzes 101 ohne einen Verlust der Segmentierungsgenauigkeit verbessern.
  • Die Besprechung wendet sich nun einem Abruf oder einer Extrahierung von Merkmalen durch das Merkmalsextrahierungsmodul 102 zu. In einigen Ausführungsformen kann eine derartige Extrahierung oder ein derartiger Abruf auf Grundlage einer Implementierung von Tessellationsoperationen durchgeführt werden, wie sie in Bezug auf 2 besprochen sind. Die Extrahierung kann zum Beispiel in Bezug auf das Objektklassifizierungs-CNN 202 durchgeführt werden, wie es am 4D-Tensor 222 (z. B. an den geordneten Teilbildern 221) implementiert ist. In anderen Ausführungsformen wird die Extrahierung oder der Abruf auf Grundlage eines Objektklassifizierungs-CNN durchgeführt, das ein Eingabebild ohne Tessellation bearbeitet. In derartigen Ausführungsformen kann das Eingabebild vor der Implementierung des Objektklassifizierungs-CNN abwärtsskaliert werden. Insbesondere kann das Segmentierungsnetz 121 die Merkmalsframes 119 bearbeiten, die mit oder ohne Tessellationstechniken generiert wurden.
  • 3 veranschaulicht ein beispielhaftes Volumen von Faltungsnetzmerkmalen 301 für ein beispielhaftes Eingabebild 302, die aus Faltungsschichten eines faltenden neuronalen Objektklassifizierungsnetzes extrahiert wurden, wie es auf das Eingabebild 302 angewandt wurde, angeordnet nach zumindest einigen Implementierungen der vorliegenden Offenbarung. In 3 wird jede Merkmalskarte des Volumens von Faltungsnetzmerkmalen 301, wie Merkmalskarten 304, 306, aus einem Objektklassifizierungs-CNN (z. B. dem Objektklassifizierungs-CNN 202) nach Anwendung des Objekterkennungs-CNN auf das Eingabebild 302 extrahiert. Das Eingabebild 302 kann ein Bild sein, das irgendeinem der Teilbilder 221 (wenn eine Tessellation implementiert ist) entspricht, oder ein Bild sein, das einer abwärtsskalierten Version des aktuellen Videoframes 111 entspricht (wenn keine Tessellation implementiert ist). Wenn zum Beispiel eine Tessellation implementiert ist, entspricht das Volumen der Faltungsnetzmerkmale 301 einem Ausgabemerkmalsvolumen für eines der Teilbilder 221. Wenn keine Tessellation implementiert ist, entspricht das Volumen der Faltungsnetzmerkmale 301 dem Merkmalsvolumen 130.
  • Wie in Bezug auf Pixel 311 des Eingabebilds 302 gezeigt, weist jede Merkmalskarte des Volumens von Faltungsnetzmerkmalen 301, wie den Merkmalskarten 304, 306, ein entsprechendes Merkmal oder einen entsprechenden Merkmalswert 313 der Merkmalskarte 304 und einen Merkmalswert 312 der Merkmalskarte 306 und so weiter auf, sodass für das Pixel 311 eine Hyperkolumne 303 der Merkmalswerte 305 bereitgestellt wird. Die zusammengenommenen und Hyperkolumne 303 enthaltenden Hyperkolumnen bieten ein Volumen mit Faltungsnetzmerkmalen 301. Wie besprochen entspricht jede der Merkmalskarten 304, 306 einem Ausgabevolumen einer Faltungsschicht des angewandten Objektklassifizierungs-CNN. Ein Batch 321 von Merkmalskarten, der die Merkmalskarte 306 enthält, kann zum Beispiel von einem bestimmten Ausgabevolumen einer bestimmten Faltungsschicht sein, Batch 322 von Merkmalskarten, der die Merkmalskarte 304 enthält, kann zum Beispiel von einem anderen Ausgabevolumen einer anderen Faltungsschicht sein und so weiter. Wie besprochen wird in einigen Ausführungsformen jede verfügbare Merkmalskarte des Objektklassifizierungs-CNN verwendet. Es müssen jedoch nicht alle eingesetzt werden.
  • Ferner wird im Kontext von Tessellationsoperationen eine Anzahl von Volumina von Faltungsnetzmerkmalen einschließlich eines Volumens von Faltungsnetzmerkmalen 301 zusammengeführt, um das Objektklassifizierungs-Ausgabevolumen 214 zu generieren. In Bezug auf 2 werden im veranschaulichten Beispiel 45 ((wR/wM)(hR/hM)) Volumina von Faltungsnetzmerkmalen zusammengeführt, um das Objektklassifizierungs-Ausgabevolumen 214 so zu generieren, dass jedes Volumen mit Faltungsnetzmerkmalen eine Auflösung von 224×224 (wM×hM) und eine Tiefe von 1500 (dM) aufweist. Wie besprochen, können derartige Techniken dichtere Merkmale mit einer genaueren Segmentierung bereitstellen.
  • 4 veranschaulicht ein beispielhaftes Bild 400, das nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Beispielsweise kann das beispielhafte Bild 400 ein aktueller Videoframe 111 sein. Wie in 4 gezeigt, enthält das beispielhafte Bild 400 eine Landschaftsszene. Insbesondere enthält das beispielhafte Bild 400 kein Objekt im Vordergrund, aber das beispielhafte Bild 400 wird verwendet, um die Dichte von Merkmalen zu veranschaulichen, die unter Verwendung einer Tessellation im Kontrast zu Nicht-Tessellationstechniken erhalten wurden.
  • 5 veranschaulicht eine beispielhafte Merkmalskarte 500, die aus einem beispielhaften Bild 400 ohne Tessellation erhalten wurde, nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet. Beispielsweise entspricht die Merkmalskarte 500 dem beispielhaften Bild 400 und veranschaulicht Merkmalswerte von einer bestimmten Merkmalskarte (z. B. der Merkmalskarte 306), die durch Anwendung eines Objektklassifizierungs-CNN auf das beispielhafte Bild 400 erhalten wurde. Wie in 5 gezeigt, enthält die beispielhafte Merkmalskarte 500 Merkmale mit einer bestimmten Dichte und Wiedergabetreue. eine Landschaftsszene. Insbesondere bietet die beispielhafte Merkmalskarte 500 eine relativ dünnbesetzte Merkmalsdichte.
  • 6 veranschaulicht eine beispielhafte Merkmalskarte 600, die aus einem beispielhaften Bild 400 mit Tessellation erhalten wurde, die nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie bei der Merkmalskarte 500 entspricht die Merkmalskarte 600 dem beispielhaften Bild 400, die Merkmalskarte 500 wird jedoch unter Verwendung von Tessellationstechniken erhalten. Die Merkmalskarte 600 veranschaulicht zum Beispiel Merkmalswerte von einer bestimmten Merkmalskarte, die durch Anwenden eines Objektklassifizierungs-CNN auf Teilbilder von einem vergrößerten Bild (z. B. vom beispielhaften Bild 400 auf eine Größe vergrößert, die mit einem Raster von Teilbildern mit einer Eingangsauflösung zusammenpasst, die der Eingangsauflösung des Objektklassifizierungs-CNN entspricht), Zusammenführen der resultierenden Merkmalskarten (z. B. einer Anzahl von Merkmalskarten, wie der Merkmalskarte 306), die durch Anwendung eines Objektklassifizierungs-CNN auf jedes Teilbild erhalten wurden, und Abwärtsskalieren der resultierenden Merkmalskarte auf die Auflösung des beispielhaften Bilds 400 generiert wurde. Wie in 6 gezeigt, enthält die beispielhafte Merkmalskarte 600 Merkmale mit einer viel höheren Dichte und Wiedergabetreue als die Merkmalskarte 500. Eine derartige Merkmalsdichte und Wiedergabetreue bietet eine verbesserte Segmentierung. Beispielsweise kann ein Merkmalsvolumen, das die Merkmalskarte 600 (und viele andere) enthält, komprimiert und einem Segmentierungsnetz bereitgestellt werden, wie weiter hierin besprochen wird.
  • Unter Bezugnahme auf 1 wendet sich die Besprechung nun einer Komprimierung des Merkmalsvolumens 130 zu (das mit oder ohne Tessellation erhalten wurde), um die Merkmalsframes 119 zu generieren. Insbesondere repräsentieren die Merkmalsframes 119 auch ein Merkmalsvolumen, und die Merkmalsframes 119 können als ein komprimiertes Merkmalsvolumen oder dergleichen gekennzeichnet sein. Die Komprimierung des Merkmalsvolumens 130, um die Merkmalsframes 119 (z. B. ein Merkmalsvolumen mit einer reduzierten Tiefe) zu generieren, kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken durchgeführt werden. Insbesondere können die Merkmalsframes 119 auch als tiefgehende Pro-Pixel-Hyperkolumnenmerkmale aufweisend gekennzeichnet sein, obwohl sie komprimierte Merkmale aus Schichten eines Objektklassifizierungs-CNN sind. In einigen Ausführungsformen werden die Merkmalsframes 119 durch Komprimierung unter Verwendung einer Tucker-Zerlegung des Merkmalsvolumens 130 generiert. Tiefgehende Pro-Pixel-Hyperkolumnenmerkmale (die Merkmalsframes 119) können zum Beispiel aus (durch Tucker-Zerlegung) komprimierten Merkmalen des Objekterkennungs-CNN 101 (z. B. VGG-19) generiert werden.
  • 7 veranschaulicht eine beispielhafte Komprimierung des Merkmalsvolumens 130, um die Merkmalsframes 119 für die Segmentierungsnetzeingabe 101 zu generieren, nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet. Wie in 7 gezeigt, kann das Merkmalsvolumen 130 (X) (wie es z. B. vom Merkmalsextrahierungsmodul 102 extrahiert wurde) durch die Merkmalsframes 119 (G) und die Hauptkomponenten 703, 704, 705 (A, B, C) approximiert werden. Insbesondere werden die Hauptkomponenten 703, 704, 705 verworfen, während die Merkmalsframes 119 als Teil der Segmentierungsnetzeingabe 121 bereitgestellt werden.
  • Die Tucker-Zerlegung ist zum Beispiel ein Beispiel einer Singulärwertzerlegung höherer Ordnung (HOSVD), die angewandt werden kann, um das Merkmalsvolumen 130 in die Merkmalsframes 119 zu komprimieren. Insbesondere wird eine Tucker-Zerlegung mit Pretraining in Bezug auf das Segmentierungsnetz 101 angewandt, um eine Dimensionalitätsreduktion durchzuführen, während die benötigten Details zur Verwendung durch das Merkmalsvolumen 130 bewahrt werden. Ein derartiges Vortraining der Merkmalskomprimierung durch Tucker-Zerlegung kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken durchgeführt werden. In einer Ausführungsform werden die Hauptkomponenten 703, 704, 705 während einer Trainingsphase zur Anwendung in einer Inferenzphase ausgewählt, obwohl beliebige geeignete Parameter der Tucker-Zerlegung während des Pretrainings modifiziert werden können.
  • Beispielsweise kann die Tucker-Zerlegung für einen 3-Tensor (z. B. einen wie hier vorgesehenen 3D-Tensor) als ein Problem ausgedrückt werden, eine Zerlegung von Tensor X (z. B. das Merkmalsvolumen 130) zu finden, sodass X ∈ RI×J×K (z. B. weist X reelle Zahlen mit einer Volumendimension von IxJxK auf) mit einem Kerntensor G (die Merkmalsframes 119), sodass G ∈ ℝP×Q×R (z. B. weist G reelle Zahlen mit einer Volumendimension von PxQxR auf), und Hauptkomponenten A (z. B. die Hauptkomponente 303), sodass A ∈ ℝI×P (z. B. weist A reelle Zahlen mit einer Flächendimension von IxP auf), B (z. B. die Hauptkomponente 304), sodass B ∈ ℝJ×Q (z. B. weist B reelle Zahlen mit einer Flächendimension von JxQ auf), und C (z. B. die Hauptkomponente 305), sodass C ∈ ℝK×R (z. B. weist C reelle Zahlen mit einer Flächendimension von KxR auf), unter der Verwendung von Gleichung (3) auf die folgende Weise. Insbesondere beträgt K ungefähr 1500 (die Anzahl von extrahierten Merkmalskarten), R beträgt ungefähr 750 (z. B. unter Verwendung von 50 % Komprimierung) und I = P und J = Q, wobei IxJ die Auflösung des Eingabevideoframes 111 (und anderer Frames der Segmentierungsnetzeingabe 121) ist. In einigen Ausführungsformen kann die Tucker-Zerlegung wie in Bezug auf Gleichung (3) gezeigt ermittelt werden: min X ^ X X ^  mit  X ^ = p = 1 P q = 1 Q r = 1 R g p q r a r eb r ec r = G × 1 A × 2 B × 3 C
    Figure DE102020129800A1_0003
    wobei e ein tensorielles Produkt bezeichnet, G der Kerntensor ist (Merkmalsframes 119) und A, B, C Faktormatrizen oder Hauptkomponenten im jeweiligen Tensormodus sind und wobei die metrisierte Version wie in Gleichungen (4) gezeigt ausgedrückt werden kann: X ^ ( 1 ) = AG ( 1 ) ( C B ) T X ^ ( 2 ) = BG ( 1 ) ( C A ) T X ^ ( 3 ) = CG ( 1 ) ( B A ) T
    Figure DE102020129800A1_0004
    wobei ⊗ ein Kroneckerprodukt anzeigt.
  • Im Allgemeinen ist eine Komprimierung erreicht, wenn P < I, Q < J und/oder R < K (z. B. wobei der Kerntensor G die komprimierte Version des ursprünglichen Tensors, X, ist). Wie im Kontext des Komprimierens des Merkmalsvolumens 130 auf die Merkmalsframes 119 besprochen, ist die Komprimierung nur in einer Dimension (z. B. der Tiefe oder der Anzahl von Merkmalskarten) vorgesehen.
  • Zu 1 zurückkehrend, wird die Segmentierungsnetzeingabe 121 wie gezeigt dem Segmentierungsnetz 101 bereitgestellt, das eine oder mehrere Segmentierungen 151 generiert, die dem aktuellen Videoframe 111 entspricht. Wie besprochen, enthält eine Verkettung des Kontextmerkmalsvolumens 130 und der Merkmalsframes 119. Wie gezeigt generiert das Segmentierungsnetz 101 in einigen Ausführungsformen mehrere Segmentierungen 151, einschließlich Segmentierung 152 und Segmentierung 153. In derartigen Ausführungsformen kann ein vortrainiertes Auswahlnetz implementiert sein, um ein endgültiges Segmentierungsergebnis zu generieren. In einigen Ausführungsformen werden mehrere Segmentierungen 141 auf Grundlage einer Likelihood der Genauigkeit durch das Segmentierungsnetz 101 gereiht. In anderen Ausführungsformen bietet das Segmentierungsnetz 101 eine einzige Segmentierung 142. Das Segmentierungsnetz 101 kann ein beliebiges geeignetes CNN enthalten, und wie hierin verwendet, bezeichnet der Begriff Segmentierungsnetz ein CNN, das eine oder mehrere Segmentierungsframes 151 auf Grundlage einer Segmentierungsnetzeingabe generiert, sodass jede der mehreren Kandidatensegmentierungen eine Wahrscheinlichkeit anzeigt, dass sich jedes Pixel davon in einem interessierenden Objekt befindet.
  • In einigen Ausführungsformen setzt das Segmentierungsnetz 101 ein Segmentierungsnetz mit kontextsensitiven Skip-Verbindungen ein. Derartige kontextsensitive Skip-Verbindungen verketten ein Ausgabevolumen von einer unmittelbar vorhergehenden Faltungsschicht des Segmentierungsnetzes mit einem Kontextmerkmalsvolumen (z. B. dem Kontextmerkmalsvolumen 130), das dem Segmentierungsnetz als Teil einer Eingabe bereitgestellt wird. Das verkettete Volumen, das das vorhergehende Faltungsschicht-Ausgabevolumen und das Kontextmerkmalsvolumen enthält, wird der unmittelbar nächsten Faltungsschicht als eine Eingabe bereitgestellt, und so weiter. Derartige Techniken stellen das Kontextmerkmalsvolumen allen oder einigen der Faltungsschichten des Segmentierungsnetzes bereit. Insbesondere wird das Kontextmerkmalsvolumen auch zusammen mit Merkmalsframes 119 der ersten Schicht des Segmentierungsnetzes bereitgestellt. Ferner wird angemerkt, dass derartige kontextsensitive Skip-Verbindungen keine Ausgabe von einer Faltungsschicht irgendeiner anderen Faltungsschicht mit Ausnahme einer unmittelbar nachfolgenden Faltungsschicht bereitstellen. Deshalb stellen derartige kontextsensitive Skip-Verbindungen keine Skip-Verbindungen für die Faltungsschichtausgabe bereit, sondern stellen stattdessen jeder (oder einer oder mehreren) auf die erste Schicht des Segmentierungsnetzes folgende Faltungsschicht eine Skip-Verbindung für das Kontextmerkmalsvolumen bereit. Derartige kontextsensitive Skip-Verbindungen können auch als kontextsensitive tiefe Verbindungen oder einfach als kontextsensitive Verbindungen gekennzeichnet sein.
  • Derartige kontextsensitive Verbindungen ermöglichen, dass Merkmale vom Kontextmerkmalsvolumen Schichten umgehen und für tiefe Faltungsschichten unverdünnt bleiben (z. B. von der ersten Schicht verschiedene Schichten). Dadurch wird dem Segmentierungsnetz Zugriff auf eine größere Vielfalt von im Netz tieferen Merkmalsdarstellungen (z. B. vom Kontextmerkmalsvolumen) bereitgestellt, im Gegensatz zu einer strikt hierarchischen Darstellung der Merkmale.
  • 8 veranschaulicht ein beispielhaftes Segmentierungsnetz 800 mit kontextsensitiven Skip-Verbindungen, das nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Beispielsweise kann das Segmentierungsnetz 800 als das Segmentierungsnetz 101 implementiert sein. Wie gezeigt kann das Segmentierungsnetz 800 eine beliebige Anzahl von Faltungsschichten (CLs) 801, 802, 803, 804 enthalten, die eine erste Faltungsschicht 801 enthalten, die ein Segmentierungsnetz-Eingabevolumen 811 aufnimmt. Das Segmentierungsnetz-Eingabevolumen 811 kann zum Beispiel die Segmentierungsnetzeingabe 121 sein, die eine Verkettung, wie durch Verkettungsoperation 821 durchgeführt, des Kontextmerkmalsvolumens 130 und der Merkmalsframes 119 enthält.
  • Das Segmentierungsnetz-Eingabevolumen 811 wird der ersten Faltungsschicht 801 bereitgestellt, die das Segmentierungsnetz-Eingabevolumen 811 durch Anwenden einer beliebigen Anzahl von Faltungsfiltern (wie durch die Segmentierungsnetzarchitektur definiert) unter Verwendung vortrainierter Filtergewichte (wie vom Segmentierungsnetz-Vortraining definiert) auf das Segmentierungsnetz-Eingabevolumen 811 verarbeitet, um ein Faltungsschicht-Ausgabevolumen 812 zu generieren, das beispielsweise die gleiche Auflösung wie das Segmentierungsnetz-Eingabevolumen 811 und eine Tiefe aufweisen kann, die von der Anzahl von Faltungsfiltern oder Kernels definiert ist, die durch die erste Faltungsschicht 801 angewandt wird. Das Faltungsschicht-Ausgabevolumen 812 kann zum Beispiel eine Anzahl von Merkmalskarten enthalten, die gleich der Anzahl von Faltungsfiltern oder Kernels ist, die von der ersten Faltungsschicht 801 angewandt wird, und die gleiche Auflösung wie das Segmentierungsnetz-Eingabevolumen 811.
  • Das Faltungsschicht-Ausgabevolumen 812 wird dann mit dem Kontextmerkmalsvolumen 130 bei der Verkettungsoperation 822 verkettet, um ein Faltungsschicht-Eingabevolumen 813 zu generieren, das eine Kombination des Kontextmerkmalsvolumens 130 und des Faltungsschicht-Ausgabevolumens 812 enthält. Das Faltungsschicht-Eingabevolumen 813 wird der zweiten Faltungsschicht 802 bereitgestellt, die das Faltungsschicht-Eingabevolumen 813 durch Anwenden einer beliebigen Anzahl von Faltungsfiltern unter Verwendung von vortrainierten Filtergewichten auf das Faltungsschicht-Eingabevolumen 813 verarbeitet, um ein Faltungsschicht-Ausgabevolumen 814 zu generieren.
  • Das Faltungsschicht-Ausgabevolumen 814 kann die gleiche Auflösung wie das Segmentierungsnetz-Eingabevolumen 811 und eine Tiefe aufweisen, die durch die Anzahl von Faltungsfiltern oder Kernels definiert ist, die von der zweiten Faltungsschicht 802 angewandt wird. Wie gezeigt folgt die zweite Faltungsschicht 802 unmittelbar auf die erste Faltungsschicht 801, sodass es keine dazwischenliegenden Faltungsschichten dazwischen gibt.
  • Gleichermaßen wird das Faltungsschicht-Ausgabevolumen 814 dann mit dem Kontextmerkmalsvolumen 130 bei der Verkettungsoperation 823 verkettet, um ein Faltungsschicht-Eingabevolumen 815 zu generieren, das eine Kombination des Kontextmerkmalsvolumens 130 und des Faltungsschicht-Ausgabevolumens 814 enthält. Das Faltungsschicht-Eingabevolumen 815 wird der Faltungsschicht 803 bereitgestellt, die das Faltungsschicht-Eingabevolumen 815 wie in Bezug auf die Faltungsschichten 801, 802 besprochen verarbeitet, um ein Faltungsschicht-Ausgabevolumen (nicht gezeigt) zu generieren. Eine derartige Verarbeitung wird für eine beliebige Anzahl von Faltungsschichten durch die Faltungsschicht 804 fortgesetzt, die ein Faltungsschicht-Eingabevolumen 816 empfängt, das eine Verkettung des Kontextmerkmalsvolumens 130 und eines Faltungsschicht-Ausgabevolumens von der Faltungsschicht 803 oder einer anderen Faltungsschicht des Segmentierungsnetzes 800 ist, wie von der Verkettungsoperation 824 bereitgestellt.
  • Wie gezeigt verarbeitet die Faltungsschicht 804 (d. h. die endgültige Faltungsschicht des Segmentierungsnetzes 800) das Faltungsschicht-Eingabevolumen 816, um einen oder mehrere Segmentierungsframes 151 (einschließlich eines oder mehrerer Segmentierungsframes 152, 153) für den aktuellen Videoframe 111 zu generieren. Obwohl in Bezug auf jede Faltungsschicht mit einer kontextsensitiven Skip-Verbindung besprochen, empfängt in einigen Ausführungsformen eine oder mehrere der Faltungsschichten das Kontextmerkmalsvolumen 130 nicht.
  • Das Kontextmerkmalsvolumen 130 kann zum Beispiel den aktuellen Videoframe 111, den vorhergehenden Videoframe 112, den Indikatorframe für ein interessierendes Objekt 115, den Hintergrundindikatorframe 117, den positiven Distanztransformationsframe 116, den negativen Distanztransformationsframe 118 und den vorhergehenden Segmentierungsframe 114 enthalten. Wie gezeigt werden diese Merkmale (wie vom Kontextmerkmalsvolumen 130 bereitgestellt) in einigen Ausführungsformen mit der Ausgabe der vorhergehenden Faltungsschicht verkettet und an die aktuelle Faltungsschicht des Segmentierungsnetzes 800 weitergeleitet. Derartige kontextbasierte Merkmale werden vorteilhafterweise den tiefen Faltungsschichten bereitgestellt, da Kontextmerkmale informationsreiche Merkmale mit hoher Wiedergabetreue für die semantische Segmentierungsaufgabe bieten und folglich stark differenzierend sind. Ferner weist das Segmentierungsnetz durch Weiterleiten von Kontextmerkmalen als Skip-Verbindungen vorteilhafterweise Zugriff auf Merkmale auf, die eine hohe Korrelation mit der durchgeführten Segmentierungsaufgabe aufweisen. Dadurch reserviert das Segmentierungsnetz keinen Mehraufwand, um aufgabenrelevante Merkmale redundant in nachfolgenden Schichten des Netzes zu codieren.
  • Das Segmentierungsnetz 800 kann eine beliebige CNN-Architektur mit einer beliebigen Anzahl von Faltungsschichten enthalten, die jeweils Faltungskernels einer beliebigen Größe, Anzahl und Dilation aufweisen. Ferner können auf einige der Faltungsschichten rektifizierte lineare Einheiten folgen, und nach einer endgültigen Faltungsschicht davon kann das Segmentierungsnetz 800 eine Aktivierungsschicht oder eine Aktivierungsfunktionsschicht enthalten, um pixelweise Wahrscheinlichkeiten bereitzustellen, dass jedes Pixel im interessierenden Objekt liegt. Die Ausgabe des Segmentierungsnetzes 800 kann eine oder mehrere Segmentierungen 151 enthalten, die jeweils pixelweise Wahrscheinlichkeiten enthalten, ob das Pixel im interessierenden Objekt wie oben besprochen enthalten ist. Die Wahrscheinlichkeiten können sich über einen bestimmten Bereich (z. B. von 0 bis inklusive 1) erstrecken oder sie können binär sein.
  • In einer Ausführungsform weist das Segmentierungsnetz 800 eine CNN-Architektur wie durch Tabelle 1 unten skizziert auf, sodass das Segmentierungsnetz 101 9 Schichten gefolgt von einer Aktivierungsfunktionsschicht aufweist, wie oben besprochen. Wie gezeigt kann eine erste Faltungsschicht 75 1×1-Faltungskernels bei Dilation 1 anwenden, die zweite bis achte Faltungsschichten können 75 3x3-Faltungskernel mit steigenden Dilationen von 1, 4, 8, 16, 32, 64 und 128 anwenden und eine neunte Faltungsschicht kann 75 1×1-Faltungsschichten bei Dilation 1 anwenden. Tabelle 1: Beispielhafte Segmentierungsnetzarchitektur
    Schicht 1 2 3 4 5 6 7 8 9
    Faltung 1×1 3×3 3×3 3×3 3×3 3×3 3×3 3×3 3×3
    Dilation 1 1 4 8 16 32 64 128 1
    Tiefe 80 80 80 80 80 80 80 80 80
  • Das Segmentierungsnetz 800 implementiert Netzwerkparameter, die wie hierin unten besprochen vorab trainiert wurden.
  • 9 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 900 zum Generieren einer Segmentierung aus Eingabevideo und Benutzer-Objekt- und Hintergrundauswahlen veranschaulicht, angeordnet nach zumindest einigen Implementierungen der vorliegenden Offenbarung. Der Prozess 900 kann eine oder mehrere Operationen 901-909 enthalten, wie in 9 veranschaulicht. Der Prozess 900 kann von einer beliebigen hierin besprochenen Vorrichtung oder einem beliebigen hierin besprochenen System durchgeführt werden, um eine Segmentierung oder Segmentierungsmaske zu generieren. Der Prozess 900 oder Abschnitte davon können für eine beliebige Anzahl von aktuellen Videoframes, Videosequenzen usw. wiederholt werden. Die resultierende Segmentierungsmaske kann weiter in einer beliebigen Anwendung für visuelle Effekte verwendet werden, wie Rotoskopie-Operationen.
  • Der Prozess 900 beginnt, bei Operation 901, wo ein aktueller Videoframe und ein zeitlich vorhergehender Videoframe (in Erfassungs- und Darstellungsreihenfolge) erhalten werden. Der aktuelle Videoframe und der zeitlich vorhergehende Videoframe können jeweils einen Frame mit einem einzigen Luma-Kanal oder mehrere (z. B. drei) Ebenen oder Frames wie einen Luma-Frame und zwei Chroma-Frames (z. B. YUV, YCbCr) oder drei Chroma-Frames (z. B. RGB) enthalten.
  • Das Verarbeiten fährt bei Operation 902 fort, wo positive und negative Indikatoren, die auf Positionen innerhalb eines interessierenden Objekts empfangen oder projiziert werden und Distanztransformationsframes, einer jeweils dem Frame mit positiven Positionen und dem Frame mit negativen Positionen entsprechend, werden generiert. Für einen ersten Videoframe einer Videosequenz können die positiven und negativen Indikatoren zum Beispiel von einem Benutzer bereitgestellt werden, während für nachfolgende Videoframes der Videosequenz die positiven und negativen Indikatoren unter Verwendung optischer Flusstechniken projiziert werden können. Ferner können bei Operation 902 ein Frame für das interessierende Objekt oder ein Frame mit positiven Positionen und ein Hintergrundframe oder ein Frame mit negativen Positionen, die den positiven bzw. negativen Indikatoren entsprechen, so generiert werden, dass der Frame mit positiven Positionen (durch einen Wert wie eins) Positionen der positiven Indikatoren anzeigt, und der Frame mit negativen Positionen Positionen der negativen Indikatoren mit anderen Werten der Framewerte anzeigt, die einer Negativindikation entsprechen (z. B. unter Verwendung eines Werts von null). Ferner können positive und negative Distanztransformationsframes wie in Bezug auf die Gleichungen (1) generiert werden, sodass der positive Distanztransformationsframe für jedes Pixel davon einen Wert enthält, der auf eine Minimaldistanz zu irgendeiner der Positionen der positiven Indikatoren hinweist, und der negative Distanztransformationsframe für jedes Pixel davon einen Wert enthält, der auf eine Minimaldistanz zu irgendeiner der Positionen der negativen Indikatoren hinweist.
  • Das Verarbeiten fährt bei Operation 903 fort, wo ein Bewegungsframe unter Verwendung beliebiger geeigneter Bewegungsnachverfolgungstechniken wie dichter optischer Flusstechniken generiert wird. In anderen Ausführungsformen können Bewegungsabschätzungstechniken wie Blockübereinstimmungstechniken verwendet werden. Wie besprochen enthält der Bewegungsframe Bewegungsindikatoren, die auf Bewegung vom vorhergehenden Videoframe zum aktuellen Videoframe hinweisen, wie beispielsweise Geschwindigkeitsbewegungsvektoren pro Pixel (z. B. ein Bewegungsvektor für jedes Pixel des Bewegungsframes).
  • Das Verarbeiten fährt bei Operation 904 fort, wo die Größe des aktuellen Videoframes, der bei Operation 901 empfangen wird, geändert wird (z. B. hochskaliert wird) und Teilbilder generiert werden, sodass jedes der Teilbilder eine Größe aufweist, die einer Eingabegröße eines vortrainierten Objektklassifizierungs-CNN entspricht. In einigen Ausführungsformen wird die Größe oder Auflösung des Videoframes mit geänderter Größe wie in Bezug auf Gleichung (2) besprochen generiert, sodass eine diskrete ganzzahlige Anzahl von Teilbildern innerhalb des Videoframes oder Bilds mit geänderter Größe bereitgestellt wird. Das heißt, mit gegebener Eingabegröße des vortrainieren Objektklassifizierungs-CNN, wird eine Größe des Videoframes oder Bilds mit geänderter Größe so ermittelt, dass die Größe um ein Ausmaß, in das ganze Teilbilder in sowohl der horizontalen (entlang einer Breite) als auch vertikalen (entlang einer Höhe) Dimension passen, größer als der aktuelle Eingabevideoframe ist. Obwohl hierin in Bezug auf beispielhaftes Vergrößern des aktuellen Eingabevideoframes besprochen, kann die Größe des aktuellen Eingabevideoframes in einigen Ausführungsformen verringert werden, sodass in sie ganze Teilbilder passen. Beispielsweise kann die Aufrundungsfunktion in Gleichung (2) durch eine Abrundungsfunktion ersetzt werden. Der Videoframe oder das Bild mit geänderter Größe kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken generiert werden, wie beispielsweise Interpolationstechniken.
  • Das Verarbeiten fährt bei Operation 905 fort, wo ein Objektklassifizierungs-CNN oder ein anderes Objekt-CNN auf jedes der bei Operation 904 generierten Teilbilder angewandt wird und pixelweise Hyperkolumnen abgerufen werden. Das Objektklassifizierungs-CNN kann ein beliebiges geeignetes CNN wie das vortrainierte VGG-19-CNN sein. Ferner können die pixelweisen Hyperkolumnen Merkmalswerte aus beliebigen Schichten (z. B. verdeckten Schichten) des vortrainierten CNN enthalten. Jede Hyperkolumne enthält eine Anzahl von Merkmalen für jedes Pixel (z. B. ungefähr 1500 Merkmale oder Werte), die Merkmalskarten umspannen, sodass jedes Pixel in jeder Merkmalskarte einen Merkmalswert aufweist, wie in Bezug auf 3 veranschaulicht. Die abgerufenen Hyperkolumnen und Merkmalskarten können als ein Volumen mit zwei Dimensionen, die den Dimensionen jeder Merkmalskarte entsprechen, und einer dritten Dimension (z. B. Tiefe), die der Dimension jeder Hyperkolumne (und der Anzahl von Merkmalskarten) entspricht.
  • Die pixelweisen Hyperkolumnen werden dann über jedes Teilbild hinweg, um ein Merkmalsvolumen zu generieren, und danach wiederum über das Eingabebild mit geänderter Größe hinweg durch Zusammenführen jedes Teilbildvolumens zusammengeführt, um das Objektklassifizierungs-Ausgabevolumen zu ermitteln. Insbesondere enthält das Objektklassifizierungs-Ausgabevolumen für jedes Pixel davon eine Hyperkolumne mit Merkmalen, die Merkmalskarten umspannt. Ferner weist das Objektklassifizierungs-Ausgabevolumen eine Tiefe, die gleich der Anzahl von abgerufenen Merkmalen ist, und eine Auflösung auf, die gleich dem bei Operation 904 generierten Videoframe oder Bild mit geänderter Größe ist.
  • Das Verarbeiten fährt bei Operation 906 fort, wo die Größe des Objektklassifizierungs-Ausgabevolumens, das bei Operation 905 generiert wurde, auf die Auflösung des aktuellen Videoframes geändert wird, die bei Operation 901 erhalten wurde. Die Größe des Objektklassifizierungs-Ausgabevolumens kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken generiert werden, wie beispielsweise Abwärtsskalierungstechniken. Obwohl in Bezug auf ein Ändern der Größe bei Operation 906 und eine Komprimierung bei Operation 907 (wie unmittelbar unten besprochen wird) veranschaulicht, kann die Komprimierung in einigen Ausführungsformen zuerst (mit der Auflösung des Videoframes oder Bilds mit geänderter Größe) durchgeführt werden und ein nachfolgendes Ändern der Größe (auf die Auflösung des aktuellen Videoframes) kann durchgeführt werden.
  • Das Verarbeiten fährt bei Operation 907 fort, wo das Objektklassifizierungs-Ausgabevolumen mit geänderter Größe, das bei Operation 906 ermittelt wurde, komprimiert wird, um Merkmalsframes mit komprimierten Merkmalen zu generieren. Wie besprochen reduziert eine derartige Komprimierung die Dimensionalität der Tiefe des Volumens (z. B. die Anzahl von Merkmalskarten), während die Dimensionalität (z. B. Größe oder Auflösung) beibehalten wird, die den Dimensionen jeder Merkmalskarte entspricht. Die Komprimierung kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken wie Tucker-Zerlegung durchgeführt werden. In einer Ausführungsform enthält das Komprimieren des Objektklassifizierungs-Ausgabevolumens mit geänderter Größe ein Anwenden der Tucker-Zerlegung, um einen Kerntensor zu ermitteln, der die komprimierten Merkmalsframes ist.
  • Das Verarbeiten fährt bei Operation 908 fort, wo ein Kontextmerkmalsvolumen und die bei Operation 907 generierten Merkmalsframes verkettet werden. Wie hierin besprochen, enthält das Kontextmerkmalsvolumen eine beliebige Kombination des aktuellen Videoframes, eines vorhergehenden Videoframes, eines Bewegungsframes, eines vorhergehenden Segmentierungsframes, eines Indikatorframes für ein interessierendes Objekt, eines Hintergrundindikatorframes, eines positiven Distanztransformationsframes und eines negativen Distanztransformationsframes. Eine beliebige Kombination derartiger Frames wird kombiniert, um das Kontextmerkmalsvolumen bereitzustellen, das mit den komprimierten Merkmalsframes verkettet wird. Insbesondere wird das Kontextmerkmalsvolumen auch tiefen Schichten eines Segmentierungsnetzes bereitgestellt, wie in Bezug auf Operation 909 besprochen.
  • Obwohl hierin in Bezug auf das gleiche Kontextmerkmalsvolumen besprochen, das als Teil des Segmentierungsnetz-Eingabevolumens und des Faltungsschicht-Eingabevolumens an einige der Faltungsschichten des Segmentierungsnetzes bereitgestellt wird, können die Kontextmerkmalsvolumina in einigen Ausführungsformen unterschiedlich sein. In einer Ausführungsform wird ein Kontextmerkmalsvolumen am Eingang des Segmentierungsnetzes bereitgestellt, während ein reduziertes Kontextmerkmalsvolumen einer oder mehreren oder allen der Schichten des Segmentierungsnetzes nach der Eingabeschicht bereitgestellt wird. In einer Ausführungsform enthält das Kontextmerkmalsvolumen eine beliebige Kombination des aktuellen Videoframes, eines vorhergehenden Videoframes, eines Bewegungsframes, eines vorhergehenden Segmentierungsframes, eines Indikatorframes für ein interessierendes Objekt, eines Hintergrundindikatorframes, eines positiven Distanztransformationsframes und eines negativen Distanztransformationsframes, während das reduzierte Kontextmerkmalsvolumen einen oder mehrere derartige Frames eliminiert. In einer Ausführungsform eliminiert das reduzierte Kontextmerkmalsvolumen den Bewegungsframe. In einer Ausführungsform eliminiert das reduzierte Kontextmerkmalsvolumen die positiven und negativen Distanztransformationsframes. In einer Ausführungsform eliminiert das reduzierte Kontextmerkmalsvolumen den Bewegungsframe und die positiven und negativen Distanztransformationsframes. Derartige Techniken können vorteilhafterweise rechnerische Komplexität reduzieren und gleichzeitig einen Vorteil des Weiterleitens von Kontextmerkmalen an die tiefen Schichten des Segmentierungsnetzes beibehalten.
  • Das Verarbeiten fährt bei Operation 909 fort, wo ein Segmentierungsnetz auf ein bei Operation 908 generiertes Segmentierungseingabevolumen angewandt wird, sodass das Segmentierungsnetz Kontextmerkmalsvolumen-sensitive Skin-Verbindungen wie hierin besprochen einsetzt, um eine oder mehrere Segmentierungen zu generieren. Jede auf die erste Faltungsschicht folgende Faltungsschicht des Segmentierungsnetzes kann das Kontextmerkmalsvolumen und die Ausgabe der unmittelbar vorhergehenden Faltungsschicht empfangen. Das Segmentierungsnetz ist wie weiter in Bezug auf 10 besprochen vortrainiert. In einigen Ausführungsformen ist das Segmentierungsnetz unter Verwendung einer Verlustfunktion vortrainiert, die einen Randverlustterm enthält, der eine Differenz zwischen Werten des Grundwissens für Grundwissen-Randpunkte, die einem interessierenden Trainingsobjekt entsprechen, und resultierenden Werten für die Randpunkte, die einer Anwendung des faltenden neuronalen Segmentierungsnetzes während des Trainings entsprechen.
  • In einigen Ausführungsformen kann eine nicht binäre Segmentierung mit Werten, die von 0 bis 1 reichen, mit einer beliebigen Genauigkeit, wie sie bei Operation 909 erhalten wird, unter Verwendung eines beliebigen geeigneten Schwellenwerts, wie 0,5, begrenzt werden, um eine binäre Segmentierungsmaske mit ersten Indikatoren oder Werten (z. B. Werten von eins) zu generieren, die Pixel anzeigen, die als innerhalb des interessierenden Objekts liegend angesehen werden. Beispielsweise können Werte der endgültigen Segmentierung unter 0,5 als Hintergrund angesehen werden und diesen kann ein zweiter Indikator oder Wert (z. B ein Wert von null) zugewiesen werden, während Werte der endgültigen Segmentierung größer oder gleich 0,5 als Teil des interessierenden Objekts angesehen werden können und diesen kann der erste Indikator oder Wert zugewiesen werden. Die nicht binäre Segmentierung und/oder die binäre Segmentierungsmaske kann in einem beliebigen geeigneten Kontext verwendet werden, wie visuelle Effekte, Rotoskopie usw. Insbesondere kann die binäre Segmentierungsmaske verwendet werden, um Pixel (z. B. durch Überlagern in Bezug auf den aktuellen Videoframe) des interessierenden Objekts zu erhalten, um das interessierende Objekt zu extrahieren. Das extrahierte interessierende Objekt kann dann auf einen unterschiedlichen Hintergrund platziert, manipuliert usw. werden.
  • 10 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 1000 zum Training eines Segmentierungsnetzes veranschaulicht, angeordnet nach zumindest einigen Implementierungen der vorliegenden Offenbarung. Der Prozess 1000 kann eine oder mehrere Operationen 1001-1007 enthalten, wie in 10 veranschaulicht. Der Prozess 1000 kann von einer beliebigen hierin besprochenen Vorrichtung oder einem beliebigen hierin besprochenen System durchgeführt werden, um ein beliebiges hierin besprochenes Segmentierungsnetz zu trainieren. Der Prozess 1000 oder Abschnitte davon können für ein beliebiges Training, Trainingsmengen usw. wiederholt werden. Die vom Prozess 1000 generierten Parametergewichte können in einem Arbeitsspeicher gespeichert werden und beispielsweise durch einen Prozessor implementiert werden, um Segmentierungen und Segmentierungsmasken für Videoframes wie hierin besprochen zu generieren.
  • Der Prozess 1000 beginnt bei Operation 1001, wo Trainingsframe erhalten werden und Grundwissensdaten für die Trainingsframes generiert werden. Die Trainingsframes können eine beliebige Anzahl von Trainingsmengen von Videosequenzen mit den hierin besprochenen Eigenschaften enthalten. Beispielsweise ist es wünschenswert, dass die Trainingsframes die gleichen oder ähnliche Eigenschaften in Bezug auf die erwarteten Frames aufweisen, die während der Inferenz erhalten werden. In einigen Ausführungsformen enthalten die Grundwissensdaten einen Hinweis für jedes Pixel jedes der Trainingsframes, ob das Pixel Teil eines interessierenden Objekts oder Teil eines Hintergrunds ist. Derartige Grundwissensdaten können beispielsweise mit einem Wert von eins für Pixel, die Teil des interessierenden Objekts sind, und einem Wert von null für andere Pixel (z. B. Hintergrundpixel) binär sein.
  • Das Verarbeiten fährt bei Operation 1002 fort, wo eine Architektur des Segmentierungsnetzes definiert ist. Die Segmentierungsnetzarchitektur kann beliebige Eigenschaften wie die hierin in Bezug auf das Segmentierungsnetz 101 besprochenen enthalten.
  • Das Verarbeiten fährt bei Operation 1003 fort, wo das aktuelle Segmentierungsnetz auf mindestens einige der Trainingsframes angewandt wird. Das Training des Segmentierungsnetzes kann zum Beispiel ein iterativer Prozess sein, sodass in jeder Trainingsepoche Parameter des Segmentierungsnetzes einschließlich Faltungskernel-Filtergewichte, Aktivierungsfunktionsgewichte und so weiter auf Grundlage einer bei Operation 1004 besprochenen Verlustfunktion aktualisiert werden. Das aktuelle Segmentierungsnetz wird dann aktualisiert und so weiter, bis zu einer Konvergenz. Bei der ersten Iteration von Operation 1003 kann das Segmentierungsnetz mit Parametern und Gewichten unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken initiiert werden, wie eine zufällige Anwendung von Gewichten innerhalb bestimmter Grenzen, ein Festlegen von Gewichten als Durchschnittsgewichte usw.
  • Das Verarbeiten fährt bei Operation 1004 fort, wo auf Grundlage der Ergebnisse von der Anwendung des aktuellen Segmentierungsnetzes bei Operation 1003 ein Verlust auf Grundlage einer Verlustfunkion ermittelt wird. Wie in 10 gezeigt, summiert die angewandte Verlustfunktion in einigen Ausführungsformen einen Jaccard-Verlust, einen interaktiven Inhaltsverlust, einen gereihten Diversitätsverlust und einen Randverlust, wie unten weiter besprochen. In anderen Ausführungsformen können einer oder mehrere der gerade beschriebenen Verluste verworfen werden und/oder zusätzliche Verluste können verwendet werden. Insbesondere enthält die bei Operation 1004 angewandte Verlustfunktion einen Randverlust, um ein Übereinstimmen von Randpunkten in den vom Segmentierungsnetz generierten Segmentierungskandidaten mit den Grundwissen-Randpunkten stark zu fördern.
  • Wie besprochen enthält die Verlustfunktion in einigen Ausführungsformen eine Summe eines Jaccard-Verlusts, eines interaktiven Inhaltsverlusts, eines gereihten Diversitätsverlusts und eines Randverlusts. In einigen Ausführungsformen wird die Verlustfunktion folgendermaßen auf Grundlage von Gleichung (5) angewandt: L f ( θ f ) = i min m { l ( Y i , f m ( X i ; θ f ) ) } + l I C ( S p i , S n i , f m ( X i ; θ f ) ) + i m = 1 M λ m l ( Y i , f m ( X i ; θ f ) ) + i m = 1 M l P H L ( Y i , f m ( X i ; θ f ) )
    Figure DE102020129800A1_0005
    wobei der erste Term nach dem Gleichheitszeichen der Jaccard-Verlust ist, der zweite Term der interaktive Inhaltsverlust ist, der dritte Term der gereihte Diversitätsverlust ist und der vierte Term der Randverlust ist. Die in Bezug auf Gleichung (5) veranschaulichte Verlustfunktion kann als eine Gesamtverlustfunktion gekennzeichnet sein.
  • Wie besprochen bezeichnet der Term l (Yi, fm (Xi; θf)) einen Jaccard-Verlust (oder relaxierten Jaccard-Verlust), wobei 1 den Verlust bezeichnet, Yi einen Grundwissensframe bezeichnet, fm m Segmentierungskandidaten bezeichnet f,Xi der aktuelle Eingabeframe ist und θf die aktuellen Parameter des Segmentierungsnetzes repräsentiert. In einigen Ausführungsformen ist der relaxierte Jaccard-Verlust folgendermaßen in Gleichung (6) definiert: l ( Y , f ( X i ; θ f ) ) = 1 p min ( Y ( p ) , f ( p ) ) p max ( Y ( p ) , f ( p ) )
    Figure DE102020129800A1_0006
    wobei Y(p) den Wert der Grundwissenssegmentierung bei Pixelposition (oder Punkt) p im Grundwissensframe repräsentiert und f(p) die Segmentierungsnetzausgabe an der Pixelposition (oder Punkt) p repräsentiert. Der relaxierte Jaccard ist zum Beispiel einem Schnitt über eine Einheitsmetrik ähnlich, der weniger Verlust vorsieht, wenn die segmentierten interessierenden Bereiche eine bessere Überlappung aufweisen.
  • Der Term l I C ( S p i , S n i , f m ( X i ; θ f ) )
    Figure DE102020129800A1_0007
    bezeichnet einen interaktiven Inhaltsverlust, der als eine Bedingung in Bezug auf Eingabeindikatoren (z. B. Eingabeklickpositionen) und die entsprechenden Distanztransformationen definiert ist, wie hierin besprochen. In einigen Ausführungsformen ist der interaktive Inhaltsverlust folgendermaßen in Gleichung (7) definiert: l I C ( S p , S n , f ( X i ; θ f ) ) = S p ( S p f ( X i ; θ f ) ) 1 + S n ( S n ( 1 f ( X i ; θ f ) ) ) 1
    Figure DE102020129800A1_0008
    wobei * das Hadamard (z. B. elementweise Produkt) bezeichnet. Insbesondere pönalisiert der interaktive Inhaltsverlust in Bezug auf die besprochenen Benutzereingabepositionen ungenaue Ergebnisse.
  • Der Term λml (Yi, fm (Xi; θf)) bezeichnet einen gereihten Diversitätsverlust and und dient dazu, ein Erzeugen von visuell diversen Segmentierungen zu fördern und eine intrinsische Reihung auf die Segmentierungen anzuwenden. Eine derartige Bedingung ist aufgrund der multimodalen Intrinsisch-zu-semantisch-Segmentierungsprobleme vorteilhaft. Ferner kann die Bedingung dem Segmentierungsnetz direkt durch Auswählen einer skalaren Gruppe {λm} auferlegt werden, um eine willkürliche Reihenfolge zu fördern, die vom Segmentierungsnetz selbst aufgelöst werden muss.
  • Schließlich bezeichnet der Term la-PHL Yi,fm (Xi; θf)) eine Randverlustfunktion, sodass Verluste an Randpixeln pönalisiert werden und gefördert wird, dass das Segmentierungsnetz Randpunkte aufweist, die mit dem Grundwissen übereinstimmen. Beispielsweise, für Randpixel (wie von den Grundwissensdaten definiert) ein Verlust, wie er auf Grundlage der Differenz zwischen dem Grundwissenswert für das Randpixel (z. B. einem Wert von eins) und dem Segmentierungswert für das Randpixel (z. B. einer Wahrscheinlichkeit, die von null bis inklusive reicht). Wie hierin verwendet, verweist der Term Randpixel auf ein Pixel innerhalb eines interessierenden Objekts, sodass sich mindestens ein dem Randpixel benachbartes Pixel außerhalb des interessierenden Objekts befindet (und oft befindet sich mindestens ein anderes benachbartes Pixel innerhalb des interessierenden Objekts). Beispielsweise wird ein Segmentierungsnetz unter Verwendung einer Verlustfunktion vortrainiert, die einen Randverlustterm enthält, der eine Differenz zwischen Werten des Grundwissens für Grundwissen-Randpunkte, die einem interessierenden Trainingsobjekt entsprechen, und resultierenden Werten für die Randpunkte, die einer Anwendung des faltenden neuronalen Segmentierungsnetzes während des Trainings entsprechen. In einigen Ausführungsformen enthält der Randverlustterm einen Pseudo-Huber-Verlustterm, der ein Quadrat eines Bruchteils der Differenz über einen Steilheitsparameter enthält, wobei der Steilheitsparameter Randsegmentierungsfehler im faltenden neuronalen Segmentierungsnetz zu pönalisieren hat. In einigen Ausführungsformen enthält der Randverlustterm einen Pseudo-Huber-Verlust, wie durch Gleichung (8) definiert: l P H L ( Y , f ( X i ; θ f ) ) = δ 2 ( 1 + ( ( Y ( Y ( p ) ) f ( Y ( p ) ) ) / δ ) 2 1 )
    Figure DE102020129800A1_0009
    wobei l∂-PHL der Pseudo-Huber-Verlust ist, Y die Grundwissenssegmentierung ist, Y[∂Y(p)) den Wert der Grundwissenssegmentierung an einer Randpixelposition (∂Y) (oder einem Randpixelpunkt) p im Grundwissensframe repräsentiert, f(∂Y(p)) die Segmentierungsnetzausgabe an den entsprechenden Randpixelpositionen repräsentiert und δ ein Steilheitsparameter ist. Der relaxierte Jaccard ist zum Beispiel einem Schnitt über eine Einheitsmetrik ähnlich, der weniger Verlust vorsieht, wenn die segmentierten interessierenden Bereiche eine bessere Überlappung aufweisen. Wie gezeigt enthält der Pseudo-Huber-Verlust Differenzen zwischen Werten des Grundwissens für Grundwissen-Randpunkte (Y(∂Y(p))), die einem interessierenden Trainingsobjekt entsprechen, und resultierenden Werten für die Randpunkte (f(∂Y(p))), die einer Anwendung des faltenden neuronalen Segmentierungsnetzes während des Trainings entsprechen. Ferner enthält der Randverlustterm ein Quadrat eines Bruchteils der Differenz über einen Steilheitsparameter ((Y(∂Y(p)) - f(∂Y(p))) /δ)2) enthält, wobei der Steilheitsparameter Randsegmentierungsfehler im faltenden neuronalen Segmentierungsnetz zu pönalisieren hat. Der Steilheitsparameter kann ein beliebiger Wert sein und kann unter Verwendung heuristischer Techniken ermittelt werden.
  • Wie besprochen kann der Gesamtverlust auf Grundlage einer Summierung der besprochenen Verlustterme ermittelt werden.
  • Das Verarbeiten fährt bei Operation 1005, wo der Verlust durch das Segmentierungsnetz propagiert wird. Der Verlust kann unter einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken wie Rückwärtspropagierungstechniken weitergeleitet werden. Insbesondere können die Gewichte und die Parameter des Segmentierungsnetzes auf Grundlage des Verlusts angepasst werden, um ein nun aktuelles Segmentierungsnetz zu generieren.
  • Das Verarbeiten fährt bei Entscheidungsoperation 1006 fort, wo eine Ermittlung erfolgt, ob eine Konvergenz des Segmentierungsnetzes erreicht wurde. Die Konvergenzentscheidung kann unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken erfolgen, zum Beispiel dass ein Gesamtverlust des Segmentierungsnetzes unter einem vorbestimmten Schwellenwert, einer Maximalanzahl von Trainingsepochen, die durchgeführt werden, usw. Falls keine Konvergenz erzielt wurde, fährt das Verarbeiten bei den Operationen 1003-1006 fort, bis eine Konvergenz erhalten wird.
  • Nachdem die Konvergenz erhalten wurde, fährt das Verarbeiten bei Operation 1007 fort, wo die Gewichte und Parameter des Segmentierungsnetzes in einem Arbeitsspeicher zur Anwendung durch ein System, wie das System 100 oder ein beliebiges anderes hierin besprochenes Vorrichtungssystem, gespeichert werden.
  • 11 veranschaulicht einen beispielhaften Eingabevideoframe 1101 zur Segmentierung und eine entsprechende resultierende Segmentierung 1102, nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet. Insbesondere kann die Segmentierung 1102 unter Verwendung der hierin besprochenen Techniken generiert werden. In den Beispielen von 11 veranschaulicht Segmentierung 1102 eine binäre Maske, wobei weiß ein interessierendes Objekt repräsentiert und schwarz einen Hintergrund repräsentiert, wie hierin besprochen. Wie gezeigt repräsentiert die Segmentierung 1102 das interessierende Objekt (in diesem Fall ist das interessierende Objekt eine Kombination eines Fahrers und eines Motorrads) im Eingabevideoframe 1101 genau. Ferner ergibt die resultierende Segmentierung 1102 Segmentierungsergebnisse mit hoher Wiedergabetreue mit glatten und genauen Randkonturen und zeitlicher Kohärenz von Frame zu Frame durch das gesamte Video (sowohl in Bezug auf die Wiedergabetreue als auch reduziertem Zittern).
  • Die besprochenen Techniken bieten eine verbesserte semantische Segmentierung in Video einschließlich optionaler Verwendung von 2K-Inferenz (für verbesserte Auflösung), geringe Benutzereingabensegmentierung (wobei z. B. nur positive und negative Klicks auf einen ersten Frame einer Videosequenz erforderlich sind) mit einer Automatisierung auf Grundlage einer Projektion der anfänglichen Benutzereingabe, eine anwendungsgesteuerte Tensorzerlegung, wie sie auf aus einem Klassifizierungs-CNN extrahierte Merkmale für reduzierte Arbeitsspeichernutzung und rechnerische Komplexität angewandt wird, eine Implementierung einer Randverlustfunktion, um Segmentierungen mit hochwertigen Randkonturen zu rendern und eine verbesserte zeitliche Kohärenz durch die Verwendung von Bewegungsdaten wie von optischen Flussdaten.
  • 12 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 1200 zum Bereitstellen einer Segmentierung in Video unter Verwendung eines Segmentierungsnetzes veranschaulicht, das kontextsensitive Verbindungen einsetzt, angeordnet nach zumindest einigen Implementierungen der vorliegenden Offenbarung. Der Prozess 1200 kann eine oder mehrere Operationen 1201-1206 enthalten, wie in 12 veranschaulicht. Der Prozess 1200 kann zumindest einen Teil eines Videosegmentierungsprozesses bilden. Wie hierin verwendet, bezeichnet der Begriff Videosegmentierung ein Segmentieren eines oder mehrerer Videoframes des Videos, sodass jedes Pixel (oder kleine Pixelbereiche) der Videoframes Wahrscheinlichkeiten enthalten, ob sich das Pixel innerhalb eines bestimmten Bereichs (z. B. eines Bereichs für ein interessierendes Objekt, eines primären Bereichs usw.) des Videoframes befindet. Als nicht einschränkendes Beispiel kann der Prozess 1200 zumindest einen Teil eines Videosegmentierungsprozesses bilden, der vom System 100 wie hierin während einer Implementierung oder Inferenzphase besprochen durchgeführt wird.
  • 13 ist ein Ablaufdiagramm, das einen beispielhaften Prozess 1300 zum Bereitstellen einer Segmentierung in Video unter Verwendung von Tessellationstechniken veranschaulicht, angeordnet nach zumindest einigen Implementierungen der vorliegenden Offenbarung. Der Prozess 1300 kann eine oder mehrere Operationen 1301-1305 enthalten, wie in 13 veranschaulicht. Der Prozess 1300 kann zumindest einen Teil eines Videosegmentierungsprozesses bilden. Als nicht einschränkendes Beispiel kann der Prozess 1300 zumindest einen Teil eines Videosegmentierungsprozesses bilden, der vom System 100 wie hierin während einer Implementierung oder Inferenzphase besprochen durchgeführt wird.
  • Ferner kann bzw. können der Prozess 1200 und/oder der Prozess 1300 vom System 1400 von 14 durchgeführt werden. Insbesondere können Operationen oder Merkmale der Prozesse 1200, 1300 separat oder gemeinsam miteinander eingesetzt werden.
  • 14 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1400 zum Bereitstellen einer Segmentierung in Video, das nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. Wie in 14 kann das System 1400 eine oder mehrere zentrale Verarbeitungseinheiten (CPU) 1401 (d. h. zentrale Prozessor(en)), eine Grafikverarbeitungseinheit 1402 (d. h. einen Grafikprozessor) und Arbeitsspeicher 1403 enthalten. Auch kann die Grafikverarbeitungseinheit 1402 das Segmentierungsnetz 101, das Merkmalsextrahierungsmodul 102 und das Merkmalskomprimierungsmodul 103 enthalten oder implementieren. Derartige Module oder Komponenten können implementiert werden, um Operationen wie hierin besprochen durchzuführen. Im Beispiel des Systems 1400 können die Arbeitsspeicher 1403 Videoframedaten, Bewegungsdaten, Segmentierungsdaten, Merkmalsframedaten, Benutzereingabedaten, Indikatorframedaten für ein interessierendes Objekt oder Hintergrundindikatorframedaten, positive oder negative Distanztransformationsframedaten, Merkmalskartendaten, CNN-Parameter oder Gewichte oder beliebige andere Daten oder eine beliebige andere Datenstruktur speichern, die hierin besprochen sind bzw. ist.
  • Wie gezeigt sind in einigen Beispielen das Segmentierungsnetz 101, das Merkmalsextrahierungsmodul 102 und das Merkmalskomprimierungsmodul 103 durch die Grafikverarbeitungseinheit 1402 implementiert. In anderen Beispielen sind eines oder mehrere oder Abschnitte des Segmentierungsnetzes 101, des Merkmalsextrahierungsmoduls 102 und des Merkmalskomprimierungsmoduls 103 durch die zentralen Verarbeitungseinheiten 1401 oder eine Bildverarbeitungseinheit (nicht gezeigt) des Systems 1400 implementiert. In noch anderen Beispielen können eines oder mehrere oder Abschnitte des Segmentierungsnetzes 101, des Merkmalsextrahierungsmoduls 102 und des Merkmalskomprimierungsmoduls 103 durch eine Bildverarbeitungspipeline, Grafikpipeline oder dergleichen implementiert sein.
  • Die Grafikverarbeitungseinheit 1402 kann eine beliebige Anzahl und einen beliebigen Typ von Grafikverarbeitungseinheiten enthalten, die die Operationen wie hierin besprochen bereitstellen können. Derartige Operationen können durch Software oder Hardware oder eine Kombination davon implementiert sein. Beispielsweise kann die Grafikverarbeitungseinheit 1402 Verschaltung enthalten, die zum Manipulieren von aus den Arbeitsspeichern 1403 erhaltenen Videodaten, CNN-Daten usw. dediziert sind. Die zentralen Verarbeitungseinheiten 1401 können eine beliebige Anzahl und einen beliebigen Typ von Verarbeitungseinheiten oder Modulen enthalten, die eine Steuerung oder andere Funktionen auf hoher Ebene für das System 1400 bereitstellen können und/oder beliebige Operationen wie hierin besprochen bereitstellen können. Die Arbeitsspeicher 1403 können ein beliebiger Typ von Arbeitsspeicher wie flüchtiger Arbeitsspeicher (z. B. statischer Arbeitsspeicher mit wahlfreiem Zugriff (SRAM), dynamischer Arbeitsspeicher mit wahlfreiem Zugriff (DRAM) usw.) oder nichtflüchtiger Arbeitsspeicher (z. B. Flashspeicher usw.) und so weiter sein. In einem nicht einschränkenden Beispiel können die Arbeitsspeicher 1403 durch Zwischenspeicher implementiert sein. In einer Ausführungsform ist bzw. sind eines oder mehrere oder Abschnitte des Segmentierungsnetzes 101, des Merkmalsextrahierungsmoduls 102 und des Merkmalskomprimierungsmoduls 103 durch eine Ausführungseinheit (EU) der Grafikverarbeitungseinheit 1402 implementiert. Die EU kann zum Beispiel programmierbare Logik oder Verschaltung enthalten, wie zum Beispiel einen Logikkern oder Logikkerne, die eine breite Anordnung von programmierbaren Logikfunktionen bereitstellen können. In einer Ausführungsform ist bzw. sind eines oder mehrere oder Abschnitte des Segmentierungsnetzes 101, des Merkmalsextrahierungsmoduls 102 und des Merkmalskomprimierungsmoduls 103 durch dedizierte Hardware wie feste Funktionsverschaltung oder dergleichen implementiert. Die feste Funktionsverschaltung kann dedizierte Logik oder Verschaltung enthalten und kann eine Gruppe von festen Funktionseinstiegspunkten bereitstellen, die für einen festen Zweck oder eine feste Funktion auf die dedizierte Logik abgebildet sind. In einigen Ausführungsformen ist bzw. sind eines oder mehrere oder Abschnitte des Segmentierungsnetzes 101, des Merkmalsextrahierungsmoduls 102 und des Merkmalskomprimierungsmoduls 103 durch einen anwendungsspezifischen integrierten Schaltkreis (ASIC) implementiert. Der ASIC kann eine integrierte Verschaltung enthalten, die maßgeschneidert ist, um die hierin besprochenen Operationen durchzuführen.
  • Zur Besprechung von 12 zurückkehrend beginnt der Prozess 1200 bei Operation 1201, wo ein Merkmalsvolumen, das einem aktuellen Videoframe entspricht, generiert wird. Das Merkmalsvolumen oder Kontextmerkmalsvolumen kann eine beliebige Kombination des aktuellen Videoframes, eines vorhergehenden Videoframes, eines Bewegungsframes, eines vorhergehenden Segmentierungsframes, eines Indikatorframes für ein interessierendes Objekt, eines Hintergrundindikatorframes, eines positiven Distanztransformationsframes und eines negativen Distanztransformationsframes enthalten. In einer Ausführungsform enthält das Merkmalsvolumen den aktuellen Videoframe und eines oder mehrere von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe enthält. In einer Ausführungsform enthält das Merkmalsvolumen den aktuellen Videoframe, den zeitlich vorhergehenden Videoframe, den zeitlich vorhergehenden Segmentierungsframe und den Indikatorframe für ein interessierendes Objekt. In einer Ausführungsform zeigen der eine oder die mehreren Indikatoren des Indikatorframes für ein interessierendes Objekt Positionen von positiven Indikatoren an, die auf das interessierende Objekt hinweisen, und das Merkmalsvolumen enthält ferner einen Hintergrundindikatorframe, der negative Indikatoren enthält, die auf Positionen eines Hintergrunds ohne das interessierende Objekt hinweisen, einen positiven Distanztransformationsframe, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der positiven Indikatoren hinweist, und einen negativen Distanztransformationsframe, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der negativen Indikatoren hinweist.
  • Das Verarbeiten fährt bei Operation 1202 fort, wo das Merkmalsvolumen mit mehreren Merkmalsframes kombiniert wird, die jeweils Merkmale enthalten, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren. In einigen Ausführungsformen wird das faltende neuronale Netz auf den aktuellen Videoframe angewandt, um ein CNN-Merkmalsvolumen zu generieren, das dann komprimiert wird, um die Merkmalsframes zu liefern. In einigen Ausführungsformen wird das faltende neuronale Netz auf Teilbilder von einer Version des aktuellen Videoframes mit geänderter Größe angewandt, um ein CNN-Merkmalsvolumen zu generieren, das dann komprimiert wird, um die Merkmalsframes zu liefern. In einer Ausführungsform werden die Merkmalsframes generiert durch Ändern einer Größe des aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe, der mehrere Teilbilder enthält, die jeweils Dimensionen aufweisen, die Dimensionen des faltenden neuronalen Objektklassifizierungsnetzes entsprechen, Anwenden des faltenden neuronalen Netzes auf jedes der Teilbilder, Abrufen, für jedes Pixel jedes der Teilbilder, jeweils von einer der Schichten des faltenden neuronalen Netzes mehrere Merkmalswerten, um für jedes Pixel eine Hyperkolumne mit Merkmalswerten zu generieren, und Komprimieren der Hyperkolumnen mit Merkmalswerten, um die Vielzahl von Merkmalsframes zu ermitteln. In einer Ausführungsform umfasst das Komprimieren der Hyperkolumnen ein Anwenden einer Tucker-Zerlegung auf ein Merkmalsvolumen, das die Hyperkolumnen umfasst, um einen Kerntensor zu ermitteln, der die Vielzahl von komprimierten Merkmalsframes umfasst.
  • Das Verarbeiten fährt bei Operation 1203 fort, wo eine erste Faltungsschicht von mehreren Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen angewandt wird. Das Segmentierungsnetz kann eine beliebige Anzahl von Faltungsschichten enthalten, wobei die erste Faltungsschicht das Segmentierungsnetz-Eingabevolumen zur Verarbeitung empfängt. Die erste Faltungsschicht kann zum Beispiel ein entsprechendes Faltungsschicht-Ausgabevolumen auf Grundlage des Segmentierungsnetz-Eingabevolumens generieren.
  • Das Verarbeiten fährt bei Operation 1204 fort, wo das Merkmalsvolumen mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten kombiniert wird, um ein Faltungsschicht-Eingabevolumen zu generieren. Insbesondere kann das Merkmalsvolumen mit einem Ausgabevolumen von einer, einigen oder allen Faltungsschichten vor der endgültigen Faltungsschicht kombiniert werden. Danach empfängt die nachfolgende Faltungsschicht das kombinierte Volumen (d. h. ein Faltungsschicht-Eingabevolumen) zur Verarbeitung an der nachfolgenden Faltungsschicht. In einigen Ausführungsformen wird das Merkmalsvolumen mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten kombiniert, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren. Das heißt, jede Schicht des Segmentierungsnetzes mit Ausnahme der ersten Schicht kann eine Verkettung eines Ausgabevolumens von einer unmittelbar vorhergehenden Schicht und des Merkmalsvolumens verarbeiten. In einigen Ausführungsformen enthält das Kombinieren des Merkmalsvolumens und des Faltungsschicht-Ausgabevolumens von der ersten Faltungsschicht oder der zweiten Faltungsschicht ein Verketten des Merkmalsvolumens und des Ausgabevolumens, sodass das Merkmalsvolumen und das Faltungsschicht-Ausgabevolumen die gleiche Auflösung aufweisen. In einigen Ausführungsformen besteht das zweite Faltungsschicht-Eingabevolumen aus dem Merkmalsvolumen und dem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder der zweiten Faltungsschicht und ist ohne jegliches Faltungsschicht-Ausgabevolumen von irgendeiner anderen Faltungsschicht des Segmentierungsnetzes.
  • Das Verarbeiten fährt bei Operation 1205 fort, wo eine dritte Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen angewandt wird, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren. Insbesondere kann die dritte Faltungsschicht unmittelbar auf die erste Faltungsschicht (d. h. die erste Schicht im Segmentierungsnetz und die Schicht, die das Segmentierungsnetz-Eingabevolumen verarbeitet hat) oder eine andere Faltungsschicht (d. h. eine von der ersten Faltungsschicht verschiedene Schicht) folgen. Wie besprochen kann in einigen Ausführungsformen jede Schicht des Segmentierungsnetzes mit Ausnahme der ersten Schicht eine Verkettung eines Ausgabevolumens von einer unmittelbar vorhergehenden Schicht und des Merkmalsvolumens verarbeiten. In anderen Ausführungsformen verarbeiten nicht alle Schichten des Segmentierungsnetzes mit Ausnahme der ersten Schicht eine Kombination eines Ausgabevolumens von einer unmittelbar vorhergehenden Schicht und des Merkmalsvolumens. Das heißt, einige Schichten können die kontextsensitiven Skip-Verbindungen nicht implementieren.
  • Das Verarbeiten fährt bei Operation 1206 fort, wo ein aktueller Segmentierungsframe aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens. Das zweite Faltungsschicht-Ausgabevolumen kann zum Beispiel an eine nachfolgende Faltungsschicht des Segmentierungsnetzes weitergeleitet (und optional mit dem Merkmalsvolumen verkettet) werden und eine derartige Verarbeitung kann durch eine endgültige Faltungsschicht des Segmentierungsnetzes fortfahren, die eine resultierende Segmentierung oder mehrere resultierende Segmentierungskandidaten bereitstellt, die dem aktuellen Videoframe entsprechen.
  • Der Prozess 1200 kann eine Generierung einer oder mehrerer Segmentierungen für einen aktuellen Videoframe bereitstellen. Der Prozess 1200 kann eine beliebige Anzahl von Malen entweder in Reihe oder parallel für eine beliebige Anzahl von Videoframes, Videosequenzen usw. wiederholt werden.
  • Wenn man sich nun einer Besprechung von 13 zuwendet, beginnt Prozess 1300 bei Operation 1301, wo die Größe eines aktuellen Videoframes mit mehreren Teilbildern geändert wird, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen. Das heißt, jedes Teilbild weist eine Größe oder Auflösung (z. B. Höhe und Breite) auf, die gleich einer Eingangsauflösung des faltenden neuronalen Objektklassifizierungsnetzes ist. In einigen Ausführungsformen kann die Größe oder Auflösung des aktuellen Videoframes mit geänderter Größe so ermittelt werden, dass die Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite, die gleich einem Produkt einer Eingangsbreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingangsbreite des faltenden neuronalen Netzes angewandten Aufrundungsfunktion ist, und eine Höhe aufweist, die gleich einem Produkt einer Eingangshöhe des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer auf ein Verhältnis einer Höhe des aktuellen Videoframes zur Eingangshöhe des faltenden neuronalen Netzes angewandten Aufrundungsfunktion ist. Dadurch enthält der aktuelle Videoframe mit geänderter Größe eine diskrete ganze Zahl von Teilbildern, die jeweils Dimensionen aufweisen, die zum Verarbeiten durch das faltende neuronale Netz geeignet sind. In einigen Ausführungsformen besteht der aktuelle Videoframe mit geänderter Größe aus einem Raster der Teilbilder.
  • Das Verarbeiten fährt bei Operation 1302 fort, wo das faltende neuronale Objektklassifizierungsnetz auf jedes der Teilbilder angewandt wird und für jedes Pixel jedes der Teilbilder mehrere Merkmalswerte jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes abgerufen werden, um ein Objektklassifizierungs-Ausgabevolumen zu generieren. Das Objektklassifizierungs-Ausgabevolumen kann zum Beispiel eine Anzahl von Merkmalskarten enthalten, die jeweils einen Merkmalswert für ein Pixel des aktuellen Videoframes mit geänderter Größe aufweisen, sodass jede Merkmalskarte von einem bestimmten Faltungsschicht-Ausgabevolumen des faltenden neuronalen Objektklassifizierungsnetzes erhalten oder abgerufen wird. Insbesondere kann eine beliebige Anzahl von derartigen Merkmalskarten von einer beliebigen Anzahl von Faltungsschichten stammen. In einigen Ausführungsformen werden alle Merkmalskarten von jeder der Faltungsschichten erhalten. In anderen Ausführungsformen werden ausgewählte Merkmalskarten abgerufen. In einigen Ausführungsformen werden Merkmalsvolumen (die z. B. eine Hyperkolumne von Merkmalen für jedes Pixel aufweisen), die den Teilbildern entsprechen, zusammengeführt, um das Objektklassifizierungs-Ausgabevolumen (das z. B. eine Hyperkolumne von Merkmalen für jedes Pixel) für den aktuellen Videoframe mit geänderter Größe zu ermitteln. In einigen Ausführungsformen wird eine derartige Teilbildverarbeitung durch das faltende neuronale Objektklassifizierungsnetz für zwei oder mehr Teilbilder parallel durchgeführt. In einigen Ausführungsformen enthält das Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder ein paralleles Anwenden der Objektklassifizierung auf ein erstes Teilbild und ein zweites Teilbild.
  • Das Verarbeiten fährt bei Operation 1303 fort, wo die Größe des Objektklassifizierungs-Ausgabevolumens auf die Dimensionen des aktuellen Videoframes geändert wird. Das Objektklassifizierungs-Ausgabevolumen kann zum Beispiel auf die Dimensionen des aktuellen Videoframes abwärtsskaliert oder verkleinert werden, der auf den aktuellen Videoframe mit geänderter Größe hochskaliert wurde. Insbesondere wird die Tiefe des Objektklassifizierungs-Ausgabevolumens nicht bei einem derartigen Verarbeiten modifiziert.
  • Das Verarbeiten fährt bei Operation 1304 fort, wo ein Merkmalsvolumen, das dem aktuellen Videoframe entspricht, mit Merkmalsframes kombiniert wird, die jeweils Merkmale enthalten, die aus dem bei Operation 1303 generierten Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren. Wie hierin besprochen kann das Merkmalsvolumen oder Kontextmerkmalsvolumen eine beliebige Kombination der Kontextmerkmale vom aktuellen Videoframe wie dem aktuellen Videoframe, einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe, einem Indikatorframe für ein interessierendes Objekt, einem Hintergrundindikatorframe, einem positiven Distanztransformationsframe, einem negativen Distanztransformationsframe und einem Bewegungsframe enthalten. In einigen Ausführungsformen enthält das Merkmalsvolumen den aktuellen Videoframe, einen zeitlich vorhergehenden Videoframe, einen zeitlich vorhergehenden Segmentierungsframe und einem Indikatorframe für ein interessierendes Objekt, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst. Das Merkmalsvolumen wird mit einem komprimierten Objektklassifizierungs-Ausgabevolumen kombiniert, das aus dem Objektklassifizierungs-Ausgabevolumen unter Verwendung einer beliebigen geeigneten Technik oder beliebiger geeigneter Techniken wie Tucker-Zerlegungstechniken komprimiert sein kann, wie hierin besprochen. Das resultierende Eingabevolumen ist zum Verarbeiten durch ein Segmentierungsnetz wie hierin besprochen geeignet und kann als ein Segmentierungsnetz-Eingabevolumen, ein Segmentierungsnetz-Eingabemerkmalsvolumen oder dergleichen gekennzeichnet sein.
  • Das Verarbeiten fährt bei Operation 1305 fort, wo ein faltendes neuronales Segmentierungsnetz auf das Eingabevolumen angewandt wird, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren. In einigen Ausführungsformen implementiert das faltende neuronale Segmentierungsnetz kontextsensitive Skip-Verbindungen, wie hierin besprochen. In einigen Ausführungsformen ist das faltende neuronale Segmentierungsnetz nur ein Feed-Forward-Netz ohne derartige kontextsensitive Skip-Verbindungen. Das faltende neuronale Segmentierungsnetz stellt eine resultierende Segmentierung oder mehrere resultierende Segmentierungskandidaten bereit, die dem aktuellen Videoframe entspricht bzw. entsprechen.
  • Der Prozess 1300 kann eine Generierung einer oder mehrerer Segmentierungen für einen aktuellen Videoframe bereitstellen. Der Prozess 1300 kann eine beliebige Anzahl von Malen entweder in Reihe oder parallel für eine beliebige Anzahl von Videoframes, Videosequenzen usw. wiederholt werden.
  • Verschiedene Komponenten der hierin beschriebenen Systeme können in Software, Firmware und/oder Hardware und/oder einer beliebigen Kombination davon implementiert sein. Verschiedene Komponenten von hierin besprochenen Vorrichtungen oder Systemen können zum Beispiel zumindest teilweise durch Hardware eines Ein-Chip-Rechensystems (Rechen-SoC) bereitgestellt werden, wie es zum Beispiel in einem Rechensystem wie beispielsweise einem Computer, einem Laptop-Computer, einem Tablet oder einem Smartphone gefunden wird. Derartige Komponenten oder Module können zum Beispiel durch einen Mehrkern-SoC-Prozessor implementiert sein. Fachleute werden erkennen, dass hierin beschriebene Systeme zusätzliche Komponenten enthalten können, die nicht in den entsprechenden Figuren gezeigt wurden.
  • Während eine Implementierung der hierin besprochenen beispielhaften Prozesse die Unternehmung aller gezeigten Operationen in der veranschaulichten Reihenfolge enthalten kann, ist die vorliegende Offenbarung in dieser Hinsicht nicht eingeschränkt, und eine Implementierung der beispielhaften Prozesse hierin kann in verschiedenen Beispielen nur eine Teilmenge der gezeigten Operationen, Operationen, die in einer von der veranschaulichten Reihenfolge verschiedenen durchgeführt werden, oder zusätzliche Operationen enthalten.
  • Darüber hinaus kann bzw. können eine oder mehrere beliebige der hierin besprochenen Operationen als Reaktion auf Anweisungen durchgeführt werden, die von einem oder mehreren Computerprogrammprodukten bereitgestellt werden. Derartige Programmprodukte können signaltragende Medien enthalten, die Anweisungen bereitstellen, die bei Ausführung beispielsweise durch einen Prozessor die hierin beschriebene Funktionalität bereitstellen können. Die Computerprogrammprodukte können in einer beliebigen Form eines oder mehrerer maschinenlesbarer Medien bereitgestellt werden. Deshalb kann zum Beispiel ein Prozessor, der eine oder mehrere Grafikverarbeitungseinheit(en) oder Prozessorkern(e) enthält, einen oder mehrere der Blöcke der beispielhaften Prozesse hierin als Reaktion auf Programmcode und/oder Anweisungen oder Anweisungssätze durchführen, die dem Prozessor von einem oder mehreren maschinenlesbaren Medien übermittelt werden. Im Allgemeinen kann ein maschinenlesbares Medium Software in Form von Programmcode und/oder Anweisungen oder Anweisungssätzen übermitteln, die beliebige der hierin beschriebenen Vorrichtungen und/oder Systeme veranlassen, zumindest Abschnitte der besprochenen Operationen, Module oder Komponenten, die hierin besprochen sind, zu implementieren.
  • Wie in einer beliebigen hierin beschriebenen Implementierung verwendet, bezeichnet der Begriff „Modul“ eine beliebige Kombination von Softwarelogik, Firmwarelogik, Hardwarelogik und/oder Verschaltung, die ausgelegt ist bzw. sind, die hierin beschriebene Funktionalität bereitzustellen. Die Software kann als ein Softwarepaket, Code und/oder Anweisungssatz oder Anweisungen ausgebildet sein, und „Hardware“, wie in einer beliebigen hierin beschriebenen Implementierung verwendet, kann zum Beispiel einzeln oder in einer beliebigen Kombination fest verdrahtete Verschaltung, programmierbare Verschaltung, Zustandsmaschinenverschaltung, feste Funktionsverschaltung, Ausführungseinheitsverschaltung und/oder Firmware enthalten, die von programmierbarer Verschaltung ausgeführte Anweisungen speichert. Die Module können gemeinsam oder einzeln als Verschaltung ausgebildet sein, die einen Teil eines größeren Systems bildet, zum Beispiel eines integrieren Schaltkreises (IC), Ein-Chip-Systems (SoC) und so weiter.
  • 15 ist ein veranschaulichendes Diagramm eines beispielhaften Systems 1500, das nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. In verschiedenen Implementierungen kann das System 1500 ein Rechensystem sein, obwohl das System 1500 in diesem Kontext nicht eingeschränkt ist. Das System 1500 kann zum Beispiel in einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, ein Tablet, Phablet, Touchpad, einen tragbaren Computer, einen in der Hand gehaltenen Computer, einen Palmtop-Computer, einen Organizer (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, einen Fernseher, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder einen Smart-Fernseher), eine mobile Internetvorrichtung (MID), eine Nachrichtendienstvorrichtung, Datenkommunikationsvorrichtung, periphere Vorrichtung, Spielekonsole, tragbare Vorrichtung, Anzeigevorrichtung, Universalvorrichtung, Dualfunktionsvorrichtung und so weiter eingebunden sein.
  • In verschiedenen Implementierungen enthält das System 1500 eine Plattform 1502, die an eine Anzeige 1520 gekoppelt ist. Die Plattform 1502 kann Inhalte von einer Inhaltsvorrichtung wie (einer) Inhaltsdienstvorrichtung(en) 1530 oder Inhaltsliefervorrichtung(en) 1540 oder anderen ähnlichen Inhaltsquellen wie einer Kamera oder einem Kameramodul oder dergleichen empfangen. Eine Navigationssteuerung 1550, die eine oder mehrere Navigationsmerkmale enthält, kann verwendet werden, um zum Beispiel mit der Plattform 1502 und/oder der Anzeige 1520 zu wechselwirken. Jede dieser Komponenten ist unten detaillierter beschrieben.
  • In verschiedenen Implementierungen kann die Plattform 1502 eine beliebige Kombination eines Chipsatzes 1505, eines Prozessors 1510, eines Arbeitsspeichers 1512, einer Antenne 1513, eines Speichers 1514, eines Grafiksubsystems 1517, Anwendungen 1516 und/oder eines Funkgeräts 1518 enthalten. Der Chipsatz 1505 kann eine Interkommunikation zwischen dem Prozessor 1510, dem Arbeitsspeicher 1512, dem Speicher 1514, dem Grafiksubsystem 1517, Anwendungen 1516 und/oder dem Funkgerät 1518 bereitstellen. Der Chipsatz 1505 kann zum Beispiel einen Speicheradapter (nicht gezeigt) enthalten, der fähig ist, eine Interkommunikation mit dem Speicher 1514 bereitzustellen.
  • Der Prozessor 1510 kann als Computerprozessoren mit komplexem Befehlssatz (CISC-Prozessor), Computer mit reduziertem Befehlssatz (RISC-Prozessor), x86-Anweisungssatzkkompatible Prozessoren, Mehrkern- oder ein beliebiger anderer Mikroprozessor oder eine beliebige andere zentrale Verarbeitungseinheit (CPU) implementiert sein. In verschiedenen Implementierungen kann der Prozessor 1510 ein Doppelkernprozessor bzw. Doppelkernprozessoren, ein mobiler Doppelkernprozessor bzw. mobile Doppelkernprozessoren und so weiter sein.
  • Der Arbeitsspeicher 1512 kann als eine flüchtige Arbeitsspeichervorrichtung wie unter anderem ein Arbeitsspeicher mit wahlfreiem Zugriff (RAM), ein dynamischer Arbeitsspeicher mit wahlfreiem Zugriff (DRAM) oder ein statischer RAM (SRAM) implementiert sein.
  • Der Speicher 1514 kann als eine nicht flüchtige Speichervorrichtung implementiert sein, wie zum Beispiel unter anderem ein magnetisches Plattenlaufwerk, ein optisches Plattenlaufwerk, ein Bandlaufwerk, eine interne Speichervorrichtung, eine angeschlossene Speichervorrichtung, Flashspeicher, SDRAM mit Batterie-Backup (synchroner DRAM) und/oder eine Netzwerk-zugängliche Speichervorrichtung. In verschiedenen Implementierungen kann der Speicher 1514 Technologie enthalten, um den speicherleistungsverbesserten Schutz für wertvolle digitale Medien zu erhöhen, wenn zum Beispiel mehrere Festplatten enthalten sind.
  • Das Grafiksubsystem 1517 kann ein Verarbeiten von Bildern durchführen, wie Standbildern, Grafiken oder Video zur Anzeige. Das Grafiksubsystem 1517 kann zum Beispiel eine Grafikverarbeitungseinheit (GPU), eine visuelle Verarbeitungseinheit (VPU) oder eine Bildverarbeitungseinheit sein. In einigen Beispielen kann das Grafiksubsystem 1517 ein Rendering eines abgetasteten Bilds durchführen, wie hierin besprochen. Eine analoge oder digitale Schnittstelle kann verwendet werden, um das Grafiksubsystem 1517 und die Anzeige 1520 kommunikativ zu koppeln. Die Schnittstelle kann zum Beispiel eine beliebige von High Definition Multimedia Interface, DisplayPort, drahtloser HDMI und/oder mit drahtlosem HD konformen Techniken sein. Das Grafiksubsystem 1517 kann in den Prozessor 1510 oder den Chipsatz 1505 integriert sein. In einigen Implementierungen kann das Grafiksubsystem 1517 eine eigenständige Vorrichtung sein, die kommunikativ an den Chipsatz 1505 gekoppelt ist.
  • Die hierin beschriebenen Bildverarbeitungstechniken können in verschiedenen Hardwarearchitekturen implementiert sein. Die Bildverarbeitungsfunktionalität kann zum Beispiel innerhalb eines Chipsatzes integriert sein. Alternativ kann ein diskreter Grafik- und/oder Bildprozessor und/oder anwendungsspezifischer integrierter Schaltkreis verwendet werden. Als noch eine andere Implementierung kann die Bildverarbeitung von einem Universalprozessor bereitgestellt werden, einschließlich eines Mehrkernprozessors. In weiteren Ausführungsformen können die Funktionen in einer Endverbraucherelektronikvorrichtung implementiert sein.
  • Das Funkgerät 1518 kann ein oder mehrere Funkgeräte enthalten, die fähig sind, Signale unter Verwendung verschiedener geeigneter drahtloser Kommunikationstechniken zu senden und zu empfangen. Derartige Techniken können Kommunikationen über ein oder mehrere drahtlose Netzwerke involvieren. Beispielhafte drahtlose Netzwerke enthalten (sind aber nicht beschränkt auf) drahtlose lokale Netzwerke (WLANs), drahtlose persönliche Netzwerke (WPANs), drahtlose innerstädtische Netzwerke (WMANs), Funknetzwerk und Satellitennetzwerke. Beim Kommunizieren über derartige Netzwerke kann das Funkgerät 1518 in Übereinstimmung mit einem oder mehreren geltenden Standards in einer beliebigen Version arbeiten.
  • In verschiedenen Implementierungen kann die Anzeige 1520 einen beliebigen Flachbildschirm oder eine beliebige Anzeige enthalten. Die Anzeige 1520 kann zum Beispiel einen Computer-Anzeigebildschirm, einen Berührungsbildschirm, einen Videomonitor, eine fernseherähnliche Vorrichtung und/oder einen Fernseher enthalten. Die Anzeige 1520 kann digital und/oder analog sein. In verschiedenen Implementierungen kann eine Anzeige 1520 eine holografische Anzeige sein. Auch kann die Anzeige 1520 eine transparente Oberfläche sein, die eine visuelle Projektion empfangen kann. Derartige Projektionen können verschiedene Formen von Informationen, Bilder und/oder Objekte übermitteln. Derartige Projektionen können zum Beispiel eine visuelle Überlagerung für eine Anwendung für mobile erweiterte Realität (MAR) sein. Unter der Steuerung einer oder mehrerer Softwareanwendungen 1516 kann die Plattform 1502 eine Benutzerschnittstelle 1522 auf der Anzeige 1520 anzeigen.
  • In verschiedenen Implementierungen kann bzw. können Inhaltsdienstvorrichtung(en) 1530 durch einen beliebigen nationalen, internationalen und/oder unabhängigen Dienst gehostet sein und deshalb für Plattform 1502 zum Beispiel über das Internet zugänglich sein. Der bzw. die Inhaltsdienstvorrichtung(en) 1530 können an die Plattform 1502 und/oder in die Anzeige 1520 gekoppelt sein. Die Plattform 1502 und/oder der bzw. die Inhaltsdienstvorrichtung(en) 1530 kann an ein Netzwerk 1560 gekoppelt sein, um Medieninformationen an das und vom Netzwerk 1560 zu kommunizieren (z. B. senden und/oder empfangen). Der bzw. die Inhaltsliefervorrichtung(en) 1540 können an die Plattform 1502 und/oder in die Anzeige 1520 gekoppelt sein.
  • In verschiedenen Implementierungen können die Inhaltsdienstvorrichtung(en) 1530 eine Kabelfernsehbox, einen Personalcomputer, ein Netzwerk, ein Telefon, internetfähige Vorrichtungen oder ein Gerät, das fähig ist, digitale Informationen und/oder Inhalte zu liefern, und eine beliebige andere ähnliche Vorrichtung enthalten, die fähig ist, Inhalte zwischen Inhaltsanbietern und der Plattform 1502 und/oder der Anzeige 1520 über das Netzwerk 1560 oder direkt in einer Richtung oder bidirektional zu kommunizieren. Es ist klar, dass die Inhalte in einer Richtung und/oder bidirektional zu und von irgendeiner der Komponenten im System 1500 und einem Inhaltsanbieter über das Netzwerk 1560 kommuniziert werden können. Beispiele von Inhalten können beliebige Medieninformationen einschließlich, zum Beispiel, Video, Musik, medizinische und Spieleinformationen und so weiter enthalten.
  • Die Inhaltsdienstvorrichtung(en) 1530 können Inhalte wie Kabelfernsehprogramme einschließlich Medieninformationen, digitale Informationen und/oder andere Inhalte empfangen. Beispiele von Inhaltsanbietern können beliebige Kabel- und Satellitenfernseh- oder Radio- oder Internetinhaltsanbieter enthalten. Die bereitgestellten Beispiele sollen Implementierungen nach der vorliegenden Offenbarung auf keine Weise einschränken.
  • In verschiedenen Implementierungen kann die Plattform 1502 Steuersignale von der Navigationssteuerung 1550 mit einer oder mehreren Navigationsmerkmalen empfangen. Die Navigationsmerkmale der Navigationssteuerung 1550 können verwendet werden, um zum Beispiel mit der Benutzerschnittstelle 1522 zu interagieren. In verschiedenen Ausführungsformen kann die Navigationssteuerung 1550 eine Zeigevorrichtung sein, die eine Computerhardwarekomponente (genauer eine menschliche Schnittstellenvorrichtung) sein kann, die einem Benutzer ermöglicht, räumliche (z. B. kontinuierliche und mehrdimensionale) Daten in einen Computer einzugeben. Viele Systeme, wie grafische Benutzerschnittstellen (GUI) und Fernseher und Monitore ermöglichen dem Benutzer, unter Verwendung physischer Gesten den Computer oder den Fernseher zu steuern und diesem Daten bereitzustellen.
  • Die Bewegungen der Navigationsmerkmale der Navigationssteuerung 1550 können auf einer Anzeige (z. B. der Anzeige 1520) durch Bewegungen eines Zeigers, eines Cursors, eines Fokusrings oder anderer visuellen Indikatoren, die auf der Anzeige angezeigt sind, repliziert werden. Beispielsweise können die auf der Navigationssteuerung 1550 positionierten Navigationsmerkmale unter der Steuerung von Softwareanwendungen 1516 zum Beispiel auf virtuelle Navigationsmerkmale abgebildet werden, die auf der Benutzerschnittstelle 1522 angezeigt werden. In verschiedenen Ausführungsformen kann die Navigationssteuerung 1550 keine separate Komponente sein, sondern kann in die Plattform 1502 und/oder die Anzeige 1520 integriert sein. Die vorliegende Offenbarung ist jedoch nicht auf die Elemente oder in dem Kontext beschränkt, die bzw. der hierin beschrieben sind bzw. ist.
  • In verschiedenen Implementierungen können Treiber (nicht gezeigt) Technologie enthalten, um Benutzern zum Beispiel zu ermöglichen, die Plattform 1502 wie einen Fernseher mit einem Tastendruck nach einem anfänglichen Hochfahren sofort ein- und auszuschalten, wenn aktiviert. Programmlogik kann der Plattform 1502 ermöglichen, Inhalte an Medienadapter oder (eine) andere Inhaltsdienstvorrichtung(en) 1530 oder (eine) Inhaltsliefervorrichtung(en) 1540 zu streamen, auch wenn die Plattform „ausgeschaltet“ ist. Darüber hinaus kann der Chipsatz 1505 zum Beispiel Hardware- und/oder Softwareunterstützung für 5.1-Surround-Sound-Audio und/oder hochauflösendes 7.1-Surround-Sound-Audio enthalten. Treiber können einen Grafiktreiber für integrierte Grafikplattformen enthalten. In verschiedenen Ausführungsformen kann der Grafiktreiber eine Peripheral-Component-Interconnect(PCI)-Express-Grafikkarte umfassen.
  • In verschiedenen Implementierungen können eine beliebige oder mehrere beliebige im System 1500 gezeigten Komponenten integriert sein. Zum Beispiel können die Plattform 1502 und die Inhaltsdienstvorrichtung(en) 1530 integriert sein oder die Plattform 1502 und Inhaltsliefervorrichtung(en) 1540 können integriert sein oder die Plattform 1502, die Inhaltsdienstvorrichtung(en) 1530, die Inhaltsliefervorrichtung(en) 1540 können integriert sein, zum Beispiel. In verschiedenen Ausführungsformen können die Plattform 1502 und die Anzeige 1520 eine integrierte Einheit sein. Die Anzeige 1520 und die Inhaltsdienstvorrichtung(en) 1530 können integriert sein oder die Anzeige 1520 und die Inhaltsliefervorrichtung(en) 1540 können integriert sein, zum Beispiel. Diese Beispiele sollen die vorliegende Offenbarung nicht einschränken.
  • In verschiedenen Ausführungsformen kann das System 1500 ein drahtloses System, ein verdrahtetes System oder eine Kombination von beidem implementiert sein. Wenn es als ein drahtloses System implementiert ist, kann das System 1500 Komponenten und Schnittstellen enthalten, die zum Kommunizieren über drahtlose gemeinsam genutzte Medien geeignet sind, wie zum Beispiel eine oder mehrere Antennen, Sender, Empfänger, Sende-Empfänger, Verstärker, Filter, Steuerlogik und so weiter. Ein Beispiel von drahtlosen gemeinsam genutzten Medien kann Abschnitte eines drahtlosen Spektrums, wie dem RF-Spektrum, und so weiter enthalten. Wenn es als ein verdrahtetes System implementiert ist, kann das System 1500 Komponenten und Schnittstellen enthalten, die zum Kommunizieren über verdrahtete Kommunikationsmedien geeignet sind, wie Eingabe/Ausgabe(E/A)-Adapter, physische Verbinder, um den E/A-Adapter mit einem entsprechenden verdrahteten Kommunikationsmedium, einer Netzwerkkarte (NIC), einer Plattensteuerung, einer Videosteuerung, einer Audiosteuerung und dergleichen. Beispiele von verdrahteten Kommunikationsmedien können einen Draht, Kabel, Metallleitungen, eine gedruckte Leiterplatte (PCB), Rückwandplatine, Switch-Fabric, Halbleitermaterial, verdrillten Doppeldraht, Koaxialkabel, Faseroptik und so weiter enthalten.
  • Die Plattform 1502 kann einen oder mehrere logische oder physische Kanäle einrichten, um Informationen zu kommunizieren. Die Informationen können Medieninformationen und Steuerinformationen enthalten. Die Medieninformationen können sich auf beliebige Daten beziehen, die Inhalte repräsentieren, die für einen Benutzer bestimmt sind. Beispiele von Inhalten können zum Beispiel Daten von einer Sprachkommunikation, Videokonferenz, Streaming-Video, einer elektronischen Postnachricht („E-Mail“-Nachricht), Sprachmitteilung, alphanumerischen Symbolen, Grafiken, eines Bilds, Video, Text und so weiter enthalten. Daten von einer Sprachkonversation können zum Beispiel Sprachinformationen, Stilleperioden, Hintergrundgeräusche, Komfortrauschen, Töne und so weiter sein. Steuerinformationen können beliebige Daten bezeichnen, die Befehle, Anweisungen oder Steuerwörter repräsentieren, die für ein automatisches System gedacht sind. Steuerinformationen können zum Beispiel verwendet werden, um Medieninformationen durch ein System zu leiten oder einen Knoten anzuweisen, die Medieninformationen auf vorbestimmte Weise zu verarbeiten. Die Ausführungsformen sind jedoch nicht auf die Elemente oder in dem Kontext beschränkt, die bzw. der in 15 beschrieben sind bzw. ist.
  • Wie oben beschrieben kann das System 1500 in verschiedenen physischen Stilen oder Formfaktoren ausgebildet sein. 16 veranschaulicht eine beispielhafte Vorrichtung mit kleinem Formfaktor 1600, die nach zumindest einigen Implementierungen der vorliegenden Offenbarung angeordnet ist. In einigen Beispielen kann das System 1500 über die Vorrichtung 1600 implementiert sein. In anderen Beispielen können andere Systeme, Komponenten oder Module, die hierin besprochen sind, oder Abschnitte davon durch die Vorrichtung 1600 implementiert sein. In verschiedenen Ausführungsformen kann die Vorrichtung 1600 zum Beispiel als eine mobile Rechenvorrichtung mit drahtlosen Fähigkeiten implementiert sein. Eine mobile Rechenvorrichtung kann eine beliebige Vorrichtung bezeichnen, die ein Verarbeitungssystem und eine mobile Energiequelle oder -versorgung aufweist, wie zum Beispiel eine oder mehrere Batterien.
  • Beispiele einer mobilen Rechenvorrichtung können einen Personalcomputer (PC), Laptop-Computer, Ultra-Laptop-Computer, ein Tablet, Touchpad, einen tragbaren Computer, einen in der Hand gehaltenen Computer, einen Palmtop-Computer, einen Organizer (PDA), ein Mobiltelefon, eine Mobiltelefon/PDA-Kombination, eine intelligente Vorrichtung (z. B. ein Smartphone, ein Smart-Tablet oder einen mobilen Smart-Fernseher), eine mobile Internetvorrichtung (MID), eine Nachrichtendienstvorrichtung, eine Datenkommunikationsvorrichtung, Kameras (z. B. Kompaktkameras, Super-Zoom-Kameras, digitale Spiegelreflexkameras (DSLR-Kameras)) und so weiter enthalten.
  • Beispiele einer mobilen Rechenvorrichtung können auch Computer enthalten, die ausgelegt sind, von einem Fahrzeug oder einen Roboter implementiert zu werden, oder von einer Person getragen zu werden, wie Handgelenkscomputer, Fingercomputer, Ringcomputer, Brillencomputer, Gürtelclip-Computer, Armbandcomputer, Schuhcomputer, Kleidungscomputer und andere tragbare Computer. In verschiedenen Ausführungsformen kann eine mobile Rechenvorrichtung zum Beispiel als ein Smartphone implementiert sein, das fähig ist, Computeranwendungen sowie Sprachkommunikation und/oder Datenkommunikation auszuführen. Obwohl einige Ausführungsformen mit einer mobilen Rechenvorrichtung beschrieben sein können, die beispielsweise als Smartphone implementiert ist, ist klar, dass andere Ausführungsformen auch unter Verwendung anderer drahtloser mobiler Rechenvorrichtungen implementiert werden können. Die Ausführungsformen sind in diesem Zusammenhang nicht eingeschränkt.
  • Wie in 16 gezeigt, kann die Vorrichtung 1600 ein Gehäuse mit einer Vorderseite 1601 und einer Rückseite 1602 enthalten. Die Vorrichtung 1600 enthält eine Anzeige 1604, eine Eingabe/Ausgabe(E/A)-Vorrichtung 1606, eine Farbkamera 1621, eine Farbkamera 1622 und eine integrierte Antenne 1608. Die Farbkamera 1621 und die Farbkamera 1622 können zum Beispiel Eingabedaten (z. B. linke und rechte Bilder) wie hierin besprochen eingeben. Die Vorrichtung 1600 kann auch Navigationsmerkmale 1612 enthalten. Die E/A-Vorrichtung 1606 kann eine beliebige geeignete E/A-Vorrichtung zum Eingeben von Informationen in eine mobile Rechenvorrichtung enthalten. Beispiele für die E/A-Vorrichtung 1606 können eine alphanumerische Tastatur, ein numerisches Tastenfeld, ein Touchpad, Eingabetasten, Schaltflächen, Schalter, Mikrofone, Lautsprecher, eine Spracherkennungsvorrichtung und Software und so weiter enthalten. Informationen können auch mittels eines Mikrofons (nicht gezeigt) in die Vorrichtung 1600 eingegeben werden, oder können durch eine Spracherkennungsvorrichtung digitalisiert werden. Wie gezeigt kann die Vorrichtung 1600 Farbkameras 1621, 1622 und einen Blitz 1610 enthalten, die in die Rückseite 1602 (oder anderswo) der Vorrichtung 1600 integriert sind. In anderen Beispielen können die Farbkameras 1621, 1622 und der Blitz 1610 in die Vorderseite 1601 der Vorrichtung 1600 integriert sein, oder es können sowohl eine vorderseitige als auch eine rückseitige Kameragruppe vorgesehen sein. Die Farbkameras 1621, 1622 und ein Blitz 1610 können Komponenten eines Kameramoduls sein, um Farbbilddaten hervorzubringen, die in ein Bild oder Streaming-Video verarbeitet werden können, das an die Anzeige 1604 ausgegeben wird und/oder von der Vorrichtung 1600 zum Beispiel über die Antenne 1608 entfernt kommuniziert wird.
  • Verschiedene Ausführungsformen können unter Verwendung von Hardwareelementen, Softwareelementen oder einer Kombination von beidem implementiert sein. Beispiele von Hardwareelementen können Prozessoren, Mikroprozessoren, Schaltkreise, Schaltkreiselemente (z. B. Transistoren, Widerstände, Kondensatoren, Induktoren und so weiter), integrierte Schaltkreise, anwendungsspezifische integrierte Schaltkreise (ASIC), programmierbare Logikvorrichtungen (PLD), digitale Signalprozessoren (DSP), feldprogrammierbare Gatearrays (FPGA), Logikgatter, Register, Halbleitervorrichtungen, Chips, Mikrochips, Chipsätze und so weiter enthalten. Beispiele von Software können Softwarekomponenten, Programme, Anwendungen, Computerprogramme, Anwendungsprogramme, Systemprogramme, Maschinenprogramme, Betriebssystemsoftware, Middleware, Firmware, Softwaremodule, Routinen, Subroutinen, Funktionen, Methoden, Prozeduren, Softwareschnittstellen, Anwendungsprogrammschnittstellen (API), Anweisungssätze, Rechencode, Computercode, Codesegmente, Computercodesegmente, Wörter, Werte, Symbole oder eine beliebige Kombination davon enthalten. Das Ermitteln, ob eine Ausführungsform unter Verwendung von Hardwareelementen und/oder Softwareelementen implementiert ist, kann in Übereinstimmung mit einer beliebigen Anzahl von Faktoren variieren, wie beispielsweise einer gewünschten Berechnungsrate, von Leistungspegeln, Wärmetoleranzen, einem Verarbeitungszyklusbudget, von Eingangsdatenraten, Ausgangsdatenraten, Arbeitsspeicherressourcen, Datenbusgeschwindigkeiten und anderen Design- oder Leistungsbeschränkungen.
  • Ein oder mehrere Aspekte mindestens einer Ausführungsform können durch repräsentative Befehle implementiert werden, die auf einem maschinenlesbaren Medium gespeichert sind, das verschiedene Logik innerhalb des Prozessors repräsentiert, die, wenn sie von einer Maschine gelesen wird, bewirkt, dass die Maschine Logik erzeugt, um die hierin beschriebenen Techniken durchzuführen. Derartige Repräsentationen, bekannt als IP-Kerne, können auf einem greifbaren maschinenlesbaren Medium gespeichert und verschiedenen Kunden oder Herstellungseinrichtungen bereitgestellt werden, um sie in die Herstellungsmaschinen zu laden, die die Logik oder den Prozessor tatsächlich herstellen.
  • In einer oder mehreren ersten Ausführungsformen umfasst ein Verfahren zum Bereitstellen einer Segmentierung in Video ein Generieren eines Merkmalsvolumens, das einem aktuellen Videoframe entspricht, wobei das Merkmalsvolumen den aktuellen Videoframe und mindestens eines von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst, Kombinieren des Merkmalsvolumens mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren, Anwenden einer ersten Faltungsschicht einer Vielzahl von Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen, Kombinieren des Merkmalsvolumens mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten, um ein Faltungsschicht-Eingabevolumen zu generieren, Anwenden einer dritten Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren, und Generieren eines aktuellen Segmentierungsframes aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens.
  • In einer oder mehreren zweiten Ausführungsformen, zusätzlich zur ersten Ausführungsform, umfasst das Verfahren ferner ein Kombinieren des Merkmalsvolumens mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren.
  • In einer oder mehreren dritten Ausführungsformen, zusätzlich zur ersten oder zweiten Ausführungsform, umfasst das Kombinieren des Merkmalsvolumens und des Faltungsschicht-Ausgabevolumens von der ersten Faltungsschicht oder der zweiten Faltungsschicht ein Verketten des Merkmalsvolumens und des Ausgabevolumens, wobei das Merkmalsvolumen und das Faltungsschicht-Ausgabevolumen die gleiche Auflösung umfassen.
  • In einer oder mehreren vierten Ausführungsformen, zusätzlich zu einer der ersten bis einschließlich dritten Ausführungsform, umfasst das Merkmalsvolumen den aktuellen Videoframe, den zeitlich vorhergehenden Videoframe, den zeitlich vorhergehenden Segmentierungsframe und den Indikatorframe für ein interessierendes Objekt.
  • In einer oder mehreren fünften Ausführungsformen, zusätzlich zu einer der ersten bis einschließlich vierten Ausführungsform, zeigen der eine oder die mehreren Indikatoren des Indikatorframes für ein interessierendes Objekt Positionen von positiven Indikatoren an, die auf das interessierende Objekt hinweisen, wobei das Merkmalsvolumen ferner einen Hintergrundindikatorframe, der negative Indikatoren umfasst, die auf Positionen eines Hintergrunds ohne das interessierende Objekt hinweisen, einen positiven Distanztransformationsframe, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der positiven Indikatoren hinweist, und einen negativen Distanztransformationsframe umfasst, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der negativen Indikatoren hinweist.
  • In einer oder mehreren sechsten Ausführungsformen, zusätzlich zu einer der ersten bis fünften einschließlich Ausführungsform, besteht das zweite Faltungsschicht-Eingabevolumen aus dem Merkmalsvolumen und dem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder der zweiten Faltungsschicht und ist ohne jegliches Faltungsschicht-Ausgabevolumen von irgendeiner anderen Faltungsschicht des Segmentierungsnetzes.
  • In einer oder mehreren siebenten Ausführungsformen, zusätzlich zu einer der ersten bis einschließlich sechsten Ausführungsform, umfasst das Verfahren ferner ein Generieren der Merkmalsframes durch Ändern der Größe des aktuellen Videoframes auf einen aktuellen Video frame mit geänderter Größe, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen des faltenden neuronalen Objektklassifizierungsnetzes entsprechen, Anwenden des faltenden neuronalen Netzes auf jedes der Teilbilder, Abrufen, für jedes Pixel jedes der Teilbilder, jeweils von einer der Schichten des faltenden neuronalen Netzes einer Vielzahl von Merkmalswerten, um für jedes Pixel eine Hyperkolumne mit Merkmalswerten zu generieren, und Komprimieren der Hyperkolumnen mit Merkmalswerten, um die Vielzahl von Merkmalsframes zu ermitteln.
  • In einer oder mehreren achten Ausführungsformen, zusätzlich zu einer der ersten bis einschließlich siebenten Ausführungsform, umfasst das Komprimieren der Hyperkolumnen ein Anwenden einer Tucker-Zerlegung auf ein Merkmalsvolumen, das die Hyperkolumnen umfasst, um einen Kerntensor zu ermitteln, der die Vielzahl von komprimierten Merkmalsframes umfasst.
  • In einer oder mehreren neunten Ausführungsformen, umfasst ein Verfahren zum Bereitstellen einer Segmentierung in Video ein Ändern der Größe eines aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen, Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder und Abrufen, für jedes Pixel jedes der Teilbilder, einer Vielzahl von Merkmalswerten jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes, um ein Objektklassifizierungs-Ausgabevolumen zu generieren, Ändern der Größe des Objektklassifizierungs-Ausgabevolumens auf Dimensionen des aktuellen Videoframes, Kombinieren eines Merkmalsvolumens, das mindestens den aktuellen Videoframe umfasst, mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus dem Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren, und Anwenden eines faltenden neuronalen Segmentierungsnetzes auf das Eingabevolumen, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren.
  • In einer oder mehreren zehnten Ausführungsformen, zusätzlich zur neunten Ausführungsform, weist eine Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite auf, die ein Produkt einer Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer Aufrundungsfunktion umfasst, die auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes angewandt wurde.
  • In einer oder mehreren elften Ausführungsformen, zusätzlich zur neunten oder zehnten Ausführungsform, besteht der aktuelle Videoframe mit geänderter Größe aus einem Raster der Teilbilder.
  • In einer oder mehreren zwölften Ausführungsformen, zusätzlich zu einer der neunten bis einschließlich elften Ausführungsform, umfasst das Merkmalsvolumen ferner einen zeitlich vorhergehenden Videoframe, einen zeitlich vorhergehenden Segmentierungsframe und einem Indikatorframe für ein interessierendes Objekt, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst.
  • In einer oder mehreren dreizehnten Ausführungsformen, zusätzlich zu einer der neunten bis einschließlich zwölften Ausführungsform, umfasst das Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder ein paralleles Anwenden der Objektklassifizierung auf ein erstes Teilbild und ein zweites Teilbild.
  • In einer oder mehreren vierzehnten Ausführungsformen enthält eine Vorrichtung oder ein System einen Arbeitsspeicher und einen Prozessor, um ein Verfahren nach einer der obigen Ausführungsformen durchzuführen.
  • In einer oder mehreren fünfzehnten Ausführungsformen enthält mindestens ein maschinenlesbares Medium eine Vielzahl von Anweisungen, die als Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, ein Verfahren nach einem der obigen Ausführungsformen auszuführen.
  • In einer oder mehreren sechzehnten Ausführungsformen enthält eine Einrichtung Mittel zum Durchführen eines Verfahrens nach einer der obigen Ausführungsformen.
  • Während bestimmte hierin dargelegte Merkmale in Bezug auf verschiedene Implementierungen beschrieben wurden, soll diese Beschreibung nicht in einem einschränkenden Sinn aufgefasst werden. Deshalb werden verschiedene Modifikationen der hierin beschriebenen Implementierungen sowie andere Implementierungen, die Fachleuten auf dem Gebiet klar sind, auf das sich die vorliegende Offenbarung bezieht, als innerhalb des Geists und des Umfangs der vorliegenden Offenbarung liegend angesehen.
  • Es wird klar sein, dass die Ausführungsformen nicht auf die so beschriebenen Ausführungsformen beschränkt sind, sondern mit Modifikation und Änderung praktiziert werden können, ohne vom Umfang der angefügten Patentansprüche abzuweichen. Die obigen Ausführungsformen können zum Beispiel eine spezifische Kombination von Merkmalen enthalten. Die obigen Ausführungsformen sind in dieser Hinsicht jedoch nicht eingeschränkt, und in verschiedenen Implementierungen können die obigen Ausführungsformen die Unternehmung nur einer Teilmenge derartiger Merkmale, die Unternehmung einer verschiedenen Reihenfolge derartiger Merkmale, die Unternehmung einer anderen Kombination derartiger Merkmale und/oder die Unternehmung zusätzlicher Merkmale zu den explizit aufgeführten Merkmalen enthalten. Der Umfang der Ausführungsformen sollte deshalb in Bezug auf die angefügten Patentansprüche zusammen mit dem vollen Umfang von Äquivalenten ermittelt werden, zu denen derartige Patentansprüche berechtigt sind.

Claims (25)

  1. System zum Bereitstellen einer Segmentierung in Video, umfassend: einen Arbeitsspeicher zum Speichern eines aktuellen Videoframes; und einen oder mehrere Prozessoren, die an den Arbeitsspeicher gekoppelt sind, wobei der eine oder die mehreren Prozessoren: ein Merkmalsvolumen zu generieren hat, das dem aktuellen Videoframe entspricht, wobei das Merkmalsvolumen den aktuellen Videoframe und mindestens eines von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst; das Merkmalsvolumen mit einer Vielzahl von Merkmalsframes zu kombinieren hat, die jeweils Merkmale umfassen, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren; eine erste Faltungsschicht einer Vielzahl von Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen anzuwenden hat; das Merkmalsvolumen mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten zu kombinieren hat, um ein Faltungsschicht-Eingabevolumen zu generieren; eine dritte Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen anzuwenden hat, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren; und einen aktuellen Segmentierungsframe aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens zu generieren hat.
  2. System nach Anspruch 1, wobei der eine oder die mehreren Prozessoren ferner: das Merkmalsvolumen mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten zu kombinieren hat, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren.
  3. System nach Anspruch 1 oder 2, wobei das Kombinieren des Merkmalsvolumens und des Faltungsschicht-Ausgabevolumens von der ersten Faltungsschicht oder der zweiten Faltungsschicht durch den einen oder die mehreren Prozessoren umfasst, dass der eine oder die mehreren Prozessoren das Merkmalsvolumen und das Ausgabevolumen zu verketten haben, wobei das Merkmalsvolumen und das Faltungsschicht-Ausgabevolumen die gleiche Auflösung umfassen.
  4. System nach einem der Ansprüche 1 bis 3, wobei das Merkmalsvolumen den aktuellen Videoframe, den zeitlich vorhergehenden Videoframe, den zeitlich vorhergehenden Segmentierungsframe und den Indikatorframe für ein interessierendes Objekt umfasst.
  5. System nach Anspruch 4, wobei der eine oder die mehreren Indikatoren des Indikatorframes für ein interessierendes Objekt Positionen von positiven Indikatoren anzeigen, die auf das interessierende Objekt hinweisen, wobei das Merkmalsvolumen ferner einen Hintergrundindikatorframe, der negative Indikatoren umfasst, die auf Positionen eines Hintergrunds ohne das interessierende Objekt hinweisen, einen positiven Distanztransformationsframe, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der positiven Indikatoren hinweist, und einen negativen Distanztransformationsframe umfasst, der für jedes Pixel davon einen Wert umfasst, der auf eine Minimaldistanz zu irgendeiner der Positionen der negativen Indikatoren hinweist.
  6. System nach einem der Ansprüche 1 bis 5, wobei das zweite Faltungsschicht-Eingabevolumen aus dem Merkmalsvolumen und dem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder der zweiten Faltungsschicht besteht und ohne jegliches Faltungsschicht-Ausgabevolumen von irgendeiner anderen Faltungsschicht des Segmentierungsnetzes ist.
  7. System nach einem der Ansprüche 1 bis 5, wobei der eine oder die mehreren Prozessoren ferner: die Größe des aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe zu ändern haben, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen des faltenden neuronalen Objektklassifizierungsnetzes entsprechen; das faltende neuronale Netz auf jedes der Teilbilder anzuwenden haben; für jedes Pixel jedes der Teilbilder, jeweils von einer der Schichten des faltenden neuronalen Netzes eine Vielzahl von Merkmalswerten abzurufen haben, um für jedes Pixel eine Hyperkolumne mit Merkmalswerten zu generieren; und die Hyperkolumnen mit Merkmalswerten zu komprimieren haben, um die Vielzahl von Merkmalsframes zu ermitteln.
  8. System nach Anspruch 7, wobei das Komprimieren der Hyperkolumnen durch den einen oder die mehreren Prozessoren umfasst, dass der eine oder die mehreren Prozessoren eine Tucker-Zerlegung auf ein Merkmalsvolumen anwenden, das die Hyperkolumnen umfasst, um einen Kerntensor zu ermitteln, der die Vielzahl von komprimierten Merkmalsframes umfasst.
  9. Maschinenlesbares Medium oder maschinenlesbare Medien, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, eine Segmentierung in Video bereitzustellen, durch: Generieren eines Merkmalsvolumens, das einem aktuellen Videoframe entspricht, wobei das Merkmalsvolumen den aktuellen Videoframe und mindestens eines von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst; Kombinieren des Merkmalsvolumens mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren; Anwenden einer ersten Faltungsschicht einer Vielzahl von Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen; Kombinieren des Merkmalsvolumens mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten, um ein Faltungsschicht-Eingabevolumen zu generieren; Anwenden einer dritten Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren; und Generieren eines aktuellen Segmentierungsframes aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens.
  10. Maschinenlesbares Medium nach Anspruch 9, Anweisungen, die als Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, eine Segmentierung in Video bereitzustellen, durch: Kombinieren des Merkmalsvolumens mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren.
  11. Verfahren zum Bereitstellen einer Segmentierung in Video, umfassend: Generieren eines Merkmalsvolumens, das einem aktuellen Videoframe entspricht, wobei das Merkmalsvolumen den aktuellen Videoframe und mindestens eines von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst; Kombinieren des Merkmalsvolumens mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren; Anwenden einer ersten Faltungsschicht einer Vielzahl von Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen; Kombinieren des Merkmalsvolumens mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten, um ein Faltungsschicht-Eingabevolumen zu generieren; Anwenden einer dritten Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren; und Generieren eines aktuellen Segmentierungsframes aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens.
  12. Verfahren nach Anspruch 11, ferner umfassend: Kombinieren des Merkmalsvolumens mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren.
  13. System, umfassend: Mittel zum Generieren eines Merkmalsvolumens, das einem aktuellen Videoframe entspricht, wobei das Merkmalsvolumen den aktuellen Videoframe und mindestens eines von einem zeitlich vorhergehenden Videoframe, einem zeitlich vorhergehenden Segmentierungsframe oder einem Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst; Mittel zum Kombinieren des Merkmalsvolumens mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus Merkmalsschichten eines faltenden neuronalen Netzes komprimiert wurden, wie es auf den aktuellen Videoframe angewandt wurde, um ein Segmentierungsnetz-Eingabevolumen zu generieren; Mittel zum Anwenden einer ersten Faltungsschicht einer Vielzahl von Faltungsschichten eines Segmentierungsnetzes auf das Segmentierungsnetz-Eingabevolumen; Mittel zum Kombinieren des Merkmalsvolumens mit einem Faltungsschicht-Ausgabevolumen von der ersten Faltungsschicht oder einer zweiten Faltungsschicht der Faltungsschichten, um ein Faltungsschicht-Eingabevolumen zu generieren; Mittel zum Anwenden einer dritten Faltungsschicht der Faltungsschichten auf das Faltungsschicht-Eingabevolumen, um ein zweites Faltungsschicht-Ausgabevolumen zu generieren; und Mittel zum Generieren eines aktuellen Segmentierungsframes aus dem Segmentierungsnetz auf Grundlage des zweiten Faltungsschicht-Ausgabevolumens.
  14. System nach Anspruch 13, das ferner Folgendes umfasst: Mittel zum Kombinieren des Merkmalsvolumens mit einem entsprechenden Ausgabevolumen von jeder nicht endgültigen Faltungsschicht der Faltungsschichten, um für jede nachfolgende Faltungsschicht der Faltungsschichten ein entsprechendes Faltungsschicht-Eingabevolumen zu generieren.
  15. System zum Bereitstellen einer Segmentierung in Video, umfassend: einen Arbeitsspeicher zum Speichern eines aktuellen Videoframes; und einen oder mehrere Prozessoren, die an den Arbeitsspeicher gekoppelt sind, wobei der eine oder die mehreren Prozessoren: die Größe des aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe zu ändern haben, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen; das faltende neuronale Objektklassifizierungsnetz auf jedes der Teilbilder anzuwenden haben und für jedes Pixel jedes der Teilbilder eine Vielzahl von Merkmalswerten jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes abzurufen haben, um ein Objektklassifizierungs-Ausgabevolumen zu generieren; die Größe des Objektklassifizierungs-Ausgabevolumens auf Dimensionen des aktuellen Videoframes zu ändern haben; ein Merkmalsvolumen, das mindestens den aktuellen Videoframe umfasst, mit einer Vielzahl von Merkmalsframes zu kombinieren haben, die jeweils Merkmale umfassen, die aus dem Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren; und ein faltendes neuronales Segmentierungsnetz auf das Eingabevolumen anzuwenden haben, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren.
  16. System nach Anspruch 15, wobei eine Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite aufweist, die ein Produkt einer Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer Aufrundungsfunktion umfasst, die auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes angewandt wurde.
  17. System nach Anspruch 15 oder 16, wobei der aktuelle Videoframe mit geänderter Größe aus einem Raster der Teilbilder besteht.
  18. System nach einem der Ansprüche 15 bis 17, wobei das Merkmalsvolumen ferner einen zeitlich vorhergehenden Videoframe, einen zeitlich vorhergehenden Segmentierungsframe und einen Indikatorframe für ein interessierendes Objekt umfasst, der einen oder mehrere Indikatoren auf ein interessierendes Objekt im aktuellen Videoframe umfasst.
  19. System nach einem der Ansprüche 15 bis 17, wobei das Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder durch den einen oder die mehreren Prozessoren umfasst, dass der eine oder die mehreren Prozessoren die Objektklassifizierung auf ein erstes Teilbild und ein zweites Teilbild parallel anwenden.
  20. Maschinenlesbares Medium oder maschinenlesbare Medien, die eine Vielzahl von Anweisungen umfassen, die als Reaktion auf ihre Ausführung auf einer Rechenvorrichtung die Rechenvorrichtung veranlassen, eine Segmentierung in Video bereitzustellen, durch: Ändern der Größe eines aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen; Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder und Abrufen, für jedes Pixel jedes der Teilbilder, einer Vielzahl von Merkmalswerten jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes, um ein Objektklassifizierungs-Ausgabevolumen zu generieren; Ändern der Größe des Objektklassifizierungs-Ausgabevolumens auf Dimensionen des aktuellen Videoframes; Kombinieren eines Merkmalsvolumens, das mindestens den aktuellen Videoframe umfasst, mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus dem Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren; und Anwenden eines faltenden neuronalen Segmentierungsnetzes auf das Eingabevolumen, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren.
  21. Maschinenlesbares Medium nach Anspruch 20, wobei eine Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite aufweist, die ein Produkt einer Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer Aufrundungsfunktion umfasst, die auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes angewandt wurde.
  22. Verfahren zum Bereitstellen einer Segmentierung in Video, umfassend: Ändern der Größe eines aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen; Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder und Abrufen, für jedes Pixel jedes der Teilbilder, einer Vielzahl von Merkmalswerten jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes, um ein Objektklassifizierungs-Ausgabevolumen zu generieren; Ändern der Größe des Objektklassifizierungs-Ausgabevolumens auf Dimensionen des aktuellen Videoframes; Kombinieren eines Merkmalsvolumens, das mindestens den aktuellen Videoframe umfasst, mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus dem Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren; und Anwenden eines faltenden neuronalen Segmentierungsnetzes auf das Eingabevolumen, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren.
  23. Verfahren nach Anspruch 22, wobei eine Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite aufweist, die ein Produkt einer Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer Aufrundungsfunktion umfasst, die auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes angewandt wurde.
  24. System, umfassend: Mittel zum Ändern der Größe eines aktuellen Videoframes auf einen aktuellen Videoframe mit geänderter Größe, der eine Vielzahl von Teilbildern umfasst, die jeweils Dimensionen aufweisen, die Dimensionen eines faltenden neuronalen Objektklassifizierungsnetzes entsprechen; Mittel zum Anwenden des faltenden neuronalen Objektklassifizierungsnetzes auf jedes der Teilbilder und Abrufen, für jedes Pixel jedes der Teilbilder, einer Vielzahl von Merkmalswerten jeweils von einer der Schichten des faltenden neuronalen Objektklassifizierungsnetzes, um ein Objektklassifizierungs-Ausgabevolumen zu generieren; Mittel zum Ändern der Größe des Objektklassifizierungs-Ausgabevolumens auf Dimensionen des aktuellen Videoframes; Mittel zum Kombinieren eines Merkmalsvolumens, das mindestens den aktuellen Videoframe umfasst, mit einer Vielzahl von Merkmalsframes, die jeweils Merkmale umfassen, die aus dem Objektklassifizierungs-Ausgabevolumen mit geänderter Größe komprimiert wurden, um ein Eingabevolumen zu generieren; und Mittel zum Anwenden eines faltenden neuronalen Segmentierungsnetzes auf das Eingabevolumen, um einen aktuellen Segmentierungsframe für den aktuellen Videoframe zu generieren.
  25. System nach Anspruch 24, wobei eine Auflösung des aktuellen Videoframes mit geänderter Größe eine Breite aufweist, die ein Produkt einer Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes und einer Ausgabe von einer Aufrundungsfunktion umfasst, die auf ein Verhältnis einer Breite des aktuellen Videoframes zur Eingabebreite des faltenden neuronalen Objektklassifizierungsnetzes angewandt wurde.
DE102020129800.5A 2020-01-27 2020-11-11 Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen Pending DE102020129800A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US16/773,715 2020-01-27
US16/773,715 US11928753B2 (en) 2020-01-27 2020-01-27 High fidelity interactive segmentation for video data with deep convolutional tessellations and context aware skip connections

Publications (1)

Publication Number Publication Date
DE102020129800A1 true DE102020129800A1 (de) 2021-07-29

Family

ID=70726651

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102020129800.5A Pending DE102020129800A1 (de) 2020-01-27 2020-11-11 Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen

Country Status (3)

Country Link
US (2) US11928753B2 (de)
CN (1) CN113177946A (de)
DE (1) DE102020129800A1 (de)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI715448B (zh) * 2020-02-24 2021-01-01 瑞昱半導體股份有限公司 偵測解析度的方法及電子裝置
US11354906B2 (en) * 2020-04-13 2022-06-07 Adobe Inc. Temporally distributed neural networks for video semantic segmentation
CN113727141B (zh) * 2020-05-20 2023-05-12 富士通株式会社 视频帧的插值装置以及方法
US11688070B2 (en) * 2020-06-25 2023-06-27 Intel Corporation Video frame segmentation using reduced resolution neural network and masks from previous frames
WO2022109000A1 (en) * 2020-11-17 2022-05-27 Uatc, Llc Systems and methods for video object segmentation
CN112380392A (zh) * 2020-11-17 2021-02-19 北京百度网讯科技有限公司 用于分类视频的方法、装置、电子设备及可读存储介质
AU2020281143B1 (en) * 2020-12-04 2021-03-25 Commonwealth Scientific And Industrial Research Organisation Creating super-resolution images
CN112541876B (zh) * 2020-12-15 2023-08-04 北京百度网讯科技有限公司 卫星图像处理方法、网络训练方法、相关装置及电子设备
US20210118146A1 (en) * 2020-12-23 2021-04-22 Intel Corporation Methods and apparatus for high-fidelity vision tasks using deep neural networks
US11568176B1 (en) * 2021-06-25 2023-01-31 Amazon Technologies, Inc. Deep feature extraction and training tools and associated methods
WO2023080590A1 (en) * 2021-11-03 2023-05-11 Samsung Electronics Co., Ltd. Method for providing computer vision
US20230319296A1 (en) * 2022-03-29 2023-10-05 Apple Inc. Energy efficient context relevant processing for content

Family Cites Families (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10810435B2 (en) 2018-11-07 2020-10-20 Adobe Inc. Segmenting objects in video sequences

Also Published As

Publication number Publication date
US11928753B2 (en) 2024-03-12
CN113177946A (zh) 2021-07-27
US20200160528A1 (en) 2020-05-21
US20240029193A1 (en) 2024-01-25

Similar Documents

Publication Publication Date Title
DE102020129800A1 (de) Interaktive segmentierung mit hoher wiedergabetreue für videodaten mit tief faltenden tessellationen und kontextsensitiven skip-verbindungen
DE102020123304A1 (de) Tiefes lernen für engmaschige semantische segmentierung in video mit automatisierter interaktivität und verbesserter zeitlicher kohärenz
DE102020125197A1 (de) Feinkörnige objektsegmentierung in video mit tiefen merkmalen und graphischen mehrebenenmodellen
DE112017002119T5 (de) Augenkontaktkorrektur in Echtzeit unter Verwendung von auf neuronalen Netzwerken basierendem maschinellem Lernen
Liang et al. Swinir: Image restoration using swin transformer
DE112018002228B4 (de) Konfigurierbare faltungsmaschine für verschachtelte kanaldaten
DE112018007730T5 (de) 3d objekterkennung unter verwendung von 3d konvolutionalen neuronalen netzen mit tiefenbasierten multiskalierungsfiltern
DE102020125612A1 (de) Kontinuierliche lokale 3d-rekonstruktionsverfeinerung in video
DE102018132245A1 (de) Verfahren und System zur rekurrenten semantischen Segmentierung zur Bildverarbeitung
DE102019213184A1 (de) Verfahren und system zum automatischen weissabgleich auf basis von tiefem lernen
DE102020202059A1 (de) Mehrdurchgangs-zusatzwerkzeug zur kohärenten und vollständigen ansichtssynthese
DE112013004778T5 (de) Kodierung von Bildern unter Verwendung eines 3D-Netzes von Polygonen und entsprechenden Strukturen
US20190347847A1 (en) View generation from a single image using fully convolutional neural networks
DE102021119882A1 (de) Videohintergrundschätzung unter verwendung von räumlich-zeitlichen modellen
DE102018130086A1 (de) Mehrkameraprozessor mit merkmalsabgleich
DE102020200310A1 (de) Verfahren und System zur Dunstreduzierung für die Bildverarbeitung
CN113034358A (zh) 一种超分辨率图像处理方法以及相关装置
DE112016005482T5 (de) Objektdetektion mit adaptiven Kanalmerkmalen
DE112013004618T5 (de) Tiefenpufferung
US8983188B1 (en) Edge-aware smoothing in images
DE102020133963A1 (de) Systeme und Verfahren zur Abbildrauschunterdrückung unter Verwendung von tiefen gefalteten Netzwerken
DE102019215387A1 (de) Zirkularfischaugenkameraarrayberichtigung
GB2599217A (en) Multi-level optical flow estimation framework for stereo pairs of images based on spatial partitioning
DE102019216979A1 (de) Oberflächenrekonstruktion für interaktive augmented reality
DE102019218316A1 (de) 3d-renderer-zu-videocodierer-pipeline für verbesserte visuelle qualität und geringe latenz