DE102015009820A1 - Bildsegmentierung für eine Kamera-Liveeinspielung - Google Patents

Bildsegmentierung für eine Kamera-Liveeinspielung Download PDF

Info

Publication number
DE102015009820A1
DE102015009820A1 DE102015009820.9A DE102015009820A DE102015009820A1 DE 102015009820 A1 DE102015009820 A1 DE 102015009820A1 DE 102015009820 A DE102015009820 A DE 102015009820A DE 102015009820 A1 DE102015009820 A1 DE 102015009820A1
Authority
DE
Germany
Prior art keywords
pixel
foreground
image frame
segment
frame
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
DE102015009820.9A
Other languages
English (en)
Inventor
Brian Price
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.)
Adobe Inc
Original Assignee
Adobe Systems Inc
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 Adobe Systems Inc filed Critical Adobe Systems Inc
Publication of DE102015009820A1 publication Critical patent/DE102015009820A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/10Segmentation; Edge detection
    • G06T7/162Segmentation; Edge detection involving graph-based methods
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/2224Studio circuitry; Studio devices; Studio equipment related to virtual studio applications
    • H04N5/2226Determination of depth image, e.g. for foreground/background separation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N5/00Details of television systems
    • H04N5/222Studio circuitry; Studio devices; Studio equipment
    • H04N5/262Studio circuits, e.g. for mixing, switching-over, change of character of image, other special effects ; Cameras specially adapted for the electronic generation of special effects
    • H04N5/272Means for inserting a foreground image in a background image, i.e. inlay, outlay
    • 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

Abstract

Es werden Techniken zum Segmentieren eines Bildrahmens einer Kamera-Liveeinspielung offenbart. Ein Bias-Schema kann verwendet werden, um zunächst Pixel innerhalb des Bildes zu lokalisieren, für die es wahrscheinlich ist, dass sie das Objekt, das segmentiert wird, enthalten. Ein Optimierungsalgorithmus für eine Energieoptimierungsfunktion, wie ein Graphen-Schnitt Algorithmus, kann verwendet werden mit einer nicht-lokalisierten Nachbarschafts-Graphenstruktur und dem anfänglichen Lokalisierungsbias, um Pixel in dem Bildrahmen zu lokalisieren, welche das Objekt repräsentieren. Danach kann ein Matting-Algorithmus verwendet werden, um eine Pixelmaske zu definieren, welche zumindest einen Teil der Objektbegrenzung umgibt. Das Bias und die Pixelmaske können kontinuierlich aktualisiert und verfeinert werden, wenn der Bildrahmen sich mit der Kamera-Liveeinspielung ändert.

