DE10197062B4 - Bildextraktion aus komplexen Szenen bei digitalen Videos - Google Patents

Bildextraktion aus komplexen Szenen bei digitalen Videos Download PDF

Info

Publication number
DE10197062B4
DE10197062B4 DE10197062.5T DE10197062T DE10197062B4 DE 10197062 B4 DE10197062 B4 DE 10197062B4 DE 10197062 T DE10197062 T DE 10197062T DE 10197062 B4 DE10197062 B4 DE 10197062B4
Authority
DE
Germany
Prior art keywords
path
foreground
digital image
border
boundary
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.)
Expired - Lifetime
Application number
DE10197062.5T
Other languages
English (en)
Other versions
DE10197062T5 (de
Inventor
Gregg D. Wilensky
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 DE10197062T5 publication Critical patent/DE10197062T5/de
Application granted granted Critical
Publication of DE10197062B4 publication Critical patent/DE10197062B4/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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/12Edge-based segmentation
    • 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
    • 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/20036Morphological image processing
    • G06T2207/20041Distance transform

Abstract

Verfahren zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder aufweist, jedes Bild durch mehrere Pixel definiert ist, und das Verfahren umfasst: Empfangen einer ersten Eingabe von einem Benutzer, die einen ersten Grenzbereich definiert, wobei der erste Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem ersten digitalen Bild enthält, wobei der erste Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; Empfangen einer zweiten Eingabe von dem Benutzer, die einen zweiten Grenzbereich definiert, wobei der zweite Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem zweiten digitalen Bild enthält, wobei der zweite Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; wobei der Empfang von Eingaben, welche die Grenzbereiche angeben, umfasst: Erzeugung eines innenseitigen Weges, der innerhalb eines Vordergrundabschnitts liegt; Erzeugung eines außenseitigen Weges, der außerhalb des Vordergrundabschnitts liegt und den innenseitigen Weg umschließt, wobei Pixel zwischen dem innenseitigen und dem außenseitigen Weg zu einem Grenzbereich gehören; Interpolieren eines Zwischengrenzbereiches durch Interpolieren der innenseitigen und außenseitigen Wege für ein Bild, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt; und ...

Description

  • TECHNISCHES GEBIET
  • Die vorliegende Erfindung betrifft allgemein Computersysteme, und spezieller Verfahren und Systeme zum Maskieren und Extrahieren eines Objekts aus einer komplexen Szene in einem digitalen Video.
  • HINTERGRUND
  • GU, Chuang, LEE, Ming-Chieh: ”Semiautomatic Segmentation and Tracking of Semantic Video Ojbects”, IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 5, September 05, 1998, pp. 572–584, offenbart ein Extraktionsverfahren von semantischen Objekten aus digitalen Videos, welches zunächst eine Segmentierung eines Videoobjektes durchführt, bei welcher für ein digitales Bild eine Annäherung zu einer Objektgrenze durch einen Benutzer eingegeben wird. Um diese Objektgrenze herum werden eine innere sowie eine äußere Grenze gezogen, so dass die tatsächliche Objektgrenze zwischen diesen beiden Grenzen liegt. Basierend auf den Pixelwerten der Objektgrenze werden alle Pixelwerte innerhalb der Objektgrenze verglichen und jeweils einer der beiden Grenzen zugeordnet. Das Objekt wird basierend auf der Segmentierung auf den Bildern die zeitlich nach dem o. g. digitalen Bild liegen, verfolgt.
  • LOMBARDO, A. et al: ”Intra-GoP Modeling of MPEG Video Traffic”, IEEE International Conference on Communications, ICC 98, Atlanta, GA, USA, June 7–11, 1998, Conference Record, Vol. 2, pp. 563–567, offenbart eine Vorgehensweise zum Kodieren aufeinanderfolgender Rahmen, welche entweder mit einer Bewegungskompensation hinsichtlich der vorherigen und nachfolgenden Rahmen oder einer Interpolation zwischen diesen kodiert werden.
  • LUO, H.; ELEFTHERIADIS, A.: ”Spatial Temporal Active Contour Interpolation for Semi-automatic Video Object Generation”, offenbart einen Ansatz der Active-Contour-Interpolation für eine halb-automatische Videoobjektgenerierung. Dazu wird das konventionelle Active-Contour Modell adaptiert. Das Contour-Interpolations-Problem wird dabei in zwei Contour-Tracking Probleme sowie ein Merging-Problem geteilt. Ein neues Konzept des Parametric-Neighborhood-Templates wird eingeführt, um die Robustheit des Contour-Tracking zu erhöhen.
  • Eine übliche Aufgabe bei der Manipulation digitaler Bilder besteht darin, ein oder mehrere Vordergrundobjekte aus einer Hintergrundszene zu extrahieren. Verschiedene Schwierigkeiten treten beim Extrahieren des Objekts auf exakte Art und Weise auf, insbesondere wenn der Hintergrund komplex ist, und mehrere unterschiedliche Farben aufweist.
  • Eine Schwierigkeit besteht darin, dass das Objekt mit der Hintergrundszene gemischt ist, also ein Pixel am Rand eines Objekts Beiträge sowohl vom Vordergrund als auch vom Hintergrund aufweisen kann, wodurch die Farbe des Pixels dann eine Mischung aus der Farbe des Vordergrunds und jener des Hintergrunds wird. Eine weitere Schwierigkeit betrifft die Komplexität des Objekts, da eine Objektgrenze wesentliche Details enthalten kann, deren Identifizierung nur mit erheblichen Aufwendungen möglich ist. Weiterhin kann eine Kombination dieser Probleme auftreten, was zum Beispiel dann der Fall ist, wenn das Objekt Haar oder einen Pelz aufweist. Die Formen von Haar oder Pelzen sind kompliziert, und Bereiche mit dünnen Fasern führen zu einer wesentlichen Farbmischung. Dies macht es schwierig, korrekt das Objekt aus dem Hintergrund zu extrahieren, da es sowohl maskiert werden muss (also bestimmt werden muss), welche Pixel in dem Grenzbereich zu dem Objekt gehören, als auch farblich dekontaminiert werden muss (so dass Pixel, die Farbe sowohl vom Objekt als auch dem Hintergrund aufweisen, ”gereinigt” werden müssen, damit sie nur Farben des Objekts enthalten).
  • Verschiedene herkömmliche Systeme und Verfahren, welche diese Schwierigkeiten angehen, wurden entwickelt, weisen jedoch sämtlich verschiedene Probleme auf, wie dies nachstehend erläutert wird.
  • Ein herkömmliches Verfahren zum Extrahieren eines Objekts aus einem Hintergrund in einem Standbild besteht in der Verwendung eines Softwareerzeugnisses, beispielsweise Adobe® Photoshop® 5.5 und 6.0. Photoshop stellt ein Bildextraktionsmerkmal zur Verfügung, welches die Hervorhebung einer unscharfen Grenze eines Objekts in einem Standbild ermöglicht. Photoshop führt die Bildextraktion durch, und erzeugt sowohl eine Opazitätsmaske als auch abgeänderte Farben, welche die Hintergrundkontaminierung von dem Objekt entfernen. Das Bildextraktionsmerkmal kann auch bei einem Videoclip eingesetzt werden, der aus einer Gruppe digitaler Bilder besteht. Das Bildextraktionsmerkmal erfordert jedoch einen Vorgang, von Hand das Objekt in jedem Rahmen in dem Videoclip hervorzuheben und zu extrahieren.
  • Herkömmliche Systeme, welche eine Bildextraktion bei digitalen Videos durchführen, verwenden einen Hintergrund, der eine konstante oder annähernd konstante hintere Farbe (normalerweise Blau) aufweist. Trotz der Vorgehensweisen, die in diesem Bereich entwickelt wurden, gibt es immer noch Probleme beim Extrahieren von Objekten, deren Ränder wesentliche Details enthalten, oder bei denen Beiträge sowohl vom Vordergrund als auch vom Hintergrund vorhanden sind. Blaues Nebenlicht oder blaues Streulicht (Reflexion des blauen Lichts von dem blauen Bildschirm auf dem Vordergrundobjekt), Hintergrundschatten auf dem blauen Bildschirm (Schatten des Vordergrundobjekts auf dem Hintergrund, den man als Teil des Vordergrundobjektes beibehalten möchte), und Hintergrundstörungen (Abweichungen eines normalerweise rein blauen Hintergrunds vom reinen Blau) sind Beispiele für Probleme. Eine analytische Vorgehensweise zur Überwindung einiger dieser Probleme wurde von A. Ray Smith und J. F. Blinn vorgestellt in ”Blue Screen Matting” (Computer Graphics Proceedings, Annual Conference Series, 1996, 259–268) [nachstehend Smith]. Smith schlug eine ”Triangulationslösung” vor, bei welcher zusätzlich zu einer Aufnahme des Objekts vor einem blauen Hintergrund eine andere Aufnahme des Objekts gegen einen Hintergrund vorgenommen wird, der eine zweite Farbe aufweist. Allerdings kann dieses Verfahren nicht bei sich bewegenden Vordergrundobjekten eingesetzt werden, da das Verfahren einen pixelweisen Vergleich durchführt, und das Objekt daher bei den beiden Aufnahmen exakt in derselben Position vorhanden sein muss. Obwohl das vorgeschlagene Verfahren die mit blauen Bildschirmen verbundenen Probleme verringern kann, kann es daher nicht eingesetzt werden, wenn sich bewegende Objekte in einer Szene mit einem realistischeren Hintergrund vorhanden sind.
  • Es wäre daher wünschenswert, ein Verfahren ähnlich dem Bildextraktionsmerkmal in Adobe® Photoshop® zu haben, das exakte Objektextraktionen von nicht-gleichförmigen Hintergründen ermöglicht, und dass auch bei einem digitalen Videoclip eingesetzt werden kann, ohne dass man von Hand das Objekt markieren muss, das extrahiert werden soll, in jedem digitalen Bild in der Videosequenz.
  • ZUSAMMENFASSUNG
  • Allgemein stellt gemäß einem ersten Aspekt die Erfindung Verfahren und Einrichtungen, einschließlich Computerprogrammerzeugnissen, zur Verfügung, welche Vorgehensweisen zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes implementieren und einsetzen. Das digitale Bild ist Teil eines Videos, das eine Zeitsequenz digitaler Bilder aufweist, und jedes Bild wird durch mehrere Pixel festgelegt. Bei diesem Aspekt wird eine erste Eingabe empfangen, die einen ersten Grenzbereich festlegt. Der erste Grenzbereich enthält zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem ersten digitalen Bild. Es wird eine zweite Eingabe empfangen, die einen zweiten Grenzbereich festlegt. Der zweite Grenzbereich enthält zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem zweiten digitalen Bild. Ein Zwischengrenzbereich wird für ein Bild interpoliert, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt. Der erste, der zweite und der Zwischen-Grenzbereich werden dazu verwendet, den Vordergrundabschnitt gegenüber dem Hintergrundabschnitt in dem digitalen Video zu maskieren.
  • Vorteilhafte Implementierungen können eines oder mehrere oder folgenden Merkmale umfassen. Benutzereingaben können die Grenzbereiche festlegen, und das Interpolieren eines Zwischengrenzbereiches kann automatisch ohne Benutzereingabe durchgeführt werden. Wenn der erste, der zweite und der Zwischengrenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt verwendet werden, kann für einen Pixel in einem Grenzbereich eine Ermittlung erfolgen, ob der Pixel Daten enthält, welche dem Vordergrundabschnitt zugeordnet sind, und kann das Ergebnis der Ermittlung dazu verwendet werden, den Vordergrundabschnitt gegenüber dem Hintergrundabschnitt in dem digitalen Video zu maskieren. Ein immanenter Farbwert kann für einen Pixel in dem ersten, dem zweiten, und dem Zwischengrenzbereich ermittelt werden, und der ermittelte, immanente Farbwert kann dazu verwendet werden, den Vordergrundabschnitt aus dem Hintergrundabschnitt zu extrahieren. Die Grenzbereiche können dadurch angezeigt werden, dass ein innenseitiger Weg erzeugt wird, der sich innerhalb eines Vordergrundabschnitts befindet; und ein außenseitiger Weg erzeugt wird, der sich außerhalb des Vordergrundabschnitts befindet, und den innenseitigen Weg umschließt, wobei Pixel zwischen dem innenseitigen und dem außenseitigen Weg zu einem Grenzbereich gehören. Der innenseitige Weg und der außenseitige Weg können vektorbasierend sein. Die Grenzbereiche können dadurch angezeigt werden, dass ein einzelner Weg erzeugt wird, der eine Breite aufweist, welche jede des Grenzbereiches umfasst. Der einzelne Weg kann vektorbasierend sein, und kann eine variable Dicke im Verlauf seiner Länge aufweisen.
  • Das Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt kann das Maskieren des Vordergrundabschnitts umfassen, und den Einsatz einer Gaussschen Unschärfe bei dem Abschnitt des Grenzbereiches. Der maskiert Vordergrundabschnitt und der Abschnitt des Grenzbereiches können darüber hinaus angezeigt werden. Das Maskieren des Vordergrundabschnitts und eines Abschnitts des Grenzbereiches kann alternativ die Bestimmung der Opazitäten der Pixel in dem Abschnitt des Grenzbereiches umfassen, der mit dem Vordergrundabschnitt angezeigt wird, und das Ändern der Opazitäten für Pixel, welche Opazitäten aufweisen, die größer sind als ein Schwellenwert. Auch hier können der maskierte Vordergrundabschnitt und der Abschnitt des Grenzbereiches angezeigt werden.
  • Es kann auch eine Eingabe empfangen werden, die einen Grenzbereich für einen zweiten Vordergrundabschnitt in dem ersten digitalen Bild definiert. Der Grenzbereich umfasst zumindest ein Teil eines zweiten Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts. Es kann auch eine Eingabe empfangen werden, die einen Grenzbereich für den zweiten Vordergrundabschnitt in dem zweiten digitalen Bild definiert. Der Grenzbereich umfasst zumindest ein Teil des zweiten Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts. Ein Zwischengrenzbereich für den zweiten Vordergrundabschnitt für ein Bild zwischen dem ersten und dem zweiten digitalen Bild kann interpoliert werden.
  • Es kann eine Eingabe empfangen werden, die einen ersten internen Grenzbereich definiert. Der erste interne Grenzbereich kann von dem ersten Grenzbereich in einem ersten digitalen Grenzbereich umschlossen sein. Es kann eine Eingabe empfangen werden, die einen zweiten internen Grenzbereich definiert, wobei der zweite interne Grenzbereich von dem zweiten Grenzbereich in einem zweiten digitalen Bild umschlossen ist. Es kann ein Zwischeninterngrenzbereich für ein Bild, das zeitlich zwischen dem ersten und zweiten Digitalbild liegt, interpoliert werden. Der erste, zweite, und der Zwischengrenzbereich, sowie der erste interne, zweite interne, und Zwischeninterngrenzbereich können dann dazu verwendet werden, den Vordergrundabschnitt gegenüber dem Hintergrundabschnitt in dem digitalen Video zu maskieren. Der erste interne Grenzbereich, der zweite interne Grenzbereich, und der Zwischeninterngrenzbereich können zumindest einen Teil des Vordergrundabschnitts enthalten. Der erste interne Grenzbereich, der zweite interne Grenzbereich, und der Zwischeninterngrenzbereich können zumindest einen Teil des Hintergrundabschnitts umfassen. Der erste interne Grenzbereich, der zweite interne Grenzbereich, und der Zwischeninterngrenzbereich können zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts umfassen. Der Vordergrundabschnitt kann ein Objekt sein.
  • Allgemein stellt gemäß einem anderen Aspekt die Erfindung Verfahren und Einrichtungen, einschließlich Computerprogrammerzeugnissen, zur Verfügung, welche Vorgehensweisen zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes implementieren und verwenden. Das digitale Bild ist Teil eines Videos, das eine Zeitsequenz digitaler Bilder aufweist, und jedes Bild wird durch mehrere Pixel festgelegt. Bei diesem Aspekt wird eine Eingabe empfangen, die einen ursprünglichen Grenzbereich festlegt. Der ursprüngliche Grenzbereich umfasst zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem ursprünglichen digitalen Bild. Ein Grenzbereich wird automatisch für ein anderes digitales Bild in der Zeitsequenz erzeugt, auf Grundlage des ursprünglichen Grenzbereiches, und der ursprüngliche und der automatisch erzeugte Grenzbereich werden zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video verwendet.
  • Vorteilhafte Implementierungen dieses zweiten Aspekts der Erfindung können ein oder mehrere der voranstehend geschilderten Merkmale in Bezug auf den ersten Aspekt der Erfindung umfassen, sowie ein oder mehrere der folgenden Merkmale. Eine Eingabe, die einen ursprünglichen Grenzbereich definiert, kann für einen zweiten Vordergrundabschnitt empfangen werden, wobei der ursprüngliche Grenzbereich zumindest ein Teil eines zweiten Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in dem digitalen Bild mit dem ersten Vordergrundabschnitt aufweist. Ein Grenzbereich kann für den zweiten Vordergrundabschnitt in einem anderen Bild in der Zeitsequenz automatisch erzeugt werden, auf Grundlage des ursprünglichen Grenzbereiches für den zweiten Vordergrundabschnitt, und der ursprüngliche und der automatisch erzeugte Grenzbereich können dazu verwendet werden, den zweiten Vordergrundabschnitt gegenüber dem Hintergrundabschnitt in dem digitalen Video zu maskieren.
  • Es kann eine Eingabe empfangen werden, die einen ursprünglichen internen Grenzbereich definiert. Der ursprüngliche, interne Grenzbereich kann von dem ursprünglichen Grenzbereich in einem ersten digitalen Bild umschlossen sein. Ein interner Grenzbereich für ein anderes Bild in der Zeitsequenz kann automatisch erzeugt werden, auf Grundlage des ursprünglichen internen Grenzbereiches, und der ursprüngliche interne und der automatisch erzeugte interne Grenzbereich können dazu verwendet werden, den Vordergrundabschnitt gegenüber dem Hintergrundabschnitt in dem digitalen Video zu maskieren.
  • Das automatische Erzeugen eines Grenzbereiches für ein anderes digitales Bild kann umfassen, einen Randweg in dem ursprünglichen Grenzbereich zu identifizieren, wobei der Randweg Ränder des Vordergrundabschnitts in dem ursprünglichen digitalen Bild anzeigt; Identifizieren eines Randweges in einem automatisch erzeugten Grenzbereich, wobei der Randweg Ränder des Vordergrundabschnitts in dem anderen digitalen Bild anzeigt; Bestimmung einer Randwegtransformation zwischen dem ursprünglichen digitalen Bild und dem anderen digitalen Bild; und Anwenden der Randwegtransformation auf den innenseitigen Weg und den außenseitigen Weg in dem ursprünglichen digitalen Bild, um einen Grenzbereich in dem anderen digitalen Bild zu erzeugen. Der Randweg kann unter Verwendung eines Schlangen-Algorithmus identifiziert werden, der auf einen vorher identifizierten Randweg einwirkt. Das Identifizieren eines Randweges in dem ursprünglichen Grenzbereich kann umfassen, Punkte in dem Grenzbereich aufzufinden, welche Bildgradientenwerten aufweisen, die einen Schwellenwert überschreiten. Ein Bildgradientenwert kann für jeden Farbkanal in dem ursprünglichen Grenzbereich berechnet werden.
  • Das Identifizieren eines Randweges in dem ursprünglichen Grenzbereich kann umfassen, den innenseitigen Weg und den außenseitigen Weg zu kopieren; Bewegen der Kopien des innenseitigen Weges und des außenseitigen Weges aufeinander zu, und zu Rändern des Vordergrundabschnitts hin, unter Verwendung eines Schlangen-Algorithmus; und Identifizieren des Randweges als jenen Weg, an welchem die Kopie des innenseitigen Weges und die Kopie des außenseitigen Weges zu einem Weg konvergieren. Die Bestimmung der Randwegtransformation kann umfassen, eine Gruppe lokaler Randwegtransformationen zu bestimmen, wobei die Gruppe der lokalen Randwegtransformationen zusammen die Randwegtransformation bildet. Die lokalen Randwegtransformationen können für jeden Punkt in dem Randweg dadurch bestimmt werden, dass eine Translation, eine Rotation, und eine Skalierung für jede lokale Randwegtransformation in der Gruppe lokaler Randwegtransformationen bestimmt werden.
  • Das Einsetzen der Randwegtransformation bei dem innenseitigen und außenseitigen Weg kann umfassen, eine Gruppe lokaler Transformationen bei jedem Punkt in dem innenseitigen Weg anzuwenden, und bei jedem Punkt in dem außenseitigen Weg, wobei die Gruppe lokaler Transformationen die Randwegtransformation dadurch ausbildet, dass eine Translation, eine Rotation, und eine Skalierung als jede lokale Transformation des innenseitigen Weges und des außenseitigen Weges angewendet wird.
  • Allgemein stellt gemäß einem anderen Aspekt die Erfindung Verfahren und Einrichtungen, einschließlich Computerprogrammerzeugnissen, zur Verfügung, welche Vorgehensweisen zum Maskieren eines Objekts gegenüber einem Hintergrund in einem digitalen Video implementieren und verwenden. Das digitale Video umfasst eine Zeitsequenz digitaler Bilder, und jedes Bild ist durch mehrere Pixel festgelegt. Bei diesem Aspekt wird eine erste Benutzereingabe empfangen, die einen ersten Grenzbereich definiert. Der erste Grenzbereich enthält zumindest ein Teil eines Objekts und zumindest ein Teil des Hintergrunds in einem ersten digitalen Bild. Es wird eine zweite Benutzereingabe empfangen, die einen zweiten Grenzbereich festlegt, wobei der zweite Grenzbereich zumindest ein Teil des Objekts und zumindest ein Teil des Hintergrundabschnitts in einem zweiten digitalen Bild umfasst. Ein Zwischengrenzbereich wird für ein Bild interpoliert, das zeitlich zwischen dem ersten und zweiten digitalen Bild liegt. Der erste, der zweite, und der Zwischengrenzbereich werden dazu verwendet, das Objekt gegenüber dem Hintergrund in dem digitalen Video zu maskieren. Der erste, der zweite, und der Zwischengrenzbereich werden dazu verwendet, das Objekt aus dem Hintergrund in dem digitalen Video zu extrahieren, und das maskierte und extrahierte Objekt wird gegenüber einem neuen Hintergrund in einem anderen digitalen Video angeordnet.
  • Die Erfindung kann so implementiert werden, dass ein oder mehrere der folgenden Vorteile erreicht werden. Unscharfe oder haarige Objekte können einfach aus komplexen Hintergründen in einem digitalen Video extrahiert werden. Das extrahierte Objekt kann in eine neue Hintergrundszene eingeführt werden. Ein Blaubildschirmhintergrund ist nicht erforderlich, um ein erfolgreiches Extrahieren des Objekts zu erzielen. Das Objekt kann automatisch oder halbautomatisch extrahiert werden.
  • Die Einzelheiten einer oder mehrerer Ausführungsformen der Erfindung sind in den beigefügten Zeichnungen und der nachstehenden Beschreibung angegeben. Andere Merkmale, Ziele, und Vorteile der Erfindung werden aus der Beschreibung und den Zeichnungen deutlich, und aus den Patentansprüchen.
  • BESCHREIBUNG DER ZEICHNUNGEN
  • 1 ist ein Flußdiagramm zum Auswählen und Extrahieren eines Objekts aus einem digitalen Videoclip unter Verwendung eines innenseitigen Weges und eines außenseitigen Weges.
  • 2 ist ein Flußdiagramm zum Auswählen und Extrahieren eines Objekts aus einem digitalen Videoclip unter Verwendung eines einzigen Weges entlang der Objektgrenze.
  • 3A ist ein erstes digitales Bild, das ein Objekt in einer ersten Position vor einem ersten Hintergrund zeigt.
  • 3B ist ein zweites digitales Bild, welches das Objekt in einer zweiten Position vor dem ersten Hintergrund zeigt.
  • 4A ist ein erstes digitales Bild, das das Objekt in 3A zeigt, das vor einem neuen Hintergrund angeordnet ist.
  • 4B ist ein zweites digitales Bild, das das Objekt in 3B zeigt, das vor einem neuen Hintergrund angeordnet ist.
  • 5 ist ein Flußdiagramm, das den Extrahierungsschritt von 1 bzw. 2 zeigt.
  • 6 ist ein digitales Bild, das ein Objekt einschließlich eines Teils des Hintergrunds zeigt.
  • 7 ist ein Flußdiagramm zum Auswählen und Extrahieren eines Objekts unter Verwendung nur eines Einzelbilds.
  • 8 ist ein Flußdiagramm, welches den Verfolgungsschritt von 7 erläutert.
  • Gleiche Bezugszeichen in den verschiedenen Zeichnungen bezeichnen gleiche Elemente.
  • DETAILLIERTE BESCHREIBUNG
  • 1 zeigt einen Prozess 100 zum Extrahieren eines Vordergrundabschnitts aus einem Hintergrundabschnitt in einem digitalen Video. Der Prozess kann bei jedem Vordergrundabschnitt eingesetzt werden, den ein Benutzer aus dem Hintergrund extrahieren möchte. Bei einer bevorzugten Implementierung der Erfindung repräsentiert der Vordergrundabschnitt ein Objekt. Beispielhaft wird der Vordergrundabschnitt als ein Objekt in der folgenden Beschreibung bezeichnet, jedoch sollte dies keinesfalls als Einschränkung der beigefügten Patentansprüche verstanden werden. Das Objekt, oder der Vordergrundabschnitt, das bzw. der aus dem Hintergrund extrahiert werden soll, kann von jeder Art sein, kann ortsfest sein oder sich bewegen, und kann eine sich ändernde Form und ein sich änderndes Erscheinungsbild aufweisen. Der Prozess arbeitet ebenso gut bei jedem Vordergrundabschnitt oder Objekt. Das digitale Video enthält eine Zeitsequenz digitaler Bilder, die mit einer bestimmten Rate angezeigt werden sollen. Digitale Videos können verschiedene unterschiedliche Format aufweisen, wobei die üblichsten AVI, MPEG, und MOV sind. Der Prozess kann durch einen oder mehrere Prozessoren ausgeführt werden, von denen jeder Befehle ausführt, auf die von einem lokalen und/oder entfernten Speicher zugegriffen wird. Die Prozessoren können auch an verschiedene Eingabe/Ausgabegeräte angeschlossen sein, beispielsweise eine Anzeige, eine Tastatur, oder eine Maus, um es einem Benutzer zu ermöglichen, die Eingabe zu kontrollieren, und das Ergebnis des Prozesses zu bewerten. Die Prozessoren können auch an eine Eingabe/Ausgabeschnittstelle angeschlossen sein, welche Daten über eine Kommunikationsverbindung empfängt und sendet. Eine derartige Schnittstelle empfängt und sendet Daten über eine Kommunikationsverbindung. Derartige Kommunikationsverbindungen umfassen beispielsweise eine serielle Verbindung, ein Lokalbereichsnetzwerk, eine drahtlose Verbindung, und eine parallele Verbindung.
  • Der Prozess 100 beginnt im Schritt 105 mit dem Empfang eines digitalen Videoclips, aus welchem ein Benutzer ein Objekt extrahieren möchte. Dieser digitale Videoclip kann durch irgendeines der verschiedenen Eingabe/Ausgabegeräte oder über Kommunikationsverbindungen empfangen werden. Im Schritt 110 empfängt der Prozess die Auswahl des Benutzers eines ursprünglichen Einzelbildes. Das ursprüngliche Einzelbild ist ein digitales Bild, welches einem Zeitpunkt entspricht, an welchem der Benutzer mit dem Extrahieren des Objekts aus dem Videoclip beginnen möchte. Ein Beispiel für ein Einzelbild 300 ist in 3A gezeigt, und enthält ein Objekt 305, das sich auf einem Hintergrund 310 befindet. Im Schritt 115 empfängt der Prozess eine Eingabe von einem Benutzer, die ein Objekt anzeigt, das er aus dem Hintergrund extrahieren möchte, und im Schritt 120 empfängt der Prozess einen Weg, der von dem Benutzer innerhalb der Grenze des Objekts gezogen wird. Wenn der Weg innenseitig der Grenze des Objekts gezogen wird, kann der Benutzer allgemein der Außenkontur des Objekts folgen.
  • Grenzen bezeichnen den Bereich des Bildes, in welchem sich das Vordergrundobjekt und der Hintergrundbereich treffen. Die Grenze kann zahlreiche Pixel breit sein, oder so klein sein, dass sie nur die Breite eins einzelnen Pixels aufweist, und enthält Pixel, welche gemischte Daten aufweisen, also Daten, die dem Objekt zugeordnet sind, sowie Daten, die dem Hintergrund zugeordnet sind. So kann beispielsweise ein rotes Objekt auf einem blauen Hintergrund dazu führen, dass eine Grenze Pixel aufweist, die blau, rot, und in verschiedenen Schattierungen purpurfarben sind. In zahlreichen Fällen findet es ein Benutzer schwierig, die Grenze des Objekts zu verfolgen. Ein Beispiel hierfür ist der Fall, dass das Objekt eine unscharfe Grenze mit Haar oder Pelz hat. Der Prozeß lässt daher den Benutzer einen breiteren Grenzbereich erzeugen, der die Grenze umschließt, wie nachstehend erläutert. Nach Empfangen des Weges innenseitig der Grenze des Objekts empfängt der Prozess ebenfalls einen Weg, der von dein Benutzer außerhalb der Grenze gezogen wird, Schritt 125. Auch der außenseitige Weg muss nur allgemein der Grenze folgen. Der Bereich zwischen dem innenseitigen Weg und dem außenseitigen Weg bildet den Grenzbereich, der die Grenze einschließt. Eine detaillierte Beschreibung, wie der Grenzbereich benutzt wird, erfolgt später. Die innenseitigen und außenseitigen Wege können in Form von Bezier-Kurven vorliegen. Es können jedoch auch andere Arten vektorbasierender Wege verwendet werden.
  • Dann wartet der Prozess, um herauszufinden, ob der Benutzer daran interessiert ist, andere Objekte gegenüber dem Hintergrund zu maskieren, Schritt 130. 3A enthält nur ein Objekt 305, jedoch zeigt 6 ein Beispiel, bei welchem zwei Objekte 605 und 610 extrahiert werden sollen. Falls der Benutzer ein anderes Objekt auswählen möchte, lässt der Prozess den Benutzer ein neues Objekt auswählen, Schritt 135. Der Prozess empfängt dann Benutzereingaben, die einen innenseitigen Weg und einen außenseitigen Weg um ein neues Objekt herum angeben, Schritte 120 und 125. Nach Auswahl sämtlicher Objekte geht der Prozess zum Schritt 140 über, in welchem der Prozess eine Benutzerauswahl eines anderen Einzelbildes empfängt.
  • In dem neuen Einzelbild 350, gezeigt in 3B, führt der Prozess dieselben Schritte durch wie in dem ursprünglichen Einzelbild. Der Prozess empfängt eine Eingabe von einem Benutzer, welche das erste Objekt identifiziert, Schritt 145, einen innenseitigen Weg, Schritt 150, und einen außenseitigen Weg, Schritt 155, wodurch der Grenzbereich festgelegt wird. Das Objekt kann seine Position zwischen dem ursprünglichen Einzelbild und dem neuen Einzelbild geändert haben, und die innenseitigen und außenseitigen Wege können daher eine unterschiedliche Form und einen unterschiedlichen Ort aufweisen, was zu einem geänderten Grenzbereich führt. Nach Empfang der Wege wartet der Prozess auf eine Eingabe von dem Benutzer, die angibt, ob irgendwelchen weiteren Objekte in dem Bild vorhanden sind, die aus dem Hintergrund extrahiert werden sollen, Schritt 160, und falls dies der Fall ist, wird ein neues Objekt zur Verarbeitung ausgewählt, Schritt 165, und werden Wege um das neue Objekt herum empfangen.
  • Wenn ein Grenzbereich für jedes interessierende Objekt in dem neuen Einzelbild erzeugt wurde, wartet der Prozess auf eine Benutzereingabe, welche irgendwelche anderen Einzelbilder angibt, Schritt 170. Ist dies der Fall, kehrt der Prozess zurück, und macht mit dem Schritt 140 weiter, in welchem er ein weiteres Einzelbild empfängt. Die Anzahl an Einzelbildern, die ausgesucht werden, kann abhängig von der Art der Bewegung variieren, welche das Objekt durchführt, und davon, wie exakt der Benutzer die Interpolation zwischen den Bildern haben möchte, wie dies nachstehend erläutert wird.
  • Nachdem der Benutzer die Grenzbereiche in sämtlichen interessierenden Einzelbildern markiert hat, geht der Prozess weiter mit Interpolation von Zwischenwegen für die Bilder, die sich zeitlich zwischen den vom Benutzer empfangenen Einzelbildern befinden, Schritt 175. Die Interpolation der Zwischenwege kann auf eine Anzahl herkömmlicher Art und Weisen durchgeführt werden. Beispiele für Interpolationsprozesse finden sich in ”Adobe After Effects Version 3.0 User Guide for Use with Apple Macintosh Computers”, 1995, User Guide Adobe After Effects TM, version 3.0, Adobe Systems Incorporated, 1585 Charleston Road, Mountain View, CA 94039-7900, USA, Part number: 0197 2558 (10/95), S. 268–271 sowie 292–314 und in dem US-Patent Nr. 5,929,867 derselben Anmelderin mit dem Titel ”Floating Keyframes”. Üblicherweise werden in einem Filmsystem zwei Funktionen, Q und S, zum Steuern von Ändern von Schichteigenschaften im Verlauf der Zeit verwendet. Q legt einen Weg durch einen n-dimensionalen Eigenschaftsraum fest, und S legt die Bewegung entlang dem Weg fest. Die Form von Q und S wird durch die Einzelbilder kontrolliert. Um eine Schichteigenschaft zwischen zwei Einzelbildern zu animieren, konstruiert das System einen Weg Q zwischen den beiden Eigenschaftswerten, und eine Bewegungssteuerfunktion S zwischen den beiden Zeitwerten, welche den betreffenden Einzelbildern zugeordnet sind. Das System verwendet dann an Weg Q und die Bewegungssteuerfunktion S zum Interpolieren des Wertes der Schichteigenschaft für sämtliche Rahmen zwischen den beiden Einzelbildern.
  • Um beispielsweise die Bewegung einer Schicht über einem Bildschirm zu erzielen, wählt ein Benutzer ein Einzelbild zu einem ersten Zeitpunkt aus, wodurch die Positionseigenschaft der Schicht auf eine Anfangsposition eingestellt wird. Der Benutzer wählt dann ein zweites Einzelbild zu einem zweiten Zeitpunkt aus, welches die Positionseigenschaft der Schicht auf ihre nächste Position einstellt. Beim Befehl, die Änderung zu animieren, berechnet das System die Position der Schicht zu jeder Zwischenzeit und bewegt die Schicht zu jeder dieser Positionen, und erzeugt so die Bewegung der Schicht von der Startposition zur Endposition. Benutzer können jede Anzahl an Einzelbildern für jede Eigenschaft auswählen, und die Interpolation wird auf dieselbe Art und Weise zwischen jedem Paar benachbarter Einzelbildern durchgeführt.
  • Die Prinzipien der Animierung der Positionseigenschaft einer Schicht sind ebenso anwendbar beim Animieren anderer n-dimensionaler Schichteigenschaften, beispielsweise Farbe, Größe, Maskenform, 3D-Objektform, 3D-Objektposition, und anderen beliebigen n-dimensionalen Eigenschaften. Die Schichteigenschaften, die bei der in der vorliegenden Anmeldung beschriebenen Erfindung interpoliert werden, sind die Form des innenseitigen Weges bzw. des außenseitigen Weges, und deren jeweiliger Ort in jedem Rahmen des digitalen Videos.
  • Nachdem die innenseitigen Wege und die außenseitigen Wege automatisch für jeden Rahmen zwischen den Einzelbildern interpoliert wurden, extrahiert der Prozess jedes Objekt, das von dem Benutzer ausgewählt wurde, aus dem Hintergrund, Schritt 180. Der Extraktionsprozess wird nunmehr mit weiteren Einzelheiten unter Bezugnahme auf 5 beschrieben, in welcher der Prozess im Schritt 505 startet. Zuerst wählt der Extraktionsprozess das ursprüngliche Einzelbild aus, Schritt 510. Der Extraktionsprozess wählt das erste Objekt aus, Schritt 515. Auf Grundlage der vektorbasierenden innenseitigen und außenseitigen Wege werden ein rasterbasierender Vordergrund, Hintergrund und Hervorhebungsmasken erzeugt, Schritt 520. Die drei Masken werden folgendermaßen erzeugt.
  • Zuerst erzeugt der Extraktionsprozess in einem Beispiel eine Vordergrundmaske unter Verwendung des innenseitigen Weges. Der innenseitige Weg wird an eng beabstandeten Punkten abgetastet, mit einer Trennung von einem Pixel oder weniger. Für jeden Abtastpunkt wird der Wert der Maske auf 1 eingestellt. Nach Abtastung des innenseitigen Weges wird ein beliebiger Punkt innerhalb des innenseitigen Weges ausgewählt. Der Punkt innerhalb des Weges lässt sich dadurch auffinden, dass zuerst eine Pixelmaske erzeugt wird, die überall Werte von 0 hat, mit Ausnahme dort, wo Pixel von dem Weg überquert werden; diesen wird der Wert 1 zugeteilt. Dann wird ein Pixel mit einem Maskenwert von 1 ausgewählt. Die nächsten Nachbarn dieses Pixels, die einen Maskenwert von 0 aufweisen, werden dann berücksichtigt, und irgendeiner von ihnen wird als der innenseitige Punkt ausgewählt, falls der Pixel die folgende Eigenschaft aufweist: eine Linie, die von dem Punkt zu dem Rand des Bildes gezogen wird, führt eine ungeradzahlige Anzahl von Übergängen von 0 auf 1 oder 1 auf 0 in den Maskenwerten des betreffenden Pixels durch. Nach Auswahl des inneren Punktes erzeugt der Extraktionsprozess eine Vordergrundmaske, durch zunächst Einstellen der Maskenwerte sämtlicher Pixel, die entlang dem Weg liegen, auf einen Wert von 0,5, und sämtlicher anderen Pixel auf einen Wert von 0. Dann wird eine Flutungsfülloperation durchgeführt, beginnend an dem ausgewählten innenseitigen Punkt, welche sämtliche Pixel mit dem Wert 0 mit dem Wert 1 füllt, und die Flutfüllexpansion stoppt, wenn auf Pixel mit Werten von 0,5 getroffen wird. Schließlich werden alle Pixel mit einem Wert von 0,5 so geändert, dass sie einen Wert von 1 aufweisen. Die Vorgehensweise der Flutfüllung ist auf diesem Gebiet wohlbekannt, und ist beschrieben in James D. Foley und Andries van Dam ”Fundamentals of Interactive Computer Graphics” (Addision-Wesley Publishing Company, 1982, Seiten 446–449). Zweitens erzeugt der Extraktionsprozess eine Hintergrundmaske auf ähnliche Art und Weise, jedoch unter Verwendung des außenseitigen Weges anstatt des innenseitigen Weges, und durch Auswahl eines beliebigen Punktes außerhalb des außenseitigen Weges als Startpunkt für die Flutfüllung. Schließlich erzeugt der Extraktionsprozess eine Hervorhebungsmaske entsprechend dem Grenzbereich aus der Vordergrundmaske und der Hintergrundmaske. Ein Wert von 1 wird einem Punkt in der Hervorhebungsmaske zugeordnet, wenn die entsprechenden Werte der Vordergrundmaske und der Hintergrundmaske an diesem Punkt gleich 0 sind. Ist zumindest einer der Vordergrund- und Hintergrundmaskenwerte gleich 1 an dem fraglichen Punkt, wird der Wert der Hervorhebungsmaske auf 0 eingestellt. Die Hervorhebungsmaske definiert daher einen Grenzbereich.
  • Zum Erzeugen der Maske im Schritt 520 behandelt das Verfahren sämtliche Objekte in dem Bild zusammen als ein einzelnes Objekt. Für diese Vorgehensweise werden sämtliche im Vordergrund festgelegte Wege kombiniert, um eine Vordergrundmaske zu erzeugen, und werden sämtliche im Hintergrund festgelegten Wege kombiniert, um eine Hintergrundmaske zu erzeugen. Die Kombination besteht daraus, die jedem Weg zugeordnete Maske zu berechnen, wie voranstehend, und eine logische XOR-Operation bei jedem Pixel durchzuführen, um die einzelnen Masken zu einer kombinierten Maske zu vereinigen. Wenn die kombinierte Hintergrundmaske mit B bezeichnet ist, und die einzelnen Hintergrundmasken als ba, wobei a = 1, 2, ..., ...Nb die Anzahl an Hintergrundwegen angibt, dann lässt sich die Operation folgendermaßen darstellen (es wird darauf hingewiesen, dass die nachstehende Bezeichnung Operationen angibt, die bei jedem Pixel in einer Maske durchgeführt werden sollen. Die Gleichung B = 0 bedeutet daher ”setze den Wert jedes Pixels in der Maske B auf 0”): B = 0 wiederhole für jedes b = 1, 2, ... Nb ca = 1 – ba (Komplement von ba) B = caXORB
  • Nimmt man das Komplement, wird die Hintergrundmaske reduziert: B = 1 – B, wobei cXORd gleich 0 ist, wenn sowohl c und d gleich 0 sind, oder beide gleich 1 sind, und anderenfalls cXORd gleich 1 ist, für irgendwelche Maskenpixelwerte c und d, welche mögliche Werte von 0 oder 1 annehmen können.
  • Eine ähnliche, jedoch etwas andere, Operation wird durchgeführt, um die vereinigte Vordergrundmaske F aus den einzelnen Masken fa, a = 1, 2, ... Nf zu erzeugen, wobei a die Anzahl an Vordergrundwegen angibt. F = 0 (setze jeden Pixel in der Maske auf 0) wiederhole für jedes a = 1, 2, ... Nf F = faXORF stelle B auf 0 ein, wenn der entsprechende Pixel in F auf 1 eingestellt wird.
  • Die Hervorhebungsmaske wird wie voranstehend geschildert erzeugt, durch Einstellung sämtlicher Pixel auf 1, bei denen weder F- noch B-Pixelwerte auf 1 eingestellt sind.
  • Unter Verwendung der soeben beschriebenen Prozedur wird das gesamte Bild als eine einzige Größe behandelt, die aus mehreren Stücken bestehen kann, und erzeugt der Extraktionsprozess, wie nachstehend erläutert, eine vollständige Extraktion in einem einzigen Schritt.
  • Wenn die Hervorhebungsmaske festgelegt wurde, geht der Extraktionsprozess im Schritt 525 weiter, in welchem eine Objektextraktion durchgeführt wird. Ein Beispiel für einen Objektextraktionsprozess ist in der nachveröffentlichten US-Patentschrift US 6 337 925 B1 mit der Bezeichnung ”Method for Determining a Border in a Complex Scene with Applications to Image Masking” derselben Anmelderin beschrieben. Das Ergebnis des Objektextraktionsprozesses ist ein in Bezug auf Farbe dekontaminiertes Bild des Objekts, das aus neuen ”immanenten” Vordergrundfarbwerten und einem Opazitätskanal (alpha-Kanal) besteht, der das Ausmass festlegt, in welchem jeder Pixel zum Vordergrundobjekt gehört. Für eine Maske von acht Bit repräsentiert ein Wert von 255 die vollständige Mitgliedschaft im Vordergrund, ein Wert von 0 die vollständige Mitgliedschaft im Hintergrund, und repräsentieren Zwischenwerte Zwischen-Mitgliedschaften im Vordergrund und Hintergrund.
  • Der Extraktionsprozess überprüft dann, ob der Benutzer irgendwelche weiteren Objekt definiert hat, die aus dem ursprünglichen Einzelbild extrahiert werden sollen, Schritt 530. Falls Ja, wählt dann der Prozess das nächste Objekt aus (Schritt 535), und führt die Schritte 520 bis 535 für dieses Objekt durch. Die Schritte 520 bis 535 werden wiederholt, bis kein weiteres, zu verarbeitendes Objekt übrigbleibt, wonach dann der Prozess untersucht, ob irgendwelche weiteren, zu verarbeitenden Rahmen vorhanden sind, Schritt 540. Sind noch weitere Rahmen zu verarbeiten, wählt der Maskierungsprozess einen neuen Rahmen aus, Schritt 545, und wiederholt die Schritte 510 bis 540 für den neuen Rahmen. Wenn der endgültige Rahmen des Videoclips oder ein anderer Stopppunkt in dem Videoclip erreicht wird, ordnet der Extraktionsprozess die maskierten Objekte rahmenweise in einem neuen Hintergrund an, Schritt 550. Dies sieht man in den 4A und 4B für die in 3A bzw. 3B gezeigten Rahmen. Schließlich werden die Rahmen zu einem Videoclip zusammengebaut, der das sich bewegende Objekt 305 vor einem neuen Hintergrund zeigt, Schritt 555. Hiermit ist der Extraktionsprozess 500 beendet.
  • Der Extraktionsprozess kann auch unter Verwendung nur eines Weges um das Objekt herum durchgeführt werden. Dieser Prozess ist sehr ähnlich wie jener, der voranstehend beschrieben wurde, und wird nunmehr unter Bezugnahme auf 2 erläutert. Der Prozess 200 beginnt im Schritt 205 mit dem Empfang eines digitalen Videoclips, aus welchem ein Benutzer ein Objekt extrahieren möchte. Im Schritt 210 empfängt der Prozess eine Benutzerauswahl des ursprünglichen Einzelbildes, gefolgt von einer Auswahl eines Objekts, an dessen Extraktion er interessiert ist, Schritt 215. Anstelle des Empfangs eines innenseitigen Weges und eines außenseitigen Weges um die Objektgrenze herum empfängt bei der vorliegenden Implementierung der Prozess nur einen von dem Benutzer gezogenen Weg, Schritt 220. Dieser Weg weist eine bestimmte Dicke auf, die zum Abdecken der Grenze ausreicht. Der Weg kann beispielsweise unter Verwendung eines Bürstenwerkzeugs gezogen werden, bei welchem sich in Abhängigkeit von dem durch den Benutzer ausgeübten Druck die Dicke ändert. Die Eigenschaften dieser Arten von Bürstenwerkzeugen sind auf diesem Gebiet wohlbekannt, und werden daher hier nicht beschrieben. Infolge der Wahl, dass die Dicke des Weges variiert werden kann, den der Benutzer um die Grenze herumzieht, können Teile mit unterschiedlicher ”Unschärfe” berücksichtigt werden. Bei dem Beispiel mit dem Baby in den 3A und 3B kann es beispielsweise wünschenswerter sein, einen dickeren Weg um den Kopfbereich zu ziehen, wo die Grenze schwer zu definieren ist, und einen dünneren Weg entlang den Armen, wo sich die Grenze einfacher definieren lässt. Bei der vorherigen Implementierung gab der Benutzer den Grenzbereich durch Ziehen eines innenseitigen und eines außenseitigen Weges vor, jedoch wird bei der vorliegenden Implementierung der Grenzbereich durch den Weg selbst vorgegeben, was in vielen Fällen daher eine attraktivere Option darstellen kann. Auch hier ist der Weg vektorbasierend, und besteht aus Bezier-Kurven, wobei jedoch auch andere Arten vektorbasierender Wege verwendet werden könnten.
  • Dann wartet der Prozess, damit der Benutzer eingeben kann, ob er irgendwelche anderen Objekte aus dem Hintergrund extrahieren möchte, Schritt 225. Sind weitere Objekte zu extrahieren, macht der Prozess damit weiter, eine Anzeige des nächsten, von dem Benutzer ausgewählten Objekts zu empfangen, Schritt 230, und einen einzelnen Weg um das zweite Objekt herum zu empfangen, Schritt 220. Wurden alle Objekte ausgewählt, geht der Prozess mit dem Schritt 235 weiter, in welchem der Prozess es dem Benutzer ermöglicht, ein weiteres Einzelbild auszuwählen. Für dieses neue Einzelbild führt der Prozess dieselben Schritte wie in dem ursprünglichen Einzelbild durch. Der Prozess empfängt eine Auswahl des ersten Objekts, Schritt 240, und einen Weg, der die Grenze des Objekts abdeckt, Schritt 245. Nach dem Ziehen der Wege wartet der Prozess auf eine Benutzereingabe, die anzeigt, ob weitere Objekte in dem Bild vorhanden sind oder nicht, die aus dem Hintergrund extrahiert werden sollen, Schritt 250. Ist dies der Fall, werden neue Objekt identifiziert, Schritt 255, und werden Wege um sie herum gezogen.
  • Wenn ein Grenzbereich um jedes interessierende Objekt in dem neuen Einzelbild erzeugt wurde, empfängt der Prozess eine Eingabe von dem Benutzer, die angibt, ob er Grenzbereiche für die Objekt in irgendwelchen anderen Einzelbildern erzeugen möchte, Schritt 260. Falls Ja, kehrt der Prozess zum Schritt 235 zurück, in welchem ein neues Einzelbild ausgewählt wird. Die Anzahl an Einzelbildern kann sich in Abhängigkeit von der Art der Bewegung, die das Objekt durchführt, ändern, und davon, wie exakt die Interpolation zwischen den Bildern sein soll, wie dies nachstehend erläutert wird.
  • Nachdem der Benutzer die Grenzbereich in sämtlichen interessierenden Einzelbildern markiert hat, wird der Prozess durch Interpolieren von Zwischenwegen für die Bilder fortgesetzt, die zeitlich zwischen den von dem Benutzer ausgewählten Einzelbilder liegen, Schritt 265. Nachdem ein Weg um jedes ausgewählte Objekt herum automatisch für jeden Zwischenrahmen interpoliert wurde, wird jedes Objekt, das von dem Benutzer ausgewählt wurde, gegenüber dem Hintergrund maskiert, Schritt 270. Das Objekt wird wie voranstehend geschildert extrahiert, mit Ausnahme der Tatsache, dass der Schritt 520, in welchem die Hintergrund-, Vordergrund- und Hervorhebungsmasken erzeugt wurden, auf unterschiedliche Art und Weise ausgeführt wird, die nunmehr nachstehend beschrieben wird. Die drei Masken werden folgendermaßen erzeugt:

    Zuerst erzeugt der Maskierungsprozess eine Vordergrundmaske unter Verwendung des innenseitigen Randes des einzigen Weges. Der innenseitige Rand des Weges wird an eng beabstandeten Punkten abgetastet, mit einer Trennung von einem Pixel oder weniger. Für jeden Abtastpunkt wird der Wert der Maske auf 1 eingestellt. Nach dem Abtasten des innenseitigen Randes des Weges wählt der Maskierungsprozess einen beliebigen Punkt an der Innenseite des Weges aus. Der beliebige Punkt kann auf ähnliche Weise ausgewählt werden, wie bei dem Modell, das voranstehend für sowohl den innenseitigen als auch den außenseitigen Weg beschrieben wurde. Nach Auswahl des innenseitigen Punktes erzeugt der Maskierungsprozess eine Vordergrundmaske durch Flutfüllung der Maske mit Werten von 1, beginnend an dem ausgewählten Punkt. Zweitens erzeugt der Maskierungsprozess eine Hintergrundmaske auf ähnliche Weise, jedoch unter Verwendung des außenseitigen Randes des Weges anstelle des innenseitigen Randes des Weges, und durch Auswahl eines beliebigen Punktes außerhalb des äußeren Randes des Weges als Startpunkt für die Flutfüllung. Schließlich erzeugt der Maskierungsprozess eine Hervorhebungsmaske dadurch, dass er der Hervorhebungsmaske einen Wert von 1 zuordnet, und sowohl der Vordergrund- als auch der Hintergrundmaske einen Wert von 0 zuordnet, für jeden Pixel, der innerhalb des festgelegten Radius R von jedem Punkt auf dem einzigen Weg aus liegt. Wenn die Hervorhebungsmaske festgelegt wurde, führt der Maskierungsprozess die Schritte 525560 wie voranstehend beschrieben durch, und ist mit der Fertigstellung des Maskierungsprozesses auch der gesamte Prozess fertig, gezeigt durch Schritt 275 in 2.
  • In einigen Fällen kann ein Hintergrundobjekt innerhalb eines Vordergrundobjekts vorhanden sein. So weist beispielsweise, wie in 6 gezeigt, die Frau auf der rechten Seite einen Bereich 614 unter ihrem Arm auf, der nicht ein Teil des Vordergrunds ist, sondern ein Teil des Hintergrunds 612. Wenn der Benutzer dieses Hintergrundteil 614 von dem Vordergrund trennen möchte, kann er diesen Bereich dadurch markieren, dass er einen Weg 625 zieht, der das Hintergrundteil 614 umschließt. Der Weg, der das Hintergrundteil 614 umschließt, liegt vollständig innerhalb des Objekts. Wenn der Maskierungsprozess die Vordergrund-, die Hintergrund- und die Hervorhebungsmaske erzeugt, ist alles innerhalb des Weges, der das Hintergrundteil 614 umschließt, ein Teil der Hervorhebungsmaske, und wird entsprechend dem Extrahieren und Maskieren des Objekts behandelt. Selbstverständlich kann der Grenzbereich oder der Hervorhebungsbereich um das Hintergrundteil 614 herum alternativ dadurch angezeigt werden, dass ein Grenzbereich mit einem innenseitigen Weg und einem außenseitigen Weg erzeugt wird, oder durch Ziehen eines einzigen Weges, der eine Breite aufweist, welche die Grenze abdeckt, wie dies voranstehend beschrieben wurde. Hierbei wird, wenn das Hintergrundteil innerhalb des Objekts liegt, der Grenzbereich als interner Grenzbereich bezeichnet. Die Erzeugung eines internen Grenzbereiches unter Verwendung eines innenseitigen und eines außenseitigen Weges ist besonders dann nützlich, wenn ein großer Teil des Vordergrundobjekts zum Hintergrund gehört, und führt zu einer schnelleren Verarbeitungszeit für die Bestimmung der Grenze in dem Hervorhebungsbereich.
  • Eine alternative Implementierung der Erfindung wird nunmehr unter Bezugnahme auf 7 beschrieben. Bei dieser Implementierung können ein oder mehrere Objekte automatisch dadurch verfolgt werden, dass das Objekt oder die Objekte in einem ursprünglichen Einzelbild ausgewählt werden. Die in 7 gezeigten Schritte 705 bis 735 sind identisch mit dem Prozess, der in Bezug auf 1 beschrieben wurde. Nachdem der Prozess Benutzerangaben über alle Objekte empfangen hat, die maskiert werden sollen, macht der Prozess mit dem Schritt 740 weiter, und maskiert das Objekt in dem momentanen Rahmen. Der Prozess überprüft dann, ob der momentane Rahmen der Stopprahmen ist, Schritt 745. Der Stopprahmen kann der letzte Rahmen in dem Videoclip sein, oder kann von dem Benutzer ausgewählt werden. Ist der momentane Rahmen der Stopprahmen, endet der Prozess im Schritt 750. Anderenfalls geht es im Prozess mit dem Schritt 755 weiter, in welchem das ausgewählte Objekt automatisch in dem nächsten Rahmen verfolgt wird. Der Verfolgungsprozess wird mit weiteren Einzelheiten nachstehend beschrieben. Der nächste Rahmen wird zum momentanen Rahmen, Schritt 760, und der Prozess wird fortgesetzt mit Extrahieren des Objekts in dem momentanen Rahmen, Schritt 740, und endet schließlich, wenn das Objekt verfolgt und aus sämtlichen Rahmen extrahiert wurde. Bei dem in 7 gezeigten Prozess werden ein innenseitiger Weg und ein außenseitiger Weg verwendet. Alternativ können diese Schritte dadurch durchgeführt werden, dass ein Weg verwendet wird, der die Objektgrenze abdeckt, anstelle des innenseitigen und außenseitigen Weges, wie dies voranstehend in Bezug auf 2 beschrieben wurde.
  • Der automatische Verfolgungsschritt 755 wird nunmehr beschrieben, jedoch muss zuerst eine Gruppe von Variablen eingeführt werden. Für die Zwecke der Beschreibung des automatischen Verfolgungsschrittes 755 wird angenommen, dass nur ein Objekt in einem ursprünglichen Rahmen ausgewählt wurde, der zu einer Zeit t auftritt, unter Verwendung eines innenseitigen Weges P1(t) und eines außenseitigen Weges P2(t). Fachleute auf diesem Gebiet wissen, wie der Prozess auf mehr als ein Objekt verallgemeinert werden kann, aus der folgenden Beschreibung. Wird mehr als ein Objekt ausgewählt, dann wird das Verfahren wiederholt bei jedem Objekt durchgeführt. Jeder Weg besteht aus einer Gruppe von Spitzen mit festgelegten Koordinaten. So besteht beispielsweise P1(t) = {v11(t), v12(t), v13(t), ... v1M1(t)} aus M1 Spitzen, und P2(t) = {v21(t), v22(t), v23(t), ... v2M2(t) aus M2 Spitzen, wobei vij(t) = (xij(t), yij(t)) der zweidimensionale Spitzenpunkt zur Zeit t ist.
  • Der Spitzenpunkt kann eine höhere Dimension aufweisen, falls dies von der Anwendung benötigt wird. Der innenseitige und der außenseitige Weg werden dadurch gebildet, dass ihre jeweiligen Spitzen mit geraden Linien oder komplizierteren Kurven verbunden werden, beispielsweise eine kubische Bezier-Kurve. Um Punkte zu erzeugen, die ausreichend eng zusammenliegen, werden die Kurven zuerst abgetastet, um eine potentiell dichtere Gruppe von Punkten rij(t) zu erzeugen. Die Abtastung wird unter Verwendung von Standardabtastverfahren durchgeführt, um die folgende Darstellung der Eingabe- und Ausgabewege als Gruppe von Punkten zu ergeben: P1(t) = {r11(t), r12(t), r13(t), ... r1N1(t)} besteht aus N1 Punkten, und P2(t) = {r21(t), r22(t), r23(t), ... r2N2(t)} besteht aus N2 Spitzen, wobei rij(t) = (xij(t), yij(t) der Abtastpunkt zur Zeit t ist.
  • Die Anzahl an ausgewählten Abtastpunkten hängt von dem gewünschten Detailniveau ab. Bei einem Extrem gilt N1 = M1 und N2 = M2. Dies ist der Fall, in welchem nur die Spitzen ausgewählt werden. Ein anderes Extrem liegt dann vor, wenn die Abtastpunkte so dicht gewählt werden, dass die Entfernung zwischen benachbarten Abtastpunkten kleiner ist als der Abstand zwischen Pixeln.
  • Nach Definition dieser Variablen wird der automatische Verfolgungsprozess im Schritt 755 nunmehr unter Bezugnahme auf 8 beschrieben. Zuerst wird eine kurze Übersicht über den gesamten Prozess gegeben. Der automatische Verfolgungsprozess beginnt im Schritt 805. Im Schritt 810 legt der Verfolgungsprozess einen Randweg E(t) fest, der starke Ränder in dem Grenzbereich zwischen P1(t) und P2(t) in dem ursprünglichen Rahmen aufweist, der zur Zeit t auftritt. Wenn der Verfolgungsprozess den Randweg E(t) im Schritt 810 identifiziert hat, geht der Verfolgungsprozess zum Schritt 815 über, in welchem sich der Randweg E(t) zu den Rändern in dem nächsten Rahmen bewegt, der zur Zeit t + 1 auftritt. Nach Bewegung des Randweges zu den Rändern in dem folgenden Rahmen, wird eine kombinierte lokale Transformation T bestimmt, welche E(t) nach E(t + 1) bringt, also E(t + 1) = TE(t), Schritt 820. Die Transformation T wird dann dazu verwendet, P1(t) und P2(t) zu transformieren, Schritt 825, entsprechend P1(t + 1) = TP1(t) und P2(t + 1) = TP2(t). Durch Anwenden der Transformation T auf die Wege P1(t) und P2(t) werden sie auf eine Art und Weise transformiert, welche die Transformationen nachbildet, die bei den Bildrändern stattfinden, die in dem Grenzbereich zwischen den beiden Wegen liegen. Dies vervollständigt den automatischen Verfolgungsprozess, und darin kann das Objekt aus dem Rahmen extrahiert werden, wie dies voranstehend beschrieben wurde. Die Schritte 810 bis 825 werden nunmehr mit weiteren Einzelheiten beschrieben.
  • Schritt 810: Auffinden eines Randweges
  • Der Randweg E(t) kann unter Verwendung eines von zwei Verfahren gefunden werden. Das Verfahren A hat den Vorteil, dass es einfacher und schneller durchzuführen ist, und es erfasst sämtliche Ränder in dem Grenzbereich. In Situationen, in welchen der Beitrag von dem Hintergrund einen großen Anteil der Ränder in dem Grenzbereich darstellt, erzeugt jedoch des Verfahren B häufig eine bessere Verfolgung des Objekts.
  • Verfahren A
  • Das Ziel des Verfahrens A besteht darin, Punkte in dem Grenzbereich zu finden, also zwischen P1(t) und P2(t), welche Randwerte oder Bildgradientenwerte aufweisen, die größer sind als ein vorbestimmter Schwellenwert G0. Die Ausdrücke Randwerte und Bildgradient werden hier austauschbar verwendet, und bezeichnen Farbintensitätswertänderungen zwischen dem Pixel, der untersucht wird, und seinen benachbarten Pixeln. Ein analytischer Ausdruck für die Gradientenwerte wird nachstehend angegeben. Ebenso wie bei den voranstehend geschilderten Implementierungen der Erfindung wird eine Grenzbereichsmaske oder Hervorhebungsmaske H erzeugt, die einen Wert von 1 für alle Pixel zwischen P1(t) und P2(t) in dem Bildrahmen hat, und sonst einen Wert von 0. Nach der Erzeugung der Hervorhebungsmaske H wird ein Bildgradient G(x, y) für jeden Pixel mit einem Wert von 1 berechnet. Ein Wert der Berechnung des Bildgradienten G(x, y) ist gegeben durch:
    Figure DE000010197062B4_0002
  • I(x, y) ist die Bildintensität für einen vorgegebenen Farbkanal in dem Bild.
  • Die Gradienten, die für jeden Farbkanal berechnet wurden, können kombiniert werden. Wenn beispielsweise das Bild ein RGB-Farbbild ist, das aus roten, grünen und blauen Farbkanälen besteht, lässt sich der Gradient G(x, y) folgendermaßen berechnen:
    Figure DE000010197062B4_0003
  • Gr
    der Gradient des roten Kanals ist,
    Gb
    der Gradient des blauen Kanals, und
    Gg
    der Gradient des grünen Kanals.
  • Hat der Pixel einen Gradientenwert größer als G0, dann wird er zu der Liste von Punkten addiert, welche E(t) enthält. Ein typischer Wert für die Schwelle G0 beträgt 100 für Bilder mit acht Bit, in welchen die Pixelintensitätswerte im Bereich von 0 bis 255 liegen. Der Randweg E(t) besteht dann aus sämtlichen Punkten zwischen P1(t) und P2(t), die einen Gradienten aufweisen, der größer ist als G0. Es wird nicht garantiert, dass die Punkte einander benachbart sind, jedoch ist dies nicht dazu erforderlich, die übrigen Schritte durchzuführen, wie nachstehend erläutert wird.
  • Verfahren B
  • Dieses Verfahren ist komplizierter als das Verfahren A, garantiert jedoch, dass sämtliche Punkte in dem Randweg E(t) nebeneinander liegen. Weiterhin erzeugt dieses Verfahren den einzigen, besten kontinuierlichen Rand, der zwischen P1(t) und P2(t) liegt, im Gegensatz zum Verfahren A, welches Randpunkte aus allen starken Rändern in dem Grenzbereich erzeugt.
  • Dies wird erzielt unter Verwendung eines neuen Einsatzes eines Standard-Schlangenverfahrens. Schlangenverfahren sind auf diesem Gebiet wohlbekannt. Die neue Anwendung, die bei dieser Implementierung der Erfindung verwendet ist, ist auch als aktives Konturverfahren bekannt, und wird beschrieben in M. Kass, A. Witkin, und D. Terzopoulos ”Snakes: Active Contour, Models” (International Journal of Computer Vision, Vol. 1, Seiten 321–331, 1998) [nachstehend Kass].
  • Zuerst wird eine Kopie jedes Weges erzeugt, P1'(t) = P1(t) und P2'(t) = P2(t). Jeder Punkt in dem Weg P1'(t) wird entsprechend einer Gruppe von Kräften bewegt, welche Änderungen gegenüber der Ursprungsposition widerstehen, oder einer Biegung des Weges, und wird zum Weg P2'(t) hingezogen, und daher auch zum Rand des Objekts. Die Bewegung der verschiedenen Punkte in P1'(t) wird unter Verwendung ähnlicher Verfahren wie jener erzielt, die beschrieben sind in Steve R. Gunn und Mark S. Nixon ”A Robust Snake Implementation; A Dual Active Contour” (IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 19, Nr. 1, Januar 1997). P2'(t) wird auf entsprechende Weise zu P1'(t) gezogen, und daher auch zum Rand des Objekts. Auf diese Weise konvergieren schließlich P1'(t) und P2'(t) zu einem Weg E(t), der dazu neigt, starken Rändern in dem Grenzbereich zwischen P1(t) und P2(t) zu folgen.
  • Ein Randkraftfeld G(x, y) wird dadurch erzeugt, dass der Gradient an jedem Pixelort (x, y) in dem Bildrahmen berechnet wird, auf dieselbe Art und Weise, wie der Bildgradient beim voranstehenden Verfahren A berechnet wurde. Dieses Feld wird unscharf oder diffus ausgebildet, damit sich der Einfluß von Rändern über einen größeren Bereich erstrecken kann. Eine typische Implementierung der Erzeugung der Unschärfe umfasst den Einsatz einer Standard-Gauss-Unschärfe mit einem Radius von 10 Pixeln bei G(x, y). Der Benutzer der Anwendung kann den Unschärferadius steuern. Der negative Wert des sich ergebenden, unscharfen Gradienten wird mit Vc(x, y) bezeichnet, und stellt die randbasierende potentielle Energie dar, welche die Wege zu starken Rändern hin treibt. Ein alternatives Verfahren zum Auffinden von Vc(x, y) besteht darin, eine Schwelle für G(x, y) festzulegen, wobei ein Wert von 1 jenen Pixeln zugeordnet wird, die Werte von G(x, y) aufweisen, die größer sind als G0, und ein Wert von 0 allen anderen Pixeln zugeordnet wird. Dann wird eine Entfernungstransformationsberechnung durchgeführt, um das Feld Vc(x, y) zu erzeugen, welches gleich 0 an den voranstehenden Schwellenwertpunkten ist, und linear mit zunehmender Entfernung von diesen Punkten zunimmt. Entfernungstransformationsberechnungen dieser Art wurden beschrieben in Per-Erik-Danielsson ”Euclidean Distance Mapping” (Computer Graphics and Image Processing, Vol. 14, Seiten 227–248, 1980).
  • Unter Verwendung eines anderen Einsatzes der Entfernungstransformation, die bei jenen Punkten entlang dem Weg P2'(t) eingesetzt wird, wird ein Potentialfeld V2(x, y) ermittelt, das Werte von 0 für Punkte entlang dem Weg aufweist, und zunehmende Werte weg von diesen Punkten. Ein entsprechendes Potentialfeld V1(x, y) wird ebenfalls auf Grundlage der Punkte auf dem Weg P1'(t) berechnet.
  • Nachdem die drei Potentialfelder Vc(x, y), V1(x, y) und V2(x, y) zur Zeit t berechnet wurden, werden die Punkte auf den Wegen P1'(t) und P2'(t) bewegt, um eine gewichtete Summe dieser drei potentiellen Energien zu minimieren, und gleichzeitig die Verzerrung der Kurven zu minimieren. Die gewichtete Summe ist Vexternal(x, y) = ccVc(x, y) + c1V1(x, y) + c2V2(x, y), wobei cc, c1 und c2 Gewichtungskoeffizienten sind. Wenn das Entfernungstransformationsverfahren verwendet wird, ist ein typischer Wert für jeden der Gewichtungskoeffizienten 1,0. Wenn Wegpunkte in dem Weg P2'(t) bewegt werden, wird c2 auf 0 gesetzt, und wenn Wegpunkte in P1'(t) bewegt werden, wird c1 auf 0 gesetzt.
  • Mehrere Iterationen, typischerweise 10, werden durchgeführt, wenn die Wege bewegt werden. Für jede Iteration werden alle Punkte im Weg P1'(t) und alle Punkte im Weg P2'(t) bewegt. Nunmehr werden mit vx und vy Variablen (Geschwindigkeiten) bezeichnet, welche Anfangswerte von 0 aufweisen, und wird (x, y) initialisiert auf die Werte der Wegkoordinaten; zum Beispiel für die Punkte 3 im Weg 1, x = x13(t), y = y13(t), dann wird jeder Punkt folgendermaßen bewegt: vx = vx + dt·Fx vy = vy + dt·Fy x = x + dt·vx y = y + dt·vy dt ist typischerweise 0,2 Fx = –V(x + 1, y) + V(x – 1, y) Fy = –V(x, y + 1) + V(x, y – 1)
  • V(x, y) ist eine potentielle Energie, die aus der externen und der internen Energie besteht: V(x, y,) = Vexternal(x, y) + Vinternal(x, y)
  • Die interne Energie minimiert die Verzerrungen der Kurven gegenüber den ursprünglichen Kurven. Ein Beispiel für die interne Energie für beispielsweise den Punkt 3 ist gegeben durch: Vinternal(x3, y3) = k[(x3 – x2 – x13(t) + x12(t))2 + (y3 – y2 – y13(t) + y12(t))2 + (x3 – x4 – x13(t) + x14(t))2 + (y3 – y4 – y13(t) + y14(t))2] wobei k eine Konstante für die Federsteifigkeit ist, welche das Ausmass steuert, um welches die Kurven verzerrt werden können, und das Gleichgewicht zwischen internen und externen Kräften steuert. Ein typischer Wert für k beträgt 0,3. Die sich ergebenden Punkte für den Weg P1'(t), nach Durchführung sämtlicher Iterationen durch den Schlangenalgorithmus, werden auf den Randweg gesetzt: E(t) = P1'(t).
  • Bei einer geringfügigen Variation des Verfahrens B werden die Koeffizienten c1 und c2 beide so ausgewählt, dass sie negative Zahlen sind, beispielsweise –1. Dies erzeugt eine Abstoßung zwischen der Schlange und diesen Rändern. In dieser Situation muss nur ein Weg, P1'(t), bewegt werden, nachdem er so initialisiert wurde, dass er zwischen P1(t) und P2(t) liegt.
  • Schritt 815: Bewegung von E(t) zu den Rändern im Rahmen t + 1
  • Die Bewegung von E(t) zu den Rändern in dem nächsten Rahmen der zum Zeitpunkt t + 1 auftritt, kann unter Verwendung eines Standard-Schlangenalgorithmus erfolgen, beispielsweise jenem, der in Kass beschrieben wurde, oder nach einem der Verfahren A und B, die voranstehend beschrieben wurden. Bei einer Implementierung wird der Schlangenalgorithmus des Verfahrens B wiederholt mit c1 = c2 = 0, und mit den Gradienten auf Grundlage der Bildintensitätswerte im Rahmen t + 1 anstelle im Rahmen t, wobei nur der Randgradient G(x, y) übrig bleibt, um die externe Antriebskraft zu erzeugen. Nach einer Anzahl an Iterationen in dem Schlangendynamikalgorithmus, typischerweise 15, ist das Ergebnis der Randweg E(t + 1) für das Objekt in dem Rahmen, der zum Zeitpunkt t + 1 auftritt.
  • Schritt 820: Bestimmung der kombinierten lokalen Transformation T
  • Die Transformation T kann als Liste von Transformationen angesehen werden, eine für jeden Punkt in dem Weg E(t): T = {T1, T2, ... TN} entsprechend E(t) = {r1, r2, ... rN}, so dass die Anwendung von T oder E ergibt E(t + 1) = TE(t) = {T1r1, T2r2, ... TNrN}.
  • Für jeden Punkt ri(t) im Weg E(t) wird die entsprechende lokale Transformation Ti berechnet. Ein Kreis mit dem Radius R wird um den Punkt gezogen. R kann durch den Benutzer gesteuert werden, und kann Werte im Bereich von einem Pixel bis zur Bildgröße annehmen. Größere Werte von R ermöglichen die Verfolgung der globalen Objektbewegung, können jedoch lokale Verzerrungen auslassen. Kleinere Werte von r ermöglichen die Verfolgung von Merkmalen in der Kurve, welche Skalierungsgrößen in der Größenordnung von R aufweisen.
  • Die Gruppe von Punkten in dem Randweg E(t), die innerhalb des Kreises liegen, welcher ri(t) umgibt, bildet eine lokale Kurve E1i, die dazu verwendet wird, die lokale Transformation Ti zu finden, welche diesem Punkt zugeordnet ist. Für jeden Punkt von E1i gibt es einen entsprechenden Punkt E2i in dem Randweg E(t + 1). Die Indizes 1i und 2i wurden nur wegen der einfachen Notation ausgewählt, und sollten nicht so angesehen werden, dass sie sich auf absolute Rahmennnummern beziehen. Die Transformation Ti(dx, dy, θ, scaleX, scaleY) findet man durch Vergleich von E1i mit E2i auf folgende Weise:
    Translation: dx <x2 – x1>
    dy = <y2 – y1>
    Rotation: tanθ = <(x1y2 – x2y1)/(x1x2 + y1y2)>
    Skalierung: scaleX = <x2x1>/<x1 2>
    scaleY = <y2y1>/<y1 2>
    wobei <...> den Mittelwert der eingeschlossenen Größe angibt, ermittelt über die Gruppe von Punkten, die innerhalb der lokalen Kurve E1i liegen.
  • Schritt 825: Anwendung der Transformation T auf den innenseitigen und den außenseitigen Weg
  • Die Transformation Ti(dx, dy, θ, scaleX, scaleY) wird dann bei einem Punkt ri im Weg 1 angewendet, der als der nächste Punkt im Weg 1 zu dem i-ten Punkt in der Randkurve E1i ausgewählt wird, um die beste Approximation von E2i durch Translation, Rotation, und Skalierung von ri zu erzielen:
    Translation: xi = xi + dx
    yi = yi + dy
    Rotation: xi = xicosθ – yisinθ
    yi = yicosθ + xisinθ
    Skalierung: xi = scaleX·xi
    yi = scaleY·yi
  • Die Transformation Ti(dx, dy, θ, scaleX, scaleY) wird auf jeden Punkt in P1(t) angewendet. Dieselbe Prozedur wird für jeden Punkt in P2(t) durchgeführt, unter Verwendung derselben Transformationsgleichungen wie voranstehend, wobei erneut ri der nächste Punkt in P2(t) an dem i-ten Punkt in der Randkurve ist. Auf diese Weise werden P1(t) und P2(t) lokal auf eine Art und Weise transformiert, welche die Transformation nachbildet, welche bei der Kurve zwischen dem momentanen Rahmen und dem darauffolgenden Rahmen auftrat.
  • Die Erfindung kann als digitale elektronische Schaltung, oder als Computerhardware, Firmware, Software, oder Kombinationen hieraus implementiert werden. Einrichtungen gemäß der Erfindung können als ein Computerprogrammerzeugnis implementiert sein, das erfassbar in einem maschinenlesbaren Speichergerät zur Ausführung durch einen programmierbaren Prozessor verwirklicht ist; und Verfahrensschritte der Erfindung können durch einen programmierbaren Prozessor durchgeführt werden, der ein Programm von Befehlen ausführt, um Funktionen der Erfindung durch Operationen bei Eingangsdaten durchzuführen, und Ausgaben zu erzeugen. Die Erfindung kann auch in vorteilhafter Weise als ein oder mehrere Computerprogramme implementiert sein, die auf einem programmierbaren System ausführbar sind, das zumindest einen programmierbaren Prozessor enthält, der so angeschlossen ist, dass er Daten und Befehle von einem Datenspeichersystem empfängt, und Daten und Befehle an dieses überträgt, zumindest ein Eingabegerät, und zumindest ein Ausgabegerät. Jedes Computerprogramm kann als prozedurale oder objektorientierte Programmiersprache auf hohem Niveau implementiert sein, oder in Assembler- oder Maschinensprache, falls erwünscht; und in jedem Fall kann die Sprache eine kompilierte oder interpretierte Sprache sein. Geeignete Prozessoren umfassen beispielsweise sowohl allgemeine als auch spezielle Mikroprozessoren. Normalerweise empfängt ein Prozessor Befehle und Daten von einem Nur-Lesespeicher und/oder einem Speicher mit wahlfreiem Zugriff. Üblicherweise enthält ein Computer ein oder mehrere Massenspeichergeräte zum Speichern von Datendateien; derartige Gerät umfassen magnetische Disketten oder Platten, beispielsweise interne Festplatten und entfernbare Disketten; magnetooptische Disketten; und optische Disketten. Speichergeräte, die zur erfassbaren Verwirklichung von Computerprogrammbefehlen und Daten geeignet sind, umfassen sämtliche Formen nicht-flüchtiger Speicher, einschließlich beispielsweise Halbleiterspeichergeräte, etwa EPROM, EEPROM, und Flash-Speichergeräte; magnetische Platten und Disketten wie beispielsweise innere Festplatten und entfernbare Disketten; magnetooptische Disketten; und CD-ROM-Disketten. Die voranstehenden Einrichtungen können ergänzt werden durch ASICs (anwendungsspezifische integrierte Schaltungen), oder in diesen vorgesehen sein.
  • Um die Wechselwirkung mit einem Benutzer zu ermöglichen, kann die Erfindung auf einem Computersystem implementiert werden, das ein Anzeigegerät aufweist, beispielsweise einen Monitor oder einen LCD-Bildschirm, zur Anzeige von Information an den Benutzer, sowie eine Tastatur und ein Zeigergerät wie beispielsweise eine Maus oder einen Trackball, durch welche der Benutzer Eingaben zum Computersystem vornehmen kann. Das Computersystem kann so programmiert werden, dass eine graphische Benutzerschnittstelle zur Verfügung gestellt wird, durch welche Computerprogramme Mitbenutzern wechselwirken.
  • Es wurde eine Anzahl an Implementierungen der Erfindung beschrieben. Dennoch wird darauf hingewiesen, dass verschiedene Modifikationen vorgenommen werden können, ohne vom Wesen und Umfang der Erfindung abzuweichen. Daher werden andere Implementierungen vom Umfang der folgenden Patentansprüche umfasst.
  • Bezugszeichenliste
  • Fig. 1:
  • YES
    Ja
    NO
    Nein
    END
    Ende
    105
    Digitalen Videoclip empfangen
    110
    Anfangsrahmen auswahlen
    115
    Erstes Objekt auswahlen
    120
    Ziehe Weg innerhalb Objektgrenze
    125
    Ziehe Weg außerhalb Objektgrenze
    130
    Mehr Objekte zu extrahieren?
    135
    Wähle ein anderes Objekt aus
    140
    Wähle nächsten Rahmen aus
    145
    Wähle erstes Objekt aus
    150
    Ziehe Weg innerhalb Objektgrenze
    155
    Ziehe Weg außerhalb Objektgrenze
    160
    Mehr Objekte zu extrahieren?
    165
    Wähle ein anderes Objekt aus
    170
    Mehr Einzelbilder?
    175
    Interpoliere Zwischenwege
    180
    Extrahiere Objekte
    185
    Ende
    Fig. 2:
    YES
    Ja
    NO
    Nein
    205
    Empfange digitalen Videoclip
    210
    Wähle Anfangsrahmen aus
    215
    Wähle erstes Objekt aus
    220
    Ziehe Weg, welcher die Objektgrenze abdeckt
    225
    Mehr Objekte zu extrahieren?
    230
    Wähle ein anderes Objekt aus
    235
    Wähle nächsten Rahmen aus
    240
    Wähle erstes Objekt aus
    245
    Ziehe Weg, der die Objektgrenze abdeckt
    250
    Mehr Objekte zu extrahieren?
    255
    Wähle ein anderes Objekt aus
    260
    Weitere Einzelbilder?
    265
    Interpoliere Zwischenwege
    270
    Extrahiere Objekt bzw. Objekte
    275
    Ende
    Fig. 5:
    YES
    Ja
    NO
    Nein
    510
    Wähle Anfangsrahmen aus
    515
    Wähle erstes Objekt aus
    520
    Erzeuge Masken
    525
    Führe Objektextraktion durch
    530
    Irgendwelche weiteren Objekte im Anfangsrahmen ?
    535
    Wähle ein anderes Objekt aus
    540
    Irgendwelche weiteren Rahmen zu untersuchen ?
    545
    Wähle nächsten Rahmen aus
    550
    Ordne extrahiertes Objekt vor neuem Hintergrund an
    555
    Baue Bilder zu Videoclip zusammen
    560
    Ende
    Fig. 7:
    YES
    Ja
    NO
    Nein
    705
    Empfange digitalen Videoclip
    710
    Wähle Anfangsrahmen aus
    715
    Wähle erstes Objekt aus
    720
    Ziehe Weg innerhalb Objektgrenze
    725
    Ziehe Weg außerhalb Objektgrenze
    730
    Mehr Objekte zu extrahieren?
    735
    Wähle ein anderes Objekt aus
    740
    Extrahiere Objekt oder Objekte im momentanen Rahmen
    745
    Ist der momentane Rahmen der Stopprahmen?
    750
    Ende
    755
    Verfolge das Objekt oder die Objekte in dem nächsten Rahmen
    760
    Mache den nächsten Rahmen zum momentanen Rahmen
    Fig. 8:
    805
    Beginn
    810
    Finde einen Randweg E(t)
    815
    Bewege E(t) zu den Rändern im Rahmen t + 1
    820
    Bestimme kombinierte lokale Transformation T
    825
    Verwende T zum Transformieren von P1(t) und P2(t)
    830
    Ende

Claims (44)

  1. Verfahren zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder aufweist, jedes Bild durch mehrere Pixel definiert ist, und das Verfahren umfasst: Empfangen einer ersten Eingabe von einem Benutzer, die einen ersten Grenzbereich definiert, wobei der erste Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem ersten digitalen Bild enthält, wobei der erste Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; Empfangen einer zweiten Eingabe von dem Benutzer, die einen zweiten Grenzbereich definiert, wobei der zweite Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem zweiten digitalen Bild enthält, wobei der zweite Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; wobei der Empfang von Eingaben, welche die Grenzbereiche angeben, umfasst: Erzeugung eines innenseitigen Weges, der innerhalb eines Vordergrundabschnitts liegt; Erzeugung eines außenseitigen Weges, der außerhalb des Vordergrundabschnitts liegt und den innenseitigen Weg umschließt, wobei Pixel zwischen dem innenseitigen und dem außenseitigen Weg zu einem Grenzbereich gehören; Interpolieren eines Zwischengrenzbereiches durch Interpolieren der innenseitigen und außenseitigen Wege für ein Bild, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt; und Verwenden des ersten und zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  2. Verfahren nach Anspruch 1, bei welchem: das Erzeugen eines innenseitigen Weges und eines außenseitigen Weges die Erzeugung eines vektorbasierenden innenseitigen Weges und eines vektorbasierenden außenseitigen Weges umfassen.
  3. Verfahren zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder aufweist, jedes Bild durch mehrere Pixel definiert ist, und das Verfahren umfasst: Empfangen einer ersten Eingabe von einem Benutzer, die einen ersten Grenzbereich definiert, wobei der erste Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem ersten digitalen Bild enthält, wobei der erste Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; Empfangen einer zweiten Eingabe von dem Benutzer, die einen zweiten Grenzbereich definiert, wobei der zweite Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem zweiten digitalen Bild enthält, wobei der zweite Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; wobei das Empfangen von Eingaben, welche die Grenzbereiche angeben, die Erzeugung eines einzigen Weges umfasst, der eine Breite aufweist, welche jene des Grenzbereiches umfasst; Interpolieren eines Zwischengrenzbereiches durch Interpolieren von dem den ersten Grenzbereich in seiner Breite umfassenden Weg und dem den zweiten Grenzbereich in seiner Breite umfassenden Weg für ein Bild, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt; und Verwenden des ersten und zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  4. Verfahren nach Anspruch 3, bei welchem: das Erzeugen eines einzigen Weges das Erzeugen eines vektorbasierenden einzigen Weges umfasst.
  5. Verfahren nach Anspruch 3, bei welchem das Erzeugen eines einzigen Weges umfasst: Erzeugen eines einzigen Weges mit einer variablen Dicke über seine gesamte Länge.
  6. Verfahren nach einem der voranstehenden Ansprüche, bei welchem: das Empfangen einer ersten und einer zweiten Eingabe das Empfangen von Benutzereingaben umfasst, welche die Grenzbereiche definieren; und das Interpolieren eines Zwischengrenzbereiches das automatische Interpolieren eines Zwischengrenzbereiches ohne Benutzereingabe umfasst.
  7. Verfahren nach einem der voranstehenden Ansprüche, bei welchem die Verwendung des ersten und des zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt umfasst: Bestimmen für einen Pixel in einem Grenzbereich, ob der Daten enthält, die dem Vordergrundabschnitt zugeordnet sind; und Verwenden des Ergebnisses des Bestimmungsschrittes zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  8. Verfahren nach einem der voranstehenden Ansprüche, mit folgenden weiteren Schritten: Bestimmung eines immanenten Farbwertes für einen Pixel in dem ersten und dem zweiten Grenzbereich und dem Zwischengrenzbereich; und Verwendung des bestimmten immanenten Farbwertes zum Extrahieren des Vordergrundabschnitts aus dem Hintergrundabschnitt.
  9. Verfahren nach einem der voranstehenden Ansprüche, bei welchem die Verwendung des ersten und des zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt umfasst: Maskieren des Vordergrundabschnitts und eines Abschnitts des Grenzbereiches; und Anwenden einer Gaussschen Unschärfe bei dem Abschnitt des Grenzbereiches.
  10. Verfahren nach Anspruch 9, welches weiterhin aufweist: Anzeigen des maskierten Vordergrundabschnitts und des Abschnitts des Grenzbereiches.
  11. Verfahren nach einem der voranstehenden Ansprüche, bei welchem die Verwendung des ersten und des zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt umfasst: Maskieren des Vordergrundabschnitts und eines Abschnitts des Grenzbereiches; Bestimmung der Opazitäten der Pixel in dem Abschnitt des Grenzbereiches, der zusammen mit dem Vordergrundabschnitt angezeigt wird; und Ändern der Opazitäten für Pixel, welche Opazitäten aufweisen, die größer sind als ein Schwellenwert.
  12. Verfahren nach Anspruch 11, welches weiterhin aufweist: Anzeigen des maskierten Vordergrundabschnitts und des Abschnitts des Grenzbereiches.
  13. Verfahren zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder aufweist, jedes Bild durch mehrere Pixel definiert wird, und das Verfahren umfasst: Empfangen einer Eingabe, welche einen ursprünglichen Grenzbereich definiert, wobei der ursprüngliche Grenzbereich zumindest ein Teil des Vordergrundabschnitts und zumindest ein Teil des Hintergrundabschnitts in einem ursprünglichen digitalen Bild enthält; automatisches Erzeugen eines Grenzbereiches für ein anderes digitales Bild in der Zeitsequenz auf Grundlage des ursprünglichen Grenzbereiches, wobei das automatische Erzeugen eines Grenzbereiches für ein anderes digitales Bild umfasst: – Identifizieren eines ersten Randweges in dem ursprünglichen Grenzbereich, wobei der Randweg Ränder des Vordergrundabschnitts in dem ursprünglichen digitalen Bild angibt, wobei das Identifizieren des ersten das Auffinden von Punkten in dem Grenzbereich umfasst, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten; – Identifizieren eines zweiten Randweges in einem automatisch erzeugten Grenzbereich, wobei das Identifizieren des zweiten Randweges das Auffinden von Punkten umfasst, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten; und wobei der zweite Randweg Ränder des Vordergrundabschnitts in dem anderen digitalen Bild angibt; – Bestimmen einer Randwegtransformation zwischen dem ursprünglichen digitalen Bild und dem anderen digitalen Bild, wobei das Bestimmen der Randwegtransformation das Ziehen eines Kreises mit dem Radius R um jeden Punkt im ersten sowie im zweiten Randweg beinhaltet, wobei eine erste lokale Gruppe aus der Gruppe von Punkten aus dem ersten Randweg gebildet wird sowie eine zweite lokale Gruppe aus der Gruppe von Punkten aus dem zweiten Randweg gebildet wird, die innerhalb des jeweils gezogenen Kreises liegen, wobei jedem Punkt in der ersten lokalen Gruppe einen entsprechender Punkt in der zweiten lokalen Gruppen entspricht, wobei die erste lokale Gruppe und die zweite lokale Gruppe verglichen werden, um eine lokale Transformation zu identifizieren, wobei die Summe aller lokalen Transformationen die Randwegtransformation ergibt; und – Anwenden der Randwegtransformation auf den innenseitigen Weg und den außenseitigen Weg in dem ursprünglichen digitalen Bild, um einen Grenzbereich in dem anderen digitalen Bild zu erzeugen, wobei der Grenzbereich für das andere digitale Bild in der Zeitsequenz zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in dem anderen digitalen Bild enthält; und Verwenden des ursprünglichen und des automatisch erzeugten Grenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  14. Verfahren nach Anspruch 13, bei welchem: das Identifizieren des Randweges in dem anderen, automatisch erzeugten Grenzbereich das Identifizieren des Randweges unter Verwendung eines Schlangenalgorithmus umfasst, der auf einen vorher identifizierten Randweg einwirkt.
  15. Verfahren nach Anspruch 14, bei welchem: das Identifizieren eines Randweges in dem ursprünglichen Grenzbereich das Auffinden von Punkten in dem Grenzbereich umfasst, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten.
  16. Verfahren nach einem der voranstehenden Ansprüche 13 bis 15, bei welchem weiterhin vorgesehen ist: Berechnen eines Bildgradientenwertes für jeden Farbkanal in dem ursprünglichen Grenzbereich.
  17. Verfahren nach einem der voranstehenden Ansprüche 13 bis 15, bei welchem das Identifizieren eines Randweges in dem ursprünglichen Grenzbereich umfasst: Kopieren des innenseitigen Weges und des außenseitigen Weges; Bewegen der Kopien des innenseitigen Weges und des außenseitigen Weges aufeinander zu, und zu Rändern des Vordergrundabschnitts hin, unter Verwendung eines Schlangenalgorithmus; und Identifizieren des Randweges als jenen Weg, an dem die Kopie des innenseitigen Weges und die Kopie des außenseitigen Weges zu einem Weg konvergieren.
  18. Verfahren nach einem der voranstehenden Ansprüche 13 bis 17, bei welchem: die Bestimmung einer Randwegtransformation die Bestimmung einer Gruppe lokaler Randwegtransformationen umfasst, wobei die Gruppe lokaler Randwegtransformationen zusammen die Randwegtransformation bildet.
  19. Verfahren nach Anspruch 18, bei welchem: die Bestimmung einer Gruppe lokaler Randwegtransformationen die Bestimmung einer lokalen Randwegtransformation für jeden Punkt in dem Randweg umfasst.
  20. Verfahren nach Anspruch 18, bei welchem: die Bestimmung einer Gruppe lokaler Randwegtransformationen die Bestimmung einer Translation, einer Rotation, und einer Skalierung für jede lokale Randwegtransformation in der Gruppe lokaler Randwegtransformationen umfasst.
  21. Verfahren nach einem der voranstehenden Ansprüche 13 bis 20, bei welchem: die Anwendung der Randwegtransformation auf den innenseitigen und den außenseitigen Weg die Anwendung einer Gruppe lokaler Transformationen auf jeden Punkt in dem innenseitigen Weg und auf jeden Punkt in dem außenseitigen Weg umfasst, wobei die Gruppe lokaler Transformationen die Randwegtransformation bildet.
  22. Verfahren nach Anspruch 21, bei welchem: das Anwenden einer Gruppe lokaler Transformationen das Anwenden einer Translation, einer Rotation, und einer Skalierung als jede lokale Transformation des innenseitigen Weges und des außenseitigen Weges umfasst.
  23. Computersoftware zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder umfasst, jedes Bild durch mehrere Pixel definiert ist, und die Software Befehle aufweist, um folgende Operationen durchzuführen: empfange eine erste Eingabe von einem Benutzer, die einen ersten Grenzbereich definiert, wobei der erste Grenzbereich zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem ersten digitalen Bild enthält, wobei der erste Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; empfange eine zweite Eingabe von dem Benutzer, die einen zweiten Grenzbereich definiert, wobei der zweite Grenzbereich zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem zweiten digitalen Bild enthält, wobei der zweite Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; wobei die Befehle zum Empfangen von Eingaben, welche die Grenzbereiche angeben, folgende Befehle umfassen: erzeuge einen innenseitigen Weg, der innerhalb eines Vordergrundabschnitts liegt; erzeuge einen außenseitigen Weg, der außerhalb des Vordergrundabschnitts liegt, und den innenseitigen Weg umschließt, wobei Pixel zwischen dem innenseitigen und dem außenseitigen Weg zu einem Grenzbereich gehören; interpoliere einen Zwischengrenzbereich durch Interpolieren der innenseitigen und außenseitigen Wege für ein Bild, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt; und verwende den ersten und den zweiten Grenzbereich und den Zwischengrenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  24. Computersoftware nach Anspruch 23, bei welcher die Befehle zur Erzeugung eines innenseitigen Weges und eines außenseitigen Weges Befehle umfassen, einen vektorbasierenden innenseitigen Weg und einen vektorbasierenden außenseitigen Weg zu erzeugen.
  25. Computersoftware zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder umfasst, jedes Bild durch mehrere Pixel definiert ist, und die Software Befehle aufweist, um folgende Operationen durchzuführen: empfange eine erste Eingabe von einem Benutzer, die einen ersten Grenzbereich definiert, wobei der erste Grenzbereich zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem ersten digitalen Bild enthält, wobei der erste Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; empfange eine zweite Eingabe von dem Benutzer, die einen zweiten Grenzbereich definiert, wobei der zweite Grenzbereich zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem zweiten digitalen Bild enthält, wobei der zweite Grenzbereich Pixel enthält, welche Daten des Vordergrundabschnitts und Daten des Hintergrundabschnitts aufweisen; wobei die Befehle zum Empfangen von Eingaben, welche die Grenzbereiche angeben, Befehle umfassen, einen einzigen Weg zu erzeugen, der eine Breite aufweist, welche jene des Grenzbereiches einschließt; interpoliere einen Zwischengrenzbereich durch Interpolieren von dem den ersten Grenzbereich in seiner Breite umfassenden Weg und dem den zweiten Grenzbereich in seiner Breite umfassenden Weg für ein Bild, das zeitlich zwischen dem ersten und dem zweiten digitalen Bild liegt; und verwende den ersten und den zweiten Grenzbereich und den Zwischengrenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  26. Computersoftware nach Anspruch 25, bei welcher die Befehle zur Erzeugung eines einzigen Weges Befehle umfassen, einen vektorbasierenden einzigen Weg zu erzeugen.
  27. Computersoftware nach Anspruch 25, bei welcher die Befehle zur Erzeugung eines einzigen Weges Befehle umfassen, einen einzigen Weg zu erzeugen, der über seine gesamte Länge eine variable Dicke aufweist.
  28. Computersoftware nach einem der voranstehenden Ansprüche 23 bis 27, bei welchem die Befehle zum Empfangen einer ersten und einer zweiten Eingabe folgende Befehle umfassen: empfange Benutzereingaben, welche die Grenzbereiche definieren; und wobei das Interpolieren eines Zwischengrenzbereiches umfasst: interpoliere automatisch einen Zwischengrenzbereich ohne Benutzereingabe.
  29. Computersoftware nach einem der voranstehenden Ansprüche 23 bis 28, bei welcher die Befehle zur Verwendung des ersten und zweiten Grenzbereiches und des Zwischengrenzbereiches zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt folgende Befehle umfassen: bestimme für einen Pixel in einem Grenzbereich, ob er Daten enthält, die dem Vordergrundabschnitt zugeordnet sind; und verwende das Ergebnis des Bestimmungsschrittes zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  30. Computersoftware nach einem der voranstehenden Ansprüche 23 bis 29, welche weiterhin Befehle zur Durchführung der folgenden Operationen aufweist: bestimme einen immanenten Farbwert für einen Pixel in dem ersten und dem zweiten Grenzbereich und dem Zwischengrenzbereich; und verwende den bestimmten immanenten Farbwert zum Extrahieren des Vordergrundabschnitts aus dem Hintergrundabschnitt.
  31. Computersoftware nach einem der voranstehenden Ansprüche 23 bis 30, bei welcher die Befehle, den ersten und den zweiten Grenzbereich und den Zwischengrenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt zu verwenden, folgende Befehle umfasst: maskiere den Vordergrundabschnitt und einen Abschnitt des Grenzbereiches; und wende eine Gausssche Unschärfe bei dem Abschnitt des Grenzbereiches an.
  32. Computersoftware nach Anspruch 31, welche weiterhin Befehle umfasst, den maskierten Vordergrundabschnitt und den Abschnitt des Grenzbereiches anzuzeigen.
  33. Computersoftware nach einem der voranstehenden Ansprüche 23 bis 32, bei welcher die Befehle, den ersten und den zweiten Grenzbereich und den Zwischengrenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt zu verwenden, folgende Befehle umfassen: maskiere den Vordergrundabschnitt und einen Abschnitt des Grenzbereiches; bestimme die Opazitäten der Pixel in dem Abschnitt des Grenzbereiches, der zusammen mit dem Vordergrundabschnitt angezeigt wird; und ändere die Opazitäten für Pixel, welche Opazitäten aufweisen, die größer sind als ein Schwellenwert.
  34. Computersoftware nach Anspruch 33, welche weiterhin Befehle aufweist, den maskierten Vordergrundabschnitt und den Abschnitt des Grenzbereiches anzuzeigen.
  35. Computersoftware zum Maskieren eines Vordergrundabschnitts eines digitalen Bildes gegenüber einem Hintergrundabschnitt eines digitalen Bildes, wobei das digitale Bild Teil eines Videos ist, das eine Zeitsequenz digitaler Bilder aufweist, jedes Bild durch mehrere Pixel definiert wird, und die Software Befehle zur Durchführung der folgenden Operationen aufweist: empfange eine Eingabe, die einen ursprünglichen Grenzbereich definiert, wobei der ursprüngliche Grenzbereich zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in einem ursprünglichen digitalen Bild enthält; erzeuge automatisch einen Grenzbereich für ein anderes digitales Bild in der Zeitsequenz auf Grundlage des ursprünglichen Grenzbereiches; wobei das automatische Erzeugen eines Grenzbereiches für ein anderes digitales Bild umfasst: – identifiziere einen ersten Randweg in dem ursprünglichen Grenzbereich, wobei der Randweg Ränder des Vordergrundabschnitts in dem ursprünglichen digitalen Bild angibt, wobei das Identifizieren des ersten das Auffinden von Punkten in dem Grenzbereich umfasst, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten; – identifiziere einen zweiten Randweg in einem automatisch erzeugten Grenzbereich, wobei das Identifizieren des zweiten Randweges das Auffinden von Punkten umfasst, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten; und wobei der zweite Randweg Ränder des Vordergrundabschnitts in dem anderen digitalen Bild angibt; – bestimme eine Randwegtransformation zwischen dem ursprünglichen digitalen Bild und dem anderen digitalen Bild, wobei das Bestimmen der Randwegtransformation das ziehen eines Kreises mit dem Radius R um jeden Punkt im ersten sowie im zweiten Randweg beinhaltet, wobei eine erste lokale Gruppe aus der Gruppe von Punkten aus dem ersten Randweg gebildet wird sowie eine zweite lokale Gruppe aus der Gruppe von Punkten aus dem zweiten Randweg gebildet wird, die innerhalb des jeweils gezogenen Kreises liegen, wobei jedem Punkt in der ersten lokalen Gruppe einen entsprechender Punkt in der zweiten lokalen Gruppen entspricht, wobei die erste lokale Gruppe und die zweite lokale Gruppe verglichen werden, um eine lokale Transformation zu identifizieren, wobei die Summe aller lokalen Transformationen die Randwegtransformation ergibt; und – wende die Randwegtransformation auf den innenseitigen Weg und den außenseitigen Weg in dem ursprünglichen digitalen Bild an, um einen Grenzbereich in dem anderen digitalen Bild zu erzeugen, wobei der Grenzbereich für das andere digitale Bild in der Zeitsequenz zumindest einen Teil des Vordergrundabschnitts und zumindest einen Teil des Hintergrundabschnitts in dem anderen digitalen Bild enthält; und verwende den ursprünglichen und den automatisch erzeugten Grenzbereich zum Maskieren des Vordergrundabschnitts gegenüber dem Hintergrundabschnitt in dem digitalen Video.
  36. Computersoftware nach Anspruch 35, bei welcher die Befehle, den Randweg in dem anderen, automatisch erzeugten Grenzbereich zu identifizieren, folgende Befehle umfassen: identifiziere den Randweg unter Verwendung eines Schlangenalgorithmus, der auf einen vorher identifizierten Randweg einwirkt.
  37. Computersoftware nach Anspruch 36, bei welcher die Befehle, einen Randweg in dem ursprünglichen Grenzbereich zu identifizieren, folgende Befehle umfassen: finde Punkte in dem Grenzbereich, welche Bildgradientenwerte aufweisen, die einen Schwellenwert überschreiten.
  38. Computersoftware nach einem der voranstehenden Ansprüche 35 bis 37, welche weiterhin Befehle aufweist, einen Bildgradientenwert für jeden Farbkanal in dem ursprünglichen Grenzbereich zu berechnen.
  39. Computersoftware nach einem der voranstehenden Ansprüche 35 bis 37, bei welcher die Befehle, einen Randweg in dem ursprünglichen Grenzbereich zu identifizieren, folgende Befehle umfassen: kopiere den innenseitigen Weg und den außenseitigen Weg; bewege die Kopien des innenseitigen Weges und des außenseitigen Weges aufeinander zu, und zu Rändern des Vordergrundabschnitts hin, unter Verwendung eines Schlangenalgorithmus; und identifiziere den Randweg als jenen Weg, an dem die Kopie des innenseitigen Weges und die Kopie des außenseitigen Weges zu einem Weg konvergieren.
  40. Computersoftware nach einem der voranstehenden Ansprüche 35 bis 39, bei welcher die Befehle, eine Randwegtransformation zu bestimmen, folgende Befehle umfassen: bestimme eine Gruppe lokaler Randwegtransformationen, wobei die Gruppe lokaler Randwegtransformationen zusammen die Randwegtransformation bildet.
  41. Computersoftware nach Anspruch 40, bei welcher die Befehle, eine Gruppe lokaler Randwegtransformationen zu bestimmen, Befehle umfassen, eine lokale Randwegtransformation für jeden Punkt in dem Randweg zu bestimmen.
  42. Computersoftware nach Anspruch 40, bei welcher die Befehle, eine Gruppe lokaler Randwegtransformationen zu bestimmen, Befehle umfassen, eine Translation, eine Rotation, und eine Skalierung für jede lokale Randwegtransformation in der Gruppe lokaler Randwegtransformationen zu bestimmen.
  43. Computersoftware nach einem der voranstehenden Ansprüche 35 bis 42, bei welcher die Befehle, die Randwegtransformation auf den innenseitigen und den außenseitigen Weg anzuwenden, Befehle umfassen, eine Gruppe lokaler Transformationen bei jedem Punkt in dem innenseitigen Weg und bei jedem Punkt in dem außenseitigen Weg anzuwenden, wobei die Gruppe lokaler Transformationen die Randwegtransformation bildet.
  44. Computersoftware nach Anspruch 43, bei welcher die Befehle, eine Gruppe lokaler Transformationen anzuwenden, Befehle umfassen, eine Translation, eine Rotation und eine Skalierung als jede lokale Transformation des innenseitigen Weges und des außenseitigen Weges anzuwenden.
DE10197062.5T 2000-12-21 2001-12-06 Bildextraktion aus komplexen Szenen bei digitalen Videos Expired - Lifetime DE10197062B4 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/747,945 2000-12-21
US09/747,945 US7003061B2 (en) 2000-12-21 2000-12-21 Image extraction from complex scenes in digital video
PCT/US2001/046438 WO2002052739A1 (en) 2000-12-21 2001-12-06 Image extraction from complex scenes in digital video

Publications (2)

Publication Number Publication Date
DE10197062T5 DE10197062T5 (de) 2004-04-29
DE10197062B4 true DE10197062B4 (de) 2016-12-15

Family

ID=25007348

Family Applications (1)

Application Number Title Priority Date Filing Date
DE10197062.5T Expired - Lifetime DE10197062B4 (de) 2000-12-21 2001-12-06 Bildextraktion aus komplexen Szenen bei digitalen Videos

Country Status (5)

Country Link
US (2) US7003061B2 (de)
JP (1) JP4145652B2 (de)
DE (1) DE10197062B4 (de)
GB (1) GB2389987B (de)
WO (1) WO2002052739A1 (de)

Families Citing this family (99)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2370709A (en) * 2000-12-28 2002-07-03 Nokia Mobile Phones Ltd Displaying an image and associated visual effect
US7148917B2 (en) * 2001-02-01 2006-12-12 Motorola Inc. Method and apparatus for indicating a location of a person with respect to a video capturing volume of a camera
US7046732B1 (en) * 2001-06-15 2006-05-16 Objectvideo, Inc. Video coloring book
US7362374B2 (en) * 2002-08-30 2008-04-22 Altera Corporation Video interlacing using object motion estimation
JP4055126B2 (ja) * 2003-02-14 2008-03-05 富士フイルム株式会社 人物画像処理方法及び装置
JP3886471B2 (ja) * 2003-05-20 2007-02-28 ファナック株式会社 画像処理装置
GB2405067B (en) * 2003-08-01 2008-03-12 Caladrius Ltd Blending a digital image cut from a source image into a target image
US8090164B2 (en) * 2003-08-25 2012-01-03 The University Of North Carolina At Chapel Hill Systems, methods, and computer program products for analysis of vessel attributes for diagnosis, disease staging, and surgical planning
US7598956B2 (en) * 2004-04-15 2009-10-06 Microsoft Corporation Blended object attribute keyframing model
US7397964B2 (en) * 2004-06-24 2008-07-08 Apple Inc. Gaussian blur approximation suitable for GPU
US8233681B2 (en) * 2004-09-24 2012-07-31 The University Of North Carolina At Chapel Hill Methods, systems, and computer program products for hierarchical registration between a blood vessel and tissue surface model for a subject and a blood vessel and tissue surface image for the subject
US7872654B2 (en) * 2004-11-15 2011-01-18 Dreamworks Animation Llc Animating hair using pose controllers
US7593603B1 (en) 2004-11-30 2009-09-22 Adobe Systems Incorporated Multi-behavior image correction tool
GB0508073D0 (en) * 2005-04-21 2005-06-01 Bourbay Ltd Automated batch generation of image masks for compositing
GB0510792D0 (en) * 2005-05-26 2005-06-29 Bourbay Ltd Assisted selections with automatic indication of blending areas
GB0510793D0 (en) * 2005-05-26 2005-06-29 Bourbay Ltd Segmentation of digital images
US7408553B1 (en) * 2005-12-15 2008-08-05 Nvidia Corporation Inside testing for paths
US7835043B2 (en) * 2006-09-06 2010-11-16 Hewlett-Packard Development Company, L.P. Imaging device and calibration method therefor
EP1916538A3 (de) * 2006-10-27 2011-02-16 Panasonic Electric Works Co., Ltd. Verfolgungsvorrichtung für sich bewegende Zielobjekte
US8175409B1 (en) * 2006-12-01 2012-05-08 Adobe Systems Incorporated Coherent image selection and modification
US10298834B2 (en) 2006-12-01 2019-05-21 Google Llc Video refocusing
US8004536B2 (en) * 2006-12-01 2011-08-23 Adobe Systems Incorporated Coherent image selection and modification
US8547395B1 (en) 2006-12-20 2013-10-01 Nvidia Corporation Writing coverage information to a framebuffer in a computer graphics system
US20090003698A1 (en) * 2007-04-26 2009-01-01 Heligon Limited Segmentaton of digital images
US8004522B1 (en) 2007-08-07 2011-08-23 Nvidia Corporation Using coverage information in computer graphics
US8325203B1 (en) 2007-08-15 2012-12-04 Nvidia Corporation Optimal caching for virtual coverage antialiasing
WO2009109047A1 (en) * 2008-03-05 2009-09-11 Marc Berube Automatic video method and system
US8548251B2 (en) 2008-05-28 2013-10-01 Apple Inc. Defining a border for an image
US8452105B2 (en) * 2008-05-28 2013-05-28 Apple Inc. Selecting a section of interest within an image
EP2458552B1 (de) * 2008-05-28 2017-04-12 Apple Inc. Festlegung einer Auswahlkontur in einem Bild als ein Paar von verformbaren Kurven
CN101729735B (zh) * 2008-10-20 2012-08-22 深圳富泰宏精密工业有限公司 数码照片合成系统及方法
US9355469B2 (en) 2009-01-09 2016-05-31 Adobe Systems Incorporated Mode-based graphical editing
US8566736B1 (en) * 2009-01-19 2013-10-22 Pixar Visualization of value resolution for multidimensional parameterized data
US8885977B2 (en) * 2009-04-30 2014-11-11 Apple Inc. Automatically extending a boundary for an image to fully divide the image
CN102013246B (zh) * 2009-09-07 2013-09-18 群康科技(深圳)有限公司 显示装置的伽马对应表的建立方法
US9111287B2 (en) * 2009-09-30 2015-08-18 Microsoft Technology Licensing, Llc Video content-aware advertisement placement
US10268360B2 (en) 2010-04-30 2019-04-23 American Teleconferencing Service, Ltd. Participant profiling in a conferencing system
USD656507S1 (en) 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD656506S1 (en) 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD656942S1 (en) 2010-04-30 2012-04-03 American Teleconferencing Services, Ltd. Display screen portion with an animated image
US9419810B2 (en) 2010-04-30 2016-08-16 American Teleconference Services, Ltd. Location aware conferencing with graphical representations that enable licensing and advertising
US9560206B2 (en) 2010-04-30 2017-01-31 American Teleconferencing Services, Ltd. Real-time speech-to-text conversion in an audio conference session
USD642586S1 (en) 2010-04-30 2011-08-02 American Teleconferencing Services, Ltd. Portion of a display screen with a user interface
USD642587S1 (en) 2010-04-30 2011-08-02 American Teleconferencing Services, Ltd. Animated graphical user interface for a portion of a display screen
USD656504S1 (en) 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with an animated image
USD656505S1 (en) 2010-04-30 2012-03-27 American Teleconferencing Services, Ltd. Display screen portion with animated image
US10372315B2 (en) 2010-04-30 2019-08-06 American Teleconferencing Services, Ltd Location-aware conferencing with calendar functions
US9189143B2 (en) 2010-04-30 2015-11-17 American Teleconferencing Services, Ltd. Sharing social networking content in a conference user interface
US8626847B2 (en) 2010-04-30 2014-01-07 American Teleconferencing Services, Ltd. Transferring a conference session between client devices
US9106794B2 (en) 2010-04-30 2015-08-11 American Teleconferencing Services, Ltd Record and playback in a conference
USD656941S1 (en) 2010-04-30 2012-04-03 American Teleconferencing Services, Ltd. Display screen portion with an animated image
US9082106B2 (en) 2010-04-30 2015-07-14 American Teleconferencing Services, Ltd. Conferencing system with graphical interface for participant survey
US8619093B2 (en) 2010-07-20 2013-12-31 Apple Inc. Keying an image
US8743139B2 (en) 2010-07-20 2014-06-03 Apple Inc. Automatically keying an image
US8675009B2 (en) 2010-07-20 2014-03-18 Apple Inc. Keying an image in three dimensions
JP5620194B2 (ja) * 2010-08-24 2014-11-05 オリンパス株式会社 画像処理装置、画像処理方法、および画像処理プログラム
JP5658945B2 (ja) * 2010-08-24 2015-01-28 オリンパス株式会社 画像処理装置、画像処理装置の作動方法、および画像処理プログラム
US8582834B2 (en) 2010-08-30 2013-11-12 Apple Inc. Multi-image face-based image processing
US8854370B2 (en) 2011-02-16 2014-10-07 Apple Inc. Color waveform
US8891864B2 (en) 2011-02-16 2014-11-18 Apple Inc. User-aided image segmentation
US8823726B2 (en) 2011-02-16 2014-09-02 Apple Inc. Color balance
US11039109B2 (en) 2011-08-05 2021-06-15 Fox Sports Productions, Llc System and method for adjusting an image for a vehicle mounted camera
EP2740120A4 (de) * 2011-08-05 2015-03-11 Fox Sports Productions Inc Selektive erfassung und präsentation von nativen bildteilen
US9014543B1 (en) * 2012-10-23 2015-04-21 Google Inc. Methods and systems configured for processing video frames into animation
US9690762B1 (en) * 2013-01-14 2017-06-27 Google Inc. Manipulating image content items through determination and application of multiple transparency values to visually merge with other content as part of a web page
US9547410B2 (en) 2013-03-08 2017-01-17 Adobe Systems Incorporated Selection editing using a localized level set algorithm
US20160054839A1 (en) * 2013-04-16 2016-02-25 Artware, Inc. Interactive Object Contour Detection Algorithm for Touchscreens Application
US9055186B2 (en) * 2013-07-23 2015-06-09 Personify, Inc Systems and methods for integrating user personas with content during video conferencing
US9386303B2 (en) * 2013-12-31 2016-07-05 Personify, Inc. Transmitting video and sharing content via a network using multiple encoding techniques
GB2522663B (en) 2014-01-31 2020-02-12 Apical Ltd A method of selecting a region of interest
KR20160013329A (ko) * 2014-07-24 2016-02-04 삼성전자주식회사 컨텐츠 제공 방법 및 그 전자 장치
CN104331874B (zh) * 2014-08-11 2017-02-22 阔地教育科技有限公司 一种背景图像提取方法及系统
US11159854B2 (en) 2014-12-13 2021-10-26 Fox Sports Productions, Llc Systems and methods for tracking and tagging objects within a broadcast
US11758238B2 (en) 2014-12-13 2023-09-12 Fox Sports Productions, Llc Systems and methods for displaying wind characteristics and effects within a broadcast
US10341632B2 (en) 2015-04-15 2019-07-02 Google Llc. Spatial random access enabled video system with a three-dimensional viewing volume
US10419737B2 (en) 2015-04-15 2019-09-17 Google Llc Data structures and delivery methods for expediting virtual reality playback
US10540818B2 (en) 2015-04-15 2020-01-21 Google Llc Stereo image generation and interactive playback
US10567464B2 (en) 2015-04-15 2020-02-18 Google Llc Video compression with adaptive view-dependent lighting removal
US9355457B1 (en) 2015-04-15 2016-05-31 Adobe Systems Incorporated Edge detection using multiple color channels
US10469873B2 (en) 2015-04-15 2019-11-05 Google Llc Encoding and decoding virtual reality video
US10546424B2 (en) 2015-04-15 2020-01-28 Google Llc Layered content delivery for virtual and augmented reality experiences
US10444931B2 (en) 2017-05-09 2019-10-15 Google Llc Vantage generation and interactive playback
US10083720B2 (en) * 2015-11-06 2018-09-25 Aupera Technologies, Inc. Method and system for video data stream storage
US9760978B1 (en) * 2016-05-09 2017-09-12 Adobe Systems Incorporated Missing region prediction
US10275892B2 (en) * 2016-06-09 2019-04-30 Google Llc Multi-view scene segmentation and propagation
US9911201B2 (en) 2016-06-23 2018-03-06 Adobe Systems Incorporated Imaging process initialization techniques
US10679361B2 (en) 2016-12-05 2020-06-09 Google Llc Multi-view rotoscope contour propagation
US10999602B2 (en) 2016-12-23 2021-05-04 Apple Inc. Sphere projected motion estimation/compensation and mode decision
US11259046B2 (en) 2017-02-15 2022-02-22 Apple Inc. Processing of equirectangular object data to compensate for distortion by spherical projections
US11240403B2 (en) * 2017-02-24 2022-02-01 Avigilon Corporation Compensation for delay in PTZ camera system
US10924747B2 (en) 2017-02-27 2021-02-16 Apple Inc. Video coding techniques for multi-view video
US9992450B1 (en) * 2017-03-24 2018-06-05 Apple Inc. Systems and methods for background concealment in video conferencing session
US10594945B2 (en) 2017-04-03 2020-03-17 Google Llc Generating dolly zoom effect using light field image data
US10474227B2 (en) 2017-05-09 2019-11-12 Google Llc Generation of virtual reality with 6 degrees of freedom from limited viewer data
US10354399B2 (en) 2017-05-25 2019-07-16 Google Llc Multi-view back-projection to a light-field
US11093752B2 (en) 2017-06-02 2021-08-17 Apple Inc. Object tracking in multi-view video
US10754242B2 (en) 2017-06-30 2020-08-25 Apple Inc. Adaptive resolution and projection format in multi-direction video
US10965862B2 (en) 2018-01-18 2021-03-30 Google Llc Multi-camera navigation interface
US11094116B2 (en) * 2019-11-18 2021-08-17 GE Precision Healthcare LLC System and method for automatic generation of a three-dimensional polygonal model with color mapping from a volume rendering

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1998059497A1 (en) * 1997-06-23 1998-12-30 Microsoft Corporation Method for generating sprites for object-based coding systems using masks and rounding average
US5940538A (en) * 1995-08-04 1999-08-17 Spiegel; Ehud Apparatus and methods for object border tracking
WO2000016563A1 (en) * 1998-09-10 2000-03-23 Microsoft Corporation Tracking semantic objects in vector image sequences

Family Cites Families (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS58176638A (ja) 1982-04-09 1983-10-17 Dainippon Screen Mfg Co Ltd 抜きマスク版の作製方法
JP3038051B2 (ja) 1991-06-28 2000-05-08 日本放送協会 動画像領域抽出装置
JPH05128257A (ja) 1991-11-08 1993-05-25 Matsushita Electric Ind Co Ltd 画像領域抽出装置
JP3188899B2 (ja) 1991-11-29 2001-07-16 経済産業省産業技術総合研究所長 画像処理装置およびその方法
IL100256A (en) 1991-12-06 1997-01-10 Scitex Corp Ltd Apparatus and method for preparing picture masks
JPH06203157A (ja) 1992-10-14 1994-07-22 Fujitsu Ltd カラー画像処理方法および装置
JPH06231275A (ja) * 1993-01-29 1994-08-19 Hitachi Ltd 画像シミュレーション方法
US6002797A (en) 1994-06-22 1999-12-14 Hitachi, Ltd. Apparatus for detecting position of featuring region of picture, such as subtitle or imageless part
KR100249028B1 (ko) 1995-03-20 2000-03-15 전주범 정지영상을 가진 영상신호를 부호화/복호화하기 위한 부호화/복호화시스템
KR100423379B1 (ko) 1995-05-12 2004-07-23 소니 가부시끼 가이샤 키신호생성장치및화상합성장치와,키신호생성방법및화상합성방법
JPH08329253A (ja) 1995-05-31 1996-12-13 Sony Corp エッジ検出方法及びエッジ検出装置
US5912994A (en) * 1995-10-27 1999-06-15 Cerulean Colorization Llc Methods for defining mask of substantially color-homogeneous regions of digitized picture stock
US5764814A (en) 1996-03-22 1998-06-09 Microsoft Corporation Representation and encoding of general arbitrary shapes
US5852673A (en) * 1996-03-27 1998-12-22 Chroma Graphics, Inc. Method for general image manipulation and composition
JP3750184B2 (ja) 1996-04-03 2006-03-01 松下電器産業株式会社 移動物体の抽出装置及び抽出方法
US5929861A (en) * 1996-08-23 1999-07-27 Apple Computer, Inc. Walk-through rendering system
US5914748A (en) * 1996-08-30 1999-06-22 Eastman Kodak Company Method and apparatus for generating a composite image using the difference of two images
JP3812763B2 (ja) 1996-12-04 2006-08-23 ソニー株式会社 キー信号生成装置及び方法
US5960111A (en) 1997-02-10 1999-09-28 At&T Corp Method and apparatus for segmenting images prior to coding
US6035060A (en) 1997-02-14 2000-03-07 At&T Corp Method and apparatus for removing color artifacts in region-based coding
US6008865A (en) 1997-02-14 1999-12-28 Eastman Kodak Company Segmentation-based method for motion-compensated frame interpolation
US6088392A (en) 1997-05-30 2000-07-11 Lucent Technologies Inc. Bit rate coder for differential quantization
US6300955B1 (en) 1997-09-03 2001-10-09 Mgi Software Corporation Method and system for mask generation
GB9807097D0 (en) * 1998-04-02 1998-06-03 Discreet Logic Inc Processing image data
US6400831B2 (en) * 1998-04-02 2002-06-04 Microsoft Corporation Semantic video object segmentation and tracking
JP2000069368A (ja) 1998-08-21 2000-03-03 Sony Corp 輪郭画像生成装置及び方法、キー信号生成装置及び方法並びに記録媒体
US6134345A (en) * 1998-08-28 2000-10-17 Ultimatte Corporation Comprehensive method for removing from an image the background surrounding a selected subject
US6721446B1 (en) * 1999-04-26 2004-04-13 Adobe Systems Incorporated Identifying intrinsic pixel colors in a region of uncertain pixels
JP2001118075A (ja) 1999-07-09 2001-04-27 Toshiba Corp 物体領域情報記述方法及び物体領域情報生成装置並びに映像情報処理方法及び情報処理装置
US6556704B1 (en) * 1999-08-25 2003-04-29 Eastman Kodak Company Method for forming a depth image from digital image data
JP4407985B2 (ja) 1999-09-02 2010-02-03 キヤノン株式会社 画像処理方法及び装置並びに記憶媒体
US6337925B1 (en) * 2000-05-08 2002-01-08 Adobe Systems Incorporated Method for determining a border in a complex scene with applications to image masking
US6665450B1 (en) * 2000-09-08 2003-12-16 Avid Technology, Inc. Interpolation of a sequence of images using motion analysis

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5940538A (en) * 1995-08-04 1999-08-17 Spiegel; Ehud Apparatus and methods for object border tracking
WO1998059497A1 (en) * 1997-06-23 1998-12-30 Microsoft Corporation Method for generating sprites for object-based coding systems using masks and rounding average
WO2000016563A1 (en) * 1998-09-10 2000-03-23 Microsoft Corporation Tracking semantic objects in vector image sequences

Non-Patent Citations (13)

* Cited by examiner, † Cited by third party
Title
ADOBE: Adobe After Effects Version 3.0 - User Guide. Part number: 0197 2558 (10/95). Mountain View, CA: Adobe Systems Inc., 1995. pp. 268-271, 292-314. *
BLAKE, Andrew; ISARD, Michael: Active Contours. The Application of Techniques from Graphics, Vision, Control Theory and Statistics to Visual Tracking of Shapes in Motion. London: Springer, 1998. ISBN 978-1-4471-1557-1. Chapter 2: Active shape models; 2.1: Snakes. pp. 25-32. *
DANIELSSON, Per-Erik: Euclidian Distance Mapping. Computer Graphics and Image Processing, Vol. 14, 1980. pp. 227-248.
DANIELSSON, Per-Erik: Euclidian Distance Mapping. Computer Graphics and Image Processing, Vol. 14, 1980. pp. 227-248. *
FOLEY, James D.; VAN DAM, Andries: Fundamentals of Interactive Computer Graphics. Reading, MA; Menlo Park, CA; London: Addison-Wesley, 1982. ISBN 0-201-14468-9. pp. 446-449. *
GU, Chuang; LEE, Ming-Chieh: Semiautomatic Segmentation and Tracking of Semantic Video Objects. IEEE Transactions on Circuits and Systems for Video Technology, Vol. 8, No. 5, September 1998, pp. 572-584. *
GUNN, Steve R.; NIXON, Mark S.: A Robust Snake Implementation; A Dual Active Contour. IEEE Transactions on Pattern Analysis and Machine Intelligence, PAMI, Vol. 19, No. 1, January 1997, pp. 63-68. *
IVINS, James P.: Statistical Snakes: Active Region Models. PhD thesis, Faculty of Pure Science, Artificial Intelligence Vision Resaerch Unit, University of Sheffield, England, 1996. *
KASS, Michael; WITKIN, Andrew; TERZOPOULOS, Demetri: Snakes: Active Contour Models. International Journal of Computer Vision, Vol. 1, No. 4, 1988, pp. 321-331. *
LOMBARDO, A.; MORABITO, G.; PALAZZO, S.; SCHEMBRA, G.: Intra-GoP Modeling of MPEG Video Traffic. IEEE International Conference on Communications, ICC 98, Atlanta, GA, USA, 7-11 June 1998. Conference Record, Vol. 1, pp. 563-567. *
LUO, Huitao; ELEFTHERIADIS, Alexandros: Spatial Temporal Active Contour Interpolation for Semi-automatic Video Object Generation. International Conference on Image Processing, 1999. ICIP 99. Conference Proceedings, Vol. 2, pp. 944-948. *
RUZON, Mark A.; TOMASI, Carlo: Alpha Estimation in Natural Images. IEEE Conference on Computer Vision and Pattern Recognition, Hilton Head Island, SC, USA, 13-15 June 2000. Conference Proceedings, Vol. 1, pp. 18-25. *
SMITH, Alvy Ray; BLINN, James F.: Blue Screen Matting. 23rd International Conference on Computer Graphics and Interactive Techniques, 1996. Proceedings, ISBN 0-89791-746-4, pp. 259-268. *

Also Published As

Publication number Publication date
US7729422B2 (en) 2010-06-01
GB2389987A (en) 2003-12-24
US20020118875A1 (en) 2002-08-29
GB2389987B (en) 2005-03-16
JP4145652B2 (ja) 2008-09-03
US7003061B2 (en) 2006-02-21
JP2004516589A (ja) 2004-06-03
WO2002052739A1 (en) 2002-07-04
US20060126719A1 (en) 2006-06-15
GB0313990D0 (en) 2003-07-23
DE10197062T5 (de) 2004-04-29

Similar Documents

Publication Publication Date Title
DE10197062B4 (de) Bildextraktion aus komplexen Szenen bei digitalen Videos
CN110868598B (zh) 基于对抗生成网络的视频内容替换方法及系统
DE60111851T2 (de) Videobildsegmentierungsverfahren unter verwendung von elementären objekten
DE60030798T2 (de) Identifizierung von eigentlichen Pixelfarben im Bereich mit unsicheren Pixeln
DE69737141T2 (de) Bildsegmentierung
DE69634962T2 (de) Extrapolation von Pixelwerten eines in einem Block enthaltenen Videoobjektes
DE69937476T2 (de) Bildverarbeitungsvorrichtung und -Verfahren und Speichermedium
DE10195927B4 (de) Verallgemeinerte Textlokalisation in Bildern
DE10195928B4 (de) Abschätzen der Textfarbe und Segmentieren von Bildern
DE69922973T2 (de) Verfolgung semantischer objekte in vektorbildsequenzen
DE60116717T2 (de) Vorrichtung und Verfahren zur Erzeugungung von objekt-markierten Bildern in einer Videosequenz
DE69722040T2 (de) 2-d gittergeometrie und bewegungsvektorkompression
DE69725483T2 (de) Gitternetzübertragung und -kodierung
DE69735488T2 (de) Verfahren und vorrichtung zum ausrichten von bildern
DE60320178T2 (de) Verfahren und System zur Verbesserung von Portraitbildern
DE102015009981A1 (de) Verfahren und Vorrichtung zur Bildsynthese
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE102008023283B4 (de) Verfahren und System zur Segmentierung von schlauchförmigen Strukturen in 3D-Bildern
CN106934766A (zh) 一种基于稀疏表示的红外图像超分辨率重建方法
DE10315461A1 (de) System und Verfahren für eine Verbesserung von Digitalbildern
Ren et al. Two-stage sketch colorization with color parsing
EP2172032B1 (de) Verfahren zur bearbeitung eines räumlichen bildes
DE69830766T2 (de) Verfahren und Vorrichtung zum Bestimmen des Anwendungsumfangs geschichteter synthetischer graphischer Filter
DE102022112888A1 (de) Benutzerschnittstellen und Verfahren zum Erzeugen eines neuen Artefakts auf der Grundlage vorhandener Artefakte

Legal Events

Date Code Title Description
8110 Request for examination paragraph 44
R016 Response to examination communication
R016 Response to examination communication
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R081 Change of applicant/patentee

Owner name: ADOBE INC., SAN JOSE, US

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

R082 Change of representative

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

R071 Expiry of right