-
GEBIET DER ERFINDUNG
-
Die vorliegende Erfindung bezieht sich auf Bildverarbeitung und insbesondere auf Bildveränderung (engl. „image alteration”).
-
HINTERGRUND
-
Zweidimensionale graphische Inhalte haben in der modernen Gesellschaft große Popularität genossen. Zweidimensionale graphische Inhalte mögen zum Beispiel in solchen Medien, wie Filmen, Videospielen, Bildern etc., enthalten sein. Gegenwärtige Techniken zum Verändern solcher zweidimensionalen grafischen Inhalte sind aber mit verschiedenen Einschränkungen assoziiert gewesen.
-
Zum Beispiel sind gegenwärtige Techniken zum Konvertieren zweidimensionaler grafischen Inhalte in dreidimensionale Inhalte kompliziert und zeitaufwändig. Zusätzlich sind die Resultate solcher Techniken üblicherweise roh (engl. „crude”) und inakkurat. Es besteht folglich ein Bedürfnis, diese und/oder andere mit dem Stand der Technik assoziierten Probleme anzugehen.
-
ZUSAMMENFASSUNG
-
Ein System, Verfahren und Computerprogrammprodukt werden bereitgestellt zum Extrudieren eines Objekts durch eine zweidimensionale Szene. Im Einsatz wird ein zweidimensionales Objekt innerhalb einer zweidimensionalen Szene identifiziert. Ein dreidimensionales Modell, das dem zweidimensionalen Objekt entspricht, wird zusätzlich bestimmt. Das dreidimensionale Modell wird des Weiteren durch die zweidimensionale Szene extrudiert, um ein dreidimensionales Objekt zu erzeugen.
-
Kurze Beschreibung der Zeichnungen
-
Die 1 zeigt ein Verfahren zum Extrudieren eines Objekts aus einer zweidimensionalen Szene, gemäß einer Ausführungsform.
-
Die 2 zeigt ein Verfahren zum Extrudieren eines zweidimensionalen Objekts in dreidimensionalen Raum hinein, gemäß einer weiteren Ausführungsform.
-
Die 3 zeigt einen Extrudierungsvorgang, gemäß einer weiteren Ausführungsform.
-
Die 4 stellt ein beispielhaftes System dar, in welchem die verschiedenen Architekturen und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen.
-
DETAILLIERTE BESCHREIBUNG
-
Die 1 zeigt ein Verfahren 100 zum Extrudieren eines Modells durch eine zweidimensionale Szene, gemäß einer Ausführungsform. Wie es in der Operation 102 gezeigt ist, wird ein zweidimensionales Objekt innerhalb einer zweidimensionalen Szene identifiziert. In einer Ausführungsform mag die zweidimensionale Szene ein Bild enthalten. Die zweidimensionale Szene mag zum Beispiel ein digitales Bild enthalten, wie beispielsweise eine gescannte Fotografie, einen Screenshot von einem Video, einen Frame aus einem Video, etc.
-
In einer Ausführungsform mag das zweidimensionale Objekt zusätzlich ein jegliches Objekt innerhalb der zweidimensionalen Szene enthalten. Das zweidimensionale Objekt mag zum Beispiel ein Bild von einer Person, ein Bild von einem physikalischen Objekt etc. enthalten. In einer weiteren Ausführungsform mag eine Mehrzahl von zweidimensionalen Objekten innerhalb der zweidimensionalen Szene angezeigt werden.
-
Ferner, in einer Ausführungsform, mag das zweidimensionale Objekt innerhalb der zweidimensionalen Szene manuell identifiziert werden. Ein Benutzer mag zum Beispiel das zweidimensionale Objekt unter Verwendung einer grafischen Benutzerschnittstelle (GUI), durch welche die zweidimensionale Szene angezeigt wird, manuell auswählen. In einer weiteren Ausführungsform mag das zweidimensionale Objekt automatisch identifiziert werden. Eine oder mehrere Anwendungen mögen zum Beispiel die zweidimensionale Szene analysieren und mögen das zweidimensionale Objekt innerhalb der zweidimensionalen Szene automatisch/dynamisch detektieren (zum Beispiel unter Verwendung von Formerkennung, Bildverarbeitung etc.).
-
Noch weiter wird, wie es in der Operation 104 gezeigt ist, ein dreidimensionales Modell bestimmt, das dem zweidimensionalen Objekt entspricht. In einer Ausführungsform mag das dreidimensionale Modell ein Drahtgittermodell (engl. „wire frame model”) enthalten, das in Verbindung mit der zweidimensionalen Szene angezeigt werden mag. In einer weiteren Ausführungsform mag das dreidimensionale Modell ein transparentes oder lichtdurchlässiges bzw. transluzentes Modell enthalten, das in Verbindung mit der zweidimensionalen Szene angezeigt werden mag. Das dreidimensionale Modell mag aber selbstverständlich jedes Modell enthalten, dass unter Verwendung von drei Dimensionen repräsentiert wird.
-
Das dreidimensionale Modell mag auch in einer Ausführungsform manuell bestimmt werden. Der Benutzer mag zum Beispiel einen oder mehrere Identifikatoren zu dem zweidimensionalen Objekt zuordnen (zum Beispiel durch Kennzeichnen bzw. Markieren (engl. „tagging”) des Objekts mit den Identifikatoren etc.), nachdem er das zweidimensionale Objekt innerhalb der zweidimensionalen Szene manuell identifiziert hat. In einer weiteren Ausführungsform mögen die Identifikatoren einen Typ des zweidimensionalen Objekts, eine Kategorie des zweidimensionalen Objekts, eine ganze oder teilweise bzw. partielle Beschreibung von dem zweidimensionalen Objekt, Schlüsselwörter, die mit dem zweidimensionalen Objekt assoziiert sind, etc. angeben.
-
In einer Ausführungsform mögen der einen oder die mehreren Identifikatoren, die von dem Benutzer zu dem zweidimensionalen Objekt zugeordnet sind, zusätzlich zum Bestimmen des entsprechenden dreidimensionalen Modells verwendet werden. Zum Beispiel mag eine Datenbank Deskriptoren von einer Mehrzahl von dreidimensionalen Modellen enthalten, und der einen oder die mehreren Identifikatoren, die von dem Benutzer zu dem zweidimensionalen Objekt zugeordnet sind, mögen mit den Deskriptoren in der Datenbank verglichen werden. In einem weiteren Beispiel mag ein dreidimensionales Modell, dessen Deskriptor am besten mit dem einem oder den mehreren Identifikatoren übereinstimmt, die von dem Benutzer zu dem zweidimensionalen Objekt zugeordnet sind, als dem zweidimensionalen Objekt entsprechend bestimmt werden.
-
Des Weiteren mag das dreidimensionale Modell in einer Ausführungsform automatisch bestimmt werden. Nach der automatischen Identifikation des zweidimensionalen Objekts innerhalb der zweidimensionalen Szene mag das zweidimensionale Objekt zum Beispiel automatisch analysiert werden, um einen Typ des zweidimensionalen Objekts zu bestimmen. In einem weiteren Beispiel mögen ein oder mehrere Subobjekte (zum Beispiel Merkmale etc.) des zweidimensionalen Objekts identifiziert und analysiert werden, um den Typ des Objekts zu bestimmen. In einer weiteren Ausführungsform mag der Typ des Objekts mit einer Datenbank von dreidimensionalen Modelltypen verglichen werden, und eine Übereinstimmung zwischen einem dreidimensionalen Modelltyp und dem Typ des Objekts mag bestimmt werden.
-
Noch weiter, wie es in der Operation 106 gezeigt ist, wird das dreidimensionale Modell durch die zweidimensionale Szene extrudiert, um ein dreidimensionales Objekt zu erzeugen. In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modell durch die zweidimensionale Szene ein Bewegen des dreidimensionalen Modells in einer dritten Dimension durch die zweidimensionale Szene aufweisen, so dass das dreidimensionale Modell durch die zweidimensionale Szene gezwungen wird, um ein dreidimensionales Objekt zu erzeugen. Die zweidimensionale Szene mag zum Beispiel auf einer zweidimensionalen Ebene unter Verwendung einer zweidimensionalen X-Y-Achse repräsentiert werden, und das dreidimensionale Modell mag hinter der Ebene der Szene auf einer zu der Ebene senkrechten Z-Achse platziert sein (zum Beispiel so dass die Ebene der Szene auf dem dreidimensionalen Modell überlagert wird). In einem weiteren Beispiel mag das dreidimensionale Modell dann durch die Ebene der Szene via die senkrechte Z-Achse bewegt werden (zum Beispiel so dass das dreidimensionale Modell durch die zweidimensionale Szene via die Z-Achse geschoben wird).
-
In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die dreidimensionale Szene auch ein Justieren (zum Beispiel Verdrehen (engl. „warping”) etc.) der zweidimensionalen Szene in Antwort auf die Bewegung von dem dreidimensionalen Modell in der dritten Dimension durch die zweidimensionale Szene aufweisen. Während das dreidimensionale Modell durch die Ebene der Szene entlang der Achse, die senkrecht zu der Szene ist, bewegt wird, mag die zweidimensionale Szene zum Beispiel so verdreht werden, dass ein Teil von der zweidimensionalen Szene (zum Beispiel das zweidimensionale Objekt etc.) das dreidimensionale Modell, das durch die Ebene der Szene bewegt wird, überdecken (zum Beispiel umwickeln etc.) mag.
-
Zusätzlich mag die zweidimensionale Repräsentation des zweidimensionalen Objekts in einer Ausführungsform so verdreht werden, dass das zweidimensionale Objekt um das zweidimensionale Modell gewickelt (engl. „wraps around”) und auf dieses gemappt wird, während das dreidimensionale Modell durch die Szene bewegt wird. Zum Beispiel mag die zweidimensionale Repräsentation des zweidimensionalen Objekts als eine Textur-Map verwendet werden, um die Oberfläche des dreidimensionalen Modells zu erzeugen, dass durch die Ebene der Szene auf der Achse, die senkrecht zu der Szene ist, durchgelaufen ist. In einem weiteren Beispiel mag die zweidimensionale Repräsentation von dem zweidimensionalen Objekt justiert werden, um die dreidimensionalen Konturen des dreidimensionalen Modells zu folgen, so dass die resultierende Repräsentation von dem zweidimensionalen Objekt dreidimensional ist. In dieser Art und Weise mag das dreidimensionale Modell mit Inhalt von dem zweidimensionalen Objekt getexturet (engl. „textured”) werden.
-
In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die zweidimensionale Szene des Weiteren ein Ausrichten des zweidimensionalen Objekts mit dem dreidimensionalen Modell aufweisen. In einer weiteren Ausführungsform mag das zweidimensionale Objekt mit dem dreidimensionalen Modell manuell ausgerichtet werden. Ein Benutzer mag zum Beispiel eine grafische Benutzeroberfläche (GUI) verwenden, um das dreidimensionale Modell derart zu manipulieren (zum Beispiel bewegen, die Größe ändern, umformen etc.), dass die Position, Größe und Form des dreidimensionalen Modells mit der Position, Größe und Form des zweidimensionalen Objekts entlang der Achse, die senkrecht zu der Szene ist, ausgerichtet wird. In einem weiteren Beispiel mag der Benutzer das dreidimensionale Modell manipulieren, bevor oder nachdem das dreidimensionale Modell durch die Ebene der Szene bewegt worden ist.
-
Noch weiter mag das zweidimensionale Objekt in einer Ausführungsform mit dem dreidimensionalen Modell automatisch ausgerichtet werden. Zum Beispiel mögen ein oder mehrere Subobjekte (zum Beispiel Merkmale etc.) des zweidimensionalen Objekts manuell identifiziert oder automatisch identifiziert (zum Beispiel unter Verwendung von Bildverarbeitung etc.) werden, und die Orientierung von solchen Subobjekten innerhalb des zweidimensionalen Objekts mag bestimmt werden. In einem weiteren Beispiel mag eine Orientierung von dem zweidimensionalen Objekt innerhalb der zweidimensionalen Szene basierend auf der Orientierung von dem Subobjekt innerhalb des zweidimensionalen Objekts bestimmt werden.
-
In noch einem weiteren Beispiel mag die bestimmte Orientierung von dem zweidimensionalen Objekt innerhalb der zweidimensionalen Szene dazu verwendet werden, Justierungen für das dreidimensionale Modell automatisch zu bestimmen, so dass das dreidimensionale Modell mit dem zweidimensionalen Objekt entlang der Achse, die senkrecht zu der Szene ist, ausgerichtet wird. In einer weiteren Ausführungsform mögen eine oder mehrere Eigenschaften (zum Beispiel Form, Fähigkeiten, Bewegungsbegrenzungen, verfügbare Positionen, Funktion etc.) mit dem dreidimensionalen Modell assoziiert sein, und solche Eigenschaften mögen zum Verfeinern der automatischen Ausrichtung von dem dreidimensionalen Objekt mit dem dreidimensionalen Modell verwendet werden.
-
In einer Ausführungsform mag ein Grad, zu dem das dreidimensionale Modell durch die zweidimensionale Szene extrudiert ist, auch justiert werden. Zum Beispiel mag die Distanz, die das dreidimensionale Modell durch die zweidimensionale Ebene der zweidimensionalen Szene auf der Achse, die senkrecht zu der Szene ist, zurücklegt, manuell oder automatisch justiert werden. In einer weiteren Ausführungsform mag eine oder mehrere zusätzlichen Justierungen des dreidimensionalen Modells (zum Beispiel Ausrichtung, Größe etc.) manuell oder automatisch gemacht werden, nachdem das dreidimensionale Modell durch die zweidimensionale Szene bewegt worden ist (zum Beispiel, um die Überdeckung des dreidimensionalen Modells durch das zweidimensionale Objekt fein abzustimmen etc.). In dieser Art und Weise mögen dreidimensionale Modelle von bekannten Objekten adaptiert werden, um mit Größe und Eigenschaften von zweidimensionalen Objekten zu übereinstimmen, und die zweidimensionalen Objekte mögen unter Verwendung von deren entsprechenden dreidimensionalen Modelldaten als eine Basis des Extrudierens extrudiert werden.
-
In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die zweidimensionale Szene zusätzlich ein Konvertieren des zweidimensionalen Objekts in ein dreidimensionales Objekt unter Verwendung des dreidimensionalen Modells aufweisen. Das extrudierte dreidimensionale Modell mag zum Beispiel in ein dreidimensionales Objekt konvertiert werden, das die Form des dreidimensionalen Modells und die Erscheinung des verdrehten zweidimensionalen Objekts hat. In einer weiteren Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die zweidimensionale Szene ein Konvertieren des zweidimensionalen Objekts in ein stereoskopisches Objekt aufweisen. Das extrudierte zweidimensionale Objekt mag zum Beispiel in ein stereoskopisches Objekt konvertiert werden, das die Form des dreidimensionalen Modells und die Erscheinung des verdrehten zweidimensionalen Objekts hat. In einem weiteren Beispiel mag das dreidimensionale Modell Tiefendaten bereitstellen, die eine akkurate stereoskopische Tiefe erlauben mögen.
-
In einer noch weiteren Ausführungsform mag das zweidimensionale Objekt ein oder mehrere zweidimensionale Subobjekte aufweisen. Eine zweidimensionale Repräsentation eines Gesichts mag zum Beispiel Subobjekte einschließlich Augen, einer Nase, eines Munds etc. enthalten. In einer noch weiteren Ausführungsform mag das zweidimensionale Objekt unterteilt sein, und dreidimensionale Modelle mögen für jedes zweidimensionale Subobjekt innerhalb des zweidimensionalen Objekts bestimmt werden. In noch einer weiteren Ausführungsform mag jedes der zweidimensionalen Subobjekte aus der zweidimensionalen Szene extrudiert werden unter Verwendung der dreidimensionalen Modelle.
-
In einer Ausführungsform mag das dreidimensionale Objekt, das durch Extrudieren des zweidimensionalen Objekts aus der zweidimensionalen Szene erzeugt worden ist, ferner zum Durchführen von Bilderkennung verwendet werden. Das dreidimensionale Objekt mag zum Beispiel während einer Analyse von einer Szene verwendet werden, um zu bestimmen, ob irgendwelche dreidimensionalen Objekte in der Szene mit dem erzeugten dreidimensionalen Objekt übereinstimmen. In einer weiteren Ausführungsform mag das dreidimensionale Objekt, das durch Extrudieren des zweidimensionalen Objekts aus der zweidimensionalen Szene erzeugt worden ist, animiert werden. Das dreidimensionale Objekt mag zum Beispiel derart manipuliert werden, dass sich ein oder mehrere Teile des dreidimensionalen Objekts (zum Beispiel Subobjekte, die auf das dreidimensionale Objekt gemappt wurden) bewegen.
-
Illustrativere Informationen bezüglich verschiedener optionalen Architekturen und Merkmale, mit denen das vorhergehende Framework gemäß den Wünschen des Benutzers implementiert oder nicht implementiert werden mag, werden jetzt dargelegt. Es sollte dringend beachtet werden, dass die folgenden Informationen zu illustrativen Zwecken dargelegt werden und nicht als in irgendeiner Weise einschränkend ausgelegt werden sollen. Alle folgenden Merkmale mögen optional eingearbeitet werden, wobei andere beschriebenen Merkmale ausgeschlossen oder nicht ausgeschlossen werden mögen.
-
Die 2 zeigt ein Verfahren 200 zum Extrudieren eines zweidimensionalen Objekts in dreidimensionalen Raum hinein, gemäß einer weiteren Ausführungsform. Das Verfahren 200 mag, als eine Option, im Kontext der Funktionalität von 1 ausgeführt werden. Das Verfahren 200 mag aber selbstverständlich in jeglicher gewünschter Umgebung implementiert werden. Es sollte auch beachtet werden, dass die oben erwähnten Definitionen im Laufe der folgenden Beschreibung Anwendung finden mögen.
-
Wie es in der Operation 202 gezeigt ist, wird eine zweidimensionale (2D) Szene identifiziert. In einer Ausführungsform mag die zweidimensionale Szene ein digitales Bild enthalten. Ein Benutzer mag zum Beispiel eine Standfotografie (engl. „still photograph”) scannen, die während des Scannens in ein zweidimensionales digitales Bild konvertiert werden mag. In einer weiteren Ausführungsform mag die zweidimensionale Szene eine Szene aus einem Video enthalten. In einer noch weiteren Ausführungsform mag eine Mehrzahl von zweidimensionalen Szenen identifiziert werden. Zum Beispiel mag ein stereoskopisches Bild, das zwei zweidimensionale Bilder enthält, die jeweils eine leicht veränderte Version von dem anderen darstellt bzw. zeigt, identifiziert werden oder mehrere Bilder von dem gleichen Objekt oder den gleichen Objekten, die aus unterschiedlichen Perspektiven aufgenommen worden sind.
-
Ein zweidimensionales Objekt wird zusätzlich, wie es in der Operation 204 gezeigt ist, innerhalb der zweidimensionalen Szene identifiziert. In einer Ausführungsform mag das zweidimensionale Objekt eine Person, die in der zweidimensionalen Szene gezeigt ist (zum Beispiel ein menschlicher Körper etc.), ein innerhalb der dreidimensionalen Szene angezeigten Objekt (zum Beispiel ein Haus, ein Stuhl etc.) etc. enthalten. In einer weiteren Ausführungsform mag das zweidimensionale Objekt ein Komponentenobjekt enthalten. Das zweidimensionale Objekt mag zum Beispiel ein Gesicht, eine Hand oder einen anderen Teil von einer Person in der zweidimensionalen Szene, einen Eingang eines Hauses etc. enthalten. In noch einer weiteren Ausführungsform mag das zweidimensionale Objekt eine Kombination von Elementen innerhalb der zweidimensionalen Szene enthalten (zum Beispiel eine Gruppe von Menschen, ein Schlafzimmer mit Möbeln etc.).
-
In einer Ausführungsform mag das zweidimensionale Objekt des Weiteren von dem Benutzer identifiziert werden. Der Benutzer mag zum Beispiel das zweidimensionale Objekt durch Auswählen des Objekts innerhalb der zweidimensionalen Szene unter Verwendung einer GUI auswählen. In einer weiteren Ausführungsform mag die Form des zweidimensionalen Objekts hervorgehoben werden, nachdem das zweidimensionale Objekt identifiziert wurde. Zum Beispiel mag der spezifische Umkreis, der das ausgewählte zweidimensionale Objekt konturiert, hervorgehoben werden (zum Beispiel durch fette Schrift, durch Ändern zu einer anderen Farbe etc.) unter Verwendung von Bildanalyse.
-
Noch weiter, wie es in der Operation 206 gezeigt ist, wird ein virtuelles dreidimensionales Modell bestimmt, das dem zweidimensionalen Objekt entspricht. In einer Ausführungsform mag der Benutzer das zweidimensionale Objekt mit einem oder mehreren Identifikatoren des Objekts markieren, und die Markierung mag zum Bestimmen des dreidimensionalen Modells, das dem zweidimensionalen Objekt entspricht, verwendet werden. In einer weiteren Ausführungsform mag Bildverarbeitung verwendet werden, um das zweidimensionale Objekt automatisch zu identifizieren und das entsprechende dreidimensionale Modell zu bestimmen. In noch einer weiteren Ausführungsform mag das virtuelle dreidimensionale Modell aus einer Mehrzahl von Modellen (zum Beispiel vorgestaltete (engl. „predesigned”) Modelle etc.) ausgewählt werden.
-
Wie es in der Operation 208 gezeigt ist, wird das virtuelle dreidimensionale Modell auch auf das zweidimensionale Objekt innerhalb der zweidimensionalen Szene überlagert. Wie es in der Operation 210 gezeigt ist, wird das virtuelle dreidimensionale Modell justiert, um mit der Orientierung und Größe des zweidimensionalen Objekts innerhalb der zweidimensionalen Szene zu übereinstimmen. In einer Ausführungsform mag der Benutzer das dreidimensionale Modell manuell skalieren, kippen und in anderer Weise justieren, so dass der Umfang des dreidimensionalen Modells sich mit dem Umfang des zweidimensionalen Objekts innerhalb der zweidimensionalen Szene ausrichtet.
-
In einer weiteren Ausführungsform mag Bildverarbeitung verwendet werden, um die Orientierung und/oder Merkmale des zweidimensionalen Objekts automatisch zu analysieren. Eine solche Analyse mag zusätzlich zum Justieren des dreidimensionalen Modells verwendet werden. In einer weiteren Ausführungsform mag eine Tiefe des dreidimensionalen Modells automatisch oder durch den Benutzer justiert werden. Das dreidimensionale Modell mag zum Beispiel rückwärts oder vorwärts im Z-Raum bewegt werden, um eine Tiefe des dreidimensionalen Modells in Bezug auf die zweidimensionale Szene zu Justieren.
-
Des Weiteren, wie es in der Operation 212 gezeigt ist, wird das dreidimensionale Modell durch die zweidimensionale Szene extrudiert, wodurch ein dreidimensionales Objekt erzeugt wird. In einer Ausführungsform mag das Extrudieren als Antwort auf einen Befehl von dem Benutzer durchgeführt werden. In einer weiteren Ausführungsform mag das Extrudieren des zweidimensionalen Objekts aus der Szene ein Herumwickeln des dreidimensionalen Modells mit den Pixeln, die in dem zweidimensionalen Objekt enthalten sind, und ein Extrudieren des umgewickelten dreidimensionalen Modells aufweisen.
-
In einer Ausführungsform mag der Benutzer noch ferner das dreidimensionale Modell anschauen, das zum Extrudieren verwendet wird, und er mag das Modell während des Extrudierens durch manuelles Transformieren des Modells justieren, um mit der Form und Position des zweidimensionalen Objekts zu passen. In einer weiteren Ausführungsform mag das dreidimensionale Modell als ein Drahtgittermodell, als ein transparentes Modell, als ein lichtdurchlässiges Modell etc. angeschaut werden. In dieser Art und Weise mag der Benutzer das Modell justieren, um besser mit dem Objekt zu übereinstimmen, das extrudiert wird. In einer weiteren Ausführungsform mag der Benutzer eine Menge von Extrusion spezifizieren, die ausgeführt werden soll.
-
In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die Szene auch ein Anpassen des dreidimensionalen Modells zu dem zweidimensionalen Objekt in der Szene aufweisen. Der Benutzer mag zum Beispiel das zweidimensionale Objekt mit einem oder mehreren Identifikatoren des Objekts markieren, und die Markierung mag zum Durchführen weiterer Detektion von Subobjekten innerhalb des zweidimensionalen Objekts verwendet werden. Zum Beispiel, wenn das zweidimensionale Objekt durch den Benutzer als eine Person markiert worden ist, mögen solche Subobjekte wie Gesicht, Hände, Augen, Nase und Mund innerhalb des zweidimensionalen Objekts detektiert werden.
-
In einer Ausführungsform mag die detektierten Subobjekte des zweidimensionalen Objekts zusätzlich zur Kurvenanpassung einer Kontur des dreidimensionalen Modells und der Subobjekte innerhalb des zweidimensionalen Objekts verwendet werden, so dass die Details von solchen Subobjekten mit den in dem zweidimensionalen Objekt gezeigten übereinstimmen. In einer weiteren Ausführungsform mag eine oder mehrere Transformationen, wie beispielsweise Skalieren, Translation und Rotation, auf dem dreidimensionalen Modell ausgeführt werden, um das Modell während des Extrudierens zu justieren. Dies mag entweder manuell oder automatisch basierend auf Bildverarbeitung gemacht werden.
-
In einer Ausführungsform mag das Extrudieren des dreidimensionalen Modells durch die Szene des Weiteren ein Hochschieben des dreidimensionalen Modells von hinter dem Foto aufweisen, wenn das dreidimensionale Modell mit dem zweidimensionalen Objekt in der Szene übereingestimmt worden ist. In dieser Art und Weise mag das dreidimensionale Modell dem zweidimensionalen Objekt Tiefe geben und mag Texturen und Details für das zweidimensionale Objekt innerhalb der zweidimensionalen Szene verwenden.
-
In einer Ausführungsform mag das dreidimensionale Modell, das durch die zweidimensionale Szene extrudiert worden ist, noch weiter als ein stereoskopisches Bild oder als ein dreidimensionales Objekt gespeichert werden. In einer weiteren Ausführungsform mag das dreidimensionale Objekt zum Durchführen von Bilderkennung verwendet werden. Zum Beispiel mag das dreidimensionale Objekt während des Vorgangs des Analysierens einer Szene verwendet werden, wobei es bestimmt werden mag, ob das dreidimensionale Objekt mit einem oder mehreren dreidimensionalen Objekten innerhalb der Szene übereinstimmt. In noch einer weiteren Ausführungsform mag das dreidimensionale Objekt animiert werden. Zum Beispiel mag ein dreidimensionales Objekt, das den Kopf einer Person darstellt, derart animiert werden, dass der Kopf sich dreht, die Augen des Kopfes blinken, der Mund des Kopfes sich bewegt etc.
-
In einer Ausführungsform mag eine Mehrzahl von zweidimensionalen Objekten aus einer Mehrzahl von zweidimensionalen Szenen auch verwendet werden, um ein dreidimensionales Objekt zu erzeugen. Zum Beispiel mag ein übereinstimmendes Paar von zweidimensionalen Objekten von innerhalb eines Paares von zweidimensionalen stereoskopischen Bildern (zum Beispiel linkes-Auge-Sicht und rechtes-Auge-Sicht etc.) identifiziert werden, und solche zweidimensionale Objekte mögen auf ein dreidimensionales Modell Texturgemappt werden. Zusätzlich mögen Texturen, die mit dem Objekt aus der linken-Auge-Sicht assoziiert sind, zu der linken Seite des dreidimensionalen Modells hinzugefügt werden, und Texturen, die mit dem Objekt aus der rechten-Auge-Sicht assoziiert sind, zu der rechten Seite des dreidimensionalen Modells hinzugefügt werden während Extrusion. In dieser Art und Weise mag ein Objekt innerhalb einer stereoskopischen Szene unter Verwendung von Extrusion in ein echtes dreidimensionales Objekt konvertiert werden.
-
In dieser Art und Weise mag eine akkurate dreidimensionale Tiefe für dreidimensionale Objekte erlangt werden. Zusätzlich mag ein dreidimensionaler Konvertierungsvorgang durch Erzeugen von dreidimensionalen Modellen basierend auf identifizierten zweidimensionalen Objekten beschleunigt werden. Des Weiteren mag eine umfassende detaillierte Datenbank von dreidimensionalen Modellen konstruiert werden, und zweidimensionale Objekte mögen leicht und automatisch detektiert und mit hoher Genauigkeit und Detail extrudiert werden.
-
Die 3 zeigt ein Extrusionsverfahren 300, gemäß einer weiteren Ausführungsform. Das beispielhafte Extrusionsverfahren 300 mag, als eine Option, im Kontext der Funktionalität von den 1–2 ausgeführt werden. Das beispielhafte Extrusionsverfahren 300 mag aber selbstverständlich in jeglicher gewünschter Umgebung implementiert werden. Es sollte auch beachtet werden, dass die oben erwähnten Definitionen im Laufe der folgenden Beschreibung Anwendung finden mögen.
-
Wie gezeigt, wird ein zweidimensionales Objekt 304 innerhalb eines zweidimensionalen Bildes 302 identifiziert. Zusätzlich wird ein dreidimensionales Modell 306, das mit dem zweidimensionalen Objekt 304 übereinstimmt, aus einer Datenbank abgerufen. Des Weiteren wird das dreidimensionale Modell 306 (entweder manuell oder automatisch) mit dem zweidimensionalen Objekt 304 innerhalb des zweidimensionalen Bildes 302 ausgemessen und ausgerichtet. Noch ferner wird das dreidimensionale Modell 306 durch das zweidimensionale Bild 302 geschoben, wobei die Merkmale innerhalb des zweidimensionalen Bildes 302 verdreht werden, um mit der Form des modifizierten dreidimensionalen Modells 308 zu übereinstimmen, und zum Texturen des modifizierten dreidimensionalen Modells verwendet werden. Dies resultiert in einer Extrusion des zweidimensionalen Objekts 304, um ein dreidimensionales Objekt 310 zu erzeugen, das alle Merkmale aus dem zweidimensionalen Objekt 304 enthält.
-
4 stellt ein beispielhaftes System 400 dar, in welchem die verschiedenen Architektur und/oder Funktionalität der verschiedenen vorhergehenden Ausführungsformen implementiert werden mögen. Wie gezeigt, wird ein System 400 bereitgestellt, das zumindest einen Hostprozessor 401 aufweist, der mit einem Kommunikationsbus 402 verbunden ist. Das System 400 weist auch einen Hauptspeicher 404 auf. Steuerungslogik (Software) und Daten sind in dem Hauptspeicher 404 gespeichert, der die Form eines Speichers mit direktem Zugriff (RAM) annehmen mag.
-
Das System 400 weist auch einen Grafikprozessor 406 und ein Display 408, das heißt einen Computermonitor, auf. In einer Ausführungsform mag der Grafikprozessor 406 eine Mehrzahl von Shadermodulen (engl. „shader modules”), ein Rasterisierungsmodul (engl. „rasterization module”) etc. aufweisen. Jedes der vorhergehenden Module mag sich sogar auf einer einzigen Halbleiterplattform befinden, um eine Grafikverarbeitungseinheit (GPU) zu bilden.
-
In der vorliegenden Beschreibung mag eine einzige Halbleiterplattform auf einen alleinigen einheitlichen halbleiterbasierten integrierten Schaltkreis oder Chip verweisen. Es sollte beachtet werden, dass der Begriff einzige Halbleiterplattform auch auf Mehrchipmodule mit erhöhter Konnektivität, die Auf-dem-Chip-Operation (engl. „on-chip operation”) simuliert, verweisen mag und erhebliche Verbesserungen gegenüber der Verwendung einer konventionellen Implementierung mit zentralem Verarbeitungseinheit (CPU) und Bus erzielen mag. Die verschiedenen Module mögen selbstverständlich auch separat oder in verschiedenen Kombinationen von Halbleiterplattformen gemäß den Wünschen des Benutzers angeordnet werden.
-
Das System 400 mag auch einen sekundären Speicher 410 aufweisen. Der Sekundäre Speicher 410 weist zum Beispiel einen Festplattenlaufwerk und/oder einen entfernbaren Speicherlaufwerk (engl. „removable storage drive”), darstellend einen Floppy-Disk-Laufwerk, einen Magnetbandlaufwerk, einen Compact-Disk-Laufwerk etc. auf. Der entfernbare Speicherlaufwerk liest von und/oder schreibt zu einer entfernbaren Speichereinheit in einer wohlbekannten Art und Weise.
-
Computerprogramme oder Computersteuerungsalgorithmen mögen in dem Hauptspeicher 404 und/oder in dem sekundären Speicher 410 gespeichert werden. Solche Programme machen es, wenn sie ausgeführt werden, für das System 400 möglich, verschiedene Funktionen durchzuführen. Speicher 404, Speicher 410 und/oder jeglicher andere Speicher sind mögliche Beispiele von computerlesbaren Medien.
-
In einer Ausführungsform mag die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren im Kontext des Hostprozessors 401, des Grafikprozessors 406, eines integrierten Schaltkreises (nicht gezeigt), der zu zumindest einen Teil der Fähigkeiten von sowohl dem Hostprozessor 401 als auch dem Grafikprozessor 406 aufweist, eines Chipsatzes (das heißt, eine Gruppe von integrierten Schaltkreisen, die zum arbeiten konzipiert sind und als eine Einheit zum Ausführen verwandter Funktionen verkauft werden) und/oder übrigens auch irgendeines anderen integrierten Schaltkreises implementiert werden.
-
Die Architektur und/oder Funktionalität der verschiedenen vorhergehenden Figuren mögen aber auch in dem Kontext eines generellen bzw. allgemeinen Computersystems, eines Leiterplattensystems, eines Spielkonsolsystems, das für Unterhaltungszwecke dediziert ist, eines anwendungsspezifischen Systems und/oder jegliches anderen gewünschten Systems implementiert werden. Zum Beispiel, mag das System 400 die Form eines Desktopcomputers, eines Laptopcomputers und/oder jeglicher anderen Art von Logik annehmen. Das System 400 mag aber auch die Form verschiedener anderen Vorrichtungen annehmen, einschließlich einer persönlichen digitalen Assistenten-Vorrichtung (PDA), einer Mobiltelefon-Vorrichtung, eines Fernsehers etc., ohne auf diese begrenzt zu sein.
-
Das System 400 mag ferner, obwohl dies nicht gezeigt ist, an ein Netzwerk (zum Beispiel ein Telekommunikationsnetzwerk, ein lokales Netzwerk (LAN), ein drahtloses Netzwerk, ein Weitverkehrsnetz (WAN), wie das Internetz, ein Peer-to-Peer-Netzwerk, ein Kabelnetzwerk etc.) zu Kommunikationszwecken gekoppelt sein. In einer Ausführungsform mag die UI auf einer mobilen Vorrichtung, wie beispielsweise ein Handheld-Telefon oder -Tablet, durchgeführt werden, während die Berechnungen auf einem leistungsfähigeren Computer stattfinden, der sich in der Cloud befindet.
-
Während verschiedene Ausführungsformen oben beschrieben worden sind, sollte es verstanden werden, dass diese nur beispielhaft und nicht einschränkend dargestellt worden sind. Folglich sollte die Weite und der Umfang einer bevorzugten Ausführungsform nicht von einer jeglichen der oben beschriebenen Ausführungsformen begrenzt werden, sondern nur in Übereinstimmung mit den nachfolgenden Ansprüchen und deren Äquivalenten definiert werden.