Description

  • Gebiet der Offenbarung
  • Diese Offenbarung bezieht sich auf das Gebiet der Datenverarbeitung, und genauer auf Techniken zum Segmentieren eines Bildrahmens einer Kamera-Liveeinspielung.
  • Hintergrund
  • In Bildbearbeitungsanwendungen können verschiedene Segmentierungstechniken verwendet werden, um ein oder mehrere Objekte in einem Bild mit Bezug auf andere Objekte oder den Hintergrund abzugrenzen. Einige dieser Techniken erfordern ein zuvor aufgenommenes Bild, aus dem das Objekt manuell ausgewählt wird.
  • Kurze Beschreibung der Zeichnungen
  • Die beigefügten Zeichnungen sind nicht gedacht, maßstabsgerecht gezeichnet zu sein. In den Zeichnungen ist jede identische oder nahezu identische Komponente, die in verschiedenen Figuren dargestellt ist, mit einem gleichen Bezugszeichen repräsentiert.
  • 1 zeigt eine beispielhafte Rechenvorrichtung zum Segmentieren eines Bildrahmens einer Kamera-Liveeinspielung bzw. eines Kamera-Livefeeds in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • 2A bis 2E zeigen beispielhafte Bildrahmen in Übereinstimmung mit verschiedenen Ausführungsformen der vorliegenden Erfindung.
  • 3 ist ein Flussdiagramm, das für eine beispielhafte Methodik zum Segmentieren eines Bildrahmens eines Kamera-Livefeeds repräsentativ ist, in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • 4 ist ein Blockdiagramm, das ein beispielhaftes Rechnersystem repräsentiert, das verwendet werden kann in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung.
  • Detaillierte Beschreibung
  • Bildsegmentierung bezieht sich auf eine Klasse von Operationen, in denen ein Bild in zwei oder mehr Segmente unterteilt wird, typischer Weise zum lokalisieren von Objekten und Begrenzungen. Genauer beinhaltet Bildsegmentierung das Zuweisen von einem oder mehreren Labeln bzw. Bezeichnern zu jedem Pixel in dem Bild. Zum Beispiel kann ein Segment Pixel beinhalten, welche ein Objekt im Vordergrund eines Bildes repräsentieren, und ein anderes Segment kann Pixel beinhalten, welche den Hintergrund repräsentieren. In einigen früheren Techniken der Bildsegmentierung stellt ein Benutzer harte Randbedingungen für die Segmentierung auf, indem er bestimmte Pixel designiert, welche Teil des Objekts sein müssen, und bestimmte Pixel, welche Teil des Hintergrunds sein müssen. Diese harten Randbedingungen stellen Hinweise bereit, wie der Benutzer das Bild zu segmentieren beabsichtigt. Die verbleibenden Pixel werden als zum Objekt oder zum Hintergrund gehörend bezeichnet, indem unter allen potentiellen Segmenten, welche die vom Benutzer designierten harten Randbedingungen erfüllen, automatisch ein globales Optimum berechnet wird, wodurch das Bild in zumindest zwei Bereiche segmentiert wird (zum Beispiel ein Segment, welches das Objekt enthält, und ein Segment, welches den Hintergrund enthält). Derartige frühere Techniken erfordern jedoch eine Intervention des Benutzers, um die harten Randbedingungen aufzuerlegen, die verwendet werden, um die Segmentierung auszuführen.
  • Zu diesem Zweck, und in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung, werden Techniken zum Segmentieren eines Bildrahmens einer Kamera-Liveeinspielung bzw. eines Kamera-Livefeeds offenbart. Während angesichts dieser Offenbarung zahlreiche Anwendungen für eine derartige Segmentierung ersichtlich sein werden, liegt eine beispielhafte Anwendung im Kontext des Erzeugens von Masken für Objekte in einem Bearbeitungswerkzeug (zum Beispiel eine Softwareanwendung, wie etwa Adobe Photoshop®). Ein Benutzer kann zum Beispiel einfach eine Kamera eines Smartphones auf ein Objekt richten, um das Objekt auszuwählen, und es wird durch ein Bildsegmentierungsmodul, das auf dem Smartphone ausgeführt werden kann, automatisch eine Auswahl getroffen, in Übereinstimmung mit einer Ausführungsform. In einigen Ausführungsformen kann das ausgewählte Objekt mit einer geeigneten Farbe gefärbt bzw. getönt werden, oder mit einer Textur versehen werden, oder mit einem Umriss versehen werden, oder auf andere Weise akzentuiert werden. Wenn die Kamera bewegt wird, wird die Kameraeinspielung dem Benutzer angezeigt und das Objekt wird automatisch für jede neue Kameraposition ausgewählt und erneut ausgewählt. Dieses Verfahren der Interaktion mit dem Zielobjekt unterscheidet sich von typischen Auswahltechniken, welche es erfordern, dass zuerst das Foto aufgenommen werden muss und dann das Objekt manuell vom Benutzer ausgewählt wird. In Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung wird das Objekt ausgewählt, bevor das Foto aufgenommen wird. Daher kann, wenn das Objekt nicht korrekt ausgewählt wurde, der Benutzer die Kamera und/oder das Objekt bewegen, um eine bessere Auswahl zu erhalten. Wenn die Auswahl korrekt ist oder der Auswahl anderweitig zugestimmt wird, kann der Benutzer das Foto aufnehmen und die entsprechende Maske, die mit dieser Auswahl assoziiert ist, kann gespeichert werden. Die Interaktion kann beispielsweise über ein ausführbares Modul (zum Beispiel Software oder Firmware) implementiert werden, das auf der Rechenvorrichtung ausgeführt wird, die operativ mit der Kamera gekoppelt ist. In einer bestimmten beispielhaften Ausführungsform wird ein Bias-Schema verwendet, um anfänglich Pixel innerhalb des Bildes zu lokalisieren, die wahrscheinlich ein Zielobjekt enthalten, das segmentiert wird. Dann kann das anfängliche Lokalisierungsbias zusammen mit einem Optimierungsalgorithmus verwendet werden, um Pixel in dem Bildrahmen auszuwählen, welche das Objekt repräsentieren, um dadurch das Bild zu segmentieren. Danach kann ein Matting-Algorithmus verwendet werden, um eine Pixelmaske zu definieren, welche die Objektgrenze umgibt, oder innerhalb der Objektgrenze liegt. Das Bias und die Pixelmaske können kontinuierlich aktualisiert und verfeinert werden, wenn sich das Bild verändert mit der Kamera-Liveeinspielung. Zahlreiche Konfigurationen und Variationen werden im Lichte dieser Offenbarung ersichtlich sein.
  • Wie in dieser Offenbarung verwendet beinhalten die Begriffe „Segmentierung” und „Bildsegmentierung” einen Prozess des logischen Partitionierens eines digitalen Bildes in mehrere Segmente oder Mengen von Pixeln. Jedes Segment kann eine beliebige Anzahl von Pixeln enthalten (zum Beispiel eines oder mehr Pixel), und es kann eine beliebige Anzahl von Segmenten geben, welche durch den Segmentierungsprozess erzeugt werden. Eine Segmentierung eines Bildes braucht nicht notwendiger Weise das Bild modifizieren; jedoch können die Segmente in einer beliebigen Anzahl von Formaten angezeigt werden, um eine Visualisierung dieser Segmente für einen menschlichen Beobachter bereitzustellen (zum Beispiel, indem jedes Segment mit einem Umriss versehen oder hervorgehoben wird, oder indem bestimmte Segmente von der Ansicht verdunkelt bzw. verdeckt werden). Weiter können Segmente zu anderen Zwecken verwendet werden, wie eine Objektauswahl innerhalb einer Bildbearbeitungsanwendung. Andere Beispiele werden im Lichte dieser Offenbarung ersichtlich sein.
  • Eine Zielfunktion kann erzeugt werden, um ein Bildverarbeitungsproblem, einschließlich einer Segmentierung, zu repräsentieren. Die Zielfunktion kann gelöst werden unter Verwendung eines Algorithmus wie einem Graphen-Schnitt Optimierungsalgorithmus oder einem Belief-Propagation Algorithmus. Ein Graphen-Schnitt ist ein Verfahren, um einen Graphen in zwei zu unterteilen unter Verwendung eines Algorithmus des minimalen Schnitts oder eines Algorithmus des maximalen Flusses. In einer Implementierung eines Graphen-Schnitt Bildobjektauswahlverfahrens zieht der Benutzer, um ein Objekt interaktiv auszuwählen, die Maus über das Bild, um Vordergrundstriche oder Hintergrundstriche zu zeichnen. Die Striche selbst mögen oder mögen nicht auf der Anzeige angezeigt werden. Wenn der Benutzer einen Vordergrundstrich zeichnet, bedeutet dies, dass alle Pixel unter dem Vordergrundstrich Teil des Vordergrunds sein müssen. Alle Pixel unter einem Hintergrundstrich müssen Teil des Hintergrunds sein. Der Benutzer zeigt an, ob ein Strich Vordergrund oder Hintergrund ist, und er kann dies tun, indem er eine Taste betätigt, eine Taste auf der Tastatur gedrückt hält, unterschiedliche Maustasten für Vordergrund und Hintergrund verwendet, oder eine andere geeignete Eingabe verwendet. Für alle Pixel, die nicht von einem Strich bedeckt werden, weist der Graphen-Schnitt Algorithmus diese Pixel entweder dem Vordergrund oder dem Hintergrund zu. Wenn er dies tut, versucht der Graphen-Schnitt, sicher zu stellen, dass die Begrenzung des Vordergrundes auf Kanten in dem Bild liegt.
  • Graphen-Schnitt Algorithmen lösen für eine Auswahl, indem die folgende Zielfunktion minimiert wird:
    Figure DE102015009820A1_0002
  • X ist die Menge von Pixel-Bezeichnern xi, wobei xi = 0 anzeigt, dass das Pixel i Teil des Hintergrunds ist, und xi = 1 anzeigt, dass das Pixel i Teil des Objekts ist. N(X) ist die Menge aller Paare von Bezeichnern, welche Pixeln entsprechen, die in dem Bild benachbart sind. Der Skalar λ stellt eine Abstimmung für die relative Gewichtung der Funktionen R und B dar.
  • Die Funktion R ist ein Bereichsterm, der Kosten für ein gegebenes Pixel i, das den Bezeichner xi besitzt, angibt. R wird oftmals durch die Striche des Benutzers bestimmt. In einigen Formulierungen gelten die durch R gesetzten Kosten nur für Pixel unter den Strichen des Benutzers. In diesen Fällen, wenn ein Benutzer einen Vordergrundstrich über das Pixel i zeichnet, dann ist R(xi) = 0 für xi = 1 und R(xi) = ∞ für xi = 0. Wenn der Benutzer einen Hintergrundstrich über das Pixel i zeichnet, dann ist R(xi) = 0 für xi = 0 und R(xi) = ∞ für xi = 1. Für alle Pixel, die nicht durch einen Benutzerstrich bedeckt werden, ist R(xi) = 0. In anderen Implementierungen der Graphen-Schnitt Segmentierung wird der Term R definiert sein unter Verwendung eines Vordergrund-Farbmodells, das berechnet wird mit allen Pixeln unter dem Vordergrundstrich, und eines Hintergrund-Farbmodells aus allen Pixeln unter dem Hintergrundstrich.
  • B ist eine Funktion, welche die Auswahlbegrenzung darin bestärkt, Bildkanten zu folgen. B ist oftmals eine Funktion des Gradienten in dem Bild. Zum Beispiel kann B definiert sein als:
    Figure DE102015009820A1_0003
    worin ci die Farbe des Pixels i ist. Die Energiefunktion kann minimiert werden, indem exakt der minimale Schnitt Algorithmus oder der maximale Fluss Algorithmus verwendet wird.
  • Gemäß einer Ausführungsform der vorliegenden Erfindung kann eine Zielfunktion definiert werden zur Verwendung in interaktiven Auswahlverfahren, um eine nicht-lokale, Merkmals-basierte Nachbarschaft zu erlauben, die direkt mit einem Bias zum Vordergrund oder zum Hintergrund hin versehen werden kann. Der Term R kann definiert werden, ein allgemeines Bias anzuwenden anstelle von Randbedingungen, die auf Strichen eines Benutzers basieren.
  • Figure DE102015009820A1_0004
  • Die Zielfunktion wird optimiert über die Menge aller Pixel-Bezeichner X und eine Menge von Bezeichnern, welche die Merkmalscluster Y repräsentieren. Zum Beispiel kann jede Farbe rot-grün-blau (RGB) einen Cluster i beinhalten, der einen Bezeichner yi in Y besitzt. Im regulären RGB Raum hat jeder Farbkanal typischer Weise 256 Werte, und daher gibt es insgesamt 2563 Cluster. Jedoch kann gemäß einer Ausführungsform der vorliegenden Erfindung ein quantisierter RGB Farbraum verwendet werden. Im Gegensatz dazu werden daher in dem quantisierten RGB Farbraum Farben so gruppiert, das jeder Farbkanal beispielsweise lediglich 64 Farben aufweist (oder 16 Farben, 128 Farben, oder jede beliebige andere Anzahl von Farben). Daher hat der quantisierte RGB Farbraum insgesamt weniger Cluster als der reguläre RGB Farbraum. Es können auch andere Merkmale (zum Beispiel ein L·a·b Farbraum, eine skaleninvariante Merkmalstransformation, SIFT) oder Clusteralgorithmen verwendet werden.
  • Jeder Merkmalscluster i (mit Bezeichner yi in Y) kann mit all den Pixeln assoziiert sein, die ein bestimmtes Merkmal aufweisen. Unter Verwendung von RGB Farben repräsentiert jeder Merkmalscluster i eine Farbe und in der Zielfunktion ist jedes Pixel j mit dieser Farbe mit dem Cluster verknüpft, wobei N(X, Y) definiert, welche Pixel mit welchen Merkmalen verknüpft sind. Es werden jedem Pixel, das einen Bezeichner aufweist, der anders ist als das mit dem Pixel assoziierte Merkmal, Kosten zugewiesen. Jeder Merkmalscluster weist auch einen Bereichsterm Rf auf, ähnlich zu dem Bereichsterm R, welcher den Cluster direkt mit einem Bias zum Vordergund oder zum Hintergrund hin versieht. Darüber hinaus verknüpft ein Begrenzungsterm Bf benachbarte Merkmale miteinander (zum Beispiel, wenn zwei Pixel in dem Farbraum direkt benachbart sind, was heißt, dass diese einander sehr ähnlich sind, dann werden diese Pixel ermutigt, denselben Bezeichner zu haben). Jedes λ stellt eine Gewichtung des entsprechenden Terms dar. R ist basierend auf dem Vordergrundbias definiert, wie in dieser Offenbarung beschrieben. Der Term B ist, in einigen Ausführungsformen, wie in den Graphen-Schnitt Verfahren definiert. Sowohl Bf als auch Bfp sind auf vordefinierte konstante Werte gesetzt. In einigen Ausführungsformen wird Rf nicht notwendiger Weise verwendet (zum Beispiel ist Rf(yi) = 0 für alle yi).
  • Die oben beschriebene Zielfunktion kann auch verwendet werden, wenn zeitliche Information mit einbezogen wird. Für die Fälle, in denen das Ergebnis des vorhergehenden Rahmens auf den aktuellen Rahmen ausgerichtet wird (zum Beispiel, indem Warping, Punktnachverfolgung oder andere geeignete Techniken verwendet werden), kann der Term R so modifiziert werden, dass er das vorhergehende Ergebnis enthält. Zum Beispiel kann der Term R die Bias-Karte ersetzen, die normalerweise verwendet wird, oder kann zu der Bias-Karte hinzu addiert werden, so dass beide im Bias reflektiert werden. Dieser Effekt kann in dem Term Rf eingefangen werden für den Fall, wo Merkmale des vorhergehenden Rahmens in dem aktuellen Rahmen verwendet werden (zum Beispiel kann in dem Fall, in welchem in dem vorhergehenden Rahmen eine Farbe mit einem Bias zum Vorgergrund hin versehen wurde, diese Farbe in dem aktuellen Rahmen mit einem Bias zum Vordergrund hin versehen werden). Zum Beispiel kann der Wert Rf für ein gegebenes Merkmal gesetzt werden unter Verwendung des Prozentsatzes der Pixel in dem vorhergehenden Rahmen, die dieses Merkmal aufweisen, welche Vordergrund gegenüber Hintergrund haben.
  • In einer Ausführungsform kann die oben beschriebene Zielfunktion minimiert werden unter Verwendung des Graphen-Schnitts. Es sei jedoch verstanden, dass in einigen Ausführungsformen andere Algorithmen, wie Belief-Propagation, verwendet werden können, um dieselbe Zielfunktion zu minimieren.
  • In einer besonderen Ausführungsform ist die Eingabe der aktuelle Bildrahmen einer Kameraeinspielung, aus dem die Rahmen kontinuierlich aktualisiert werden können. Der Rahmen beinhaltet ein oder mehrere Objekte. Zuerst wird ein Bias erzeugt zum anfänglichen Bestimmen, wo sich das Objekt oder die Objekte im Rahmen befinden, wo sich das Objekt oder die Objekte im Rahmen nicht befinden, oder beides. Ein derartiger Bias ist ein Mittenbias. Zum Beispiel kann ein Rechteck von ungefähr der halben Größe des Bildes in der Mitte des Bildes platziert werden. Der Bereich des Bildrahmens innerhalb des Rechtecks kann zum Vordergrund hin gewichtet werden, was bedeutet, dass das Rechteck ein Bias in Richtung darauf ist, oder eine anfängliche Vermutung davon ist, wo sich das Objekt befindet. Auf ähnliche Weise werden die Begrenzungen des Bildes (zum Beispiel die Bereiche außerhalb des Rechtecks) verwendet als ein Bias in Richtung zum Hintergrund, oder als eine Vermutung dafür, wo sich das Objekt nicht befindet. Zwischen dem Bereich des Bias des Vordergrunds und den Begrenzungen des Bildes mag es einen Zwischenbereich geben, der keinen Bias hat; das heißt, dass einige Pixel in dem Zwischenbereich weder mit einem Bias zum Vordergrund hin noch mit einem Bias zum Hintergrund hin versehen sein mögen. Der Mittenbias favorisiert die Auswahl eines Objekts, das sich in der Mitte des Rahmens befindet; es sei jedoch verstanden, dass ein anderes Bias verwendet werden kann. Zum Beispiel braucht das Bias kein Rechteck zu sein sondern kann eine Gauß-Kurve sein, welche im Bildrahmen zentriert ist und zu den Kanten hin abfällt. Ein anderes beispielhaftes Bias ist ein Gesichts- oder Körperbias, wo das Objekt eine Person ist. Ein Gesichtserkenner kann verwendet werden, um ein Gesicht in dem Bild zu finden. Das Gesicht und der Bereich unter dem Gesicht (zum Beispiel der Körper) werden mit einem Bias versehen in Richtung darauf, sich im Vordergrund zu befinden, und der Bereich über und zu Seiten des Gesichts werden mit einem Bias versehen in Richtung darauf, sich im Hintergrund zu befinden. Andere Arten von Bias werden im Licht dieser Offenbarung ersichtlich sein.
  • Als nächstes wird das Bias einem Optimierungsalgorithmus für eine Zielfunktion zugeführt, wie einem Graphen-Schnitt Algorithmus, der eine nicht-lokalisierte Nachbarschafts-Graphenstruktur aufweist, oder einem Belief-Propagation Algorithmus. Es sei verstanden, dass andere Optimierungsalgorithmen verwendet werden können, um die Zielfunktion zu lösen. In einem Graphen-Schnitt wird jedes Pixel in einem Rahmen durch einen Knoten in einem Graph repräsentiert. Ein Datenterm wird verwendet, um jedes Pixel zum Vordergrund hin oder zum Hintergrund hin zu gewichten. Das Bias wird verwendet, um den Datenterm zu bilden. Ein nicht-lokalisierter, farbbasierter Nachbarschaftsterm wird verwendet, um benachbarten Pixeln dieselben Bezeichner zuzuweisen (zum Beispiel Vordergrund oder Hintergrund). Diese Art von Nachbarschaft bedeutet, dass die Pixel im Bereich mit Vordergrundbias alle Pixel derselben Farbe in dem Bild so beeinflussen können, dass sie Vordergrund sind (zum Beispiel einschließlich nicht zusammenhängender Pixel, wie zum Beispiel wo mehrere unterschiedliche Objekte im Vordergrund des Rahmens erscheinen), und die Pixel im Bereich mit Hintergrundbias können alle Pixel derselben Farbe in dem Bild dahin gehend beeinflussen, Hintergrund zu sein. Anstelle der Farbe, oder zusätzlich zur Farbe, können andere Merkmale verwendet werden. Dies steht im Gegensatz zu einigen früheren Algorithmen, in denen nur Pixel, die unmittelbar ein gegebenes Pixel umgeben, als Nachbarn betrachtet werden. Der Graphen-Schnitt kann optimiert werden, um eine anfängliche binäre Segmentierung des Bildes zu erzeugen, wo ein Segment das Objekt beinhaltet (Vordergrund). In einigen Ausführungsformen kann der Graphen-Schnitt auf einer Version des Bildes mit niedriger Auflösung ausgeführt werden, um die Leistungsfähigkeit zu verbessern, es wird angesichts der Offenbarung jedoch verstanden werden, dass der Graphen-Schnitt auf anderen Auflösungen ausgeführt werden kann, einschließlich einer vollen oder hohen Auflösung.
  • Als nächstes wird das Ergebnis der niedrigen Auflösung des Graphen-Schnitts (zum Beispiel die anfängliche Bildsegmentierung) verfeinert bei einer vollen Auflösung unter Verwendung eines Matting-Algorithmus. Der Matting-Algorithmus kann eine weiche Pixelmaske erstellen, welche mit besserer Genauigkeit die Kanten von Objekten modelliert und Details in Haar und Pelz einfangen kann. Eine weiche Pixelmaske ist eine Maske, in der Pixeln mehr als ein gewichteter Bezeichner zugewiesen wird. Zum Beispiel können, anstatt dass alle Pixel rein mit Bezeichnern als Vordergrund oder als Hintergrund versehen werden, die Pixel mit Bezeichnern mit einem Prozentsatz versehen werden, wie beispielsweise als 70% Vordergrund und 30% Hintergrund. Als nächstes wird die Maske interaktiv auf einer Anzeige angezeigt, so dass der Benutzer die Segmentierung sehen kann. Die Maske kann beispielsweise dargestellt werden, indem eine Färbung oder Tönung verwendet wird, eine Textur verwendet wird, oder indem das Zielobjekt oder eine Menge von Objekten mit einem Umriss versehen wird.
  • In einer anderen Ausführungsform kann die Bewegung der Kamera nachverfolgt werden, so dass die Maske, die unter Verwendung vorhergehender Rahmen erhalten wird, verwendet werden kann, um die Maske in dem aktuellen Rahmen zu informieren. Die Bewegungsinformation kann enthalten sein in dem Datenterm des Graphen-Schnitts, um die zeitliche Kohärenz der Auswahl zu verbessern. Wenn der Benutzer zum Beispiel die Kamera aus verschiedenen Winkeln und Positionen in Richtung auf das Objekt ausrichtet, kann mit der Zeit die Maske verbessert werden, indem die Sequenz von Rahmen verwendet wird, um das Bild präziser zu segmentieren. In einer besonderen Ausführungsform kann Information aus vergangenen Rahmen verwendet werden, um die Segmentierung in dem aktuellen Rahmen zu beeinflussen. Eine derartige zeitliche Information kann für verschiedene Zwecke verwendet werden. Zum Beispiel kann ein Zweck beinhalten, die zeitliche Kohärenz der Segmentierung sicher zu stellen, beispielsweise um sicher zu stellen, dass die Segmentierung, die das Objekt enthält, nicht schnell von dem Objekt zum Hintergrund und zurück wechselt (beispielsweise indem mehrere Pixelmasken gemittelt werden, die aus Segmentierungen mehrere Bildrahmen der Kamera-Liveeinspielung erhalten werden). Die zeitliche Information kann auch verwendet werden, um die Segmentierung zu verbessern, indem ein Teil des Segments örtlich festgehalten wird, so dass der Benutzer die Kamera bewegen und die Auswahl beenden kann. Gemäß einigen Ausführungsformen gibt es verschiedene Techniken, um zeitliche Information zu sammeln. Eine solche Technik beinhaltet das Berechnen von einer Warping-Transformation oder einer affinen Transformation von dem vorhergehenden Rahmen zu dem aktuellen Rahmen. Dann kann die Maske aus dem vorhergehenden Rahmen zu dem aktuellen Rahmen transferiert werden. Diese Technik ist besonders nützlich, um die zeitliche Kohärenz der Segmentierung zu verbessern, während der Benutzer die Kamera recht still hält. Eine andere solche Technik beinhaltet Algorithmen zum Nachverfolgen von Punkten oder Algorithmen zum Nachverfolgen von Bereichen. Zum Beispiel halten Algorithmen zum Nachverfolgen von Punkten nach Punkten in dem Bild Ausschau, die auf einfache Weise genau nachverfolgt werden können. Diese Punkte können als Eingabe für den nächsten Rahmen dienen, um anzuzeigen, dass bestimmte Pixel entweder Teil des Vordergrunds, oder Teil des Hintergrunds sein sollen. Zum Beispiel kann der Algorithmus Farbe als ein Merkmal verwenden, und die Farben des Objekts betrachten, und dann dies dazu verwenden, um Pixel in späteren Rahmen mit diesen Farben zu beeinflussen, Teil des Objekts zu sein.
  • Einige Kamerasysteme, wie diejenigen in Mobiltelefonen (sogenannte Smartphones) oder digitalen Kameras besitzen Sensoren (Gyroskope, Beschleunigungssensoren, Kompasse), welche diesen helfen, Bewegungen zu erkennen. In diesen Fällen kann die erkannte Bewegung der Vorrichtung verwendet werden, um eine anfängliche Ausrichtung des vorhergehenden und des aktuellen Rahmens zu berechnen. Dies mag allein dazu verwendet werden, um zeitliche Information zu transferieren, oder mag als ein Ausgangspunkt für einen anderen Algorithmus verwendet werden. In einigen Fällen mag ein Benutzer wünschen anzugeben, ob zeitliche Information verwendet werden soll. Zum Beispiel mag ein Benutzer wünschen, alle Pixel in der gegenwärtigen Auswahl örtlich zu sperren und dann die Kamera ein wenig zu bewegen, um den Rest der Pixel zu bekommen. Dies könnte bewerkstelligt werden, indem ein Knopf gedrückt wird. Wenn die Kamera über Bewegungssensoren verfügt, ist ein anderer Weg, dies zu bewerkstelligen, zu erkennen, ob der Benutzer die Kamera für eine spezifizierte Zeitdauer nicht bewegt hat, und wenn dies der Fall ist, alle Pixel in der Auswahl zu sperren. Ein visueller Hinweis kann angezeigt werden, um dem Benutzer zu zeigen, dass die aktuelle Auswahl gesperrt ist. In einem solchen Fall könnte eine vordefinierte Bewegung, wie eine schnelle Bewegung oder eine schüttelnde Geste, dazu verwendet werden, um die Sperre der Auswahl aufzuheben.
  • Eine oder mehrere der Techniken zum Sammeln von zeitlicher Information, wie diejenigen, die in dieser Offenbarung dargelegt werden, können verwendet werden, um eine Pixelkarte zu erzeugen, welche Pixel zeigt, für die es wahrscheinlich ist, dass sie Objekt sind, oder dass sie Hintergrund sind. Dies kann implementiert werden, indem das Bias ersetzt wird, oder indem dies als ein zusätzlicher Bias hinzugefügt wird. Eine andere Alternative ist, dass nachdem die Auswahl für den gegenwärtigen Rahmen berechnet wurde, eine aus der zeitlichen Information erzeugte Objektmaske in die aktuelle Maske eingemischt werden kann.
  • Beispielsystem
  • 1 zeigt eine beispielhafte Rechenvorrichtung 100 zum Segmentierung eines Bildrahmens einer Kamera-Liveeinspielung in Übereinstimmung mit einer Ausführungsform. Die Vorrichtung 100 beinhaltet eine Kamera 110, einen Prozessor 120 und eine Anzeige 130. Allgemein kann die Vorrichtung 100 jeden beliebigen Typ einer Rechenvorrichtung beinhalten, wie einen Arbeitsplatzrechner (PC), einen Laptop, ein Tablet oder ein Smartphone. Der Prozessor kann ein Bildsegmentierungsmodul 112 beinhalten, das programmiert oder auf andere Weise konfiguriert ist, Bilddaten zu verarbeiten wie in größerem Detail nachfolgend beschrieben werden wird. Es wird verstanden werden, dass die Kamera 110, der Prozessor 120 und die Anzeige 130 in eine einzelne Vorrichtung integriert sein können, oder in mehrere Vorrichtungen (zum Beispiel kann die Kamera 110 eine separate Universal Serial Bus (USB) Kamera sein, welche mit der Rechnervorrichtung 100 verbunden ist, oder die Anzeige 130 kann ein alleinstehender Computermonitor sein, der mit der Rechenvorrichtung 100 verbunden ist).
  • Als ein Beispiel kann die Kamera 110 konfiguriert sein, eine Vielzahl von Bildrahmen zu erhalten und jeden Bildrahmen an den Prozessor 120 zu senden. Die Bildrahmen können zum Beispiel ein oder mehrere Objekte beinhalten, die vor einem Hintergrund sind. Der Prozessor 120 wiederum kann einen oder mehrere der Bildrahmen an die Anzeige 130 senden, so dass der Benutzer die Bilder betrachten kann, zum Beispiel als eine Kamera-Liveeinspielung. Daher kann, wenn der Benutzer die Kamera 110 relativ zu den Objekten bewegt, die Kamera-Liveeinspielung auf der Anzeige 130 aktualisiert werden, um die sich ändernde Perspektive und das sich ändernde Sichtfeld der Kamera 110 widerzuspiegeln. Wie in größerem Detail nachfolgend beschrieben werden wird kann zusätzliche Information, die von dem Prozessor 120 erzeugt wird, auf der Anzeige 130 zusätzlich zu der Kamera-Liveeinspielung angezeigt werden. Zum Beispiel kann eine Maske über die Kamera-Liveeinspielung gelegt werden, um die Begrenzungen eines Objekts im Sichtfeld anzuzeigen. Eine derartige Maske oder Objektauswahl kann zum Beispiel in Bearbeitungsanwendungen nützlich sein.
  • Beispielhafte Anwendungsfälle
  • 2A zeigt einen beispielhaften Bildrahmen 200 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung. Der bildrahmen 200 kann zum Beispiel durch die Kamera 110 der 1 erfasst werden und einen Rahmen einer Sequenz von Rahmen, wie zum Beispiel von einer Kamera-Liveeinspielung, repräsentieren. Der Bildrahmen 200 beinhaltet einen Bereich mit Hintergrundbias 202 und zumindest ein Objekt 204 in dem Vordergrund des Bildrahmens. Der Klarheit halber sind das Objekt 204 und der Hintergrund 202 mit im Wesentlichen gleichförmigen Farben dargestellt; es wird jedoch in Anbetracht dieser Offenbarung verstanden werden, dass das Objekt 204, oder der Hintergrund 202, oder beide vielgestaltige Farben haben können (zum Beispiel auf Grund von Abschattung, Textur, oder anderen Charakteristiken). Sobald der Bildrahmen 200 erfasst wurde, kann der Bildrahmen 200 zum Beispiel durch das Bildsegmentierungsmodul 112 verarbeitet werden, oder durch die Anzeige 130 angezeigt werden, oder beides.
  • 2B zeigt den beispielhaften Bildrahmen 200 der 2A, wobei eine beispielhafte Repräsentation eines Bias 206 in Übereinstimmung mit einer Ausführungsform der vorliegenden Erfindung gezeigt wird. Wie oben bemerkt kann der Bereich, der durch den Bias 206 repräsentiert wird, eine anfängliche Vermutung des Ortes des Objekts 204 innerhalb des Bildrahmens 200 sein, während der Bereich um die Begrenzungen des Bildrahmens 200 eine anfängliche Vermutung sein kann, wo sich das Objekt 204 nicht befindet. Das Bias 206 kann als ein Datenterm in einem Graphen-Schnitt Optimierungsalgorithmus verwendet werden zum Identifizieren der Begrenzungen der Vordergrundobjekte, wie dem Objekt 204, in dem Bildrahmen 200. In der 2B wird das Bias 206 durch einen rechteckigen Bereich repräsentiert, der um die Mitte des Rahmens 200 zentriert ist. Das Rechteck kann von jeder beliebigen Größe oder an jedem beliebigen Ort innerhalb des Bildrahmens 200 sein. Wie oben bemerkt braucht das Bias 206 nicht notwendiger Weise durch einen rechteckigen Bereich repräsentiert werden. Zum Beispiel kann das Bias durch jedes beliebige Polygon oder jede beliebige Gauß-Kurve repräsentiert werden. Wen sich das Objekt 204 jedoch in oder nahe der Mitte des Bildrahmens 200 befindet, mag ein rechteckiger Bias ausreichend sein zur Verwendung in dem Graphen-Schnitt Algorithmus.
  • Wie in größerem Detail unten beschrieben werden wird können ein oder mehr Pixel innerhalb des Bereichs mit Vordergrundbias (zum Beispiel Pixel innerhalb des Bias 206) und ein oder mehr Pixel außerhalb des Bereichs mit Vordergrundbias als Randbedingungen zum Segmentieren des Objekts 204 von dem Hintergrund 202 verwendet werden, wobei ein geeingeter Bildsegmentierungsalgorithmus, wie ein Graphen-Schnitt Algorithmus oder ein Belief-Propagation Algorithmus, zum Lösen einer Zielfunktion verwendet wird. Zum Beispiel kann in einem Graphen-Schnitt Algorithmus jedes Pixel in dem Bildrahmen 200 durch einen Knoten in einem Graph repräsentiert werden. Knoten, die Pixeln in dem Objekt 204 entsprechen, können zum Vordergrund hin gewichtet werden, und Konten, die Pixeln in dem Hintergrund 202 entsprechen, werden zum Hintergrund hin gewichtet. Für alle möglichen binären Segmentierungen des Graphs kann die Segmentierung gemäß einer minimalen Kostenfunktion verwendet werden, um zu bestimmen, welche Knoten, und damit welche Pixel, Bestandteile des Vordergrundsegments sind, und welche Knoten Bestandteile des Hintergrundsegments sind. In einigen Ausführungsformen kann die Menge an Speicher, die von dem Prozessor 120 verwendet wird, um den Graphen-Schnitt Algorithmus auszuführen, vermindert werden, indem der Graphen-Schnitt auf einer Version des Bildrahmens 200 mit verminderter Auflösung ausgeführt wird.
  • Sobald die Begrenzungen des Objekts 204 gemäß der Segmentierung bestimmt wurden, kann ein Matting-Algorithmus verwendet werden, um die Kanten des Objekts 202 genauer zu modellieren, insbesondere dort, wo solche Kanten eine irreguläre oder komplexe Form aufweisen. Das Ergebnis des Matting-Algorithmus ist eine Maske, die über das Objekt 204 oder den Hintergrund 202 gelegt werden kann, um visuell die Begrenzungen des Objekts 204 anzuzeigen. Die 2C zeigt den Bildrahmen der 2A, wobei eine Maske 214 über das Objekt 204 gelegt wurde. Alternativ zeigt die 2D den Bildrahmen 200 der 2A mit einer Maske 222, die über den Hintergrund 202 gelegt wurde. Der Bildrahmen 200 und die darüber gelegte Maske 214 oder 222 können mittels der Anzeige 130 der 1 angezeigt werden.
  • In einigen Ausführungsformen aktualisiert sich der Bildrahmen 200 mit der Zeit mit fortgesetzter Kamera-Liveeinspielung. Wenn zum Beispiel der Benutzer die Kamera 110 bewegt ändert sich der Bildrahmen 200 mit der Änderung der Position der Kamera 110. In derartigen Fällen werden die Begrenzungen des Objekts 204 und der Maske 214, 222 aktualisiert, so dass sie der geänderten Position des Objekts 204 mit Bezug auf den Hintergrund 202 innerhalb des aktualisierten Bildrahmens 200 entsprechen, wie in 2E gezeigt. In 2E ist zum Beispiel der vorherige Ort des Objekts 204 und der entsprechenden Maske 214 in der 2C als eine gestrichelte Phantomlinie dargestellt (die dem Benutzer tatsächlich nicht angezeigt werden mag), und der aktualisierte Ort der Maske wird bei 216 angezeigt. In einigen Ausführungsformen kann die Maske in vorhergehenden Bildrahmen (zum Beispiel denjenigen, die vor der Aktualisierung auftreten) verwendet werden, um den Matting-Algorithmus zu informieren zum Aktualisieren der Maske 214, 222. Zum Beispiel kann die Maske in dem Datenterm für den oben beschriebenen Graphen-Schnitt Algorithmus enthalten sein, um die zeitliche Kohärenz der Bildsegmentierung zu verbessern, während das Objekt 204 den Ort ändert innerhalb aufeinander folgenden Bildrahmen (zum Beispiel ändert sich der Ort der Maske 214, 222 zeitgleich mit Änderungen im Ort des Objekts 204 in dem aktualisierten Bildrahmen).
  • Beispielhafte Methodik
  • 3 ist ein Flussdiagramm einer beispielhaften Methodik 300 zum Segmentieren eines Bildrahmens einer Kamera-Liveeinspielung in Übereinstimmung mit einer Ausführungsform. Die beispielhafte Methodik 300 kann zum Beispiel durch das Bildsegmentiermodul 112 der 1 implementiert werden. Das Verfahren 300 beginnt mit Empfangen 302 eines aktuellen Bildrahmens (zum Beispiel der Bildrahmen 200 der 2A). Der aktuelle Rahmen beinhaltet einen Bereich mit Vordergrundbias (zum Beispiel entsprechend einem Objekt in dem Bildrahmen) und einen Bereich mit Hintergrundbias. In einigen Ausführungsformen kann es mehr als einen Bereich mit Vordergrundbias geben (zum Beispiel kann die rechte Seite des Bildes mit einem Bias zu einem ersten Objekt hin versehen sein, die linke Seite des Bildes kann mit einem Bias zu einem zweiten Objekt hin versehen sein und die Grenzen des Bildes können mit einem Bias zum Hintergrund hin versehen sein). Das Verfahren 300 schreitet fort, indem ein Biasterm berechnet wird 304. Der Biasterm kann zum Beispiel einen rechteckigen Bereich repräsentieren, der um die Mitte des aktuellen Bildrahmens zentriert ist, oder einen beliebigen anderen Bereich des aktuellen Rahmens. Das Verfahren 300 schreitet fort mit Segmentieren 306 des aktuellen Bildrahmens in ein Vordergrundsegment und ein Hintergrundsegment unter Verwendung einer Graphen-Schnitt Optimierungstechnik, die auf dem Biasterm basiert. Die Segmentierung designiert jedes Pixel in dem aktuellen Bildrahmen als ein Vordergrundpixel oder ein Hintergrundpixel. Die Vordergrundpixel können benachbarte Pixel oder zusammenhängende Pixel sein, aber dies muss nicht der Fall sein. Ähnlich können die Hintergrundpixel benachbarte Pixel sein, aber dies muss nicht der Fall sein. Daher können das Vordergrundsegment und das Hintergrundsegment jeweils mehrere diskontinuierliche Gruppen (Segmente) von Pixeln beinhalten.
  • In einigen Ausführungsformen kann die Segmentierung auf einer nicht-lokalisierten, farbbasierten Nachbarschaft basieren, in denen Pixel, welche eine erste Farbe haben in dem Bereich mit Vordergrundbias einige oder alle Pixel in dem Bild beeinflussen können, welche die gleiche erste Farbe haben, oder eine ähnliche Farbe haben, in dem Vordergrundsegment zu sein, und Pixel, die eine zweite Farbe haben in dem Hintergrundbereich können einige oder alle Pixel in dem Bild beeinflussen, welche dieselbe zweite Farbe haben, oder eine ähnliche Farbe, in dem Hintergrundsegment zu sein.
  • Das Verfahren 300 schreitet fort mit Erzeugen 308 einer Pixelmaske, welche dem Vordergrundsegment entspricht, dem Hintergrundsegment entspricht, oder einer Kombination beider Segmente entspricht. Wie oben mit Bezug auf die 2C und 2D beschrieben kann die Pixelmaske dem Vordergrund des aktuellen Bildrahmens oder dem Hintergrund des aktuellen Bildrahmens entsprechen. Das Verfahren 300 schreitet fort mit Anzeigen 310 des Bildrahmens und der Pixelmaske (zum Beispiel mittels der Anzeige 130 der 1). Die Pixelmaske kann zum Beispiel über entweder den Vordergrund oder den Hintergrund des aktuellen Rahmens gelegt werden.
  • In einigen Ausführungsformen schreitet das Verfahren 300 fort mit Empfangen 312 eines anderen Bildrahmens in einer Sequenz von Bildrahmen, wie er zum Beispiel in einer Kamera-Liveeinspielung zu finden ist. In einigen Fällen schreitet das Verfahren fort durch Nachverfolgen 314 der Bewegung der Kamera. Wenn zum Beispiel die Perspektive der Kamera sich mit der Zeit ändert kann sich der Ort eines Objekts im Vordergrund relativ zum Bildrahmen ändern. Das Verfahren schreitet fort mit Aktualisieren 316 der Segmentation des Vordergrundsegments und des Hintergrundsegments, um die Änderungen in den Orten des Vordergrunds und des Hintergrunds in den unterschiedlichen Bildrahmen widerzuspiegeln. Das Verfahren schreitet fort mit Aktualisieren 318 der Pixelmaske basierend auf der aktualisierten Segmentierung. Die aktualisierte Pixelmaske kann dann angezeigt werden 310, wie oben beschrieben.
  • In einigen Ausführungsformen können Marker auf der Anzeige platziert werden, um dem Benutzer dabei zu helfen, das gewünschte Objekt auszuwählen. Zum Beispiel kann ein Fadenkreuz oder ein Punkt angezeigt werden, und die Pixel unter dem Marker können als Teil der Auswahl verwendet werden, wodurch dem Benutzer eine visuelle Führung gegeben wird. In einigen Fällen können die Marker verwendet werden, um die Auswahl zu verbessern. Zum Beispiel kann für jeden Punkt unter dem Marker in dem Graphen-Schnitt Algorithmus dem Graphen eine Kante mit hoher Gewichtung hinzugefügt werden, um diese Pixel in den Vordergrund zu gewichten. Dies kann die benachbarten Pixel so beeinflussen, dass sie auch in den Vordergrund gewichtet werden. Ein anderer Typ von Markern beinhaltet eine Schachtel oder eine Ellipse, innerhalb derer sich das gewünschte Objekt befindet. In diesem Fall können alle Pixel außerhalb der Schachtel/Ellipse in den Hintergrund gewichtet werden.
  • Beispielhafte Rechenvorrichtung
  • 4 ist ein Blockdiagramm, das eine beispielhafte Rechenvorrichtung 1000 darstellt, die verwendet werden kann, um eine beliebige der Techniken auszuführen, die verschiedengestaltig in dieser Offenbarung beschrieben wurden. Zum Beispiel können die Rechenvorrichtung 100, die Kamera 110, der Prozessor 120, die Anzeige 130, das Bildsegmentierungsmodul, oder jede beliebige Kombination dieser, in der Rechenvorrichtung 1000 implementiert sein. Die Rechenvorrichtung 1000 kann ein beliebiges Computersystem sein, wie ein Arbeitsplatzrechner, ein Schreibtischcomputer, ein Server, ein Laptop, ein handgehaltener Computer, ein Tablet Computer (zum Beispiel der iPadTM Tablet Computer), eine mobile Rechen- oder Kommunikationsvorrichtung (wie zum Beispiel die iPhoneTM mobile Kommunikationsvorrichtung, die AndroidTM mobile Kommunikationsvorrichtung und ähnliche), oder eine andere Form einer Rechen- oder Kommunikationsvorrichtung, die zur Kommunikation in der Lage ist, und die über hinreichend Prozessorleistung und Speicherkapazität verfügt, um die in dieser Offenbarung beschriebenen Operationen auszuführen. Ein verteiltes Rechnersystem kann bereitgestellt werden, das eine Mehrzahl solcher Rechenvorrichtungen umfasst.
  • Die Rechenvorrichtung 1000 beinhaltet eine oder mehr Speichervorrichtungen 1010 und/oder nichtflüchtige, computerlesbare Medien 1020, welche darauf eine oder mehr computerlesbare Anweisungen oder Software kodiert hat zum Implementieren von Techniken, wie sie vielfältig in dieser Offenbarung beschrieben sind. Die Speichervorrichtungen 1010 können einen Computersystemspeicher oder einen Speicher mit wahlfreiem Zugriff umfassen, wie einen dauerhaften Plattenspeicher (der jede geeignete optische oder magnetische, dauerhafte Speichervorrichtung umfassen kann, zum Beispiel RAM, ROM, Flash, USB Platte, oder ein anderes halbleiterbasiertes Speichermedium), eine Festplatte, CD-ROM, oder ein anderes computerlesbares Medium, zum Speichern von Daten und computerlesbaren Anweisungen und/oder von Software, welche verschiedene Ausführungsformen implementiert, wie sie in dieser Offenbarung gelehrt sind. Die Speichervorrichtung 1010 kann auch andere Arten von Speicher, oder Kombinationen davon umfassen. Die Speichervorrichtung 1010 kann auf der Rechenvorrichtung 1000 bereitgestellt sein, oder kann separat von oder entfernt von der Rechenvorrichtung 1000 bereitgestellt sein. Das nichtflüchtige, computerlesbare Medium 1020 kann einen oder mehr Typen von Hardwarespeichern, nichtflüchtige greifbare Medien (zum Beispiel eine oder mehr magnetische Speicherisketten, eine oder mehr optische Discs, ein oder mehr USB Flash Speicher) und ähnliches beinhalten, ist aber nicht auf diese beschränkt. Das nichtflüchtige, computerlesbare Medium 1020, das in der Rechenvorrichtung 1000 beinhaltet ist, kann computerlesbare und durch einen Computer ausführbare Anweisungen oder Software speichern, um verschiedene Ausführungsformen zu implementieren. Das computerlesbare Medium 1020 kann auf der Rechenvorrichtung 1000 bereitgestellt sein, oder separat oder entfernt von der Rechenvorrichtung 1000 bereitgestellt sein.
  • Die Rechenvorrichtung 1000 beinhaltet auch zumindest einen Prozessor 1030 zum Ausführen computerlesbarer und durch einen Computer ausführbarer Anweisungen oder Software, die in der Speichervorrichtung 1010 und/oder dem nichtflüchtigen, computerlesbaren Medium 1020 gespeichert sind, und andere Programme zum Steuern von Systemhardware. Virtualisierung kann in der Rechenvorrichtung 1000 verwendet werden, so dass Infrastruktur und Ressourcen in der Rechenvorrichtung 1000 dynamisch geteilt werden können. Zum Beispiel kann eine virtuelle Maschine bereitgestellt werden, um einen Prozess zu handhaben, der auf mehreren Prozessoren läuft, so dass der Prozess nur eine Rechenvorrichtung zu benutzen scheint, anstatt mehrerer Rechenressourcen. Es können auch mehrere virtuelle Maschinen mit einem Prozessor verwendet werden.
  • Ein Benutzer kann mit der Rechenvorrichtung 1000 über eine Ausgabevorrichtung 1040 interagieren, wie einem Bildschirm oder Monitor (zum Beispiel die Anzeige 130 der 1), der eine oder mehr Benutzerschnittstellen anzeigen kann, die in Übereinstimmung mit einigen Ausführungsformen bereitgestellt sind. Die Ausgabevorrichtung 1040 kann auch andere Aspekte, Elemente und/oder Information oder Daten darstellen, die mit einigen Ausführungsformen assoziiert sind. Die Rechenvorrichtung 1000 kann andere Eingabe/Ausgabevorrichtungen 1050 beinhalten, um Eingaben von einem Benutzer zu empfangen, zum Beispiel eine Tastatur, einen Joystick, einen Spielekontroller, eine Zeigevorrichtung (zum Beispiel eine Maus, ein Finger des Benutzers, der direkt mit einer Anzeigevorrichtung interagiert und so weiter), oder irgendeine andere geeignete Benutzerschnittstelle. Die Rechenvorrichtung 1000 kann andere geeignete herkömmliche Eingabe/Ausgabe-Peripheriegeräte beinhalten, wie eine Kamera 1052. Die Rechenvorrichtung 1000 kann verschiedene geeignete Vorrichtungen beinhalten, oder mit diesen operativ gekoppelt sein, um eine oder mehr der Funktionen auszuführen, die in dieser Offenbarung vielfältig beschrieben wurden.
  • Die Rechenvorrichtung 1000 kann ein beliebiges Betriebssystem ausführen, wie eine beliebige Version des Betriebssystems Microsoft® Windows®, die unterschiedlichen Releases der Betriebssysteme Unix und Linux, eine beliebige Version von MacOS® für Macintosh Computer, ein beliebiges eingebettetes Betriebssystem, ein beliebiges Echtzeitbetriebssystem, ein beliebiges Open Source Betriebssystem, ein beliebiges proprietäres Betriebssystem, ein beliebiges Betriebssystem für mobile Rechenvorrichtungen, oder ein anderes beliebiges Betriebssystem, das in der Lage ist, auf der Rechenvorrichtung 1000 zu laufen und die in dieser Offenbarung beschriebenen Operationen auszuführen. In einer Ausführungsform kann das Betriebssystem auf einer oder mehrerer Datenwolken-Maschineninstanzen ablaufen.
  • In anderen Ausführungsformen können die funktionalen Komponenten/Module mit Hardware implementiert sein, wie Gatterebenenlogik (zum Beispiel FPGA), oder ein speziell angefertigter Halbleiter (zum Beispiel ein ASIC). Nochmals weitere Ausführungsformen können mit einem Microcontroller implementiert sein, der eine Anzahl von Eingabe-/Ausgabeanschlüssen zum Empfangen und Ausgeben von Daten aufweist, und eine Anzahl von eingebetteten Routinen zum Ausführen der in dieser Offenbarung beschriebenen Funktionalität. Auf allgemeinere Weise kann jede beliebige geeignete Kombination von Hardware, Software und Firmware verwendet werden, wie offensichtlich sein wird.
  • Wie angesichts dieser Offenbarung verstanden werden wird können die verschiedenen Module und Komponenten des in 1 gezeigten Systems, wie das Bildsegmentierungsmodul 112, in Software implementiert werden, wie einer Menge von Anweisungen (zum Beispiel C, C++, objektorientiertes C, JavaScript, Java, BASIC und so weiter), die auf einem beliebigen computerlesbaren Medium oder Computerprogrammprodukt kodiert sind (zum Beispiel eine Festplatte, ein Server, eine Disc, oder ein anderer geeigneter nichtflüchtiger Speicher, oder Menge von Speichern), welche, wenn sie von einem oder mehreren Prozessoren ausgeführt werden, dazu führen, dass die verschiedenen Methodiken, die in dieser Offenbarung bereitgestellt werden, ausgeführt werden. Es wird verstanden werden, dass in einigen Ausführungsformen verschiedene Funktionen, die von dem Benutzerrechnersystem ausgeführt werden, wie in dieser Offenbarung beschrieben, durch ähnliche Prozessoren und/oder Datenbanken in unterschiedlichen Konfigurationen und Anordnungen ausgeführt werden können, und die dargestellten Ausführungsformen sind nicht dazu gedacht, beschränkend zu sein. Verschiedene Komponenten dieser beispielhaften Ausführungsform, einschließlich der Rechenvorrichtung 100, können zum Beispiel integriert sein in einen oder mehr Schreibtischcomputer oder Laptopcomputer, Arbeitsplatzrechner, Tablets, Smartphones, Spielekonsolen, Set-Top-Boxen, oder andere solche Rechenvorrichtungen. Andere Komponenten und Module, welche typisch für ein Rechnersystem sind, wie Prozessoren (zum Beispiel zentrale Recheneinheit und Coprozessor, Graphikprozessor und so weiter), Eingabevorrichtungen (zum Beispiel Tastatur, Maus, berührungssensitives Eingabefeld, Berührungsbildschirm und so weiter) und Betriebssystem sind nicht dargestellt, werden aber sofort ersichtlich sein.
  • Beispielhafte Anwendungen
  • Ausführungsformen der vorliegenden Erfindung können angewandt werden auf eine oder mehrere Anwendungen. In einer beispielhaften Anwendung kann ein Objekt aus einem Bild extrahiert werden, so dass das Objekt in einer Linienzeichnung nachgezeichnet werden kann. In einer anderen beispielhaften Anwendung können Live-Bearbeitungen des Vordergrunds/Hintergrunds einem Benutzer auf einem Tablet oder einer anderen mobilen Vorrichtung dargestellt werden. Zum Beispiel kann es eine derartige Anwendung dem Benutzer erlauben, die Vordergrund-/Hintergrundeffekte zu sehen (zum Beispiel die Maske 214 oder 222 der 2C und 2D) in einem Kameravorschaubildschirm, bevor ein Bild aufgenommen wird (zum Beispiel in Echtzeit oder nahezu in Echtzeit). Beispiele solcher Effekte beinhalten 1) Tönen bzw. Einfärben des Vordergrundes in rot; 2) Darstellen des Vordergrundes in weiß und des Hintergrundes in schwarz; 3) Darstellen des Vordergrundes auf einem anderen, karierten bzw. schachbrettartigen Hintergrund; 4) Erhöhen der Sättigung des Vordergrundes und vermindern der Sättigung des Hintergrundes; und 5) Darstellen des Vordergrundes in Farbe und des Hintergrundes als eine Linienzeichnung. Es sei bemerkt, dass der Benutzer das Tablet oder die mobile Vorrichtung umherbewegen kann und die Effekte in einer Live Bildvorschau sehen kann. Wie in Anbetracht der Offenbarung verstanden werden wird können andere Effekte verwendet werden.
  • Eine andere beispielhafte Anwendung kann zur Live-Bildkomposition verwendet werden. Wenn ein Benutzer ein Selbstportrait oder ein sogenanntes „Selfie” Bild machen möchte, ohne der Szene seinen bzw. ihren Rücken zu kehren, nimmt der Benutzer ein Foto der Szene mit der nach hinten weisenden Kamera der mobilen Vorrichtung auf, und dann schaltet die Anwendung automatisch auf die nach vorne weisende Kamera um, wählt die Person aus, und fügt sie live in den Hintergrund ein (zum Beispiel indem sie einen Gesichts/Personen-Bias verwendet). Wenn die Vorrichtung es erlaubt, dass die Frontkamera und die rückseitige Kamera gleichzeitig aktiv sind, dann kann auch die Szene von der rückseitigen Kamera live sein.
  • Zahlreiche Ausführungsformen werden ersichtlich sein in Anbetracht der vorliegenden Offenbarung, und Merkmale, die in dieser Offenbarung beschrieben sind, können in einer beliebigen Zahl von Konfigurationen kombiniert werden. Eine beispielhafte Ausführungsform stellt ein System bereit, das einen Speicher beinhaltet, der zumindest einen Speicher hat, und ein oder mehr Prozessoren sind jeweils operativ mit dem Speicher gekoppelt. Der eine oder die mehreren Prozessoren sind konfiguriert, einen Prozess auszuführen, der beinhaltet Empfangen von Pixeldaten des aktuellen Rahmens, die einen aktuellen Bildrahmen repräsentieren; Berechnen eines Biasterms, der eine Gewichtung jedes Pixels in dem aktuellen Bildrahmen in Richtung auf eines von einem Bereich mit Vordergrundbias und einen Bereich mit Hintergrundbias repräsentiert; Segmentieren, unter Verwendung einer Energieoptimierungsfunktion (zum Beispiel mit einer Graphen-Schnitt Optimierungstechnik oder einem Belief-Propagation Algorithmus) des aktuellen Bildrahmens in ein Vordergrundsegment und ein Hintergrundsegment basierend auf den Pixeldaten und dem Biasterm; und Erzeugen einer Pixelmaske, die Pixeln in dem zumindest einen von dem Vordergrundsegment und dem Hintergrundsegment entspricht. In einigen Fällen beinhaltet das System eine Anzeige, die operativ an den Prozessor gekoppelt ist und konfiguriert ist, eine graphische Benutzerschnittstelle bereitzustellen, wo der Prozess beinhaltet Anzeigen, mittels der graphischen Benutzerschnittstelle, des aktuellen Bildrahmens und der Pixelmaske derart, dass die Pixelmaske über die jeweiligen Pixel in dem Bildrahmen überlagert ist. In einigen Fällen basiert die Segmentierung weiter auf einem ersten Merkmal (zum Beispiel einer Farbe) eines ersten Pixels in dem Bereich mit Vordergrundbias, und einem zweiten Merkmal (zum Beispiel eine andere Farbe) eines zweiten Pixels in dem Bereich mit Hintergrundbias, und wo ein drittes Pixel des aktuellen Bildrahmens, welches das erste Merkmal hat, segmentiert wird in das Vordergrundsegment, und ein viertes Pixel in dem aktuellen Bildrahmen, welches das zweite Merkmal hat, in das Hintergrundsegment segmentiert wird. In einigen Fällen beinhaltet der Bereich mit Vordergrundbias eine Mitte des aktuellen Bildrahmens, ein Gesicht einer Person, das bzw. die in dem aktuellen Bildrahmen erkannt wird, oder einen Körper einer Person, der bzw. die in dem aktuellen Bildrahmen erkannt wird. In einigen Fällen ist der aktuelle Bildrahmen einer von einer Vielzahl von Bildrahmen in einer Kamera-Liveeinspielung, wo der Prozess beinhaltet Empfangen zusätzlicher Pixelrahmendaten, welche einen anderen Bildrahmen repräsentieren, und Verwenden der Graphen-Schnitt Optimierungstechnik, um die Segmentierung des aktuellen Bildrahmens basierend auf den zusätzlichen Pixeldaten zu aktualisieren. In einigen dieser Fälle beinhaltet der Prozess Aktualisieren der Pixelmaske basierend auf der aktualisierten Segmentierung. In einigen solchen Fällen beinhaltet der Prozess Aktualisieren der Pixelmaske basierend auf zumindest einer Pixelmaske, die zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment in dem anderen Bildrahmen entspricht, und Mitteln der neuen Pixelmaske mit der zumindest einen früheren Pixelmaske, um dadurch eine aktualisierte Pixelmaske zu erzeugen. In einigen Fällen beinhaltet der Prozess sequentielles Anzeigen, mittels der graphischen Benutzerschnittstelle, jeder der aktualisierten Pixelmasken. Eine andere Ausführungsform stellt ein nichtflüchtiges computerlesbares Medium oder Computerprogrammprodukt bereit, das darauf kodierte Anweisungen aufweist, die, wenn sie durch einen oder mehrere Prozessoren ausgeführt werden, den Prozessor dazu veranlassen, eine oder mehrere der Funktonen auszuführen, die in der vorliegenden Offenbarung definiert sind, so wie die Methodiken, die verschiedentlich in diesem Absatz beschrieben sind. In einigen Fällen können einige oder alle der verschiedentlich in diesem Absatz beschriebene Funktionen in beliebiger Reihenfolge und zu beliebiger Zeit ausgeführt werden durch einen oder mehrere unterschiedliche Prozessoren.
  • Die vorstehende Beschreibung und die Zeichnungen verschiedener Ausführungsformen sind lediglich beispielhaft. Diese Beispiele sind nicht dazu gedacht, erschöpfend zu sein oder die Erfindung auf die präzisen offenbarten Formen zu beschränken. Abänderungen, Modifikationen und Variationen werden in Anbetracht dieser Offenbarung ersichtlich sein und sind als in den Bereich der Erfindung fallend gedacht, wie in den Ansprüchen dargelegt.

Claims (20)

  1. Computer-implementiertes digitales Bildverarbeitungsverfahren, umfassend: Empfangen von Pixeldaten, welche einen aktuellen Bildrahmen (200) repräsentieren; Berechnen eines Biasterms, welcher eine Gewichtung jedes Pixels in dem aktuellen Bildrahmen (200) in Richtung auf eines von einem Bereich mit Vordergrundbias und einem Bereich mit Hintergrundbias repräsentiert; Segmentieren, durch einen Prozessor (120; 1030) unter Verwendung einer Energieoptimierungsfunktion, des aktuellen Bildrahmens (200) in ein Vordergrundsegment und ein Hintergrundsegment basierend auf den Pixeldaten und dem Biasterm; und Erzeugen einer Pixelmaske, welche den Pixeln in zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment entspricht.
  2. Verfahren nach Anspruch 1, weiter umfassend: Anzeigen, über eine graphische Benutzerschnittstelle, des aktuellen Bildrahmens (200) und der Pixelmaske derart, dass die Pixelmaske über die jeweiligen Pixel in dem Bildrahmen (200) überlagert wird.
  3. Verfahren nach Anspruch 1 oder 2, wobei das Segmentieren weiter auf einem ersten Merkmal eines ersten Pixels in dem Bereich mit Vordergrundbias und einem zweiten Merkmal eines zweiten Pixels in dem Bereich mit Hintergrundbias basiert, und worin ein drittes Pixel in dem aktuellen Bildrahmen (200), welches das erste Merkmal aufweist, in Richtung auf das Vordergrundsegment hin gewichtet wird, und ein viertes Pixel in dem aktuellen Bildrahmen (200), welches das zweite Merkmal aufweist, in Richtung auf das Hintergrundsegment hin gewichtet wird.
  4. Verfahren nach einem der Ansprüche 1 bis 3, worin der Bereich mit Vordergrundbias zumindest eines beinhaltet von einer Mitte des aktuellen Bildrahmens (200), einem Gesicht einer Person, die in dem aktuellen Bildrahmen (200) erkannt wird, und einem Körper einer Person, die in dem aktuellen Bildrahmen (200) erkannt wird.
  5. Verfahren nach einem der Ansprüche 1 bis 4, worin der aktuelle Bildrahmen (200) einer von einer Vielzahl von Bildrahmen (200) in einer Kamera-Liveeinspielung ist, und worin das Verfahren weiter umfasst: Empfangen zusätzlicher Pixelrahmendaten, welche einen anderen Bildrahmen (200) repräsentieren; und Verwenden der Energieoptimierungsfunktion, um die Segmentierung des aktuellen Bildrahmens (200) basierend auf den zusätzlichen Pixeldaten zu aktualisieren.
  6. Verfahren nach Anspruch 5, weiter umfassend Aktualisieren der Pixelmaske basierend auf zumindest einer Pixelmaske, die erzeugt wurde vor Empfangen eines der kontinuierlich aktualisierten Bildrahmen (200).
  7. Verfahren nach Anspruch 6, worin das Aktualisieren beinhaltet: Erzeugen einer neuen Pixelmaske, welche zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment in dem anderen Bildrahmen (200) entspricht; und Mitteln der neuen Pixelmaske mit der zumindest einen früheren Pixelmaske, um eine aktualisierte Pixelmaske zu erzeugen.
  8. Verfahren nach einem der Ansprüche 1 bis 7, worin das Segmentieren ausgeführt wird unter Verwendung von einem von einem Graphen-Schnitt Algorithmus und einem Belief-Propagation Algorithmus.
  9. Verfahren nach Anspruch 6, weiter umfassend sequentielles Anzeigen, über die graphische Benutzerschnittstelle, jeder der aktualisierten Pixelmasken.
  10. System, umfassend: einen Speicher (1010); einen Prozessor (120; 1030), der operativ mit dem Speicher (1010) gekoppelt ist, wobei der Prozessor (120; 1030) konfiguriert ist, Anweisungen auszuführen, die in dem Speicher (1010) gespeichert sind, welche, wenn sie ausgeführt werden, den Prozessor (120; 1030) dazu veranlassen, einen Prozess auszuführen, der umfasst: Empfangen von Pixeldaten eines aktuellen Rahmens, welche einen aktuellen Bildrahmen (200) repräsentieren; Berechnen eines Biasterms, welcher eine Gewichtung jedes Pixels in dem aktuellen Bildrahmen (200) in Richtung auf eines von einem Bereich mit Vordergrundbias und einem Bereich mit Hintergrundbias hin repräsentiert; Segmentieren, unter Verwendung einer Energieoptimierungsfunktion, des aktuellen Bildrahmens (200) in ein Vordergrundsegment und ein Hintergrundsegment basierend auf den Pixeldaten und dem Biasterm; und Erzeugen einer Pixelmaske, welche den Pixeln in zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment entspricht.
  11. System nach Anspruch 10, weiter umfassend eine Anzeige (130), die operativ an den Prozessor (120; 1030) gekoppelt ist und konfiguriert ist, eine graphische Benutzerschnittstelle bereit zu stellen, wobei der Prozess weiter umfasst: Anzeigen, über die graphische Benutzerschnittstelle, des aktuellen Bildrahmens (200) und der Pixelmaske derart, dass die Pixelmaske den jeweiligen Pixeln in dem Bildrahmen (200) überlagert ist.
  12. System nach Anspruch 10 oder 11, worin die Segmentierung weiter auf einem ersten Merkmal eines ersten Pixels in dem Bereich mit Vordergrundbias und einem zweiten Merkmal eines zweiten Pixels in dem Bereich mit Hintergrundbias basiert, und worin ein drittes Pixel in dem aktuellen Bildrahmen (200), welches das erste Merkmal aufweist, in Richtung auf das Vordergrundsegment hin gewichtet wird, und ein viertes Pixel in dem aktuellen Bildrahmen (200), welches das zweite Merkmal aufweist, in Richtung auf das Hintergrundsegment hin gewichtet wird.
  13. System nach einem der Ansprüche 10 bis 12, worin der Bereich mit Vordergrundbias zumindest eines beinhaltet von einer Mitte des aktuellen Bildrahmens (200), einem Gesicht einer Person, die in dem aktuellen Bildrahmen (200) erkannt wurde, und einem Körper einer Person, die in dem aktuellen Bildrahmen (200) erkannt wurde.
  14. System nach einem der Ansprüche 10 bis 13, worin der aktuelle Bildrahmen (200) einer von einer Vielzahl von Bildrahmen (200) in einer Kamera-Liveeinspielung ist, und worin der Prozess weiter umfasst: Empfangen zusätzlicher Pixelrahmendaten, welche einen anderen Bildrahmen (200) repräsentieren; und Verwenden der Energieoptimierungsfunktion, um die Segmentierung des aktuellen Bildrahmens (200) basierend auf den zusätzlichen Pixeldaten zu aktualisieren.
  15. System nach Anspruch 14, wobei der Prozess weiter umfasst Aktualisieren der Pixelmaske basierend auf zumindest einer Pixelmaske, die erzeugt wurde vor Empfangen eines der kontinuierlich aktualisierten Bildrahmen (200).
  16. System nach Anspruch 15, worin das Aktualisieren beinhaltet: Erzeugen einer neuen Pixelmaske, welche zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment in dem anderen Bildrahmen (200) entspricht; und Mitteln der neuen Pixelmaske mit der zumindest einen früheren Pixelmaske, um eine aktualisierte Pixelmaske zu erzeugen.
  17. System nach einem der Ansprüche 10 bis 16, worin die Segmentierung ausgeführt wird unter Verwendung von einem von einem Graphen-Schnitt Algorithmus und einem Belief-Propagation Algorithmus.
  18. System nach Anspruch 15, wobei der Prozess weiter umfasst sequentielles Anzeigen, über die graphische Benutzerschnittstelle, jeder der aktualisierten Pixelmasken.
  19. Nichtflüchtiges Computerprogrammprodukt, welches Anweisungen umfasst, die darauf kodiert sind, welche, wenn sie von einem oder mehreren Prozessoren (120; 1030), ausgeführt werden, die Ausführung eines Prozesses veranlassen, wobei der Prozess umfasst: Empfangen von Pixeldaten eines aktuellen Rahmens, welche einen aktuellen Bildrahmen (200) repräsentieren; Berechnen eines Biasterms, welcher eine Gewichtung jedes Pixels in dem aktuellen Bildrahmen (200) in Richtung auf eines von einem Bereich mit Vordergrundbias und einem Bereich mit Hintergrundbias hin repräsentiert; Segmentieren, unter Verwendung einer Energieoptimierungsfunktion, des aktuellen Bildrahmens (200) in ein Vordergrundsegment und ein Hintergrundsegment basierend auf den Pixeldaten und dem Biasterm; und Erzeugen einer Pixelmaske, welche den Pixeln in zumindest einem von dem Vordergrundsegment und dem Hintergrundsegment entspricht.
  20. Nichtflüchtiges Computerprogrammprodukt nach Anspruch 19, worin der Prozess weiter umfasst Anzeigen, über eine graphische Benutzerschnittstelle, des aktuellen Bildrahmens (200) und der Pixelmaske derart, dass die Pixelmaske über die jeweiligen Pixel in dem Bildrahmen (200) überlagert wird.
DE102015009820.9A 2014-08-01 2015-07-28 Bildsegmentierung für eine Kamera-Liveeinspielung Pending DE102015009820A1 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US14/449,351 US9774793B2 (en) 2014-08-01 2014-08-01 Image segmentation for a live camera feed
US14/449,351 2014-08-01

Publications (1)

Publication Number Publication Date
DE102015009820A1 true DE102015009820A1 (de) 2016-02-04

Family

ID=54106514

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102015009820.9A Pending DE102015009820A1 (de) 2014-08-01 2015-07-28 Bildsegmentierung für eine Kamera-Liveeinspielung

Country Status (4)

Country Link
US (1) US9774793B2 (de)
CN (1) CN105321171B (de)
DE (1) DE102015009820A1 (de)
GB (1) GB2529060B (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9633444B2 (en) * 2014-05-05 2017-04-25 Xiaomi Inc. Method and device for image segmentation
US10244175B2 (en) 2015-03-09 2019-03-26 Apple Inc. Automatic cropping of video content
US9584716B2 (en) * 2015-07-01 2017-02-28 Sony Corporation Method and apparatus for autofocus area selection by detection of moving objects
JP6504364B2 (ja) * 2015-11-27 2019-04-24 パナソニックIpマネジメント株式会社 モニタリング装置、モニタリングシステムおよびモニタリング方法
US10427038B2 (en) * 2016-01-21 2019-10-01 Toccata Gaming International, Llc Game console incorporating beam-splitter display and real world objects
US10417321B2 (en) * 2016-07-22 2019-09-17 Dropbox, Inc. Live document detection in a captured video stream
US11653072B2 (en) 2018-09-12 2023-05-16 Zuma Beach Ip Pty Ltd Method and system for generating interactive media content
US10810435B2 (en) * 2018-11-07 2020-10-20 Adobe Inc. Segmenting objects in video sequences
CN109886977B (zh) * 2019-02-19 2020-01-24 闽南师范大学 一种带有邻域约束的图像分割方法、终端设备及存储介质
JP7315361B2 (ja) * 2019-04-04 2023-07-26 ザイオソフト株式会社 医用画像処理装置、医用画像処理方法、及び医用画像処理プログラム
JP7313901B2 (ja) * 2019-05-21 2023-07-25 東芝テック株式会社 物品認識装置および物品認識方法
CN110507311B (zh) * 2019-08-27 2022-07-19 中科麦迪人工智能研究院(苏州)有限公司 一种基于图像信息的心电分析方法、装置、设备及介质
US11636683B2 (en) * 2021-09-14 2023-04-25 Black Sesame Technologies Inc. Precise object segmentation with multi-modal input for realtime video application

Family Cites Families (32)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6721446B1 (en) * 1999-04-26 2004-04-13 Adobe Systems Incorporated Identifying intrinsic pixel colors in a region of uncertain pixels
US7822274B2 (en) * 2006-01-17 2010-10-26 Siemens Medical Solutions Usa, Inc. Banded graph cut segmentation algorithms with laplacian pyramids
US7885463B2 (en) * 2006-03-30 2011-02-08 Microsoft Corp. Image segmentation using spatial-color Gaussian mixture models
CN101512598A (zh) * 2006-07-21 2009-08-19 奥多比公司 实时的一致图像选择
CN100514992C (zh) * 2007-03-30 2009-07-15 中国联合网络通信集团有限公司 一种移动终端帧动画的处理方法
CN100580703C (zh) * 2007-05-17 2010-01-13 西北工业大学 一种无监督马尔可夫随机场图像分割方法
US20090041344A1 (en) * 2007-08-08 2009-02-12 Richard John Campbell Methods and Systems for Determining a Background Color in a Digital Image
US8107726B2 (en) * 2008-06-18 2012-01-31 Samsung Electronics Co., Ltd. System and method for class-specific object segmentation of image data
US8249349B2 (en) * 2008-11-25 2012-08-21 Microsoft Corporation Labeling image elements
TWI391876B (zh) 2009-02-16 2013-04-01 Inst Information Industry 利用多重模組混合圖形切割之前景偵測方法、系統以及電腦程式產品
WO2011017806A1 (en) * 2009-08-14 2011-02-17 Genesis Group Inc. Real-time image and video matting
US8452087B2 (en) * 2009-09-30 2013-05-28 Microsoft Corporation Image selection techniques
CN101789124B (zh) * 2010-02-02 2011-12-07 浙江大学 视频序列的时空一致性分割方法
US8818028B2 (en) * 2010-04-09 2014-08-26 Personify, Inc. Systems and methods for accurate user foreground video extraction
US8498481B2 (en) 2010-05-07 2013-07-30 Microsoft Corporation Image segmentation using star-convexity constraints
CN101840577B (zh) * 2010-06-11 2012-07-25 西安电子科技大学 基于图切割的图像自动分割方法
ES2395102B1 (es) * 2010-10-01 2013-10-18 Telefónica, S.A. Metodo y sistema para segmentacion de primer plano de imagenes en tiempo real
WO2013003026A2 (en) 2011-06-30 2013-01-03 University Of Florida Research Foundation, Inc. Adaptive background estimation
CN102446352B (zh) * 2011-09-13 2016-03-30 深圳万兴信息科技股份有限公司 视频图像处理方法及装置
US9305357B2 (en) 2011-11-07 2016-04-05 General Electric Company Automatic surveillance video matting using a shape prior
WO2013178725A1 (en) * 2012-05-31 2013-12-05 Thomson Licensing Segmentation of a foreground object in a 3d scene
JP5968098B2 (ja) * 2012-06-14 2016-08-10 キヤノン株式会社 画像処理装置、画像処理方法、プログラム、及び記憶媒体
US9106908B2 (en) * 2012-07-30 2015-08-11 Intel Corporation Video communication with three dimensional perception
EP2706503A3 (de) * 2012-09-11 2017-08-30 Thomson Licensing Verfahren und Vorrichtung zur zweischichtigen Bildsegmentierung
US20140079319A1 (en) * 2012-09-20 2014-03-20 Htc Corporation Methods for enhancing images and apparatuses using the same
US9213896B2 (en) * 2013-03-05 2015-12-15 Mitsubishi Electric Research Laboratories, Inc. Method for detecting and tracking objects in image sequences of scenes acquired by a stationary camera
US9355447B2 (en) 2013-08-21 2016-05-31 Wisconsin Alumni Research Foundation System and method for gradient assisted non-connected automatic region (GANAR) analysis
CN103500447B (zh) * 2013-09-18 2015-03-18 中国石油大学(华东) 基于增量式高次布尔能量最小化的视频前后景分割方法
US9401027B2 (en) * 2013-10-21 2016-07-26 Nokia Technologies Oy Method and apparatus for scene segmentation from focal stack images
US9390505B2 (en) * 2013-12-12 2016-07-12 Qualcomm Incorporated Method and apparatus for generating plenoptic depth maps
US9414016B2 (en) * 2013-12-31 2016-08-09 Personify, Inc. System and methods for persona identification using combined probability maps
US9485433B2 (en) * 2013-12-31 2016-11-01 Personify, Inc. Systems and methods for iterative adjustment of video-capture settings based on identified persona

Also Published As

Publication number Publication date
GB2529060A (en) 2016-02-10
CN105321171A (zh) 2016-02-10
CN105321171B (zh) 2020-09-11
GB201513009D0 (en) 2015-09-09
US20160037087A1 (en) 2016-02-04
US9774793B2 (en) 2017-09-26
GB2529060B (en) 2019-03-20

Similar Documents

Publication Publication Date Title
DE102015009820A1 (de) Bildsegmentierung für eine Kamera-Liveeinspielung
DE102020100684B4 (de) Kennzeichnung von graphischen bezugsmarkierern
DE112020003794T5 (de) Tiefenbewusste Fotobearbeitung
EP2206090B1 (de) Verfahren und vorrichtung zum darstellen eines virtuellen objekts in einer realen umgebung
DE102019008221A1 (de) Interaktives Bildmattieren unter Verwendung neuronaler Netze
EP2206089B1 (de) Verfahren und vorrichtung zum darstellen eines virtuellen objekts in einer realen umgebung
DE102020000810A1 (de) 3D-Objektrekonstruktion unter Nutzung einer fotometrischen Netzdarstellung
DE102018006247A1 (de) Digitalbildvervollständigung unter Verwendung des Deep Learning
DE112007001789B4 (de) Verfahren zum Bewerten eines Bildes im Hinblick auf eine dominante Linie
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102016011380A1 (de) Bildsynthese unter Verwendung einer Aktivmaske
DE112016004731T5 (de) Erweitern von Mehrfachansicht-Bilddaten mit synthetischen Objekten unter Verwendung von IMU und Bilddaten
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE112014006439B4 (de) Kantenerkennungsvorrichtung, Kantenerkennungsverfahren und Programm
DE102012210521A1 (de) Unbeschnittene Zeit- und Linsen-Begrenzungen für verbesserte Probentest- Effizienz bei Bild-Rendering
DE102018003475A1 (de) Formbasierte Grafiksuche
DE102017005964A1 (de) Techniken zum Auswählen von Objekten in Bildern
DE112010002677T5 (de) Verfahren und vorrichtung zum bestimmen einer formübereinstimmung in drei dimensionen
DE102013215301A1 (de) System, Verfahren und Computerprogrammprodukt zum Extrudieren eines Modells durch eine zweidimensionale Szene
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
JP6914734B2 (ja) シルエット抽出装置、方法およびプログラム
DE102018007146A1 (de) Ölgemälde-Strichsimulation mittels eines neuronalen Netzwerks
EP2528042A1 (de) Verfahren und Vorrichtung zum Re-Meshing von 3D-Polygonmodellen
DE102018009313A1 (de) Erzeugen selektiver virtueller Langzeitbelichtungsbilder

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

Free format text: FORMER OWNER: ADOBE SYSTEMS INCORPORATED, SAN JOSE, CALIF., US

R082 Change of representative

Representative=s name: MUELLER-BORE & PARTNER PATENTANWAELTE PARTG MB, DE

R016 Response to examination communication