-
Querverweis auf verwandte Anmeldungen
-
Die vorliegende Anmeldung ist verwandt mit der parallel anhängigen US Anmeldung Anmeldenummer 14/552,332, eingereicht am 24. November 2014, und US Anmeldung Anmeldenummer 14/576,936, eingereicht am 19. Dezember 2014, deren Inhalte hiermit durch Bezugnahme in ihrer Gänze mit aufgenommen werden. Der Gegenstand der US Anmeldung Anmeldenummer 14/552,332 ist beschrieben in Anhang 1 und der Gegenstand der US Anmeldung Anmeldenummer 14/576,936 ist beschrieben in Anhang 2 der vorliegenden Anmeldung.
-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren und Systeme zum prädiktiven Bestimmen von Konfigurationseinstellungen für eine Digitalkamera und einer Anzahl an Bildern, die durch die Digitalkamera unter Verwendung dieser Einstellungen zu erfassen sind, zum Zwecke des Schätzen von Tiefe einer Szene, die durch die Anzahl an Bildern repräsentiert wird.
-
Urheberrechtsvermerk
-
Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das urheberrechtlichem Schutz unterliegt. Der Inhaber der Verwertungsrechte hat keine Einwände gegen die originalgetreue Wiedergabe durch jedermann des Patentdokuments oder der Patentoffenbarung, wie es bzw. wie sie in der Patentakte oder den Aufzeichnungen des Patent- und Markenamtes erscheint, behält sich aber alle anderen Verwertungsrechte jeder Art vor.
-
Hintergrund
-
Digitalkameras, einschließlich digitaler Spiegelreflexkameras (DSLR) und Digitalkameras, die in Mobilgeräte integriert sind, haben oftmals hochentwickelte Hardware und Software, die es einem Benutzer ermöglicht, digitale Bilder zu erfassen unter Verwendung einer Kombination unterschiedlicher benutzerdefinierter und kameradefinierter Konfigurationseinstellungen. Ein digitales Bild stellt eine digitale Repräsentation einer bestimmten Szene bereit. Ein digitales Bild kann im Nachgang bearbeitet werden, für sich allein oder in Kombination mit anderen Bildern, um aus dem Bild zusätzliche Information abzuleiten. Zum Beispiel kann ein oder können mehrere Bilder verarbeitet werden, um die Tiefen der Objekte zu schätzen, die innerhalb der Szene dargestellt sind, das heißt, die Entfernung jedes Objekts von einem Ort, an dem die Aufnahme aufgenommen wurde. Die Tiefenschätzungen für jedes Objekt in einer Szene, oder möglicher Weise für jedes Pixel innerhalb eines Bildes, sind in einer Datei enthalten, die als eine „Tiefenkarte” bezeichnet wird. Unter anderem können Tiefenkarten verwendet werden, um bestehende Bildeditiertechniken (zum Beispiel Schneiden, Füllen von Löchern, Kopieren in Schichten eines Bildes und so weiter) zu verbessern.
-
Tiefe aus Defokus ist eine herkömmliche Technik, die verwendet wird, um die Tiefe einer Szene zu schätzen unter Verwendung von Außer-Fokus-Unschärfe (das heißt, um Tiefenkarten zu erzeugen). Die Schätzung von Tiefen unter Verwendung derartiger Techniken ist möglich, da abgebildete Stellen der Szene unterschiedliche Ausmaße an Außer-Fokus-Unschärfe (das heißt, Tiefeninformation) aufweisen werden, basierend auf den Konfigurationseinstellungen der Kamera (zum Beispiel Blendeneinstellung und Fokuseinstellung), die verwendet werden, um die Bilder aufzunehmen. Das Schätzen von Tiefe beinhaltet daher, die Menge an Tiefeninformation an den unterschiedlichen Stellen der Szene zu schätzen, unabhängig davon, ob die Tiefeninformation aus einem Bild oder aus mehreren Bildern abgeleitet wird. Herkömmlicher Weise hängt die Genauigkeit der solcherart geschätzten Tiefen von der Anzahl an verwendeten Bildern und der Menge an Tiefeninformation ab. Dies aus dem Grund, dass umso größer die Anzahl an eingegebenen Bildern ist, umso größer die Menge an Tiefeninformation ist, die für jede einzelne Position (zum Beispiel ein Pixel) in der Szene verglichen werden kann.
-
Eine herkömmliche Technik der Tiefe aus Defokus vergleicht unscharfe Flicken in einem einzelnen Bild mit gewissen Annahmen über die Szene, die abgeleitet werden aus Vor-Bild bzw. Prior-Bild Modellen. Während diese Annahmen für gewisse Szenen zutreffen mögen, versagen sie jedoch, wenn das zugrunde liegende Bild nicht genügend Tiefeninformation besitzt, um den Annahmen zu entsprechen. Eine andere herkömmliche Technik schätzt die Tiefe durch Verarbeiten mehrerer Bilder, die als ein Fokusstapel erfasst wurden (das heißt, gleiche Blende, unterschiedlicher Fokus) und Anpassen dieser Bilder an ein Bildmodell. Die Anzahl an Bildern entspricht typischer Weise der Anzahl der für die Digitalkamera verfügbaren Fokuseinstellungen. Dies kann zu Ineffizienzen führen, da oftmals mehr Bilder aufgenommen werden, als anderweitig erforderlich wären, um genügend Tiefeninformation zu liefern. Darüber hinaus erfordert diese Technik, dass die Bilder an ein Bildmodell angepasst werden, was zu unpräzisen Tiefenschätzungen führen kann. Eine nochmals andere herkömmliche Technik schätzt Tiefe durch Verarbeiten mehrerer Bilder, die als ein Blendenstapel aufgenommen wurden (das heißt, gleicher Fokus, unterschiedliche Blende). Ähnlich zur Technik des Fokusstapels erfordert diese herkömmliche Technik, dass viele Bilder aufgenommen werden, was ineffizient sein kann, wenn weniger Bilder hinreichend Tiefeninformation liefern würden. und selbst wenn diese Technik des Blendenstapels oftmals mehr Bilder erfasst als anderweitig erforderlich wäre, haben die resultierenden Bilder dennoch oftmals Bereiche, in denen die Tiefeninformation ungenügend ist, da die Kamerakonfigurationseinstellungen nicht so vorbestimmt sind, optimale Tiefeninformation zu bewahren. Die Tiefenkarten, die ausgegeben werden, nachdem die Bilder unter Verwendung dieser Technik des Blendenstapels verarbeitet werden, sind daher oftmals sehr grobkörnig. Schließlich verarbeitet eine letzte herkömmliche Technik eine dichte Menge von Bildern (das heißt, hunderte von Bildern) mit variierenden Blenden- und Fokuseinstellungen und vergleicht jedes Pixel in der dichten Menge von Bildern, um Tiefe zu schätzen. Diese herkömmliche Technik gibt eine präzise Tiefenkarte aus, erfordert aber immer noch die dichte Menge von Bildern, die ineffizient zu erfassen und zu verarbeiten sein kann.
-
Die herkömmlichen Techniken der Tiefe aus Defokus beruhen daher auf Annahmen über die Szene, erfordern, dass der Benutzer eine große Anzahl an eingegebenen Bildern erfasst, erfordern, dass der Benutzer Bilder erfasst unter Verwendung von Muster von Kameraeinstellungen, die nicht derart vorbestimmt sind, hinreichend Tiefeninformation zu bewahren, und/oder die nur in der Lage sind, eine Tiefenkarte niedriger Qualität auszugeben. Dementsprechend ist es wünschenswert, verbesserte Lösungen zum prädiktiven Bestimmen einer minimalen Anzahl an zu erfassenden Bildern, und die Kamerakonfigurationseinstellungen, die zum Erfassen derselben verwendet werden, anzugeben, so dass die Bilder zusammen hinreichend Tiefeninformation bereitstellen, aus der eine Qualitäts-Tiefenkarte erzeugt werden kann.
-
Zusammenfassung
-
Es werden Systeme und Verfahren bereitgestellt zum prädiktiven Bestimmen von Bilderfassungsanweisungen zur Verwendung bei der Erfassung von Bildern, die verarbeitet werden können, um eine Qualitäts-Tiefenkarte zu erzeugen. Insbesondere geben die Bilderfassungsanweisungen, nachdem diese bestimmt wurden, eine minimale Anzahl an Bildern an, die aufzunehmen sind, und mit welchen Blenden- und Fokuseinstellungen diese aufgenommen werden sollten, so dass die Bilder hinreichende Tiefeninformation bereitstellen werden, aus welcher eine Tiefenkarte erzeugt werden kann, die ein bestimmtes Maß an Tiefenqualität hat. In einigen Beispielen wird die Tiefenqualität durch eindeutige Tiefenschätzungen repräsentiert (zum Beispiel Tiefenschätzungen, welche das Auftreten mehrerer Spitzen vermeiden, wenn unter Verwendung einer Tiefen-Likelihood-Funktion evaluiert). Die Bilderfassungsanweisungen werden bestimmt durch Evaluieren eines Szenenunabhängigen Teils einer Tiefendiskriminationsfunktion unter Verwendung von Kalibrierungsdaten für die Digitalkamera, die verwendet wird, um die Bilder zu erfassen. In einigen Beispielen bedeutet eine ausreichende Menge an Tiefeninformation, dass für jede Tiefe von Interesse innerhalb eines Tiefenbereichs der entsprechende Unschärferadius innerhalb von zumindest zwei Bildern der minimalen Anzahl an Bildern etwa 1 bis etwa 2 Pixel ist.
-
Die Bilderfassungsanweisungen werden bestimmt basierend auf (1) einer Eingabe, welche eine Schätzung der nächsten Entfernung eines Objekts von der Kamera in einer abzubildenden Szene identifiziert, und (2) Kalibrierungsdaten für die Kamera. Die Kalibrierungsdaten definieren, für eine gegebene Blendeneinstellung, die Raten, mit denen Unschärfe in einem Bild zunimmt, wenn Positionen in dem Bild sich von einer Fokusebene (das heißt, eine Ebene in der Szene, die gänzlich scharf eingestellt ist) entfernen. Für eine größere Blende definieren die Kalibrierungsdaten zum Beispiel, dass die Unschärfe mit einer größeren Rate zunimmt, wenn eine Position in dem Bild von der Fokusebene wegbewegt wird, wenn verglichen mit kleineren Blenden. In einigen Beispielen evaluiert eine Bildeigenschaftsfunktionseinheit, um die Bilderfassungsanweisungen zu bestimmen, eine oder mehrere Blendeneinstellungen mit unterschiedlichen Kombinationen von Fokuseinstellungen über eine Menge von Tiefenwerten innerhalb eines Tiefenbereichs, um zu bestimmen, wie viele Bilder erfasst werden können unter Verwendung dieser Konfigurationseinstellungen, so dass ein Bereich optimaler Unschärferadien in jedem Bild etwa 1 bis etwa 2 Pixel ist. Die minimale Tiefe des Tiefenbereichs wird als die Entfernungsschätzung gesetzt, die für die Szene eingegeben wurde. Die maximale Tiefe des Tiefenbereichs kann irgendeine Tiefe sein, die größer als die minimale Tiefe ist, aber es kann der Einfachheit halber angenommen werden, dass diese unendlich ist. Wenn daher die eingegebene Entfernungsschätzung für die Szene zwei Meter ist, kann der Tiefenbereich als zwei Meter bis unendlich gesetzt werden.
-
Um sicherzustellen, dass über den Tiefenbereich hinweg ausreichend Tiefeninformation vorhanden ist, greift die Bildeigenschaftsfunktionseinheit auf die Kalibrierungsdaten für die Kamera zu und verwendet die Daten zur Bestimmung von Konfigurationseinstellungen für zu erfassende Bilder innerhalb des Tiefenbereichs. In einem Beispiel, das für jede Kameralinse bzw. jedes Kameraobjektiv verwendet werden kann, hält die Bildeigenschaftsfunktionseinheit die Blendeneinstellung konstant und wählt einen Tiefenwert (in der ersten Iteration auf die minimale Tiefe des Tiefenbereichs eingestellt), um eine Fokuseinstellung zu bestimmen, größer als der Tiefenwert, mit der ein Bild erfasst werden kann, das ausreichend Tiefeninformation besitzt (zum Beispiel ist der Bereich optimaler Unschärferadien etwa 1 bis etwa 2 Pixeln bei dem Tiefenwert). Dann wird ein Tiefenwert bestimmt, größer als die vorherige Fokuseinstellung, bei der das erfasste Bild immer noch ausreichend Tiefeninformation besitzen wird (zum Beispiel wird der Bereich optimaler Unschärferadien immer noch etwa 1 bis etwa 2 Pixel sein) und eine nächste Fokuseinstellung, größer als der nächste Tiefenwert, wird bestimmt, bei der das erfasste Bild weiterhin ausreichend Tiefeninformation besitzen wird. Dieser Prozess wird über den gesamten Tiefenbereich wiederholt, wobei jedes Mal eine Fokuseinstellung ausgegeben wird. Die resultierende Menge an Fokuseinstellungen entspricht der Anzahl an Bildern der Szene, die erfasst werden sollten, um sicherzustellen, dass ausreichend Tiefeninformation verfügbar ist zum Erzeugen einer Qualitäts-Tiefenkarte. In einem anderen Beispiel, das auch für jede Kameralinse verwendet werden kann, bestimmt die Bildeigenschaftsfunktionseinheit die Menge optimaler Fokuseinstellungen unter Verwendung einer vereinfachten mathematischen Funktion, welche den Unschärferadius basierend auf der dicken Linsenkonstante approximiert. In beiden Beispielen werden die Bilderfassungsanweisungen bestimmt unter Verwendung der Blendeneinstellung und der bestimmten Menge von Fokuseinstellungen.
-
Die von der Bildeigenschaftsfunktionseinheit ausgeführte Evaluierung stellt sicher, dass die Anzahl an Bildern und die entsprechenden Fokuseinstellungen auf eine Weise bestimmt werden, so dass die Schärfentiefen, die den Bildern entsprechen, sich nicht wesentlich überlappen, und keine wesentlichen Lücken aufweisen, und innerhalb des Tiefenbereichs gleichmäßig ausgelegt sind. Eine Schärfentiefe ist ein Intervall innerhalb des Tiefenbereichs (zum Beispiel zwei Meter bis unendlich), das eine Fokusebene (zum Beispiel eine Fokuseinstellung) in der Mitte des Interfalls aufweist. Insbesondere sind die Schärfentiefe-Intervalle auf eine Weise ausgelegt, welche einen Bereich optimaler Unschärferadien von etwa 1 bis etwa 2 Pixel für jedes Pixel innerhalb des Tiefenbereichs sicherstellt (zum Beispiel bei zwei Metern, bei fünf Meter, bei hundert Meter und so weiter), einschließlich der Pixel innerhalb der Schärfentiefe-Intervalle und an den Kanten der Schärfentiefe-Intervalle. Ein Tiefenbereich wird daher mehr als ein Schärfentiefe-Intervall besitzen, abhängig von der Anzahl an Bildern, die durch die Bilderfassungsanweisungen identifiziert werden. In einigen Beispielen hat der Tiefenbereich optimaler Weise zumindest zwei Schärfentiefe-Intervalle. Der Bereich optimaler Unschärferadien enthält das Ausmaß an Unschärfe, das jedes Pixel innerhalb des gesamten Tiefenbereichs erfahren sollte. Pixel im Bereich optimaler Unschärferadien können Unschärferadien von etwa 1 bis etwa 2 Pixel haben. Dieses Maß der Unschärferadien kann als Nebenbedingung verwendet werden, wenn eine Menge von Tiefenwerten über den Tiefenbereich evaluiert wird.
-
Diese Beispiele werden nicht dazu erwähnt, die Offenbarung zu beschränken oder zu definieren, sondern um Beispiele anzugeben, die dem Verständnis derselben dienen sollen. Zusätzliche Beispiele werden in der detaillierten Beschreibung diskutiert und eine nähere Beschreibung wird dort angegeben.
-
Kurze Beschreibung der Zeichnungen
-
Diese und andere Merkmale, Beispiele und Vorteile der vorliegenden Offenbarung werden besser verstanden werden beim Lesen der folgenden detaillierten Beschreibung mit Bezug auf die beigefügten Zeichnungen, in denen:
-
1 ein Blockdiagramm ist, das eine beispielhafte Bildeigenschaftsfunktionseinheit, eine beispielhafte Bilderfassungsvorrichtung, und beispielhafte Eingaben und Ausgaben von diesen zum Implementieren von Techniken zeigt, die sich beziehen auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform;
-
2 ein Diagramm ist, das eine beispielhafte Bildeigenschaftsfunktionseinheit zeigt, die Dienste zum Implementieren von Techniken beinhaltet, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform beziehen;
-
3 ein Diagramm ist, das ein beispielhaftes Chart zeigt, das hypothetische Bildflicken beinhaltet, zum Implementieren von Techniken, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform beziehen;
-
4 ein Diagramm ist, das eine beispielhafte Umgebung zeigt, einschließlich einem Benutzer, der eine Szene erfasst, gemäß Techniken, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform beziehen;
-
5 ein Flussdiagramm ist, das ein Beispiel eines Verfahrens zum Implementieren von Techniken zeigt, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform beziehen;
-
6 ein Flussdiagramm ist, das ein Beispiel eines Verfahrens zum Implementieren von Techniken zeigt, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten beziehen, gemäß zumindest einer Ausführungsform; und
-
7 ein Diagramm ist, das eine beispielhafte Netzwerkumgebung mit beispielhaften Benutzervorrichtungen und einem beispielhaften Bildeditierdienst zeigt, zum Implementieren von Techniken, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten gemäß zumindest einer Ausführungsform beziehen.
-
Detaillierte Beschreibung
-
Es werden computerimplementierte Systeme und Verfahren zum Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten offenbart. Wie in der obigen Einführung erwähnt kann eine Tiefenkarte zum Beispiel erzeugt werden, indem Differenzen in Defokus-Unschärfe, die mit zwei oder mehr eingegebenen Bildern assoziiert sind, verglichen werden.
-
Die hierin beschriebenen Techniken überwinden die oben identifizierten Unzulänglichkeiten, indem Bilderfassungsanweisungen prädiktiv bestimmt werden auf eine Weise, die von einer Szene unabhängig ist, ausreichend Tiefeninformation bewahrt, die Anzahl an Bildern, die aufzunehmen sind, minimiert, und sicherstellt, dass aus den Bildern eine Qualitäts-Tiefenkarte erzeugt werden kann. In einigen Beispielen wird die Tiefenqualität repräsentiert durch eindeutige Tiefenschätzungen (zum Beispiel Tiefenschätzungen, die ein Auftreten von mehreren Spitzen vermeiden, wenn unter Verwendung einer Tiefen-Likelihood-Funktion evaluiert). Die Bilderfassungsanweisungen beinhalten die Anzahl an Bildern, die aufzunehmen sind, und die Blendeneinstellungen und die Fokuseinstellungen für jedes Bild.
-
Die Bilderfassungsanweisungen werden bestimmt, ohne dass hierzu Daten, die von der Szene, die zu erfassen ist, gesammelt werden, ein Alles-im-Fokus Bild, oder ein Bildmodell verwendet werden. Stattdessen werden die Bilderfassungsanweisungen bestimmt unter Verwendung von Ergebnissen einer Evaluierung einer Tiefendiskriminierbarkeitsfunktion, um einen Szeneunabhängigen Teil davon zu maximieren. Der Szenen-unabhängige Teil der Tiefendiskriminierbarkeitsfunktion ist spezifisch für eine partikuläre Digitalkamera und Linse bzw. Objektiv. In dem Szenen-unabhängigen Teil wird ein Bereich optimaler Unschärferadien bestimmt. Wie hierin verwendet bezieht sich ein „Unschärferadius” auf das Ausmaß einer Unschärfe, die von einem Pixel in einem Bild erfahren wird, und die in Begriffen von Pixeln ausgedrückt wird. Der Unschärferadius hängt von der Fokuseinstellung und der Blendeneinstellung ab, die verwendet werden, um das Bild zu erfassen. Der Bereich optimaler Unschärferadien wird beim Bestimmen der Bilderfassungsanweisungen verwendet. Die hierin beschriebenen Techniken werden daher als von der Szene unabhängig charakterisiert, da diese implementiert sind ohne zu berücksichtigen, wie die abzubildende Szene aufgebaut ist, und daher anwendbar sind auf jede beliebige Szene, die eine adäquate Textur aufweist.
-
Der Bereich optimaler Unschärferadien zeigt an, dass für Bereiche mit hohem Frequenzinhalt (zum Beispiel Bereiche in der zu erfassenden Szene, die eine Textur aufweisen (das heißt, keine flache weiße Wand)) hinreichend Tiefeninformation in den erfassten Bildern vorhanden sein wird, so dass aus den Bildern eine Qualitäts-Tiefenkarte erzeugt werden kann. Indem der Bereich optimaler Unschärferadien berücksichtigt wird, werden daher die Bilderfassungsanweisungen auf eine Weise bestimmt, die sicherstellt, dass hinreichend Tiefeninformation verfügbar sein wird. Dies macht es auch möglich, dass die Bilderfassungsanweisungen auf eine Weise erzeugt werden, welche die Anzahl an Bildern, die aufzunehmen sind, minimiert. Die Anzahl an Bildern, die aufzunehmen sind, wird bestimmt durch Bestimmen der Position einer oder mehrerer Fokusebenen innerhalb eines Tiefenbereichs, an welcher ein erfasstes Bild, das auf diese fokussiert ist, ausreichende Tiefeninformation (das heißt, Defokus-Unschärfe) bieten wird. Die Positionen der bestimmten Fokusebenen entsprechen daher den Fokuseinstellungen der Kamera und die Anzahl bestimmter Fokusebenen entspricht der Anzahl an Bildern der Szene, die aufzunehmen sind. Die Bestimmung der Fokusebene basiert auf einer festen Blendeneinstellung. Die Position einer partikulären Fokusebene variiert abhängig von der Blendeneinstellung der Kamera. Dies aus dem Grund, dass die Blende die Rate beeinflusst, mit welcher die Unschärfe zunimmt mit zunehmender Entfernung weg von der Fokusebene. Für eine partikuläre Blendeneinstellung einer partikulären Kamera mögen daher die Bilderfassungsanweisungen anzeigen, dass für einen gegebenen Tiefenbereich zwei Bilder notwendig sind, um ausreichend Tiefeninformation zu bewahren. Für dieselbe Kamera und mit einer anderen Blendeneinstellung mögen die Bilderfassungsanweisungen jedoch angeben, dass drei Bilder notwendig sind für den gegebenen Tiefenbereich, um hinreichend Tiefeninformation zu bewahren.
-
Nachdem sie erzeugt wurden, werden die Bilderfassungsanweisungen dem Benutzer der Digitalkamera oder der Digitalkamera des Benutzers bereitgestellt, so dass die Digitalkamera so bedient oder gesteuert werden kann, die von den Bildanweisungen vorgeschlagene Anzahl an Bildern unter Verwendung der ebenfalls vorgeschlagenen Einstellungen zu erfassen.
-
In einigen Beispielen gibt, um die Bilderfassungsanweisungen zu bestimmen, ein Benutzer eine Entfernungsschätzung ein (zum Beispiel zwei Meter), welche das Objekt in einer zu erfassenden Szene charakterisiert, welches dem Benutzer am nächsten ist. In einigen Beispielen bestimmt eine Digitalkamera die Entfernungsschätzung, oder die Entfernungsschätzung wird unter Verwendung irgendeiner anderen Technik als der Benutzereingabe eingegeben. Diese Entfernungsschätzung wird verwendet, um einen Tiefenbereich für die Szene zu bestimmen, wobei die minimale Tiefe die Entfernungsschätzung ist und die maximale Tiefe eine Tiefe größer als die minimale Tiefe ist. In einigen Beispielen wird angenommen, dass die maximale Tiefe unendlich ist. In einigen Beispielen gibt der Benutzer eine minimale Tiefe, eine maximale Tiefe, oder beides ein (oder die Kamera erzeugt diese). Der Tiefenbereich wird dann in Schärfentiefen unterteilt, wobei die Anzahl an Schärfentiefen der Anzahl an Bildern entspricht und wobei die Stellen der Fokusebenen innerhalb der Schärfentiefen den Fokuseinstellungen entsprechen. In einigen Beispielen werden eine Menge von Tiefenwerten und entsprechenden Konfigurationseinstellungen über den Tiefenbereich evaluiert, und es werden die Konfigurationseinstellungen ausgewählt und als die Bilderfassungsanweisungen ausgegeben, welche etwa 1 bis etwa 2 Pixel an Unschärfe für die Tiefenwerten behalten.
-
Die Anzahl an Bildern und entsprechenden Konfigurationseinstellungen werden auf eine Weise bestimmt, die sicherstellt, dass die Schärfentiefen, die den Bildern entsprechen, sich nicht wesentlich überlappen und keine wesentlichen Lücken aufweisen. Innerhalb jedes Schärfentiefe-Intervalls wird ein maximaler Unschärferadius von etwa 1 bis etwa 2 Pixel beibehalten für jedes Pixel innerhalb des Schärfentiefe-Intervalls. Die Bestimmung, dass der Bereich optimaler Unschärferadien etwa 1 bis etwa 2 Pixel sein sollte, wird bestimmt durch Maximieren eines Szenen-unabhängigen Teils der Tiefendiskriminierbarkeitsfunktion. Dabei wird bestimmt, dass es für die partikuläre Kombination von Digitalkamera und Linse optimal ist (das heißt, ausreichend Tiefeninformation sicherstellt), einen Bereich optimaler Unschärferadien von etwa 1 bis etwa 2 Pixel zu haben. Das Maximieren des Szenen-unabhängigen Terms der Tiefendiskriminationsfunktion wird ausgeführt, bevor die Bilderfassungsanweisungen bestimmt werden. In einigen Beispielen kann das Maximieren des Szenen-unabhängigen Terms der Tiefendiskriminationsfunktion jedoch ausgeführt werden während die partikuläre Kombination von Digitalkamera und Linse kalibriert werden. In jedem Fall wird der Bereich optimaler Unschärferadien von etwa 1 bis etwa 2 Pixel als eine Nebenbedingung verwendet, wenn ein Tiefenbereich basierend auf einer Tiefenschätzung evaluiert wird, um die Bilderfassungsanweisungen zu bestimmen. Der Bereich optimaler Unschärferadien von etwa 1 bis etwa 2 Pixel stellt sicher, dass für Bereiche mit hohem Frequenzinhalt (zum Beispiel Bereiche in der zu erfassenden Szene, die eine Textur haben (das heißt, keine flache weiße Wand)) genügend Tiefeninformation verfügbar sein wird, so dass aus den Bildern, die in Übereinstimmung mit den Bilderfassungsanweisungen erfasst werden, eine Qualitäts-Tiefenkarte erzeugt werden kann.
-
In einem Beispiel halten die hierin beschriebenen Techniken, um die Bilderfassungsanweisungen (das heißt, Fokuseinstellungen, Blendeneinstellungen, und Anzahl an Bildern) zu bestimmen, die Blendeneinstellung konstant und iterieren durch den Tiefenbereich durch Berechnen von Fokuseinstellungen für unterschiedliche Tiefenschätzungen, so dass die Unschärfe, die von den Pixeln innerhalb des Tiefenbereichs erfahren wird, etwa 1 bis etwa 2 Pixel ist. Zuerst wird eine anfängliche Tiefenschätzung D0 gleich einer minimalen Tiefe des Tiefenbereichs, Dmin, gesetzt und es wird eine Fokuseinstellung E0 (das heißt, eine Fokusebene, die in einer Entfernung E0 angeordnet ist) berechnet. Die Fokuseinstellung E0 wird berechnet, wenn E0 größer als D0 ist und auf eine Weise, so dass die Unschärfe, die von Pixeln bei der anfänglichen Tiefenschätzung D0 erfahren wird, innerhalb des Bereichs optimaler Unschärferadien von etwa 1 bis etwa 2 Pixeln ist für die Fokuseinstellung E0. Auf diese Weise wird die Schärfentiefe bei E0 zentriert und der untere Tiefenwert erstreckt sich bis Dmin (das heißt, D0, weil Dmin = D0). Die bestimmte Fokuseinstellung E0 kann dann verwendet werden, um den oberen Bereich der Schärfentiefe zu evaluieren (der sich zum Beispiel über E0 erstreckt). Dieser Prozess wird iterativ fortgeführt, bis D0 größer oder gleich der maximalen Tiefe des Tiefenbereichs, Dmax, ist, oder bis eine andere Bedingung erfüllt ist (zum Beispiel eine vorbestimmte Anzahl an Iterationen ausgeführt wurden, oder eine Zielanzahl an Bildern erreicht wurde). Die Anzahl an Fokuseinstellungen (zum Beispiel E0, E1, und so weiter), die für den gesamten Tiefenbereich erforderlich ist, entspricht der Anzahl an Bildern und den Fokuseinstellungen der Bilderfassungsanweisungen. In diesem Beispiel sind die Gesamtzahl an Bildern und die entsprechenden Fokuseinstellungen nicht bekannt, bevor nicht die gesamte Iteration vervollständigt ist. In einigen Beispielen werden die Fokuseinstellungen manipuliert, konvertiert transformiert oder anderweitig angepasst, um der auf der Digitalkamera verfügbaren Fokusfunktionalität zu entsprechen.
-
In einem anderen Beispiel werden der Tiefenbereich und die Schärfentiefe-Intervalle umgewandelt in 1/Tiefe vor dem Bestimmen der Anzahl an Bildern und der Fokuseinstellungen für jedes Bild. Das Erzeugen der Bilderfassungsanweisungen unter Verwendung 1/Tiefe stellt sicher, dass die Längen der Schärfentiefe-Intervalle für jede Schärfentiefe dieselben sind. Die Schärfentiefe-Intervalle sind dann innerhalb des Tiefenbereichs gleichmäßig beabstandet auf eine Weise, die sicherstellt, dass es keine Lücken und keine Überlappungen der Schärfentiefe-Intervalle gibt. Ähnlich wie oben ist in diesem Beispiel der Bereich optimaler Unschärferadien, der verwendet wird, etwa 1 bis etwa 2 Pixel. In diesem Beispiel wird angenommen, dass die Änderungsrate des Unschärferadius als eine Funktion des Kehrwerts der Tiefe über den Tiefenbereich annähernd konstant ist. Diese Annahme sollte für die meisten Linsen Gültigkeit haben, obwohl sich die Änderungsrate für unterschiedliche Linsen unterscheiden kann. Für jede Linse gibt es daher eine Linsenkonstante α, welche einen Konversionsfaktor zwischen dem Kehrwert der Tiefe und dem Unschärferadius repräsentiert. In diesem Beispiel beginnt der Prozess, indem er die Gesamtlänge des Tiefenbereichs als Kehrwert der Tiefe nimmt und diese durch die maximale Länge eines Schärfentiefe-Intervalls innerhalb des Tiefenbereichs teilt. Die maximale Länge des Schärfentiefe-Intervalls wird bestimmt, indem der Bereich optimaler Unschärferadien durch den Konversionsfaktor α geteilt wird. Dies ergibt die Gesamtzahl an Schärfentiefe-Intervallen innerhalb des Tiefenbereichs. Die Gesamtlänge des Tiefenbereichs als Kehrwert der Tiefe wird dann geteilt durch die Gesamtzahl der Schärfentiefe-Intervalle, um eine optimale Länge jedes Schärfentiefe-Intervalls zu erhalten, die den gesamten Tiefenbereich ohne Lücken und ohne Überlappung mit anderen Schärfentiefenintervallen ausfüllen wird. Für jedes Schärfentiefe-Intervall mit der optimalen Länge wird eine Fokuseinstellung bestimmt. Die Anzahl der Fokuseinstellungen entspricht der Anzahl an Bildern, die zu erfassen sind. Da der Prozess in diesem Beispiel den Bereich optimaler Unschärferadien von etwa 1 bis etwa 2 Pixel berücksichtigt, wenn die maximale Länge jedes Schärfentiefe-Intervalls bestimmt wird, wird genügend Tiefeninformation verfügbar sein, so dass eine Qualitäts-Tiefenkarte erzeugt werden kann aus den Bildern, die in Übereinstimmung mit den Bilderfassungsanweisungen erfasst werden. Eine Qualitäts-Tiefenkarte besitzt eine eindeutige Tiefenwahrscheinlichkeit (zum Beispiel eine Wahrscheinlichkeit, dass, wenn eine Tiefenkarte erzeugt würde unter Verwendung der partikulären Konfigurationseinstellungen und aus der Anzahl an Bildern, die Tiefenschätzungen mit hoher Wahrscheinlichkeit die tatsächlichen Tiefen in der echten Welt wären, oder dass nur eine Tiefe wahrscheinlich ist für eine beliebige gegebene Menge von Pixeln). Darüber hinaus bestimmt der Prozess in diesem Beispiel zuerst die Anzahl an Bildern, die der Anzahl an Schärfentiefe-Intervallen entspricht, und bestimmt dann die Fokuseinstellungen für jedes Schärfentiefe-Intervall.
-
In Übereinstimmung mit hierin beschriebenen Techniken können die Bilderfassungsanweisungen eine Anzahl an Bildern, die zu erfassen sind, und entsprechende Konfigurationseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) einer Digitalkamera zum Erfassen von Bildern für die Tiefenkarten-Erzeugung anzeigen. Bilder können gemäß diesen Anweisungen erfasst werden und eine Tiefenkarte kann unter Verwendung dieser Bilder erzeugt werden. Eine Tiefenkarte, die unter Verwendung der hierin beschriebenen Bilderfassungsanweisungen erzeugt wurde, beinhaltet Tiefeninformation, welche die Entfernung von Objekten in einer Szene von der Digitalkamera repräsentiert (das heißt, einen Ort in der echten Welt, von dem aus die Aufnahmen aufgenommen wurden). Entfernungswerte für Pixel der Tiefenkarte können RGB Pixeln der Bilder entsprechen. Tiefenkarten können zum Beispiel verwendet werden, um bestehende Bildeditiertechniken zu verbessern. Zum Beispiel kann Tiefeninformation für ein Bild verwendet werden, um genauer zwischen Vordergrundobjekten und Hintergrundobjekten in einer Szene zu unterscheiden. Eine derartige Unterscheidung kann relevant für das Auswählen von Objekten innerhalb des Bildes sein (ob sie im Vordergrund oder im Hintergrund sind). Als ein veranschaulichendes Beispiel mag ein Bild einer Szene ein Kind (zum Beispiel ein Vordergrundelement) zeigen, das vor einem Baum (zum Beispiel ein Hintergrundelement) steht. Ein Benutzer, der das Kind aus der Szene „ausschneiden” möchte, kann dies angeben, indem er einen Teil des Kindes unter Verwendung einer Bildeditieranwendung auswählt. Die Bildeditieranwendung kann Tiefeninformation verwenden, die mit dem Bild assoziiert ist, zusätzlich zu Auswahlhinweisen wie Farbe und Textur, um einen Umriss des auszuschneidenden Kindes zu erzeugen.
-
Mit Bezug nun auf die Figuren zeigt 1 ein Blockdiagramm 100, das funktionelle Komponenten und deren Eingaben und Ausgaben zeigt, zum Implementieren von Techniken zum prädiktiven Bestimmen von Bilderfassungsanweisungen und Erfassen von Bildern gemäß diesen Anweisungen zur Verwendung in der Erzeugung von Tiefenkarten, wie hierin beschrieben. Eine erste Komponente ist eine Bildeigenschaftsfunktionseinheit 102. Wie hierin verwendet bezieht sich eine ”Funktionseinheit” auf einen Satz von Anweisungen, die in Software verkörpert sind, welche, wenn sie auf einem Prozessor ausgeführt werden, den Prozessor dazu veranlassen, eine oder mehrere Funktionen auszuführen. Die Bildeigenschaftsfunktionseinheit 102 ist konfiguriert, Tiefenbereichsinformation 104 und Kamerakalibrierungsinformation 122 zu empfangen. Die Tiefenbereichsinformation 104 kann eine Benutzereingabe enthalten, oder eine automatische Eingabe, die eine Schätzung der Entfernung einer Szene, eine Schätzung der Entfernung eines Objekts innerhalb der Szene, eine Schätzung der Entfernung eines nächsten Objekts innerhalb der Szene, eine mittlere Entfernung der Objekte in der Szene, eine gemessene Entfernung von zumindest einem Objekt in der Szene, eine gemessene Entfernung von dem nächsten Objekt der Szene, und/oder irgendeine andere Information beinhalten, die geeignet ist, die Entfernung von einem oder von mehreren Objekten in der Szene zu vermitteln. Ein Bild der Szene, zu der die Tiefenbereichsinformation 104 gehört, wird erfasst unter Verwendung einer Bilderfassungsvorrichtung 106. Die Bilderfassungsvorrichtung 106 kann zum Beispiel ein Kameraabschnitt einer digitalen Spiegelreflexkamera sein, eine Kompaktkamera, eine integrierte Kamera einer Mobilvorrichtung, eine integrierte Kamera einer Tablet-Vorrichtung, eine integrierte Kamera einer Videokamera, eine integrierte Kamera eines Laptops, oder jede andere geeignete Vorrichtung zum Erfassen eines Bildes, oder eines Inhalts, aus dem ein Bild extrahiert werden kann. In einigen Beispielen empfängt die Bildeigenschaftsfunktionseinheit 102 die Tiefenbereichsinformation 104 mittels einer Eingabe auf einer Benutzervorrichtung, welche die Bildeigenschaftsfunktionseinheit 102 ausführt oder mit dieser in Kommunikation steht. In einigen Beispielen wird die Tiefenbereichsinformation 104 programmtechnisch bestimmt basierend zum Teil auf einer Auswahl von einem oder von mehreren „Aufnahmemodi” der Bilderfassungsvorrichtung 106. Zum Beispiel kann die Bildeigenschaftsfunktionseinheit 102 in einer Bilderfassungsvorrichtung 106 implementiert sein, die eine Digitalkamera umfasst, und die Tiefenbereichsinformation 104 kann der Auswahl von einem aus einer Vielzahl von Aufnahmemodi der Digitalkamera entsprechen (zum Beispiel Landschaft, Portrait, Makro, in geschlossenen Räumen, im Freien, Sport und so weiter). Jeder dieser Modi kann eine minimale Entfernung der Szene implizieren. In einigen Beispielen kann ein anderer Aufnahmemodus ausgewählt werden, der minimale optische Eigenschaften der Digitalkamera impliziert, die von der Bildeigenschaftsfunktionseinheit 102 zu verwenden sind, um die Bilderfassungsanweisungen 108 zu bestimmen. Zum Beispiel kann eine partikuläre Kombination von Linse und Kamera zwei mögliche Blenden und eine minimale Fokusentfernung von 1 Meter haben. Wenn der andere Aufnahmemodus gewählt wird, berücksichtigt die Bildeigenschaftsfunktionseinheit 102 die zwei möglichen Blendeneinstellungen und die minimale Fokusentfernung beim Bestimmen der Bilderfassungsanweisungen 108.
-
Sobald die Tiefenbereichsinformation 104 empfangen wurde, führt die Bildeigenschaftsfunktionseinheit 102 eine oder Operationen mit Bezug auf die Tiefenbereichsinformation 104 aus, um Bilderfassungsanweisungen 108 zu bestimmen. Beispiele solcher Operationen werden zum Beispiel mit Bezug auf die 2 und 3 beschrieben. Schlussendlich kann es ein Zweck des Erzeugens der Bilderfassungsanweisungen 108, oder zumindest eines Teils davon, sein, eine Tiefenkarte aus Bildern 118(1) bis 118(N) zu erzeugen, die von der Bilderfassungsvorrichtung 106 gemäß den Bilderfassungsanweisungen 108 erfasst werden. Eine Tiefenkarte umfasst Schätzwerte von Entfernungen von Objekten innerhalb der Szene von dem Standpunkt, von dem aus die Bilder 118(1) bis 118(N) erfasst wurden. In einigen Beispielen bestimmt die Bildeigenschaftsfunktionseinheit 102 daher die Bilderfassungsanweisungen 108 so, dass eine noch zu erzeugende Tiefenkarte, nachdem sie erzeugt wurde, bestimmte Anforderungsbedingungen erfüllt. Zum Beispiel ist eine derartige Anforderung ein bestimmtes Maß der Wahrscheinlichkeit dass die von der Tiefenkarte angegebenen Tiefen korrekt sind (zum Beispiel mag, für ein Pixel, das eine tatsächliche Entfernung von 4,5 Meter hat, eine Tiefenkarte, die anzeigt, dass das Pixel eine geschätzte Entfernung zwischen 4 bis 5 Meter hat, geeignet sein). Zu diesem Zweck bestimmt die Bildeigenschaftsfunktionseinheit 102 prädiktiv eine Anzahl an Bildern 110 und Konfigurationseinstellungen 112, die erforderlich sind, um eine derartige Tiefenkarte zu erzeugen.
-
Insbesondere gibt die Anzahl an Bildern 110 die Anzahl an Bildern 118(1) bis 118(N) an, die unter Verwendung der Bilderfassungsvorrichtung 106 erfasst werden sollten, und die Konfigurationseinstellungen 112 geben die Einstellungen der Bilderfassungsvorrichtung 106 zum Erfassen der Bilder 118(1) bis 118(N) an, so dass ausreichend Tiefeninformation vorhanden sein wird, um aus den Bildern 118(1) bis 118(N) eine Qualitäts-Tiefenkarte zu erzeugen. In einigen Ausführungsformen geben die Konfigurationseinstellungen 112 Blendeneinstellungen 114 und Fokuseinstellungen 116 an, die benutzt werden sollten, wenn die empfohlene Anzahl an Bildern erfasst wird, welche durch die Anzahl an Bildern 110 identifiziert wird. Die Blendeneinstellungen 114 beziehen sich auf die Menge an Licht, das in die Kamera gelassen wird, wenn ein Bild erfasst wird. Die Blende einer Kamera wird eingestellt unter Verwendung eines Lamellenmechanismus, der die Lichtmenge einstellt. Die Fokuseinstellung 116 bezieht sich auf eine Entfernung einer Fokusebene von der Bilderfassungsvorrichtung 106 (zum Beispiel einer Digitalkamera) und wird dementsprechend angepasst. In anderen Ausführungsformen beinhalten die Konfigurationseinstellungen 112 zusätzlich oder alternativ irgendeine Kameraeinstellung, welche das Niveau an Unschärfe in einem Bild bei unterschiedlichen Tiefen beeinflussen kann.
-
In einigen Ausführungsformen assoziiert die Bildeigenschaftsfunktionseinheit 102, wenn die Bilderfassungsanweisungen 108 erzeugt werden, die Konfigurationseinstellungen 112 mit jedem Bild der Anzahl an Bildern 110. Zum Beispiel sei angenommen, dass die Bildeigenschaftsfunktionseinheit 102 bestimmt, dass die Anzahl an Bildern 110, die erfasst werden sollten, vier ist. Die Bildeigenschaftsfunktionseinheit 102 kann mit jedem der vier Bilder auch eine bestimmte Blendeneinstellung 114 und eine bestimmte Fokuseinstellung 116 assoziieren. In einigen Beispielen sind die Blendeneinstellung 114 und die Fokuseinstellung 116 für jedes der vier Bilder unterschiedlich. In einigen Beispielen sind jedoch zumindest einige der Blendeneinstellungen 114 und/oder zumindest einige der Fokuseinstellungen 116 gleich.
-
Die Bilderfassungsanweisungen 108 werden dann der Bilderfassungsvorrichtung 106 bereitgestellt. Die Bilderfassungsvorrichtung 106 wird gemäß den Bilderfassungsanweisungen 108 konfiguriert, um die Bilder 118(1) bis 118(N) zu erfassen. Da die Bilder 118(1) bis 118(N) erfasst werden, während die Bilderfassungsvorrichtung 106 gemäß den Bilderfassungsanweisungen 108 eingestellt ist, enthalten die Bilder 118(1) bis 118(N) die Konfigurationsinformation 120(1) bis 120(N) oder sind mit dieser assoziiert. Zum Beispiel kann eine Bilddatei nicht nur Daten speichern, die das Bild repräsentieren, sondern auch Daten oder Metadaten, welche die Konfigurationsinformation 120(1) bis 120(N) repräsentieren. In anderen Beispielen wird die Konfigurationsinformation 120(1) bis 120(N) in separaten Dateien gespeichert, die mit den betreffenden Bilddateien assoziiert sind. Die Konfigurationsinformation 120(1) ist mit dem Bild 118(1) assoziiert; die Konfigurationsinformation 120(2) ist mit dem Bild 118(2) assoziiert, und so weiter. Die Konfigurationsinformation 120(1) bis 120(N) für jedes der Bilder 118(1) bis 118(N) beinhaltet zumindest die Blendeneinstellung und die Fokuseinstellung, die von der Bilderfassungsvorrichtung 106 verwendet wurden, um die Bilder 118(1) bis 118(N) zu erfassen.
-
2 zeigt eine beispielhafte Konfiguration einer Bildeigenschaftsfunktionseinheit 102 zum Erzeugen der Bilderfassungsanweisungen 108 zur Verwendung in der Erzeugung von Tiefenkarten wie hierin beschrieben. Die Bildeigenschaftsfunktionseinheit 102 kann durch eine oder mehrere Funktionseinheiten, Unterfunktionseinheiten, Module, Untermodule, Komponenten, und/oder Dienste, welche alle oder einen Teil der hierin beschriebenen Funktionalitäten zum Erzeugen der Bilderfassungsanweisungen 108 implementieren, gebildet werden, oder kann konfiguriert sein, diese zu verwalten. In einigen Beispielen beinhaltet die Bildeigenschaftsfunktionseinheit 102 einen Kommunikationsdienst 204, einen Aufnahmemodusdienst 206 und einen Bilderfassungsanweisungsdienst 208. Während verschiedene Dienste in 4 gezeigt sind und mit Bezug auf die 6 und 7 beschrieben werden als diskrete Aufgaben auszuführen, wird verstanden werden, dass die 2 lediglich beispielhafte Konfigurationen zeigt, und dass andere Konfigurationen zum Ausführen anderer Aufgaben und/oder ähnlicher Aufgaben als die hierin beschriebenen implementiert werden können.
-
Der Kommunikationsdienst 204 ist konfiguriert, Kommunikationen zwischen den anderen Diensten der Bildeigenschaftsfunktionseinheit 102 und anderen Vorrichtungen oder Komponenten (zum Beispiel Hardware- und/oder Softwarekomponenten) zu verwalten, die mit der Bildeigenschaftsfunktionseinheit 102 kommunizieren. Zum Beispiel wird die Tiefenbereichsinformation 104 von dem Kommunikationsdienst 204 empfangen. In einigen Beispielen wird die Tiefenbereichsinformation 104 einem anderen Dienst der Bildeigenschaftsfunktionseinheit 102 bereitgestellt, wie dem Aufnahmemodusdienst 206, und/oder dem Bilderfassungsanweisungsdienst 208. Der Kommunikationsdienst 204 empfängt auch die Bilderfassungsanweisungen 108 von dem Bilderfassungsanweisungsdienst 208 und stellt die Bilderfassungsanweisungen 108 anderen Diensten der Bildeigenschaftsfunktionseinheit 102, einem Bediener einer Digitalkamera (zum Beispiel über einen Anzeigebildschirm), einer Digitalkamera (zum Beispiel an eine oder mehrere Komponenten der Digitalkamera, welche programmtechnisch die Konfigurationseinstellungen einstellen), einer Ausgabevorrichtung (zum Beispiel einem Drucker), einer Speicherstruktur, die mit der Bildeigenschaftsfunktionseinheit 102 assoziiert ist, und anderen ähnlichen Einheiten bereit. Wenn die Bildeigenschaftsfunktionseinheit 102 auf derselben Benutzervorrichtung implementiert ist, die konfiguriert ist, Bilder 118 zu erfassen, und die eine Tiefenerzeugungsfunktionseinheit ausführt, verarbeitet der Kommunikationsdienst 204 Anforderungen, Operationen auszuführen, die von anderen Komponenten jener Benutzervorrichtung empfangen werden, einschließlich der Tiefenerzeugungsfunktionseinheit und/oder einer Tiefenverfeinerungsfunktionseinheit. Wenn die Bildeigenschaftsfunktionseinheit 102 als Teil eines Online-Bildeditierdiensts 404 implementiert ist, verwaltet der Kommunikationsdienst 204 die Kommunikation mit einer oder mit mehreren Benutzervorrichtungen.
-
Der Aufnahmemodusdienst 206 ist konfiguriert, die Tiefenbereichsinformation 104 zu bestimmen basierend, zumindest zum Teil, auf einem Aufnahmemodus einer Digitalkamera. Ein Aufnahmemodus kann zum Beispiel einen Landschaftsmodus, einen Portraitmodus, einen Makromodus, einen Modus für geschlossene Räume, einen Modus für Aufnahmen im Freien, einen Sportmodus und andere ähnliche Moden der Digitalkamera beinhalten. Wenn zum Beispiel im Landschaftsmodus fotografiert wird, wird die Szene wahrscheinlich weiter entfernt sein, als wenn im Makromodus fotografiert wird. Die Tiefenbereichsinformation 104 kann daher der Auswahl von einem von einem durch einen Benutzer ausgewählten Modus oder einem automatisch ausgewählten Modus entsprechen, und die Tiefenbereichsinformation 104 kann jede geeignete Unterteilung der Entfernung enthalten. Zum Beispiel mögen geeignete Unterteilungen der Entfernung ein Meter bis unendlich, zwei Meter bis unendlich, fünf Meter bis unendlich, zehn Meter bis unendlich, und jede andere geeignete Unterteilung beinhalten. In einigen Beispielen bestimmt der Aufnahmemodusdienst 206 einen unteren Wert der Tiefenbereichsinformation 104 und es wird angenommen, dass der obere Wert unendlich ist.
-
Der Bilderfassungsanweisungsdienst 208 ist konfiguriert, die Bilderfassungsanweisungen 108 prädiktiv zu bestimmen. In einigen Beispielen beinhaltet dies Identifizieren einer Anzahl an zu erfassenden Bildern 110 basierend auf der Tiefenbereichsinformation 104, und Identifizieren von geeigneten Konfigurationseinstellungen 112 zum Erfassen der Bilder 118 auf eine Weise, welche die Erzeugung einer Qualitäts-Tiefenkarte ermöglicht. In einigen Beispielen bestimmt der Bilderfassungsanweisungsdienst 208 Bilderfassungsanweisungen 108, die verwendet werden können, um die Bilder 118 zu erfassen, aus denen eine Tiefenkarte erzeugt werden kann, in der eine Tiefenzweideutigkeit für texturierte Flicken konstanter Tiefe innerhalb einer hypothetischen Szene eliminiert oder minimiert ist. Dies beinhaltet zum Beispiel das Evaluieren einer Likelihood-Funktion auf eine Weise, welche Doppelspitzen (das heißt, wo mehr als eine Tiefe wahrscheinlich ist) minimiert. Wie im Stand der Technik bekannt ist eine „Likelihood-Funktion” im Kontext der Statistik definiert als eine Funktion der Parameter eines statistischen Modells. Die Likelihood-Funktion einer Menge von Parameterwerten, θ, unter gegebenen Ergebnissen x, ist gleich der Wahrscheinlichkeit, dass diese beobachteten Ergebnisse auftreten, wenn diese Parameterwerte gegeben sind.
-
3 zeigt ein beispielhaftes Diagramm 300, das einen Plot des Frequenzinhalts darstellt, der für eine Menge von zwei hypothetischen unscharfen Flicken 302, 304 evaluiert ist, und bei einer Vielzahl unterschiedlicher Tiefen evaluiert ist. In einigen Beispielen werden die zwei hypothetischen unscharfen Flicken 302, 304 ausgewählt aus einem ersten hypothetischen Bild und einem zweiten hypothetischen Bild, welche dieselbe Menge von Konfigurationseinstellungen 112 teilen. In einigen Beispielen repräsentiert der Frequenzinhalt einen Betrag an Energie an einer bestimmten Stelle innerhalb einer Szene bei einer bestimmten Frequenz. Wenn zum Beispiel ein Bild sich rasch ändert von dunkel zu hell oder von hell zu dunkel, in einer sehr kleinen Entfernung in Pixeln, kann es einen hohen Frequenzinhalt haben. Wenn die Wechsel in einem Bild graduell sind, wie zum Beispiel einem sehr langsamen Übergang von hell zu dunkel über das gesamte Bild hinweg, mag es einen niedrigen Frequenzinhalt haben. Das Diagramm 300 wird verwendet, um die Unterschiede in Tiefendiskriminierbarkeit zwischen den unterschiedlichen Tiefen in dem Diagramm 300 zu illustrieren.
-
In dem in 3 gezeigten Beispiel gibt der Betrag an Frequenzinhalt bei einer gegebenen Frequenz des hypothetischen unscharfen Flickens 302 an, wo der hypothetische unscharfe Flicken 302 eingezeichnet wird als eine X Koordinate in (x, y) Koordinaten. Den Betrag an Frequenzinhalt bei einer gegebenen Frequenz des hypothetischen unscharfen Flickens 304 gibt an, wo der hypothetische unscharfe Flicken 304 eingezeichnet wird als eine Y Koordinate in (x, y) Koordinaten. Der Betrag an Frequenzinhalt, welcher dem hypothetischen unscharfen Flicken 302 entspricht, und der Betrag an Frequenzinhalt, welcher dem hypothetischen unscharfen Flicken 304 entspricht, geben daher gemeinsam (x, y) Koordinaten für jede der gezeigten Tiefen an. Zum Beispiel sind bei einer Koordinate 306 die Frequenzinhalte für beide der hypothetischen unscharfen Flicken 302, 304 gering (nahe dem Ursprung). Umgekehrt ist bei einer Koordinate 308 der Frequenzinhalt für den hypothetischen unscharfen Flicken 302 groß im Vergleich zum Frequenzinhalt für den hypothetischen unscharfen Flicken 304 (großer X Wert, kleiner Y Wert). In einigen Beispielen wird die Menge von hypothetischen unscharfen Flicken 302, 304 bei jeder diskreten Entfernung innerhalb eines Tiefenbereichs evaluiert, der aus der Tiefenbereichsinformation 104 identifiziert wurde. Jede diskrete Entfernung kann einen Tiefenwert umfassen. und unter Verwendung unterschiedlicher Tiefenwerte wird bestimmt, wie die Menge von hypothetischen unscharfen Flicken 302, 304 mit bestimmten Konfigurationseinstellungen aussehen mag. In dem hypothetischen Diagramm 300, wenn der Tiefenwert Tiefe = 5 ist (das heißt, die Koordinate 308), ist der Frequenzinhalt für den hypothetischen unscharfen Flicken 302 größer als der Frequenzinhalt für den hypothetischen unscharfen Flicken 304. Wenn der Tiefenwert Tiefe = 10 ist (das heißt, die Koordinate 306), mag der Frequenzinhalt für den hypothetischen unscharfen Flicken 302 ungefähr derselbe sein wie der Frequenzinhalt für den hypothetischen unscharfen Flicken 304. Tiefendiskriminierbarkeit wird bestimmt basierend auf der Winkelvariation zwischen den Tiefen der Tiefenschätzungen. Wie hierin verwendet bezieht sich „Tiefendiskriminierbarkeit” auf die Möglichkeit, für ein bestimmtes Pixel oder einen bestimmten Flicken zwischen mehr als einer Tiefe zu unterscheiden. Daher ist die Tiefendiskriminierbarkeit zwischen der Tiefenschätzung von Tiefe = 10 und der Tiefenschätzung von Tiefe = 5 groß, da es eine unterscheidbare winkelige Variation zwischen den zwei Tiefenschätzungen gibt. Dasselbe kann für die anderen Tiefenschätzungen gesagt werden, es gibt eine unterscheidbare winkelige Variation zwischen den Tiefenschätzungen. In einigen Beispielen kann der größere Betrag an Frequenzinhalt bei höheren Frequenzen zu robusteren Tiefenschätzungen mit geringerer Unsicherheit führen.
-
Eine Evaluierung des Plots in dem Diagramm 300 für die zwei hypothetischen unscharfen Flicken 302, 304 kann verifizieren, dass, um Bilder für das Erzeugen einer Tiefenkarte der gewünschten Qualität zu haben, wenigstens zwei Bilder 118 von der Szene erfasst werden sollten unter Verwendung einer bestimmten Blendeneinstellung 114 und von zwei unterschiedlichen Fokuseinstellungen 116, wobei die Bilder eine Defokus-Unschärfe von etwa ein bis zwei Pixel haben werden. Das Diagramm 300 kann daher verwendet werden, um zu verifizieren, dass die unterschiedlichen möglichen Tiefen diskriminiert werden können. In einigen Beispielen sollte die Defokus-Unschärfe kleiner oder gleich etwa eineinhalb Pixel sein. Dies aus dem Grund, dass etwas Defokus-Unschärfe wünschenswert ist, um Frequenzinhalt zu bewahren.
-
4 zeigt eine beispielhafte Umgebung 400 zum Implementieren von Techniken, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten wie hierin beschrieben beziehen. Die Umgebung 400 beinhaltet einen Bediener 402, der eine Digitalkamera 404 verwendet, um ein Bild einer Szene 406 zu erfassen. Der Bediener 402 ist für die Implementierung der hierin beschriebenen Techniken optional. In einigen Beispielen ist die Digitalkamera 404 auf einem Dreibein oder einer anderen geeigneten Vorrichtung montiert, und die Bilder der Szene 406 werden programmtechnisch erfasst, mit nur wenig oder keiner Hilfestellung durch den Bediener 402. Der Bediener 402 befindet sich an einem Standpunkt 408, während der Bediener 402 das Bild der Szene 406 erfasst. Die Szene 406 beinhaltet eine Mehrzahl von Objekten 410 bis 414. Insbesondere sind drei Objekte der Szene 406 in der Umgebung 400 dargestellt, wobei es sich um Karotten 410, einen Baum 412 und einen Zaun 414 handelt. Wie gezeigt erscheinen die Karotten 410 eher im Vordergrund der Szene 406, während der Baum 412 und der Zaun 414 eher im Hintergrund erscheinen mögen. Unabhängig davon, wo die Objekte 410 bis 412 in der Szene erscheinen, ist jedes davon definiert, eine Entfernung von dem Bediener 402 zu haben. In einigen Beispielen wird die Entfernung jedes Objekts innerhalb der Szene 406 von einer Linie 416 aus gemessen, die eine Linse der Digitalkamera 404 kreuzt. Zum Beispiel wird die Entfernung der Karotten 410 von der Linie 416 durch eine Entfernungsschätzung 418 definiert. Da in diesem Beispiel die Karotten 410 das nächste Objekt der Szene 406 ist, die unter Verwendung der Digitalkamera 404 erfasst wurde, umfasst die Entfernungsschätzung 418 die Entfernung des nächsten Objekts in der Szene 406 von dem Standpunkt 408. In einigen Beispielen wird eine mittlere Entfernung der Szene 406 von der Linie 416 definiert durch eine mittlere Entfernungsschätzung 420. Die mittlere Entfernungsschätzung 420 beinhaltet das Mittel einer Mehrzahl von Entfernungsschätzungen (zum Beispiel eine Entfernungsschätzung für jede der Karotten 410, den Baum 412, und den Zaun 414). In einigen Beispielen umfassen die Entfernungsschätzung 418 und die mittlere Entfernungsschätzung 420 Tiefenbereichsinformation wie die Tiefenbereichsinformation 104.
-
In einigen Beispielen schätzt der Bediener 402 die Entfernungsschätzung 418. Zum Beispiel kann dies beinhalten, dass der Bediener 402 die Entfernungsschätzung 418 ohne irgendeine Hilfestellung durch die Digitalkamera 404 schätzt. In einigen Beispielen schätzt der Bediener 402 die Entfernungsschätzung 418 unter Hilfestellung durch die Digitalkamera 404 oder einer anderen Vorrichtung (zum Beispiel einen Entfernungsmesser, ein Bandmaß und so weiter). In einigen Beispielen bestimmt die Digitalkamera 404 die Entfernungsschätzung 418 in Antwort auf einen von dem Bediener 402 eingegebenen Befehl. Zum Beispiel kann die Digitalkamera 404 eine Funktionalität (zum Beispiel einen integrierten Entfernungsmesser) zum Schätzen von Objektentfernungen beinhalten, oder die Funktionalität mag mit einem Modus der Digitalkamera 404 assoziiert sein. In einigen Beispielen wird die Entfernungsschätzung 418 geschätzt und als Tiefenbereichsinformation 104 einer anderen Benutzervorrichtung 702 oder dem Bildeditierdienst 704, der die Bildeigenschaftsfunktionseinheit 102 ausführt, bereitgestellt. In diesem Beispiel empfängt die andere Benutzervorrichtung 702 oder der Bildeditierdienst 704 die Tiefenbereichsinformation 104 und bestimmt, in Übereinstimmung mit den hierin beschriebenen Techniken, die Bilderfassungsanweisungen 108 (zum Beispiel eine Anzahl an Bildern 110, Blendeneinstellungen 114, und Fokuseinstellungen 116), die dann dem Bediener 402 oder der Digitalkamera 404 bereitgestellt werden können. In einigen Beispielen werden die Bilderfassungsanweisungen 108 in einer Nachschlagtabelle gespeichert, auf die der Bediener 402 und/oder die Digitalkamera 404 zugreifen kann. Zum Beispiel kann dem Bediener 402 ein Ausdruck eines Teils der Nachschlagtabelle bereitgestellt werden, und der Bediener 402 kann die Konfigurationseinstellungen der Digitalkamera 404 manuell einstellen, um in Übereinstimmung mit den Bilderfassungsanweisungen 108 ein oder mehrere Bilder 118 zu erfassen. In einigen Beispielen werden die Bilderfassungsanweisungen 108 für eine Mehrzahl von Entfernungsbereichen bestimmt und in einem Speicher der Digitalkamera 404 oder einer anderen Benutzervorrichtung 702 gespeichert. In einigen Beispielen sind die Bilderfassungsanweisungen 108 partikulär für die Digitalkamera 404, für einen Typ der Digitalkamera 404, eine Linse der Digitalkamera 404, für eine Kombination von einer Linse und der Digitalkamera 404. In einigen Beispielen umfasst die Digitalkamera 404 ein Kameragehäuse und eine Linse, und die Bilderfassungsanweisungen 108 sind maßgeschneidert auf Kombinationen von Kameragehäusen und Linsen basierend auf Kalibrierungsdaten für die Digitalkamera 404.
-
In einigen Beispielen werden die Konfigurationseinstellungen in Verbindung mit den Bildern 118(1) bis 118(N) als Konfigurationsinformation 120(1) bis 120(N) gespeichert. In einigen Beispielen gibt der Bediener 402 der Digitalkamera 404 eine Entfernungsschätzung 418 ein. Die Digitalkamera 404 kann eine Bildeigenschaftsfunktionseinheit 102 ausführen, welche die Entfernungsschätzung 418 als Eingabe der Tiefenbereichsinformation 104 erhält. Die Bildeigenschaftsfunktionseinheit 102 gibt dann dem Bediener (zum Beispiel über einen Bildschirm) Bilderfassungsanweisungen 108 aus, einschließlich einer Anzahl an Bildern, die zu erfassen sind, 110, einer Blendeneinstellung 114 für jedes Bild, und einer Fokuseinstellung 116 für jedes Bild. Um die Bilder 118 zu erfassen, stellt der Bediener 402 zuerst die Digitalkamera 404 gemäß einer ersten Blendeneinstellung ein (zum Beispiel ausgewählt aus f/1,2, f/2, f/4, f/5,6, f/8, f/16, f/22 oder anderen geeigneten Blendeneinstellungen), die einem ersten empfohlenen Bild entspricht wie durch die Bilderfassungsanweisungen 108 identifiziert. Der Bediener 402 fokussiert dann die Digitalkamera 404 gemäß einer ersten Fokuseinstellung, die dem ersten empfohlenen Bild entspricht wie durch die Bilderfassungsanweisungen 108 identifiziert, und erfasst die Szene 406 unter Verwendung der Digitalkamera 404. Das Bild 118(1) ist ein Ergebnis der erfassten Szene 406. Der Bediener 402 stellt dann die Digitalkamera 404 gemäß einer Blendeneinstellung ein (zum Beispiel ausgewählt aus f/1,2, f/2, f/4, f/5,6, f/8, f/16, f/22 oder anderen geeigneten Blendeneinstellungen), die einem zweiten empfohlenen Bild entspricht wie durch die Bilderfassungsanweisungen 108 identifiziert. Der Bediener 402 fokussiert dann die Digitalkamera 404 gemäß einer zweiten Fokuseinstellung, die dem zweiten empfohlenen Bild entspricht wie durch die Bilderfassungsanweisungen 108 identifiziert, und erfasst das nächste Bild 118(2) der Szene 406 unter Verwendung der Digitalkamera 404. In einigen Beispielen erfasst der Bediener 402 weitere Bilder mit denselben oder anderen Blendeneinstellungen 114 und Fokuseinstellungen 116. Die Bilder 118(1) bis 118(N) werden dann von einer Tiefenerzeugungsfunktionseinheit verwendet (zum Beispiel die Tiefenerzeugungsfunktionseinheit 726(A) oder 726(B)), um eine oder mehrere Tiefenkarten auszugeben.
-
Durch Verwendung der hierin beschriebenen Techniken, die sich auf die Bilderfassungsanweisungen beziehen, kann bestimmt werden, dass, wenn ein größerer Tiefenbereich in einer Szene vorhanden ist, eine größere Anzahl an zu erfassenden Bildern 118 benötigt wird, um einen adäquaten Frequenzinhalt beizubehalten. Zum Beispiel mögen für einen Tiefenbereich von zwei Meter bis unendlich zwei Bilder nicht adäquat sein, um den Frequenzinhalt zu bewahren. Für solch einen Tiefenbereich mag es wünschenswert sein, den Tiefenbereich aufzuspalten und jede Unterteilung als eigenständigen Tiefenbereich zu behandeln, was insgesamt das Erfassen von mehr als zwei Bildern involvieren kann. In einigen Beispielen können die Bilderfassungsanweisungen 108 daher anzeigen, dass eine die Frequenzen bewahrende Anzahl von Bildern 118 erfasst werden sollte. In einigen Beispielen können die Bilderfassungsanweisungen 108 anzeigen, dass für einen Tiefenbereich von zwei Meter bis unendlich vier Aufnahmen mit unterschiedlichen Blendeneinstellungen 114 aufgenommen werden sollten. In einigen Beispielen können die Bilderfassungsanweisungen 108 auch angeben, dass für drei Meter bis unendlich drei Aufnahmen mit unterschiedlichen Blendeneinstellungen 114 aufgenommen werden sollten. Für Entfernungen ab fünf Meter und darüber können die Bilderfassungsanweisungen 108 in einigen Beispielen angeben, dass zwei Bilder 118 aufgenommen werden sollten.
-
In einigen Beispielen bestimmt die Bildeigenschaftsfunktionseinheit 102 die Bilderfassungsanweisungen 108 in Übereinstimmung mit den folgenden Beispielen. Die folgenden Beispiele illustrieren auch in größerem Detail, wie eine Tiefen-Likelihood-Funktion evaluiert wird, wie der Frequenzinhalt verwendet wird, um Bilderfassungsanweisungen 108 zu bestimmen und ähnliches. In einigen Fällen sind die folgenden Beispiele dazu gedacht, die vorstehende Diskussion bezüglich der Erzeugung der Bilderfassungsanweisungen 108 zum Erzeugen von Qualitäts-Tiefenkarten zu ergänzen. In einigen Beispielen ist eine Qualitäts-Tiefenkarte eine Tiefenkarte, die signifikante Doppelspitzen in einer Likelihood-Funktion vermeidet. Daher geben in einigen Beispielen die Bilderfassungsanweisungen 108 eine Anzahl an aufzunehmenden Bildern 110 an, sowie die Konfigurationseinstellungen 112, die verwendet werden sollten, um diese zu erfassen, so dass, für einen Bildflicken, die Energiefunktion ε(d|{in}) an dessen Ground Truth Tiefe d viel kleiner ist als die Energiefunktion bei jeder anderen hypothetischen Tiefe d: d ≠ d ^ .
-
Für einen bestimmten Satz von Fokuseinstellungen
116 und Blendeneinstellungen
114 mögen die eingegebenen Bilder
118 {i
n} nicht nur von diesen Konfigurationseinstellungen
112, sondern auch von Bildrauschen abhängen. Dementsprechend kann eine Likelihood-Funktion zerlegt werden in einen bestimmenden und einen stochastischen Teil:
-
Hier können Ψ ^n und Ψn der Ground Truth bzw. „Bodenwahrheit” entsprechen und hypothetisch Defokus OTF (Fourier transformierte des Defokus-Unschärfe-Kernels), was nicht nur durch die Tiefen d oder d ^, sondern auch durch die Fokuseinstellungen {fn} 116 und die Blendeneinstellungen {an} 114 entschieden werden mag. Die Variablen H(ξ) und Nn(ξ) bezeichnen die Fourier transformierte des Alles-im-Fokus Bilds bzw. können das Rauschen bezeichnen.
-
Obwohl wegen des stochastischen Terms Herausforderungen bestehen können, Zweideutigkeit vollständig zu eliminieren, kann jedoch die Likelihood-Funktion definiert werden, schwach unimodal zu sein, wenn der deterministische Term die Wahrscheinlichkeit einer falschen Tiefenhypothese signifikant von der Ground Truth-Tiefe kontrastiert:
In einigen Beispielen können die Tiefeninformation, die von der Szene und dem Konfigurationseinstellungstupel (h, {f
n}, {a
n}) bereitgestellt wird über eine Menge von Tiefenhypothesen D ausgedrückt werden als:
-
In einigen Beispielen kann die erste Phase ein Optimieren von {fn} und {an} unabhängig von einer Textur der Szene beinhalten. Nachdem ein paar Bilder erfasst wurden und mit zusätzlichem Wissen über die Szenentextur h des Alles-im-Fokus Bildes, können {fn} und {an} optimiert werden bedingt durch das Wissen über h.
-
Die Tiefeninformation in Gleichung 2 kann beschränkt werden durch:
worin
-
-
Eine Beweisskizze kann angeben, dass:
-
Und das Folgende kann gezeigt werden.
-
-
In einigen Beispielen wird eine Sequenz von Tiefenhypothesen D betrachtet, und eine Trennschärfe minimaler Energie wird über alle Paare d und d ^ in D berechnet:
-
In einigen Beispielen können bestimmte hierin diskutierte Theoreme eine korrekte Tiefenschätzung für viele mögliche Flicken erlauben, wenn Konfigurationseinstellungen
112 ausgewählt werden durch Maximieren von
,
und
und
für alle Frequenzen ξ, bei denen H(ξ) signifikant ist. Es mag wünschenswert sein, dass die Trajektorie von (Ψ
1(ξ), Ψ
2(ξ), ... (ξ), Ψ
N(ξ)) für diese signifikanten Frequenzen uniform auf der Oberfläche der Einheitskugel liegt. Wenn es wenig oder keine Information mit Bezug auf die Verteilung von H(ξ) gibt, mag es wünschenswert sein,
für alle Frequenzen zu maximieren.
-
In einigen Beispielen kann sich die Defokus-invariante Textur signifikant von einer periodischen unterscheiden, und kann daher nicht direkt auf hierin diskutierte Theoreme angewandt werden. In einigen Beispielen können die Bilder mit Laplace-Filtern vorgefiltert werden, um die Szenentextur periodischer zu machen. In diesem Fall mag ∥H(ξ)∥2 nicht länger ein Maß der Intensitätsvarianz in der scharfen Textur sein, sondern kann stattdessen ein Maß für die Signifikanz einer Tiefen-varianten Komponente in der Szenentextur darstellen.
-
In einigen Beispielen mögen hierin diskutierte Theoreme bestimmte Dinge über das Auswählen von Konfigurationseinstellungen implizieren. Um zum Beispiel zu lernen, was impliziert sein mag, mag es wünschenswert sein, zuerst Ψ
n(ξ) in Begriffen des Unschärfe-Kernelradius σ
n auszudrücken,
-
Hier bezeichnet A die Airy-Funktion und B1 bezeichnet die Bessel-Funktion erster Ordnung.
-
Beim Auswählen von Konfigurationseinstellungen
112 für ein Paar von Bildern kann ein optimales Paar von Konfigurationseinstellungen zur Tiefenakquisition betrachtet werden. Die Beziehung des Defokus-Kernelradius in zwei Bildern, welche dieselbe Tiefe aufweisen, kann erfüllen:
-
Empirisch kann beobachtet werden, dass für dieselbe Blende, die Geschwindigkeit der Änderung des Defokus-Kernelradius mit Bezug auf die inverse Tiefe für die Fokuseinstellung annähernd gleich ist
und die Entfernung zwischen Referenztiefenebene und Blendenbild auf der Objektseite mag sich nicht groß verändern, das heißt B
1 ≈ B
2, und daher
-
Die Gleichung 11 kann daher vereinfacht werden zu
-
Es kann dann für jede Frequenz ein Plot der Trajektorie (A(σ
1ξ), A(σ
2ξ)) entwickelt werden mit verschiedenen
-
Es kann gesehen werden, dass sowohl
und
minimiert werden, wenn
a1 = a2 (15) und
-
-
In der Praxis mag es wünschenswert sein, Tiefeninformation aus hohen Frequenzen zu erhalten, zum Beispiel π/2 ≤ ξ ≤ π, so dass eine hohe räumliche Auflösung garantiert werden kann. Wie oben erwähnt mag es daher wünschenswert sein, dass eine Differenz in Defokus-Niveau zwischen den zwei Bildern 1~2 Pixel ist.
-
Es sei bemerkt, dass selbst in solchen Situationen
und
signifikant abnehmen, wenn entweder σ
1ξ oder σ
2ξ den Bereich von [–π, π] verlässt. Dies kann einer Beschränkung des Defokus-Unschärferadius beider Bilder auf den Bereich von 1~2 Pixel entsprechen.
-
In einigen Beispielen mag es selbst mit der kleinsten Blende für einen sehr großen Tiefenbereich von Interesse nicht möglich sein, die obige Bedingung zu erzielen. In einigen Beispielen können daher die Bilderfassungsanweisungen 108 anzeigen, dass mehrere Bilder mit denselben Fokuseinstellungen 116 erfasst werden. In einigen Beispielen kann eine einfache Wahl sein, einen frequenzerhaltenden fokalen Stapel der Szene zu erfassen. In einigen Beispielen können die Bilderfassungsanweisungen 108 anzeigen, dass ein fokaler Stapel erfasst werden sollte. In einigen Beispielen kann dies bedeuten, dass Bilder 118 erfasst werden sollte, welche dieselbe Blendeneinstellung 114 haben, und mit Fokuseinstellungen 116, die gleichmäßig verteilt sind innerhalb des Fokusbereichs von Interesse. In einigen Beispielen kann für jede Tiefe von Interesse eine entsprechende Defokus-Unschärfe weniger als 1,5 Pixel sein in zumindest zwei Bildern.
-
In einigen Beispielen können die Bilderfassungsanweisungen 108 zum Erfassen der Bilder 118 für Tiefenkarten dieselben sein wie diejenigen zum Erfassen eines Alles-im-Fokus Bildes. Daher können in einigen Beispielen, mit dem Erfassen der Bilder 118 in Übereinstimmung mit den Bilderfassungsanweisungen 108, eine Tiefenkarte und eine Schätzung des Alles-im-Fokus Bildes erzeugt werden. Anders als in herkömmlichen Verfahren brauchen die Bilderfassungsanweisungen 108 nicht anzugeben, dass ein dichter Fokusstapel von Bildern aufgenommen werden sollte. Stattdessen mag es, um den Rechenaufwand zu vermindern, wünschenswert sein, dass kleinere Blendeneinstellungen verwendet werden, um die Anzahl an Bildern 118 zu verringern. In einigen Beispielen können, aus einem von einem Benutzer spezifizierten Tiefenbereich von Interesse, identifiziert aus der Tiefenbereichsinformation 104, optimale Konfigurationseinstellungen 112 – unabhängig von der Textur der Szene – identifiziert werden, mit der geringsten Anzahl an zu erfassenden Bildern 118. Die folgenden Daten entsprechen der Anzahl an Bildern und deren jeweiliger Blende für verschiedene Tiefenbereiche unter Verwendung von Kalibrierungsdaten eines Objektivs Canon EF 50 mm 1,2 L, gemäß einem Beispiel.
- a. Wenn die Tiefenbereichsinformation 104 anzeigt, dass das nächste Objekt in einer Szene zwischen zwei Meter und unendlich ist, nimm vier Bilder auf.
- b. Wenn die Tiefenbereichsinformation 104 anzeigt, dass das nächste Objekt in einer Szene mehr als drei Meter entfernt ist, nimm drei Bilder auf.
- c. Wenn die Tiefenbereichsinformation 104 anzeigt, dass das nächste Objekt in einer Szene mehr als fünf Meter entfernt ist, nimm zwei Bilder auf.
-
In einigen Beispielen können die oben identifizierten Bilder 118 unter Verwendung relativ kleiner Blenden erfasst werden. Zum Beispiel mag für viele Szenen im Freien eine Blende kleiner als f/8 geeignete Resultate liefern. Selbst für weit entfernte Szenen mag die größte gewählte Blende immer noch kleiner als f/2,2 sein, was eine der größten möglichen Blenden in Mobiltelefonen sein kann.
-
Die folgende Diskussion beschreibt beispielhafte Aktionen und/oder Prozeduren, die unter Verwendung von hierin beschriebenen Techniken ausgeführt werden können, in Übereinstimmung mit zumindest einem Beispiel. 5 zeigt einen Prozess 500, der beispielhafte Funktionen beinhaltet, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten wie hierin beschrieben beziehen. Ein Teil von oder der gesamte Prozess 500 (oder irgend ein anderer hierin beschriebener Prozess, oder Variationen davon, und/oder Kombinationen davon) kann unter der Steuerung oder Regelung durch ein oder mehrere Computersysteme, die mit ausführbaren Anweisungen konfiguriert sind, ausgeführt werden und kann als Code implementiert sein (zum Beispiel ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) die gemeinsam auf einem oder auf mehreren Prozessoren ausgeführt werden, durch Hardware oder Kombinationen davon. Der Code kann auf einem computerlesbaren Speichermedium gespeichert sein, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder von mehreren Prozessoren ausgeführt werden können. Das computerlesbare Speichermedium kann nichtflüchtig sein. Die Bildeigenschaftsfunktionseinheit 102 (1), sei es in einer der Benutzervorrichtungen 702(1) bis 702(N) (7) oder sei es innerhalb des Bildeditierdiensts 704 (7) implementiert, kann den Prozess 500 der 5 ausführen. In einigen Beispielen ist der Prozess 500 geeigneter Weise eine Kamera, die eine Linse besitzt, das einem geeigneten Linsenmodell folgt. Zum Beispiel kann der Prozess 500 für eine Linse geeignet sein, die einem Modell einer dicken Linse, oder einem Modell einer dünnen Linse folgt.
-
Der Prozess 500 beginnt bei 502 mit dem Empfangen von Tiefenbereichsinformation. Die Tiefenbereichsinformation kann eine Entfernungsschätzung umfassen. Das Empfangen der Entfernungsschätzung kann das Empfangen der Entfernungsschätzung beinhalten, die eine Schätzung des nächsten Objekts innerhalb einer Szene enthält. In einigen Beispielen kann die Entfernungsschätzung eine mittlere Entfernung der Szene anzeigen. In einigen Beispielen kann die Entfernungsschätzung eine Entfernung eines Teils der Szene von einem Standpunkt umfassen. In einigen Beispielen kann die Tiefenbereichsinformation verwendet werden, um einen Tiefenbereich zu identifizieren. Zum Beispiel kann die Tiefenbereichsinformation eine minimale Tiefe (zum Beispiel zwei Meter) anzeigen, und eine maximale Tiefe kann geschätzt werden. In einigen Beispielen gibt die Tiefenbereichsinformation sowohl die minimale Tiefe als auch die maximale Tiefe an. Eine oder beide dieser Tiefen können durch einen Benutzer eingegeben werden, oder unter Verwendung von Vorrichtungen oder automatischer Verfahren erfasst werden. In einigen Beispielen ist der Tiefenbereich in eine Menge von diskreten Tiefenwerten unterteilt. Zumindest ein Teil der Menge von Tiefenwerten wird von dem Prozess 500 evaluiert, um Fokuseinstellungen, Blendeneinstellungen, und eine minimale Anzahl an Bildern zu bestimmen. In einigen Beispielen umfasst die Tiefenbereichsinformation eine Eingabe einer Zielanzahl an Bildern. Der Zielwert der Anzahl an Bildern kann die Anzahl an Bildern anzeigen, die der Benutzer aufzunehmen gewillt ist, oder die Anzahl an Bildern, welche die Kamera innerhalb einer gewissen Zeitspanne (zum Beispiel fünf Sekunden) höchstens aufnehmen kann. In einigen Beispielen betrachtet der Prozess 500 den Zielwert der Anzahl an Bildern, während er die Bilderfassungsanweisungen bestimmt, und passt die Ausgabe dementsprechend an. In einigen Beispielen kann dies in Tiefeninformation resultieren, welche den Bereich optimaler Unschärferadien überschreitet oder unterschreitet. In einigen Beispielen, wenn der Zielwert der Anzahl an Bildern die minimale Anzahl an Bildern überschreitet, kann es Überlappungen in den Schärfentiefen und/oder überschüssige Tiefeninformation geben. In einigen Beispielen, wenn der Zielwert der Anzahl an Bildern kleiner ist als die minimale Anzahl an Bildern, kann es Lücken in den Schärfentiefen und/oder einen Mangel an Tiefeninformation geben.
-
Bei 504 setzt der Prozess 500 einen ersten Tiefenwert gleich einem minimalen Tiefenwert basierend auf der Tiefenbereichsinformation. Wenn zum Beispiel die Tiefenbereichsinformation einen Tiefenbereich anzeigt (zum Beispiel zwei Meter bis fünfzig Meter), ist der erste Tiefenwert zwei Meter. Auf diese Weise beginnt der Prozess 500 mit der kleinsten Tiefe und iteriert durch alle Tiefenwerte, bis ein Tiefenwert erreicht wird, der größer als eine maximale Tiefe ist (zum Beispiel fünfzig Meter).
-
Bei 506 identifiziert der Prozess 500 einen Bereich optimaler Unschärferadien für Bilder, die zu erfassen sind. In einigen Beispielen wird der Bereich optimaler Unschärferadien vor dem Ausführen des Prozesses 500 bestimmt. Zum Beispiel kann der Bereich optimaler Unschärferadien im Voraus berechnet werden und einem Computer bereitgestellt werden, der den Prozess 500 ausführt. In einigen Beispielen wird der Bereich optimaler Unschärferadien teilweise durch Evaluieren eines Szenen-unabhängigen Teils einer Tiefendiskriminationsfunktion bestimmt, welche einen Szenen-abhängigen Teil und den Szenen-unabhängigen Teil enthält. Der Szenen-unabhängige Teil ist unabhängig von der Szene, da er auf Kalibrierungsdaten für eine Digitalkamera beruht, die verwendet wurden, um die Bilder zu erfassen, und nicht auf der zugrunde liegenden Szene. In einigen Beispielen umfasst die Tiefendiskriminationsfunktion die Gleichung (3) wie hierin beschrieben. Die Tiefendiskriminierbarkeitsfunktion wird auf eine Weise evaluiert, die den Szenen-unabhängigen Teil der Tiefendiskriminierbarkeitsfunktion maximiert. In einigen Beispielen wird der Bereich optimaler Unschärferadien in die Bestimmung der Bilderfassungsanweisungen mit einbezogen, um sicherzustellen, dass ausreichend Tiefeninformation vorhanden sein wird, so dass aus den erfassten Bildern eine Qualitäts-Tiefenkarte erzeugt werden kann. Auf diese Art werden Bilderfassungsanweisungen auf eine Weise bestimmt, welche die Menge an Tiefeninformation maximiert, aber auch die Anzahl an Bildern, die zu erfassen sind, minimiert. In einigen Beispielen ist der Bereich optimaler Unschärferadien etwa 1 bis etwa 2 Pixel.
-
Bei 508 identifiziert der Prozess 500 eine Blendeneinstellung. In einigen Beispielen kann dieselbe Blendeneinstellung für zumindest zwei der Bilder verwendet werden, die zu erfassen sind. In einigen Beispielen ist die Blendeneinstellung eine der kleinsten zulässigen Blendeneinstellungen basierend auf den verfügbaren Blendeneinstellungen der Kamera. In einigen Beispielen wird die Blendeneinstellung optimal ausgewählt als Teil des Evaluierens des Szenen-unabhängigen Teils der Tiefendiskriminierbarkeitsfunktion. In einigen Beispielen kann die Blendeneinstellung größer als die kleinste zulässige Blende sein. In einigen Beispielen wird der Prozess 500 bei 508 unter Verwendung unterschiedlicher Blendeneinstellungen evaluiert. Auf diese Weise können die Fokuseinstellungen für unterschiedliche Blendeneinstellungen bestimmt werden.
-
Bei 510 bestimmt der Prozess 500 eine erste Fokuseinstellung, so dass die erste Fokuseinstellung größer ist als der minimale Tiefenwert, und so, dass Unschärfe, welche von den Pixeln bei dem minimalen Tiefenwert erfahren wird, innerhalb des Bereichs optimaler Unschärferadien ist in einem Bild, das erfasst wird unter Verwendung der Blendeneinstellung und der ersten Fokuseinstellung. In einigen Beispielen kann dies ein Berechnen der ersten Fokuseinstellung auf eine Weise beinhalten, welche die Menge an Tiefeninformation berücksichtigt, die an anderen Positionen innerhalb des Bildes verfügbar sein wird.
-
Bei 512 gibt der Prozess 500 die erste Fokuseinstellung aus. In einigen Beispielen beinhaltet dies ein Speichern der ersten Fokuseinstellung. In einigen Beispielen wird die erste Fokuseinstellung in eine Tabelle von Fokuseinstellungen ausgegeben. Dies kann ein Erfassen eines Bildes unter Verwendung der ersten Fokuseinstellung und der Blendeneinstellung beinhalten. In einigen Beispielen kann das Ausgeben der ersten Fokuseinstellung ein Erzeugen einer Bilderfassungsanweisung, welche die erste Fokuseinstellung enthält, umfassen.
-
Bei 514 bestimmt der Prozess 500 einen nächsten Tiefenwert, so dass der nächste Tiefenwert größer ist als die vorherige Fokuseinstellung und so, dass eine Unschärfe, welche von den Pixeln beim nächsten Tiefenwert erfahren wird, innerhalb des Bereichs optimaler Unschärferadien ist in einem Bild, das erfasst wird unter Verwendung der Blendeneinstellung und einer Fokuseinstellung, die dem nächsten Tiefenwert entspricht. Wenn zum Beispiel die vorherige Fokuseinstellung (zum Beispiel die erste Fokuseinstellung) bei drei Meter war, ist der nächste Tiefenwert, der ausgewählt wird, größer als drei Meter.
-
Bei 516 wird bestimmt, ob der nächste Tiefenwert größer oder gleich dem maximalen Tiefenwert ist. In einigen Beispielen entspricht der maximale Tiefenwert dem Tiefenbereich, der aus der Tiefenbereichsinformation bestimmt wird. Falls ja, endet der Prozess 500 bei 518. Falls nicht schreitet der Prozess zu 520 fort, wo der Prozess 500 eine zusätzliche Fokuseinstellung bestimmt, so dass die zusätzliche Fokuseinstellung größer als der nächste Tiefenwert ist, und so, dass Unschärfe, welche von Pixeln bei dem nächsten Tiefenwert erfahren wird, innerhalb des Bereichs optimaler Unschärferadien ist in einem Bild, das erfasst wird unter Verwendung der Blendeneinstellung und der zusätzlichen Fokuseinstellung.
-
Bei 522 gibt der Prozess 500 die zusätzliche Fokuseinstellung aus. In einigen Beispielen beinhaltet dies ein Speichern der zusätzlichen Fokuseinstellung. In einigen Beispielen wird die zusätzliche Fokuseinstellung in eine Tabelle von Fokuseinstellungen ausgegeben. Dies kann ein Erfassen eines Bildes unter Verwendung der ersten Fokuseinstellung und der Blendeneinstellung beinhalten. In einigen Beispielen kann das Ausgeben der zusätzlichen Fokuseinstellung ein Erzeugen einer Bilderfassungsanweisung umfassen, welche die zusätzliche Fokuseinstellung beinhaltet. Nachdem die zusätzliche Fokuseinstellung bei 522 ausgegeben wurde, kehrt der Prozess zu 514 zurück und bestimmt einen nächsten Tiefenwert, so dass der nächste Tiefenwert größer als die vorherige Fokuseinstellung ist, und so, dass Unschärfe, welche von Pixeln bei dem nächsten Tiefenwert erfahren wird, innerhalb des Bereichs optimaler Unschärferadien ist in einem Bild, das erfasst wird unter Verwendung der Blendeneinstellung und einer Fokuseinstellung, die dem nächsten Tiefenwert entspricht.
-
Die folgende Diskussion beschreibt beispielhafte Aktionen und/oder Prozeduren, die unter Verwendung von hierin beschriebenen Techniken ausgeführt werden können, in Übereinstimmung mit zumindest einem Beispiel. 5 zeigt den Prozess 500, der beispielhafte Funktionen beinhaltet, die sich auf das Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten wie hierin beschrieben beziehen. Die Bildeigenschaftsfunktionseinheit 102 (1), sei es implementiert in einer der Benutzervorrichtungen 702(1) bis 702(N) (7) oder sei es implementiert innerhalb des Bildeditierdienst 704 (7), kann den Prozess 600 von 6 ausführen. In einigen Beispielen kann der gesamte Prozess 600 oder ein Teil davon berechnet werden unter Verwendung von Messwerten als Kehrwerten der Tiefe (das heißt, 1/Tiefe). In einigen Beispielen ist der Prozess 600 einfacher als der Prozess 500, da der Prozess 600 die minimale Anzahl an Bildern im Voraus bestimmt und die Schärfentiefen gleichmäßig über den Tiefenbereich verteilt.
-
Der Prozess 600 beginnt bei 602 durch Empfangen von Tiefenbereichsinformation. Die Tiefenbereichsinformation kann eine Entfernungsschätzung umfassen. Das Empfangen der Entfernungsschätzung kann ein Empfangen der Entfernungsschätzung beinhalten, die eine Schätzung des nächsten Objekts innerhalb einer Szene umfasst. In einigen Beispielen kann die Entfernungsschätzung eine mittlere Entfernung der Szene anzeigen. In einigen Beispielen kann die Entfernungsschätzung eine Entfernung eines Teils der Szene von einem Standpunkt umfassen. In einigen Beispielen kann die Tiefenbereichsinformation verwendet werden, um einen Tiefenbereich zu identifizieren. Zum Beispiel kann die Tiefenbereichsinformation eine minimale Tiefe anzeigen (zum Beispiel zwei Meter) und eine maximale Tiefe kann geschätzt werden. In einigen Beispielen zeigt die Tiefenbereichsinformation sowohl die minimale Tiefe als auch die maximale Tiefe an. Eine oder beide dieser Tiefen können von einem Benutzer eingegeben werden oder unter Verwendung von Vorrichtungen oder automatischer Verfahren gesammelt werden. In einigen Beispielen umfasst die Tiefenbereichsinformation eine Eingabe einer Zielanzahl an Bildern. Der Zielwert der Anzahl an Bildern kann die Anzahl an Bildern angeben, die der aufzunehmen Benutzer gewillt ist, oder die Anzahl an Bildern, welche die Kamera innerhalb einer bestimmten Zeitgrenze (zum Beispiel fünf Sekunden) aufnehmen kann. In einigen Beispielen berücksichtigt der Prozess 500 den Zielwert der Anzahl an Bildern, während er die Bilderfassungsanweisungen bestimmt, und passt die Ausgabe dementsprechend an. In einigen Beispielen kann dies in Tiefeninformation resultieren, welche den Bereich optimaler Unschärferadien überschreitet oder unterschreitet. In einigen Beispielen, wenn der Zielwert der Anzahl an Bildern die minimale Anzahl an Bildern überschreitet, kann es Überlappungen in den Schärfentiefen und/oder überschüssige Tiefeninformation geben. In einigen Beispielen, wenn der Zielwert der Anzahl an Bildern geringer ist als die minimale Anzahl an Bildern, kann es Lücken in den Schärfentiefen und/oder einen Mangel an Tiefeninformation geben.
-
Bei 604 identifiziert der Prozess 600 einen Bereich optimaler Unschärferadien für zu erfassende Bilder. In einigen Beispielen wird der Bereich optimaler Unschärferadien vor dem Ausführen des Prozesses 600 bestimmt. Zum Beispiel kann der Bereich optimaler Unschärferadien im Voraus berechnet und einem Computer bereitgestellt werden, welcher den Prozess 600 ausführt. In einigen Beispielen wird der Bereich optimaler Unschärferadien teilweise bestimmt durch Evaluieren eines Szenen-unabhängigen Teils einer Tiefendiskriminationsfunktion, die einen Szene-abhängigen Teil und den Szenen-unabhängigen Teil enthält. Der Szenen-unabhängige Teil ist unabhängig von der Szene, da er auf Kalibrierungsdaten für eine Digitalkamera beruht, die verwendet wurde, um die Bilder zu erfassen, und nicht auf der zugrunde liegenden Szene. In einigen Beispielen umfasst die Tiefendiskriminationsfunktion die Gleichung (3) wie hierin beschrieben. Die Tiefendiskriminierbarkeitsfunktion wird auf eine Weise evaluiert, welche den Szenen-unabhängigen Teil der Tiefendiskriminierbarkeitsfunktion maximiert. In einigen Beispielen wird der Bereich optimaler Unschärferadien berücksichtigt bei der Bestimmung der Bilderfassungsanweisungen, um sicherzustellen, dass genügend Tiefeninformation vorhanden sein wird, so dass eine Qualitäts-Tiefenkarte aus den erfassten Bildern erzeugt werden kann. Auf diese Weise werden die Bilderfassungsanweisungen auf eine Weise bestimmt, welche die Menge an Tiefeninformation maximiert, aber auch die Anzahl an zu erfassenden Bildern minimiert. In einigen Beispielen ist der Bereich optimaler Unschärferadien etwa 1 bis etwa 2 Pixel.
-
Bei 606 identifiziert der Prozess 600 eine Blendeneinstellung. In einigen Beispielen kann dieselbe Blendeneinstellung für zumindest zwei der Bilder verwendet werden, die zu erfassen sind. In einigen Beispielen ist die Blendeneinstellung eine der kleinsten zulässigen Blendeneinstellungen basierend auf den verfügbaren Blendeneinstellungen der Kamera. In einigen Beispielen wird die Blendeneinstellung optimal ausgewählt als Teil des Evaluierens des Szenen-unabhängigen Teils der Tiefendiskriminierbarkeitsfunktion. In einigen Beispielen kann die Blendeneinstellung größer als die kleinste zulässige Blende sein. In einigen Beispielen wird der Prozess 600 unter Verwendung unterschiedlicher Blendeneinstellungen bei 606 evaluiert. Auf diese Weise können die Fokuseinstellungen für unterschiedliche Blendeneinstellungen bestimmt werden.
-
Bei 608 bestimmt der Prozess 600 einen maximalen K-Wert basierend auf Kalibrierungsdaten für die Kamera. Der K-Wert zeigt die maximale Länge eines Intervalls in einem Tiefenbereich an. In einigen Beispielen wird der Tiefenbereich basierend auf der Tiefenbereichsinformation bestimmt. In einigen Beispielen beinhalten die Kamerakalibrierungsdaten den Bereich optimaler Unschärferadien und eine Linsenkonstante, α. Insbesondere kann der maximale K-Wert bestimmt werden durch Teilen der Länge des Tiefenbereichs durch den Bereich optimaler Unschärferadien geteilt durch die Linsenkonstante α. Die Linsenkonstante α repräsentiert einen Konversionsfaktor zwischen dem Kehrwert der Tiefe und dem Unschärferadius (zum Beispiel Unschärfe-Kerneln). Die Unschärfe-Kernel werden identifiziert aus einer Zuordnung von Kalibrierungseinstellungen (zum Beispiel Blende und Fokus) und Tiefe zu Unschärfe-Kerneln. Die Zuordnung wird abgeleitet aus einer Kalibrierung der Kamera. In diesem Beispiel basiert die Linsenkonstante α auf der Annahme, dass die Änderungsrate des Unschärferadius als eine Funktion des Kehrwerts der Tiefe annähernd konstant über den Tiefenbereich ist. In dem Beispiel des Modells der dicken Linse in Gleichung (12) repräsentiert die Linsenkonstante α das annähernd konstante Produkt C_f*D_f über den Tiefenbereich für die Parameter C_f und D_f der dicken Linse.
-
Bei 610 bestimmt der Prozess 600, basierend auf dem maximalen K-Wert, eine Anzahl an Intervallen innerhalb des Tiefenbereichs. Die Anzahl an Intervallen entspricht einer empfohlenen minimalen Anzahl an Bildern. In einigen Beispielen entspricht jedes Intervall einem Schärfentiefenintervall. Daher ist die Anzahl an Intervallen gleich der Anzahl an Schärfentiefen, welche den Tiefenbereich vollständig ausfüllen, ohne Lücken und ohne überlappende Schärfentiefen. In einigen Beispielen sind die Schärfentiefen über den Tiefenbereich hinweg gleichmäßig verteilt bzw. beabstandet. In einigen Beispielen entspricht die Anzahl an Intervallen der minimalen Anzahl an Bildern, weil ein Bild für jedes Intervall in dem Tiefenbereich designiert ist. Die Korrespondenz kann daher eine eins-zu-eins Korrespondenz sein. In einigen Beispielen gibt es mehr Intervalle als Bilder und umgekehrt.
-
Bei 612 bestimmt der Prozess 600, basierend auf der Anzahl an Intervallen, eine optimale Intervalllänge. In einigen Beispielen basiert optimale Intervalllänge auf der Anzahl der Menge der Intervalle. Auf diese Weise ist die optimale Intervalllänge jedes Intervalls die Gesamtlänge des Tiefenbereichs (zum Beispiel minimale Tiefe minus maximale Tiefe) geteilt durch die Anzahl an Intervallen.
-
Bei 614 bestimmt der Prozess 600, basierend auf der optimalen Länge jedes Intervalls, eine Fokuseinstellung für jedes Bild der minimalen Anzahl an Bildern. In einigen Beispielen entspricht die Fokuseinstellung für jedes Bild einer Fokusebene, die am Mittelpunkt jedes Intervalls der Menge angeordnet ist. In einigen Beispielen werden die bestimmten Fokuseinstellungen konvertiert oder anderweitig angepasst, um mit den Fokuseinstellungen übereinzustimmen, die auf der Kamera verfügbar sind. In einigen Beispielen werden die Fokuseinstellungen in der Form eines Datenfeldes ausgegeben, das eine Fokuseinstellung für jedes der minimalen Bilder enthält. In einigen Beispielen entspricht jedes Bild der minimalen Anzahl an Bildern der Blendeneinstellung. In einigen Beispielen ist die Blendeneinstellung dieselbe Blendeneinstellung für einen Teil der minimalen Anzahl an Bildern. In einigen Beispielen werden die Fokuseinstellung und Blendeneinstellung für jedes Bild der minimalen Anzahl an Bildern von der Kamera verwendet, um die minimale Anzahl an Bildern zu erfassen.
-
7 zeigt eine beispielhafte Architektur 700 zum Implementieren von Techniken, die sich auf Bestimmen von Bilderfassungsanweisungen zur Verwendung in der Erzeugung von Tiefenkarten wie hierin beschrieben beziehen. Die Architektur 700 beinhaltet eine oder mehrere Benutzervorrichtungen 702(1) bis 702(N) (hiernach: „die Benutzervorrichtung 702”) in Kommunikation mit einem Bildeditierdienst 704 über Netzwerk(e) 724 (hiernach: „das Netzwerk 724”). Das Netzwerk 724 beinhaltet ein beliebiges oder eine Kombination von vielen verschiedenen Typen von Netzwerken, wie Kabelnetze, das Internet, drahtlose Netzwerke, Mobilfunknetze, Funknetzwerken, und andere private und/oder öffentliche Netzwerke.
-
Die Benutzervorrichtung 702 umfasst jede geeignete Vorrichtung, die dazu fähig ist, ein Bild zu erfassen und/oder eine oder mehrere Operationen auf Bildern auszuführen. In einigen Beispielen ist die Benutzervorrichtung 702 jede geeignete Rechenvorrichtung wie zum Beispiel, ohne hierauf beschränkt zu sein, eine Digitalkamera, ein Mobiltelefon, ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Laptop-Computer, ein PC, ein Arbeitsplatzcomputer, eine Set-Top-Box, eine Thin-Client-Vorrichtung, oder eine andere Rechenvorrichtung. Die Benutzervorrichtung 702 wird von einem oder von mehreren Benutzern (nicht dargestellt) verwendet, um mit dem Bildeditierdienst 704 zu interagieren.
-
Die Benutzervorrichtung 702 enthält daher einen Prozessor 728, der kommunikativ mit einem Speicher 726 gekoppelt ist und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die in dem Speicher 726 gespeichert ist. In einigen Beispielen speichert der Speicher 726 eine Webdiensteanwendung 732 und eine oder mehrere Funktionseinheiten (zum Beispiel die Bildeigenschaftsfunktionseinheit 102, eine Tiefenerzeugungsfunktionseinheit 726(A), eine Tiefenverfeinerungsfunktionseinheit 728(A), eine Bildeditierfunktionseinheit 720(A)). Der Prozessor 728 umfasst einen Mikroprozessor, eine anwendungsspezifische integrierte Schaltung („ASIC”), einen Zustandsautomaten, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 728 kann auch jede beliebige Anzahl an Verarbeitungsvorrichtungen enthalten, einschließlich einer. Ein derartiger Prozessor kann ein computerlesbares Medium enthalten, oder mit einem solchen kommunikativ verbunden sein, das Anweisungen speichert, welche, wenn sie ausgeführt werden durch den Prozessor 728, den Prozessor dazu veranlassen, die hierin beschriebenen Operationen auszuführen. Die Webdiensteanwendung 732 kann es dem Benutzer ermöglichen, über das Netzwerk 724 mit dem Bildeditierdienst 704 zu interagieren. Die Benutzervorrichtung 702 umfasst auch eine Bilderfassungsvorrichtung 106(A). Die Bilderfassungsvorrichtung 106(A) ist konfiguriert, um ein Bild oder mehrere Bilder zu erfassen. In einigen Beispielen umfasst die Bilderfassungsvorrichtung 106(A) eine herkömmliche Digitalkamera, die eine Linse, eine Blendeneinstellung, eine Fokuseinstellung, einen Infrarotprojektor, und/oder eine Vorrichtung für strukturiertes Licht beinhaltet. Jede Verwendung von ”Digitalkamera” in diesem Dokument dient lediglich der Veranschaulichung, und ein Fachmann würde verstehen, dass ein solcher Begriff allgemein verwendet werden kann, um sich auf jede beliebige Bilderfassungsvorrichtung 106 zu beziehen, die ausgeführt wird durch oder integriert ist in eine beliebige der Benutzervorrichtungen 702(1) bis 702(N) oder irgendeine ähnliche Vorrichtung. Daher können die Begriffe „Digitalkamera” und „Benutzervorrichtung” hierin manchmal allgemein und austauschbar verwendet werden. In einigen Beispielen ist die Benutzervorrichtung 702(1) eine Digitalkamera und kann konfiguriert sein mit der Bilderfassungsvorrichtung 106(A), um Bilder zu erfassen, mag aber manche oder alle der Funktionseinheiten nicht enthalten. In diesem Beispiel werden der Benutzervorrichtung 702(1) (oder einem Bediener der Benutzervorrichtung 702(1)) Bilderfassungsanweisungen 108 geben, die zu verwenden sind beim Erfassen der Bilder 118 unter Verwendung der Bilderfassungsvorrichtung 106(A).
-
Der Bildeditierdienst 704 enthält einen Prozessor 706, der kommunikativ gekoppelt ist mit einem Speicher 708 und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die gespeichert ist in dem Speicher 708. In einigen Beispielen speichert der Speicher 708 ein Betriebssystem 712 und eine oder mehrere Funktionseinheiten (zum Beispiel Die Bildeigenschaftsfunktionseinheit 102, die Tiefenerzeugungsfunktionseinheit 726(B), die Tiefenverfeinerungsfunktionseinheit 728(B), und die Bildeditierfunktionseinheit 720(B)). Das Betriebssystem 712 umfasst jedes geeignete Betriebssystem, das konfiguriert ist, um mit dem Bildeditierdienst 704 zu interagieren. Der Prozessor 706 umfasst einen Mikroprozessor, einen ASIC, einen Zustandsautomaten, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 706 umfasst auch jede beliebige Anzahl an Verarbeitungsvorrichtungen, einschließlich einer. Ein derartiger Prozessor kann ein computerlesbares Medium enthalten, oder mit einem solchen kommunikativ verbunden sein, das Anweisungen speichert, welche, wenn sie ausgeführt werden durch den Prozessor 706, den Prozessor dazu veranlassen, die hierin beschriebenen Operationen auszuführen.
-
Der Speicher 708 umfasst jedes geeignete computerlesbare Medium. Das computerlesbare Medium kann jede elektronische, optische, magnetische oder andere Speichervorrichtung umfassen, die in der Lage ist, für einen Prozessor computerlesbaren Anweisungen oder anderem Programmcode bereitzustellen. Ein computerlesbares Medium kann zum Beispiel eine magnetische Platte, einen Speicherchip, ROM, RAM, einen ASIC, einen konfigurierten Prozessor, einen optischen Speicher, ein Magnetband oder einen anderen magnetischen Speicher umfassen, oder jedes andere Medium, von dem ein Computerprozessor Anweisungen auslesen kann. Die Anweisungen können Prozessor-spezifische Anweisungen umfassen, die bestimmt werden durch einen Compiler und/oder einen Interpreter aus Code, der geschrieben ist in einer beliebigen geeigneten Computerprogrammiersprache, einschließlich zum Beispiel C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, und ActionScript.
-
Der Bildeditierdienst 704 beinhaltet auch eine Anzahl externer oder interner Vorrichtungen, wie Eingabe- oder Ausgabevorrichtungen. Zum Beispiel beinhaltet der Bildeditierdienst 704 Eingabe-/Ausgabe-(I/O)Vorrichtung(en) und/oder Anschlüsse 714, wie etwa um eine Verbindung zu ermöglichen mit einer Tastatur, einer Maus, einem Stift, einer Spracheingabevorrichtung, einer Berührungseingabevorrichtung, einer Anzeige, Lautsprechern, einem Drucker oder einer anderen Eingabe-/Ausgabevorrichtung. Der Bildeditierdienst 704 beinhaltet auch einen zusätzlichen Speicher 716, der einen entfernbaren Speicher und/oder einen nicht entfernbaren Speicher umfassen kann. Der zusätzliche Speicher 716 kann einen magnetischen Speicher, optische Platten und/oder Bandspeicher umfassen, ist aber nicht auf diese beschränkt. Die Plattenlaufwerke und deren assoziierte computerlesbare Medien können einen nichtflüchtigen Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programmodule und andere Daten bereitstellen. Der Bildeditierdienst 704 beinhaltet auch eine Benutzerschnittstelle 718. Die Benutzerschnittstelle 718 wird von einem Bediener, oder einem anderen autorisierten Benutzer, verwendet, um auf Teile des Bildeditierdiensts 704 zuzugreifen. In einigen Beispielen beinhaltet die Benutzerschnittstelle 718 eine graphische Benutzerschnittstelle, Webbasierte Anwendungen, Programmschnittstellen wie Anwendungsprogrammierschnittstellen (APIs) oder andere Benutzerschnittstellenkonfigurationen. Der Bildeditierdienst 704 beinhaltet auch einen Datenspeicher 720. Der Datenspeicher 720 umfasst Datenstrukturen zum Speichern von Information, die sich auf die Implementierung der hierin beschriebenen Techniken bezieht. Derartige Information wird gespeichert in einer Bilddatenbank 722. In der Bilddatenbank 722 werden eingegebene Bilder, Tiefenkarten, und andere ähnliche Bilder und Karten gespeichert, zusammen mit ihren zugeordneten Informationen.
-
Die Tiefenerzeugungsfunktionseinheiten 726(A), 726(B) sind konfiguriert, Tiefenkarten zu erzeugen basierend auf reine Mehrzahl der Bilder 118, die von der Bilderfassungsvorrichtung 106 erfasst wurden, oder die von einer anderen Bilderfassungsvorrichtung erfasst und einer der Benutzervorrichtungen 702(1) bis 702(N) oder dem Bildeditierdienst 704 bereitgestellt wurden. In einigen Beispielen führen die Tiefenerzeugungsfunktionseinheiten 726(A), 726(B) eine oder mehrere Operationen aus, um Tiefenkarten zu erzeugen, in Übereinstimmung mit Techniken, die beschrieben sind in der US Anmeldung Anmeldenummer 14/552,332, eingereicht am 24. November 2014, die hiermit in Gänze durch Bezugnahme mitaufgenommen wird. Zum Beispiel können, wie in größerem Detail in der US Anmeldung Anmeldenummer 14/552,332 beschrieben, die Tiefenerzeugungsfunktionseinheiten 726(A), 726(B) Tiefenkarten, Alles-im-Fokus Bilder, und Unsicherheitsmaße erzeugen. Der Gegenstand der US Anmeldung Anmeldenummer 14/552,332 ist beschrieben in Anhang 1 der vorliegenden Anmeldung.
-
Die Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B) sind konfiguriert, zuvor erzeugte Tiefenkarten zu verfeinern. In einigen Beispielen führen die Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B) eine oder mehrere Verfeinerungsoperationen aus mit Bezug auf eine Tiefenkarte, die von einer der Tiefenerzeugungsfunktionseinheiten 726(A), 726(B) erzeugt wurden. Derartige Verfeinerungsoperationen dienen dazu, die Tiefenkarte zu verbessern. In einigen Beispielen beinhaltet das Verbessern der Tiefenkarte, eine Wahrscheinlichkeit zu erhöhen, dass die Tiefen innerhalb der Tiefenkarte tatsächlich die korrekten Tiefen sind. In einigen Beispielen kann das Verbessern der Tiefenkarte ein Identifizieren beinhalten, durch eine der Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B), von einer Anzahl an zusätzlichen zu erfassenden Bildern und von Konfigurationseinstellungen, die zu verwenden sind, wenn die Anzahl an zusätzlichen Bildern erfasst wird. In einigen Beispielen führen die Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B) eine oder mehrere Operationen aus, um Tiefenkarten zu verfeinern, in Übereinstimmung mit Techniken, die beschrieben sind in der US Anmeldung Anmeldenummer 14/576,936, eingereicht am 12/19/2014, die hiermit durch Bezugnahme in Gänze miteinbezogen wird. Zum Beispiel schätzen, wie in größerem Detail in der US Anmeldung Anmeldenummer 14/576,936 beschrieben, die Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B), wie viele weitere Bilder aufzunehmen sind, und welche Blendeneinstellungen und Fokuseinstellungen verwendet werden sollten, um ausreichend Tiefeninformation zu besitzen, um eine bestimmte Tiefenkarte zu verfeinern. Zum Beispiel können die Tiefenverfeinerungsfunktionseinheiten 728(A), 728(B) eine anfängliche Tiefenkarte, ein Alles-im-Fokus Bild und ein Unsicherheitsmaß als Eingabe verwenden. Basierend auf diesen dreien wird eine Empfehlung gegeben, wie viele zusätzliche Bilder erfasst werden sollten, und welche Blendeneinstellungen und Fokuseinstellung verwendet werden sollten, so dass die anfängliche Tiefenkarte um ein Verbesserungskriterium verbessert werden kann. Der Gegenstand der US Anmeldung Anmeldenummer 14/576,936 ist beschrieben in Anhang 2 der vorliegenden Anmeldung.
-
Die Bildeditierfunktionseinheiten 730(A), 730(B) sind konfiguriert, eine oder mehrere Operationen auszuführen, die sich auf das Editieren von Bildern beziehen. Zum Beispiel wird, nachdem die Bilder 118 in Übereinstimmung mit den Bilderfassungsanweisungen 108 erfasst wurden, und eine Tiefenkarte erzeugt (und optional verfeinert) wurde, eine der Bildeditierfunktionseinheiten 730(A), 730(B) verwendet, um ein Bild zu editieren, das der Tiefenkarte entspricht. Wie zuvor bemerkt, kann die Tiefenkarte als eine separate Datei gespeichert werden, die mit dem Bild assoziiert ist, oder kann als Daten oder Metadaten innerhalb der Bilddatei enthalten sein.
-
Allgemeine Hinweise
-
Zahlreiche spezifische Details werden hierin dargelegt, um ein tiefgreifendes Verständnis des beanspruchten Gegenstandes zu verschaffen. Die Fachleute werden jedoch verstehen, dass der beanspruchte Gegenstand ohne diese spezifischen Details ausgeübt werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, welche den Fachleuten bekannt wären, nicht im Detail beschrieben, um den beanspruchten Gegenstand nicht zu verdunkeln.
-
Es wird verstanden werden, dass, solange nicht ausdrücklich anderweitig angegeben, in diesem Dokument Ausführungen, welche Begriffe verwenden wie etwa „verarbeiten,” „berechnen,” „bestimmen,” und „identifizieren” oder ähnliches, sich auf Aktionen oder Prozesse einer Rechenvorrichtung beziehen, wie einem oder mehreren Computer oder einer ähnlichen elektronischen Rechnervorrichtung oder -vorrichtungen, welche Daten manipulieren oder transformieren, die als physische elektronische oder magnetische Quantitäten repräsentiert sind innerhalb Speichern, Registern oder anderen Informationsspeichereinheiten, Übertragungsvorrichtungen oder Anzeigevorrichtungen der Rechnerplattform.
-
Das System oder die Systeme, welche hierin diskutiert sind, sind nicht auf eine bestimmte Hardwarearchitektur oder Konfiguration beschränkt. Eine Rechenvorrichtung kann jede geeignete Anordnung von Komponenten beinhalten, welche ein Ergebnis bereitstellt, das von einer oder mehreren Eingaben abhängt. Geeignete Rechnervorrichtungen beinhalten Mikroprozessor-basierte Computersysteme, die vielfältig einsetzbar sind, welche auf Software zugreifen, welche das Rechnersystem von einer Allzweck-Rechnervorrichtung zu einer spezialisierten Rechnervorrichtung programmiert oder konfiguriert, die eine oder mehrere Ausführungsformen des vorliegenden Gegenstands implementiert. Jede geeignete Programmiersprache, Skriptsprache oder andere Art von Sprache, oder Kombination von Sprachen, kann verwendet werden, um die hierin enthaltenen Lehren in Software zu implementieren, die dazu verwendet wird, eine Rechnervorrichtung zu programmieren oder zu konfigurieren.
-
Ausführungsformen der hierin offenbarten Verfahren können beim Betrieb solcher Rechnervorrichtungen ausgeführt werden. Die Reihenfolge der Blöcke, die in den vorstehenden Beispielen dargestellt wurden, kann variiert werden – zum Beispiel können Blöcke umgeordnet, kombiniert und/oder in Unterblöcke unterteilt werden. Bestimmte Blöcke oder Prozesse können parallel ausgeführt werden.
-
Wenn hierin „eingerichtet zum” oder „konfiguriert zum” verwendet wird, ist dies als offene und inklusive Sprache gedacht, die keine Vorrichtungen ausschließt, die dazu angepasst sind, zusätzliche Aufgaben oder Schritte auszuführen. Darüber hinaus ist die Verwendung von „basierend auf” als offen und inklusiv gedacht, in dem Sinn, dass ein Prozess, ein Schritt, eine Berechnung oder eine andere Aktion „basierend auf” einer oder mehreren genannten Bedingungen oder Werten in der Praxisüber die genannten hinaus auf weiteren Bedingungen oder Werten basieren kann. Überschriften, Listen und Nummerierungen, die hierin enthalten sind, dienen lediglich der Einfachheit der Erläuterung und sind nicht als beschränkend gedacht.
-
Während der vorliegende Gegenstand im Detail mit Bezug auf spezifische Ausführungsformen desselben beschrieben wurde, wird es verstanden werden, dass die Fachleute, basierend auf einem Verständnis des Vorstehenden, leicht Abwandlungen, Variationen und Aquivalente zu solchen Ausführungsformen schaffen können. Dementsprechend wird verstanden werden, dass die vorliegende Offenbarung allein Beispielhaft und nicht als Beschränkung gegeben wurde, und dass diese nicht die Einbeziehung solcher Modifikationen, Variationen und/oder Hinzufügungen zu dem vorliegenden Gegenstand ausschließt, wie sie den Fachleuten ersichtlich sein werden.
-
ANHANG 1
-
Erzeugung von Tiefenkarten
-
Anhang 1 beschreibt im Detail den Gegenstand der US Anmeldung Anmeldenummer 14/552,332, der hilfreich für das Verständnis der vorliegenden Anmeldung ist, und der ein integraler Bestandteil der Offenbarung der vorliegenden Anmeldung ist.
-
Bezugszeichen, die im Anhang 1 verwendet werden, beziehen sich nur auf die 8 bis 13. Die Bezugszeichen sind nicht mit den Bezugszeichen zu verwechseln, die in anderen Abschnitten der vorliegenden Anmeldung verwendet werden, wie in den 1 bis 7 oder den 14 bis 19 und den diesbezüglichen Abschnitten der Beschreibung.
-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren und Systeme zum Schätzen von Tiefe innerhalb digitaler Bilder und bezieht sich genauer auf Schätzen von Tiefe innerhalb digitaler Bilder, die mit Hilfe einer herkömmlichen Digitalkamera erfasst wurden.
-
Urheberrechtsvermerk
-
Ein Teil der Offenbarung dieses Patentdokuments enthält Material, welches urheberrechtlichem Schutz unterliegt. Der Inhaber der Verwertungsrechte hat keine Einwände gegen die originalgetreue Wiedergabe durch jedermann des Patentdokuments oder der Patentoffenbarung, wie es bzw. wie sie in der Patentakte oder den Aufzeichnungen des Patent- und Markenamtes erscheint, behält sich aber alle anderen Verwertungsrechte jeder Art vor.
-
Hintergrund
-
Digitalkameras, einschließlich digitaler Spiegelreflexkameras (DSLR) und Digitalkameras, die in Mobilgeräte integriert sind, haben oftmals hochentwickelte Hardware und Software, die es einem Benutzer ermöglicht, digitale Bilder zu erfassen unter Verwendung einer Kombination unterschiedlicher benutzerdefinierter und kameradefinierter Konfigurationseinstellungen. Ein digitales Bild stellt eine digitale Repräsentation einer bestimmten Szene bereit. Ein digitales Bild kann im Nachgang bearbeitet werden, für sich allein oder in Kombination mit anderen Bildern, um aus dem Bild zusätzliche Information abzuleiten. Zum Beispiel kann ein oder können mehrere Bilder verarbeitet werden, um die Tiefe der Objekte zu schätzen, die innerhalb der Szene dargestellt sind, das heißt, die Entfernung jedes Objekts von einem Ort, an dem die Aufnahme aufgenommen wurde. Die Tiefenschätzungen für jedes Objekt in einer Szene, oder möglicher Weise jedes Pixel innerhalb eines Bildes, sind in einer Datei enthalten, die als eine „Tiefenkarte” bezeichnet wird. Unter anderem können Tiefenkarten verwendet werden, um bestehende Bildeditiertechniken (zum Beispiel Schneiden, Füllen von Löchern, Kopieren in Schichten eines Bildes und so weiter) zu verbessern.
-
Herkömmliche Techniken der Tiefenschätzung beinhalten Rechenmodelle, die auf „Vor-Bilder” angewiesen sind, um die Tiefenkarten-Erzeugung zu leiten. Ein „Vor-Bild” bzw. „image prior” ist ein statistisches Modell, das verwendet wird, um bestimmten Annahmen über den Inhalt oder die Eigenschaften einer Szene Rechnung zu tragen, und wird verwendet, um Tiefenzweideutigkeit aufzulösen, die auftreten kann, wenn ein Bild analysiert wird. Zum Beispiel kann ein Vor-Bild entworfen werden basierend auf der Annahme, dass sich die Tiefe sich über ein Alles-im-Fokus-Bild glatt bzw. gleichmäßig ändert, mit Ausnahme der Stellen, an denen es eine Diskontinuität der Tiefe gibt (zum Beispiel an der Kante oder an dem Umriss eines Objekts innerhalb der Szene). Im Bildbereich kann diese Art von Vor-Bild ausgedrückt werden in Begriffen einer erwarteten Gradientenverteilung über ein Bild. Im Fourier Bereich kann ein vergleichbares Vor-Bild so definiert werden, dass der Betrag an Energie an einer bestimmten jeweiligen Frequenz proportional ist zu dieser Frequenz, potenziert mit einem Exponenten. Die Verwendung eines solchen Typs von Vor-Bild in der Tiefenschätzung kann in einigen Fällen zu guten Ergebnissen führen, wird dabei aber versagen, wenn Diskontinuitäten der Tiefe zwischen Vordergrundobjekten und Hintergrundobjekten nicht innerhalb der Bilddaten eingefangen werden. Die Verwendung generischer Vor-Bilder bei der Tiefenkarten-Erzeugung führt daher zu unpräzisen Tiefenschätzungen, da die zugrunde liegenden Annahmen auf Verallgemeinerungen basieren und nicht notwendiger Weise für alle Bilder zutreffen (zum Beispiel wird die tatsächliche Textur aller Szenen nicht gut übereinstimmen mit dem definierten Vor-Bild).
-
Einige herkömmliche Techniken zum Schätzen von Tiefe innerhalb eines digitalen Bildes erfordern auch die Eingabe von Trainingsdaten, genommen von einem oder von mehreren Bildern unterschiedlicher Szenen, um akkurat eine Tiefenkarte zu erzeugen. Einige Techniken erfordern, dass das Bild, für das die Tiefenkarte erzeugt werden soll, mit einer vordefinierten Blendeneinstellung und einer vordefinierten Fokuseinstellung erfasst wird. Andere Techniken beinhalten einen Vergleich der Eigenschaften mehrerer Bilder, welche von derselben Szene aufgenommen wurden, und können erfordern, dass die mehreren Bilder in einer bestimmten Reihenfolge oder in Übereinstimmung mit vorbestimmten Kombinationen von Blende, Fokus und/oder anderen Kamerakonfigurationseinstellungen erfasst werden. Einige Modelle erfordern auch eine dichte Menge von Bildern, die in Übereinstimmung mit einer vordefinierten Kombination von Einstellungen der Blende, des Fokus und/oder anderer Konfigurationseinstellungen zu erfassen sind, oder mit einer zufällig ausgewählten Kombination von Einstellungen der Blende, des Fokus und/oder anderer Konfigurationseinstellungen.
-
Herkömmliche Techniken der Tiefenschätzung, welche Eigenschaften mehrerer Bilder vergleichen, welche von derselben Szene aufgenommen wurden, vergleichen im Allgemeinen Bildflicken mit „Unschärfe-Kerneln”, um die Tiefe der Bildflicken zu schätzen. Ein Unschärfe-Kernel ist eine Approximation von Außer-Fokus-Unschärfe innerhalb eines Bildes. Herkömmliche Modelle tendieren jedoch oftmals dazu, Unschärfe-Kernel mit größeren Unschärfewerten auszuwählen, insbesondere wenn innerhalb des Bildflickens Rauschen vorhanden ist (das heißt, Information, die von dem Modell nicht berücksichtigt wird). Wenn Unschärfe-Kernel ausgewählt werden, die keine enge Approximation der Unschärfe des Bildflickens darstellen, wird dies zu unpräzisen Tiefenschätzungen führen.
-
Die gegenwärtigen Techniken der Tiefenschätzung können daher unpräzise, ressourcenintensiv, zeitintensiv, kompliziert und unvorhersehbar sein. Dementsprechend ist es wünschenswert, verbesserte Lösungen zum Schätzen der Entfernung von Objekten innerhalb von Bildern, die mit herkömmlichen Digitalkameras aufgenommen wurden, bereitzustellen.
-
Zusammenfassung
-
Es werden Systeme und Verfahren zum Erzeugen von Tiefenkarten aus einer Mehrzahl von Bildern bereitgestellt, die mit Hilfe einer herkömmlichen Digitalkamera erfasst wurden. Die hierin beschriebenen Techniken der Tiefenschätzung beinhalten ein Rechenmodell, das auf einem flachen Vor-Bild (auch als ein „flat prior” bezeichnet) basiert. Die Verwendung eines flachen Vor-Bilds bedeutet tatsächlich, dass keine vorherigen Annahmen über den Inhalt oder die Eigenschaften der Szene getroffen werden. Ein flaches Vor-Bild wird in das Rechenmodell inkorporiert, indem der Beitrag eines Alles-im-Fokus Bildes (das heißt, wie das Bild aussehen würde, wenn es in Gänze im Fokus wäre), das in herkömmlichen Rechenmodellen enthalten ist, ausgeklammert oder marginalisiert wird.
-
Ohne vorherige Annahmen darüber, wie die Szene aussehen sollte, berechnen die hierin beschriebenen Techniken der Tiefenschätzung iterativ eine Tiefenwahrscheinlichkeit für einen Bildflicken über einen diskreten Bereich von Tiefenhypothesen (das heißt, möglichen Tiefen). Nachdem alle Tiefenhypothesen evaluiert wurden, wird die Tiefenhypothese, welche die größte Tiefenwahrscheinlichkeit ergibt, als die geschätzte Tiefe des Bildflickens ausgewählt. Das Evaluieren der Tiefenwahrscheinlichkeit unter Verwendung eines flachen Vor-Bilds wie hierin beschrieben liefert eine verbesserte Präzision, da die Tiefen-Likelihood-Funktion darauf beruht, wie die in den Bilddaten repräsentierte Szene tatsächlich aussieht, anstatt auf Annahmen darüber zu beruhen, wie die Szene aussehen sollte. Die iterative Evaluierung wird für alle Bildflicken des Bildes wiederholt, bis eine vollständige Tiefenkarte für das Bild erzeugt ist. Auf diese Weise wird die Tiefe jedes Bildflickens unabhängig von allen anderen Bildflicken desselben Bildes evaluiert. Als ein Ergebnis ist die Tiefenschätzung für jeden gegebenen Bildflicken präziser, wenn verglichen mit herkömmlichen Techniken, da sie nicht durch dessen umgebende Bildflicken beeinflusst wird.
-
Die hierin beschriebenen Techniken der Tiefenschätzung beinhalten auch Normalisierungsverfahren, die verwendet werden, um Faktoren wie Rauschen zu berücksichtigen, die eine Tendenz zu Unschärfe-Kerneln mit größeren Unschärfewerten erzeugen könnten. Dies führt zu einem robusteren Verfahren, um akkurate Schätzungen der Tiefe zu finden, selbst in der Gegenwart von Rauschen. Die hierin beschriebenen Techniken der Tiefenschätzung können auch angepasst werden, um Veränderungen von Beleuchtungsbedingungen und Szenendynamiken zu berücksichtigen. Solche Techniken ermöglichen die Erzeugung präziserer Tiefenschätzungen in Tiefenkarten.
-
Die hierin beschriebenen Techniken der Tiefenschätzung basieren auf Kalibrierungsdaten für die Digitalkamera, die verwendet wird, um die Bilder zu erfassen. Die Kalibrierungsdaten werden verwendet, um eine Zuordnung von Kalibrierungseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) zu Unschärfe-Kerneln zu bestimmen. Unschärfe-Kernel repräsentieren eine Approximation von Unschärfe in einem Bild. Insbesondere evaluieren die hierin beschriebenen Techniken der Tiefenschätzung iterativ die Tiefe eines Bildflickens über eine diskrete Menge von Tiefenhypothesen unter Verwendung von entsprechenden Unschärfe-Kerneln, die durch die Kalibrierungs-basierte Zuordnung bestimmt werden.
-
Die hierin beschriebenen Techniken der Tiefenschätzung werden verwendet, um Mengen von Bildern zu analysieren, die von dem selben Standpunkt aus unter Verwendung unterschiedlicher Kamerakonfigurationseinstellungen erfasst wurden, wie einer Blendeneinstellung und einer Fokuseinstellung, die durch den Bediener willkürlich ausgewählt sein mögen. Der Prozess des Erfassens der Bilder ist daher keinen Beschränkungen unterworfen, indem kein Muster oder keine Kombination von Bildern oder Kamerakonfigurationseinstellungen erforderlich ist. Ein Minimum von zwei solchen Bildern wird gemäß den hierin beschriebenen Techniken der Tiefenschätzung verarbeitet, um eine Tiefenkarte zu erzeugen, die eine größere Präzision bietet als sie durch die herkömmlichen Techniken geboten wird.
-
Diese illustrativen Beispiele werden nicht angegeben, um die Offenbarung zu beschränken oder zu definieren, sondern um Beispiele zu geben, welche dem Verständnis derselben dienlich sind. Zusätzliche Beispiele werden in der detaillierten Beschreibung angegeben und diskutiert, und eine nähere Beschreibung ist dort gegeben.
-
Kurze Beschreibung der Figuren
-
Die Akte des Patents oder der Anmeldung umfasst zumindest eine Zeichnung, die farbig ausgeführt ist. Kopien der Veröffentlichungsschrift dieses Patents oder der Patentanmeldung mit farbigen Zeichnungen werden auf Anforderung durch das Amt und gegen Entrichtung einer gegebenenfalls notwendigen Gebühr bereitgestellt.
-
Diese und andere oben beschriebenen Merkmale, Beispiele und Vorteile der vorliegenden Offenbarung werden besser verstanden werden beim Lesen der folgenden detaillierten Beschreibung mit Bezug auf die beigefügten Zeichnungen, in denen:
-
8 ein Blockdiagramm ist, das ein Beispiel einer Tiefenerzeugungsfunktionseinheit zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt;
-
9 ein Diagramm ist, das eine beispielhafte Umgebung zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt;
-
10 ein Diagramm ist, das eine beispielhafte Implementierung bestimmter Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt;
-
11 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt;
-
12 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt; und
-
13 ein Diagramm ist, das eine beispielhafte Netzwerkumgebung zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder beziehen, gemäß zumindest einer Ausführungsform zeigt.
-
Detaillierte Beschreibung
-
Es werde computerimplementierte Systeme und Verfahren zum Schätzen von Tiefe innerhalb von digitalen Bildern offenbart. Insbesondere wird eine Tiefenkarte aus einer Mehrzahl von Bildern erzeugt, die mit einer herkömmlichen Digitalkamera erfasst wurden, wie einer digitalen Spiegelreflexkamera, einer Digitalkamera, die in eine mobile Rechenvorrichtung integriert ist, oder irgendeiner anderen Digitalkamera oder Abbildungsvorrichtung. Es werden mindestens zwei Bilder aufgenommen von im Wesentlichen demselben Standort, aber diese unterscheiden sich voneinander, da sie mit unterschiedlichen Kombinationen von Blendeneinstellungen und Fokuseinstellungen aufgenommen werden. In einigen Beispielen können die Blendeneinstellungen und Fokuseinstellungen durch den Bediener willkürlich ausgewählt werden, wie beschrieben werden wird. Die Differenzen im Niveau der Unschärfe über die Bilder hinweg, die von der unterschiedlichen Kombination von Blenden- und Fokuseinstellungen verursacht werden, werden analysiert, um die Tiefenkarte zu bestimmen.
-
Die erfinderischen Techniken der Techniken der Tiefenschätzung beinhalten eine Tiefen-Likelihood-Funktion, die verwendet wird, um die Tiefe eines Bildflickens unter Verwendung von Unschärfe-Kerneln zu analysieren. Die Unschärfe-Kernel für ein partikuläres Bild werden aus einer Zuordnung von Kalibrierungseinstellungen (zum Beispiel Blende und Fokus) und Tiefe zu Unschärfe-Kerneln identifiziert. Die Zuordnung wird abgeleitet aus einer Kalibrierung der partikulären Kamera, die verwendet wurde, um das zu analysierende Bild zu erfassen. Die Unschärfe-Kernel sind eine Approximation von Unschärfe innerhalb des Bildes. Die Tiefen-Likelihood-Funktion verwendet Unschärfe-Kernel, um entsprechende Bildflicken aus der Menge von eingegebenen Bildern unter Verwendung eines flachen Vor-Bilds im Frequenzbereich zu analysieren, was bedeutet, dass der Beitrag eines Alles-im-Fokus Bildes effektiv ausgeklammert wird, indem eine Varianz des Frequenzinhalts von unendlich angenommen wird. Diese Likelihood-Funktion erlaubt daher, dass die Tiefen von Bildflicken geschätzt werden, ohne ein Alles-im-Fokus Bild zu berücksichtigen, ohne auf bestimmte Annahmen über andere ähnliche Szenen, die aus Trainingsdaten abgeleitet werden, angewiesen zu sein, und ohne Berücksichtigung, wie die Tiefe der Szene räumlich variiert.
-
Für einen gegebenen Bildflicken wird die Tiefen-Likelihood-Funktion iterativ über einen diskreten Bereich von Tiefenhypothesen (das heißt, mögliche Tiefen) evaluiert, um eine Tiefenwahrscheinlichkeit für den Bildflicken zu bestimmen. Wie hierin verwendet, bezieht sich „iteratives” Evaluieren auf ein sequentielles Evaluieren und/oder ein paralleles Evaluieren. Die Tiefenhypothese, welche die größte Tiefenwahrscheinlichkeit liefert, wird bestimmt, die geschätzte Tiefe für den Bildflicken zu sein. Beim Evaluieren jedes Bildflickens eines ersten Bildes wird ein entsprechender Bildflicken eines zweiten Bildes identifiziert. Als Teil der Evaluierung wird der Unschärfe-Kernel für das erste Bild mit dem Bildflicken aus dem zweiten Bild gefaltet, und der Unschärfe-Kernel für das zweite Bild wird mit einem entsprechenden Bildflicken aus dem ersten Bild gefaltet. Das Ergebnis der Evaluierung ist eine Tiefenwahrscheinlichkeit aus dem Bildflicken. Die Tiefen-Likelihood-Funktion wird verwendet, um alle entsprechenden Bildflicken innerhalb der eingegebenen Bilder zu evaluieren, bis eine Tiefenschätzung für jedes entsprechende Pixel jedes Bildes bestimmt wurde. Da die Tiefen-Likelihood-Funktion verwendet wird, um Tiefenhypothesen für jeden Bildflicken unabhängig von anderen Bildflicken zu evaluieren, wird die Tiefenschätzung für einen betreffenden Bildflicken nicht durch die diesen umgebenden Bildflicken beeinflusst.
-
Die hierin beschriebenen Techniken der Tiefenschätzung beinhalten einen Normalisierungsschritt, der verwendet wird, um Faktoren Rechnung zu tragen, die eine Tendenz hin zu Unschärfe-Kerneln mit großen Unschärfe-Werten erzeugen könnten. Ein allgegenwärtiger Faktor ist Rauschen und der Einfluss von Rauschen auf die Auswahl von Unschärfe-Kerneln wird durch das Normalisieren vermindert. Dies macht es möglich, dass die Tiefen-Likelihood-Funktion unter Verwendung von Unschärfe-Kerneln mit Tiefenwerten evaluiert wird, die am geeignetsten sind für die Tiefenhypothesen für einen partikulären Flicken. Dies führt zu einem robusteren Verfahren, um akkurate Schätzungen der Tiefe zu finden, selbst wenn Rauschen vorhanden ist.
-
Die hierin beschriebenen Techniken der Tiefenschätzung können auch angepasst werden, um Veränderungen von Beleuchtungsbedingungen und Änderungen in Szenedynamik über mehrere entsprechende Bilder hinweg zu berücksichtigen. Diese Änderungen können berücksichtigt werden, indem ein Bias und eine Verstärkung eines zweiten Bildflickens angepasst werden im Vergleich zu einem ersten Bildflicken. Dies kann erreicht werden, indem Veränderungen von Beleuchtungsbedingungen als eine lokale Kontraständerung und als ein Helligkeitsoffset für den geänderten Bildflicken modelliert werden. Die Tiefen-Likelihood-Funktion kann dann angepasst werden, um derart modellierte Veränderungen von Beleuchtungsbedingungen miteinzubeziehen. Auf eine ähnliche Weise können Bewegungen von Objekten innerhalb einer Szene berücksichtigt werden, indem eine Technik des optischen Flusses verwendet wird, um eine neue Stelle von Pixeln in einem zweiten Bild zu schätzen im Vergleich mit einer Stelle der entsprechenden Pixel in einem ersten Bild. Derartige Techniken beinhalten auch ein Transformieren von Bildflicken in den Fourier Bereich, in dem diese als eine Menge von Frequenzen und Phasen repräsentiert werden, und ein Vergleichen der Beträge aller Bildflicken, während die Phasen ignoriert werden. Derartige Techniken ermöglichen präzisere Tiefenschätzungen in Tiefenkarten. In einigen Beispielen können sowohl eine Technik des optischen Flusses als auch eine Technik im Fourier Bereich zusammen verwendet werden, um Bewegungen von Objekten innerhalb einer Szene zu berücksichtigen. Die Technik des optischen Flusses kann vor dem Evaluieren der Tiefen-Likelihood-Funktion ausgeführt werden, und die Technik im Fourier Bereich kann als Teil des Evaluierens der Tiefen-Likelihood-Funktion ausgeführt werden.
-
In einem Beispiel wird ein erstes Bild einer Szene mit einer Digitalkamera aufgenommen, die eine erste Konfigurationseinstellung hat. Die Konfigurationseinstellung beinhaltet eine Fokuseinstellung und eine Blendeneinstellung. Als nächstes wird ein zweites Bild der Szene von demselben Standpunkt aus aufgenommen, wobei die Digitalkamera eine zweite Konfigurationseinstellung hat. Die zweite Konfigurationseinstellung unterscheidet sich in wenigstens einer Beziehung (zum Beispiel der Fokuseinstellung und/oder der Blendeneinstellung) im Vergleich zur ersten Konfigurationseinstellung. In einigen Beispielen wählt der Benutzer die Konfigurationseinstellungen willkürlich, zufällig oder systematisch aus. In anderen Beispielen ist die Digitalkamera konfiguriert, dem Benutzer bevorzugte oder vorgeschlagene Konfigurationseinstellungen anzuzeigen, die vorbestimmt sein können (zum Beispiel für alle Szenen oder für bestimmte Arten von Szenen) oder die in Echtzeit bestimmt werden können, indem die abzubildende Szene analysiert wird. In einigen Beispielen ist die Digitalkamera konfiguriert, die Konfigurationseinstellungen für das erste Bild und das zweite Bild willkürlich, zufällig oder systematisch zu bestimmen oder vorzubestimmen, und kann auch programmatisch das erste Bild aufnehmen, die Konfigurationseinstellungen ändern und dann das zweite Bild aufnehmen. In einigen Beispielen erhält der Benutzer die Konfigurationseinstellungen und der Benutzer passt die Einstellungen der Digitalkamera in Übereinstimmung mit den Konfigurationseinstellungen an und erfasst das erste Bild und das zweite Bild. Das zweite Bild wird von ungefähr demselben Standpunkt aus aufgenommen wie das erste Bild. Die Bilddateien, die dem ersten Bild und dem zweiten Bild entsprechen, werden dann in Übereinstimmung mit hierin beschriebenen Techniken analysiert. Diese Analyse kann durch eine geeignet ausgestattet und konfigurierte Kamera ausgeführt werden, oder die Bilddateien können zu einer Rechenvorrichtung transferiert werden, die konfiguriert ist, die Analyse auszuführen.
-
Eine Tiefenkarte, die unter Verwendung der hierin beschriebenen Techniken der Tiefenschätzung erzeugt wurde, beinhaltet Tiefeninformation, welche die Entfernung von Objekten in einer Szene von der Digitalkamera repräsentiert (das heißt, einem Ort in der realen Welt, von dem aus die Aufnahmen aufgenommen wurden). Entfernungwerte für Pixel der Tiefenkarte können RGB Pixeln der Bilder entsprechen. Tiefenkarten können zum Beispiel verwendet werden, um bestehende Bildeditiertechniken zu verbessern. Zum Beispiel kann Tiefeninformation für ein Bild verwendet werden, um genauer zwischen Vordergrundobjekten und Hintergrundobjekten in einer Szene zu unterscheiden. Eine solche Unterscheidung kann relevant für das Auswählen von Objekten (ob sie im Vordergrund oder im Hintergrund sind) innerhalb des Bildes sein. Als ein illustratives Beispiel kann ein Bild einer Szene ein Kind (zum Beispiel ein Vordergrundelement) zeigen, das vor einem Baum (zum Beispiel ein Hintergrundelement) steht. Ein Benutzer, der das Kind von der Szene ausschneiden möchte, kann dies anzeigen, indem er einen Teil des Kindes unter Verwendung einer Bildeditieranwendung auswählt. Die Bildeditieranwendung kann Tiefeninformation verwenden, die mit dem Bild assoziiert ist, zusätzlich zu Auswahlhinweisen wie Farbe und Textur, um einen Umriss des auszuschneidenden Kindes zu erzeugen.
-
Mit Bezug nun zu den Figuren ist in 8 ein Blockdiagramm 100 zum Implementieren von Techniken gezeigt, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder gemäß zumindest einem Beispiel beziehen. Das Blockdiagramm 100 beinhaltet eine Tiefenerzeugungsfunktionseinheit 102. Wie hierin verwendet bezieht sich eine ”Funktionseinheit” auf einen Satz von Anweisungen, die in Software verkörpert sind, welche, wenn sie auf einem Prozessor ausgeführt werden, den Prozessor dazu veranlassen, eine oder mehrere Funktionen auszuführen. Insbesondere ist die Tiefenerzeugungsfunktionseinheit 102 konfiguriert, die Tiefen-Likelihood-Funktion zu evaluieren, zusammen mit allen Variationen der Tiefen-Likelihood-Funktion, die hierin beschrieben sind. Die Tiefenerzeugungsfunktionseinheit 102 ist konfiguriert, Bilder 104(1) bis 104(N) zu empfangen. In einigen Beispielen wurden die Bilder 104(1) bis 104(N) zuvor unter Verwendung einer Digitalkamera erfasst. Die Bilder 104(1) bis 104(N) zeigen eine Szene, die eine Mehrzahl von Objekten enthält. Wie dargestellt enthält jedes der Bilder 104(1) bis 104(N) entsprechende Konfigurationsinformation 106(1) bis 106(N). In einigen Beispielen stellt die Konfigurationsinformation 106(1) bis 106(N) Details über Einstellungen der Digitalkamera bereit, die verwendet wurden, um die Bilder 104(1) bis 104(N) zu erfassen, und die in Form von Metadaten in Verbindung mit den Bildern 104(1) bis 104(N) gespeichert sind. Zum Beispiel kann die Konfigurationsinformation 106(1) bis 106(N) Details über Blendeneinstellungen der Digitalkamera und Details über Fokuseinstellungen der Digitalkamera enthalten. Die Blendeneinstellungen beziehen sich auf die Menge an Licht, die in die Digitalkamera gelassen wurde, als die Bilder 104(1) bis 104(N) erfasst wurden. Die Blende einer Digitalkamera kann angepasst werden unter Verwendung eines Lamellenmechanismuses, welcher die Menge an Licht anpasst. Die Fokuseinstellungen beziehen sich auf eine Entfernung einer Fokusebene von der Digitalkamera und können entsprechend angepasst werden.
-
In einigen Beispielen unterscheidet sich die Konfigurationsinformation 106(1) für das Bild 104(1) von der Konfigurationsinformation 106(N) für das Bild 104(N), weil das Bild 104(1) unter Verwendung einer ersten Einstellungskonfiguration erfasst wurde und das Bild 104(N) unter Verwendung einer zweiten Einstellungskonfiguration erfasst wurde. Wie die erste Einstellungskonfiguration und die zweite Einstellungskonfiguration ausgewählt werden, hängt von der Implementierung der Tiefenerzeugungsfunktionseinheit 102 ab. Wenn zum Beispiel die Tiefenerzeugungsfunktionseinheit 102 in der Digitalkamera implementiert ist, bestimmt und ändert die Digitalkamera programmtechnisch die Einstellungen oder zeigt dem Benutzer bevorzugte oder vorgeschlagene Einstellungen zur manuellen Einstellung an. Wenn die Tiefenerzeugungsfunktionseinheit 102 in einer von der Digitalkamera getrennten Rechenvorrichtung implementiert ist, zeigt die Rechenvorrichtung die Einstellungen dem Benutzer der Digitalkamera an, oder veranlasst die Anzeige der Einstellungen für den Benutzer der Digitalkamera. Der Benutzer der Kamera passt dann die Einstellungen der Kamera entsprechend an. In jedem dieser Beispiele, und in anderen Beispielen, werden die Einstellungen willkürlich, zufällig, oder systematisch ausgewählt, entweder durch den Benutzer oder programmtechnisch mit Hilfe einer Auswahlfunktionseinheit (nicht dargestellt), oder auf irgendeine andere geeignete Weise. In einigen Beispielen werden die Bilder 104(1) bis 104(N) unter Verwendung einer zufälligen Menge von Konfigurationseinstellungen erfasst. Zum Beispiel können die Bilder 104(1) bis 104(N) auch unter Verwendung einer zufälligen Menge von Konfigurationseinstellungen erfasst werden, wenn die Bilder 104(1) bis 104(N) ohne Bezug zu einem Fokusstapel erfasst werden. Zum Beispiel ist ein Fokusstapel eine Menge von Bildern, die mit einer Fokuseinstellung und unterschiedlichen Blendeneinstellungen für jedes Bild der Menge aufgenommen werden. Die Bilder 104(1) bis 104(N) können auch ohne Bezug zu einem Blendenstapel erfasst werden. Ein Blendenstapel ist eine Menge von Bildern, die mit einer Blendeneinstellung und einer unterschiedlichen Fokuseinstellung für jedes Bild der Menge aufgenommen wurden. In einigen Beispielen werden die Bilder 104(1) bis 104(N) erfasst, ohne ein vorbestimmtes Abtastmuster zu berücksichtigen. Wie in dem vorstehenden Beispiel diskutiert werden die hierin beschriebenen Techniken der Tiefenschätzung unter Verwendung von zwei oder mehr Bildern auf eine Weise implementiert, die unabhängig von Konfigurationseinstellungen der Digitalkamera ist, die zum Erfassen der Bilder verwendet wird, so lange zumindest zwei unterschiedliche Bilder von im Wesentlichen demselben Standpunkt aus erfasst werden unter Verwendung zweier unterschiedlicher Konfigurationseinstellungen.
-
In einigen Beispielen wurden ein Kameragehäuse und eine Linse der Digitalkamera, die verwendet wurde, um die Bilder 104(1) bis 104(N) zu erfassen, zuvor kalibriert. Bestimmte Kalibrierungstechniken umfassen eine Zuordnung von Konfigurationseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) und Tiefe zu Unschärfe-Kerneln. Derartige Kalibrierungstechniken ermöglichen es der Tiefenerzeugungsfunktionseinheit 102, die geeigneten Unschärfe-Kernel auszuwählen, um Tiefenschätzungen unter Verwendung der Bilder 104(1) bis 104(N) zu machen. In einigen Beispielen werden zumindest einige der Bilder 104(1) bis 104(N) von im Wesentlichen demselben Standpunkt aus erfasst unter Verwendung unterschiedlicher Kombinationen von Kameragehäusen und Linsen unterschiedlicher Digitalkameras, die auf ähnliche Weise kalibriert wurden. In einigen Beispielen ist daher die Zuordnung von Konfigurationseinstellungen und Tiefe zu Unschärfe-Kerneln einzigartig für eine Kombination von einem Kameragehäuse und einer Linse und für mehrere Kombinationen von Kameragehäusen und Linsen. In diesem Beispiel berücksichtigt die Tiefenerzeugungsfunktionseinheit 102 die Ähnlichkeiten und Unterschiede in diesen Zuordnungen, während sie Tiefenschätzungen macht.
-
Es wird mm die Diskussion des Blockdiagramms 100 fortgesetzt, wobei, nachdem die Tiefenerzeugungsfunktionseinheit 102 die Bilder 104(1) bis 104(N) empfängt, die Tiefenerzeugungsfunktionseinheit 102 die hierin beschriebenen Techniken ausführt, um eine Tiefenkarte 108 zu erzeugen. Die Tiefenerzeugungsfunktionseinheit 102 kann auch ein Alles-im-Fokus Bild 110 berechnen und ein Unsicherheitsmaß bestimmen (nicht dargestellt). Das Unsicherheitsmaß zeigt an, wie viel Varianz in der Tiefenwahrscheinlichkeit für gegebene Tiefen vorhanden ist. Das Alles-im-Fokus Bild 110 repräsentiert eine Nachbildung der von den Bildern 104(1) bis 104(N) gezeigten Szene, aber ohne jede Unschärfe. Das Berechnen des Alles-im-Fokus Bilds 110 und des Unsicherheitsmaßes ist optional für die Implementierung der hierin beschriebenen Techniken. In einigen Beispielen wird das Alles-im-Fokus Bild 110 von anderen Funktionseinheiten (nicht dargestellt) verwendet, um existierende Tiefenkarten zu verfeinern oder anderweitig zu verbessern. In einigen Beispielen werden Bildflicken der Bilder 104(1) bis 104(N) und Unschärfe-Kernel von der Tiefenerzeugungsfunktionseinheit 102 verglichen als Teil des Erzeugens der Tiefenkarte 108. Ein „Bildflicken” bezieht sich auf einen kleinen Bereich eines Bildes (zum Beispiel die Bilder 104(1) bis 104(N)), der eine Vielzahl von Pixeln enthält.
-
Wie hierin verwendet ist ein „Unschärfe-Kernel” ein Modell der Außer-Fokus-Unschärfe in dem Bilderfassungsprozess. Der Unschärfe-Kernel kann durch eine Scheibe eines bestimmten Radius, ein Polygon, eine Gauss'sche Verteilung, ein Rechteck, oder irgendein anderes geeignetes Merkmal repräsentiert werden, welches die Außer-Fokus-Unschärfe während des Bilderfassungsprozesses modelliert. Die Unschärfe-Kernel umfassen Annahmen bezüglich der Menge an Unschärfe in den Bilden 104(1) bis 104(N) für partikuläre Tiefen bei einer gegebenen partikulären Blendeneinstellung und einer gegebenen partikulären Fokuseinstellung. In einigen Beispielen berücksichtigen die Techniken der Tiefenschätzung andere Konfigurationseinstellungen, welche die Unschärfe in einem Bild beeinflussen könnten, wenn die Unschärfe-Kernel erzeugt werden (zusätzlich zu oder an Stelle von Blenden- und Fokuseinstellungen).
-
Die Tiefenerzeugungsfunktionseinheit 102 führt eine oder mehrere Operationen in Übereinstimmung mit den hierin beschriebenen Techniken aus, um die Tiefen-Likelihood-Funktion zu evaluieren und die Tiefenkarte 108 auszugeben. Diese eine oder mehreren Operationen beinhalten ein Vergleichen, für eine Position in den Bildern, eines Bildflickens 1 von dem Bild 104(1), gefaltet mit einem Unschärfe-Kernel 2 von einer entsprechenden Stelle in dem Bild 104(2), mit einem Bildflicken 2 von dem Bild 104(2), gefaltet mit einem Unschärfe-Kernel 1 von einer entsprechenden Stelle in dem Bild 104(1). Wie hierin verwendet ist „Falten” eine Art von verunschärfen, die auftritt, wenn ein Bildflicken durch einen Unschärfe-Kernel unter Verwendung von hierin beschriebenen Techniken unscharf gemacht wird. Die Unschärfe-Kernel 1, 2 (wie hierin beschrieben) repräsentieren Annahmen bezüglich der Menge an Unschärfe, die erwartet werden sollte an deren entsprechenden Stellen innerhalb der Bilder 104(1), 104(2) unter Verwendung partikulärer Konfigurationseinstellungen. Der oben vorgeschlagene Vergleich kann ausgeführt werden für eine diskrete Menge von Tiefenhypothesen für die Position und dann Flicken um Flicken, bis die Gesamtheit der Bilder 104(1), 104(2) analysiert wurde. In einigen Beispielen wird zumindest ein Teil dieses Vergleichs normalisiert, um eine Tendenz hin zu Unschärfe-Kerneln mit größeren Unschärfeniveaus, die in den Bildern 104(1), 104(2) vorhanden sind, zu vermeiden. In einigen Beispielen bezieht sich die Normalisierung auf Situationen, in denen es Rauschen in den Bildern 104(1), 104(2) gibt. Dies mag sein, weil Unschärfe-Kernel mit größeren Unschärfewerten Rauschen herausglätten und dessen Einfluss vermindern. Dieser Einfluss von Rauschen ist am prävalentesten, wenn die Bilder 104(1), 104(2) sehr stark verrauscht sind, aber nur leicht außer Fokus sind. Die hierin beschriebenen Techniken berücksichtigen daher den Einfluss von Rauschen, indem ein Teil der oben diskutierten Tiefen-Likelihood-Funktion normalisiert wird. Zum Beispiel kann das Normalisieren eines Teils der Tiefen-Likelihood-Funktion ein Anpassen der Faltungsgleichung (1), ∥f2*i1 – f1*i2∥, beinhalten, um in der Faltungsgleichung (1') ∥f2*i1 – f1*i2∥/sqrt(∥f1∥^2 + ∥f2∥^2) zu resultieren, wobei ∥f∥^2 = sum_q(f(q))^2
-
In diesem Beispiel ist i1 ein Bildflicken in dem Bild I1, der mit dem Außer-Fokus-Kernel k1 unscharf gemacht wurde. Ähnlich für i2 und k2. (1) wird evaluiert, um zu erkennen, dass f1 = k1 und f2 = k2. Tatsächlich ist, wenn es kein Rauschen gibt, i1 = k1*h und i2 = k2*h, wobei h das Alles-im-Fokus Bild 110 ist, * die Faltung ist, und f1 = k1, f2 = k2 minimieren (1) mit minimalem Wert von 0: k2*i1 – k1*i2 = k2*(k1*h) – k1*(k2*h) = (k2*k1 – k1*k2)*h = 0 da k2*k1 = k1*k2.
-
Wenn jedoch in dem ersten und dem zweiten Bild Rauschen vorhanden ist: i1 = k1*h + n1 (alle evaluiert beim Pixel p) i2 = k2*h + n2 (alle evaluiert beim Pixel p) mit mittelwertfreiem normalen Rauschen (Varianz = s^2) n1 ~ N(0, s^2) n2 ~ N(0, s^2)
-
Dann ist Gleichung (2) f2*i1 – f1*i2 = [(f2*k1 – f1*k2)*h] + (f2*n1 – f1*n2)
-
Der erste Term kann mit f1 = k1, f2 = k2 minimiert werden, aber es gibt immer noch einen zweiten Term, der zu berücksichtigen ist. Der erste Term ist Null, wenn (f1, f2) = (k1, k2). Es sei angenommen, dass (f1, f2) = (ff1, ff2) nicht das korrekte Paar an Unschärfe-Kerneln (k1, k2) ist, sondern einen kleinen Wert für den ersten Term in Klammern gibt. Wenn die Norm der Summe der zwei Terme in Gleichung (2) genommen wird, kann dies einen kleineren Wert für (ff1, ff2) ergeben als für (k1, k2). In einigen Beispielen ist dies keine geeignete Auswahl für (k1, k2). In einigen Beispielen werden größere Unschärfen in dem ersten und dem zweiten Bild das Rauschen herausglätten und den Einfluss von Rauschen vermindern, wenn die Differenzen in Gleichung (2) kleiner werden. Die Faltungen f2*n1, f1*n2 summieren unabhängige normale Variablen n1(q), n2(q) bei Pixeln q mit Gewichtungen, die gegeben sind durch die Kernelabgriffe/-gewichte f1(q), f2(q). Daher: f2*n1 ~ N(0, s^2 sum_q(f2(q))^2) (tatsächlich f2*n1 evaluiert bei Pixel p) f1*n2 ~ N(0, s^2 sum_q(f1(q))^2) (tatsächlich f1*n2 evaluiert bei Pixel p) f2*n1 – f1*n2 ~ N(0, s^2 (sum_q(f1(q))^2 + sum_q(f2(q))^2)) (tatsächlich f2*n1 – f1*n2 evaluiert bei Pixel p)
-
Das heißt, die Varianz wird multipliziert mit der Summe der Quadrate der Filterabgriffe. Wenn die Unschärfe einen Radius R hat, sind die von Null verschiedenen Kernel-Gewichtungen alle 1/(pi * R^2) [was 1 ist über das Gebiet eines Kreises mit Radius R]. Ein kreisförmiger Filter f mit Radius R hat daher sum_q(f(q))^2 = sum_{q in Kreis mit Radius R} (1/pi * R^2)^2 = (1/pi * R^2)^2 * sum_{q in Kreis mit Radius R}
= (1/pi * R^2)^2 * pi * R^2
= 1/pi * R^2
-
Dies bedeutet, dass die Varianz s^2 (sum_q(f1(q))^2 + sum_q(f2(q))^2) des zweiten Terms f2*n1 – f1*n2 der Gleichung (2) kleiner ist, wenn f1 und f2 größere Unschärfen sind. Wenn zwei kleine Unschärfen die richtige Antwort sind, aber zwei größere Unschärfen auch einen relativ kleinen ersten Term ergeben, dann kann Rauschen dazu führen, dass einige Verfahren inkorrekter Weise größere Kernelgrößen wählen. Und größere Unschärfen (f1, f2) vermindern auch Differenzen in dem ersten Term von Gleichung (2).
-
Die hierin beschriebenen Techniken normalisieren daher die obige Faltungsgleichung (1), um die Niveaus von Außer-Fokus Unschärfe-Kernel zu berücksichtigen, indem sie in der Faltungsgleichung (1') ∥f2*i1 – f1*i2∥/sqrt(∥f1∥^2 + ∥f2∥^2) resultieren, worin ∥f∥^2 = sum_q(f(q))^2.
-
Die Faltung (zum Beispiel Bildflicken 1 gefaltet mit Unschärfe-Kernel 2) kann beinhalten, dass ein gewichteter Mittelwert von Pixeln genommen wird, die ein partikuläres Pixel umgeben. In einigen Beispielen werden die resultierenden unscharf gemachten Flicken als Faltungsoperatoren bestimmt (unter Verwendung der Unschärfe-Kernel) und werden angewandt über Bildflicken des Alles-im-Fokus Bildes 110. Die Größe der Unschärfe-Kernel hängt von einer Entfernung eines Objekts von einer Linse und von Konfigurationseinstellungen einer Kamera ab, die verwendet wurden, um die Bilder 104(1), 104(2) zu erfassen.
-
In einigen Beispielen ist die Tiefenkarte 108 eine Bilddatei, welche Farbinformation und Tiefeninformation enthält. Die Tiefenkarte 108 kann auch eine spezialisierte Bilddatei sein, die Tiefeninformation enthält. Die Tiefeninformation kann eine Schätzung der Entfernung von Objekten innerhalb der Szene von der Digitalkamera, als die Bilder erfasst wurden, repräsentieren. In einigen Beispielen beinhaltet das Erzeugen der Tiefenkarte 108 ein Evaluieren einer Tiefen-Likelihood-Funktion über eine diskrete Menge von Tiefenhypothesen für Bildflicken, die in den Bildern 104(1) bis 104(N) erscheinen, die mit unterschiedlichen Konfigurationseinstellungen aufgenommen wurden (zum Beispiel Blenden- und Fokuseinstellungen). Eine Tiefenhypothese ist eine Schätzung einer Tiefe für einen Flicken, ein Pixel oder ähnliches. Aus der diskreten Menge von Tiefenhypothesen werden einzelne Tiefenschätzungen für jedes Pixel bestimmt zumindest teilweise durch Evaluieren jedes Bildflickens über die diskreten Mengen von Tiefenhypothesen unter Verwendung der Tiefen-Likelihood-Funktion. Die Tiefenschätzung, welche die maximale Likelihood bzw. Wahrscheinlichkeit erreicht, wird als die korrekte Tiefenschätzung ausgewählt. Auf diese Weise wird die Tiefenkarte 108 mit einem gewissen Grad an Konfidenz erzeugt. In einigen Beispielen beinhaltet das Erzeugen der Tiefenkarte 108 ein Tunen mit Bezug auf unscharfe Bildflicken und Unschärfe-Kernel.
-
In einigen Beispielen werden die Techniken, die sich auf das Schätzen von Tiefe wie hierin beschrieben beziehen, iterativ implementiert für jede mögliche Tiefe bei jeder Position in einer Szene, die durch zwei oder mehr Bilder erfasst wurden. Zum Beispiel werden, um eine Tiefe zu schätzen, die mit einer partikulären Position, L, innerhalb zweier Bilder, I1 und I2, assoziiert ist, Bildflicken von jedem der zwei Bilder über eine diskrete Menge von Tiefenhypothesen evaluiert unter Verwendung einer Tiefen-Likelihood-Funktion, und es wird aus der Menge eine Tiefenhypothese mit einer maximalen Likelihood bzw. Wahrscheinlichkeit ausgewählt. Die Tiefenhypothese mit der maximalen Likelihood bzw. Wahrscheinlichkeit repräsentiert eine Tiefenschätzung, welche die wahrscheinlichste ist für die partikuläre Position, L, in den zwei Bildern, I1 und I2, welche evaluiert werden. Daher umfasst eine erste Tiefenhypothese eine Tiefenhypothese, DH1, und wird verwendet, um einen ersten Unschärfe-Kernel, K1, für den Bildflicken, P1 (Bildflicken aus I1, zentriert bei L) und einen zweiten Unschärfe-Kernel, K2, für den Bildflicken P2 (Bildflicken aus I2, zentriert bei L) auszuwählen. Das Evaluieren der Tiefenwahrscheinlichkeit wie hierin beschrieben umfasst Falten von P1 mit K2 und Falten von P2 mit K1, um die Tiefenwahrscheinlichkeit für DH1 zu bestimmen (das heißt, die Wahrscheinlichkeit, dass DH1 die korrekte Approximation der Tiefe in der echten Welt ist). Sobald die Tiefenwahrscheinlichkeit für H1 berechnet ist, schreitet die Evaluierung von P1 und P2 unter Verwendung der Tiefen-Likelihood-Funktion über die verbleibenden Tiefenhypothesen DH2 bis DHn fort (zum Beispiel können vierzig diskrete Tiefen ausgewählt sein), bis jede Hypothese in der Menge von Tiefenhypothesen evaluiert wurde. Die Tiefenhypothese mit der maximalen Likelihood bzw. Wahrscheinlichkeit (zum Beispiel die wahrscheinlichste Tiefe) wird dann aus der Menge von Tiefenhypothesen ausgewählt, einschließlich entsprechender Wahrscheinlichkeiten, als die wahrscheinlichste Approximation der Tiefe in der echten Welt für die partikuläre Position L. In einigen Beispielen wird ein ähnlicher Prozess für jede Position (zum Beispiel Pixel um Pixel, Flicken um Flicken, usw.) innerhalb der zwei entsprechenden Bilder wiederholt. Auf diese Weise sind die hierin beschriebenen Techniken, die sich auf das Schätzen von Tiefe beziehen, nicht nur iterativ für jede Tiefenhypothese an einer partikulären Position, sondern sind auch iterativ für jede Position innerhalb der Szene.
-
9 zeigt eine beispielhafte Umgebung 200 zum Implementieren von Techniken, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder wie hierin beschrieben beziehen. Die Umgebung 200 enthält einen Bediener 202, der eine Digitalkamera 204 verwendet, um ein Bild einer Szene 206 zu erfassen. Für das Implementieren der hierin beschriebenen Techniken ist der Bediener 202 optional. In einigen Beispielen kann die Digitalkamera 204 auf einem Dreibein oder einer anderen geeigneten Vorrichtung befestigt sein, und die Bilder der Szene 206 können programmtechnisch erfasst werden, wobei der Bediener 202 keine oder nur wenig Hilfestellung leistet. Die Digitalkamera 204 befindet sich, während sie verwendet wird, um das Bild der Szene 206 zu erfassen, an einem Standpunkt 208. Die Szene 206 enthält eine Mehrzahl von Objekten 210 bis 214. Insbesondere sind drei Objekte der Szene 206 in der Umgebung 200 dargestellt, wobei es sich um Karotten 210, einen Baum 212 und einen Zaun 214 handelt. Wie gezeigt erscheinen die Karotten 210 eher im Vordergrund der Szene 206, während der Baum 212 und der Zaun 214 eher im Hintergrund erscheinen. Unabhängig davon, wo die Objekte 210 bis 212 in der Szene erscheinen, ist jedes von diesen definiert, eine Entfernung von dem Standpunkt 208 zu haben. In einigen Beispielen wird die Entfernung jedes Objekts innerhalb der Szene 206 von der Linie 216 aus gemessen, welche eine Linse der Digitalkamera 204 kreuzt. In einigen Beispielen kann die Entfernung jedes Objekts innerhalb der Szene 206 annähernd bestimmt werden durch Verwendung von Techniken der Tiefenschätzung.
-
In einigen Beispielen werden von dem Bediener 202 Konfigurationseinstellungen der Digitalkamera 204 zum Erfassen von Bildern der Szene 206 willkürlich ausgewählt oder systematisch geändert. Die Konfigurationseinstellungen umfassen Blendeneinstellungen, Fokuseinstellungen und jede andere Einstellung, die das Niveau an Unschärfe in einem Bild bei verschiedenen tiefen beeinflusst. Zum Beispiel wählt der Bediener 202, wenn er ein erstes Bild erfasst, zuerst eine Blendeneinstellung von f/1,2 (zum Beispiel ausgewählt aus f/1,2, f/2, f/4, f/5,6, f/8, f/16, f/22 oder anderen geeigneten Blendeneinstellungen) auf der Digitalkamera 204 aus. Der Bediener 202 fokussiert die Digitalkamera 204 dann auf die Karotten 210 und erfasst die Szene 206 unter Verwendung der Digitalkamera 204. Wenn ein zweites Bild erfasst wird, wählt der Bediener 202 eine andere Blendeneinstellung (zum Beispiel f/4), oder er kann dieselbe Blendeneinstellung (das heißt, f/1,2) beibehalten, während er die Digitalkamera 202 auf ein anderes Objekt fokussiert (zum Beispiel den Baum 212) anstelle der Karotten 210. Während er ein drittes Bild erfasst, geht der Bediener 202 durch dieselben Schritte, wie sie ausgeführt wurden, um das erste und das zweite Bild zu erfassen, variiert aber die Konfigurationseinstellungen der Digitalkamera 204 im Vergleich zu denjenigen, die verwendet wurden, als das erste Bild und das zweite Bild erfasst wurden. Auf diese Weise erfasst der Bediener 202 Bilder der Szene 206 mit unterschiedlichen Blendeneinstellungen und/oder unterschiedlichen Fokuseinstellungen. In Übereinstimmung mit der hierin beschriebenen Technik werden solche erfassten Bilder von der Tiefenerzeugungsfunktionseinheit 102 verwendet, um eine oder mehrere Tiefenkarten auszugeben. In einigen Beispielen erzeugt die Tiefenerzeugungsfunktionseinheit 102, die in Übereinstimmung mit den hierin beschriebenen Techniken arbeitet, eine Tiefenkarte für Bilder, die bei einer maximalen Entfernung von etwa 50 Meter von der Szene 206 entfernt erfasst werden.
-
10 zeigt ein Beispiel einer Menge eingegebener Bilder 302 bis 308 und Tiefenkarten 310, 314 und Alles-im-Fokus Bilder 312, 316, welche durch Anwenden der hierin beschriebenen Techniken zum Schätzen von Tiefe innerhalb digitaler Bilder erzeugt wurden. In einigen Beispielen wurden die eingegebenen Bilder 302 bis 308 zuvor mit einer Digitalkamera in Übereinstimmung mit hierin beschriebenen Techniken erfasst. In einigen Beispielen unterscheiden sich die eingegebenen Bilder 302 bis 308 daher jeweils voneinander mit Bezug auf zumindest eines von einer Blendeneinstellung oder einer Fokuseinstellung. In einigen Beispielen wurden die Blendeneinstellungen und die Fokuseinstellungen der eingegebenen Bilder 302 bis 308 optimal ausgewählt unter Verwendung einer Auswahlfunktion. In anderen Beispielen können die Blendeneinstellungen und die Fokuseinstellungen der eingegebenen Bilder 302 bis 308 jedoch von einem Bediener der Digitalkamera willkürlich oder systematisch ausgewählt sein. Da die eingegebenen Bilder 302 bis 308 unter Verwendung Unterschiedlicher Eingabeeinstellungen erfasst wurden, wird jedes von ihnen eine unterschiedliche Unschärfe zeigen.
-
Sobald die eingegebenen Bilder 302 bis 308 empfangen werden, kann eine Tiefenkarte 310 und ein Alles-im-Fokus Bild 312 berechnet werden. In einigen Beispielen wird die Tiefenwahrscheinlichkeit mit einem Dekonvolutionsalgorithmus (zum Beispiel Weiner Dekonvolution) verwendet, um das Alles-im-Fokus Bild 312 zurückzugewinnen. Zum Beispiel wird, sobald die Unschärfe-Kernel für jeden Bildflicken in allen der eingegebenen Bilder geschätzt wurden, indem die maximale Tiefenwahrscheinlichkeit bei jedem Pixel unabhängig berechnet wurde, die maximale Tiefenwahrscheinlichkeit verwendet, um das Alles-im-Fokus Bild 312 zu Berechnen.
-
In einigen Beispielen wird eine Standard-Weiner Dekonvolution verwendet, um zu bestimmen, wie ein Alles-im-Fokus-Flicken für jede Tiefenhypothese aussehen würde (nicht nur für die maximale Tiefenwahrscheinlichkeit). In diesem Beispiel wird das Unsicherheitsmaß in der die Tiefenschätzung für jeden Flicken berücksichtigt, wenn das Alles-im-Fokus Bild 312 berechnet wird. Dies aus dem Grund, dass die Anzahl potentieller Versionen eines Ausgabeflickens, D, direkt der Anzahl an Tiefenhypothesen, D, entspricht. Eine gewichtete Linearkombination der Antworten wird verwendet, um die finale Antwort für das Alles-im-Fokus Bild 312 zurückzubekommen, wobei die Gewichtung für den Flicken, die abgeleitet wird von einer Tiefenhypothese dd, die Wahrscheinlichkeit ist, dass der Flicken bei der Tiefe dd ist (das heißt, die Wahrscheinlichkeit bzw. Likelihood der Tiefe dd, nachdem die Wahrscheinlichkeits- bzw. Likelihood-Werte normalisiert wurden, um in Summe über alle Tiefen 1 zu ergeben).
-
Sobald die eingegebenen Bilder 302 bis 308 empfangen wurden, kann auch zumindest ein Teil der folgenden Operationen ausgeführt werden, um die Tiefenkarte 310 und das Alles-im-Fokus Bild 312 zu berechnen. Zum Beispiel sei ein lokaler unscharfer Bildflicken b von einem der eingegebenen Bilder 302 bis 308 betrachtet, die erfasst wurden mit Fokuseinstellungen f und F-Nummern a einer Digitalkamera. Wenn angenommen wird, dass die Tiefe in dem Flicken annähernd konstant ist, hängt die Erscheinung von b von der Tiefe d und einer Szenentextur ab, die repräsentiert werden kann durch ein Alles-im-Fokus Bild h (zum Beispiel das Alles-im-Fokus Bild 312) eines spezifischen Referenzfokus f0. In Übereinstimmung mit den hierin beschriebenen Techniken kann eine Schlussfolgerung über d und h gegeben werden aus einer Anzahl unscharfer Flicken b, welche dasselbe Alles-im-Fokus Bild teilen, erfasst mit unterschiedlichen Linseneinstellungen.
-
In einigen Beispielen kann eine Formierungsprozedur auf einzelnen unscharfen Flicken desselben Alles-im-Fokus Bildes eine Vergrößerung, Defokus-Unschärfe, Abtasten und Rauschen beinhalten. Was die Vergrößerung betrifft, so kann, mit sich änderndem Fokus, derselbe Punkt der Szene auf unterschiedliche Punkte der Sensorebene der Digitalkamera
204 projiziert werden, entsprechend einer globalen geometrischen Skalierung.
entspricht dem Downsampling wegen Refokussierung und dem Skalierungsfaktor
-
Was die Defokus-Unschärfe betrifft, so erscheinen auf Grund der endlichen Form der Blende die Bilder der Außer-Fokus-Objekte unscharf, und die Unschärfe entspricht einer Faltung zwischen dem vergrößerten Alles-im-Fokus Bild und einer Scheibe, deren Radius bestimmt wird durch Tiefe, Fokus und Blende. b ~f,a = hf * kσ(d,f,a). (3)
-
Was das Abtasten betrifft, so tasten digitale Bilder, obwohl der Sensor kontinuierlich bestrahlt wird, die Intensität nur bei diskreten Stellen ab. Dementsprechend können nur spezifische Frequenzen in dem Bild abgetastet werden. bf,a = bf,a + ε (4)
-
Was schließlich das Rauschen betrifft, so ist das finale Bild eine nichtlineare, verrauschte Version des sauberen, abgetasteten Bildes. Im Bereich der vorliegenden Offenbarung werden zumindest einige eingegebene Bilder linearisiert und das Bildrauschen wird mit einem einfachen Gauss'schen Modell modelliert.
-
-
In einigen Beispielen können Vergrößerung, Defokussierungsunschärfe und Abtastung Fourier-Entsprechungen haben. Zum Beispiel kann eine Vergrößerung, die ein globaler geometrischer Skalierungsoperator sein kann, einer geometrischen Skalierung im Fourier Bereich entsprechen:
-
Eine Faltung im Bildbereich kann ein Äquivalent zu elementweisen Multiplikation im Fourier Bereich sein,
-
Schließlich kann eine elementweise Multiplikation im Bildbereich auch ausgedrückt werden als eine Faltung im Fourier Bereich,
-
Daher kann die Gleichung (5) im Fourier Bereich ausgedrückt werden als
worin N(ξ) nicht nur Bildrauschen, sondern auch Inhalte hoher Frequenz jenseits der Nyqvist-Frequenz berücksichtigt.
-
In einigen Beispielen mag es praktisch sein, während die Tiefen-Likelihood-Funktion evaluiert wird, das unscharfe Bild zu berichtigen durch Skalieren auf die Vergrößerungen bei f
0, so dass
worin
das Antialiasingfilter ist. Es gilt daher näherungsweise, dass
if,a ≈ h * ψ(d) + ε (13) worin
-
Dementsprechend ist im Fourier Bereich Id,f,a(ξ) ≈ H(ε)·ψd,f,a(ξ) + N(ξ) (15)
-
Als nächstes kann die Wahrscheinlichkeit bzw. Likelihood
(d) einer Tiefenhypothese d bei gegebenen N entsprechenden berichtigten Flicken
bestimmt werden. Da die Linseneinstellungen für jedes Pixel bekannt sind, kann eine Sequenz von Unschärfe-Kerneln
berechnet werden, wobei jeder Kernel nicht nur Defokus-Unschärfe, sondern auch eine Phasenänderung (wenn nächste Nachbarn verwendet wurden) und Antialiasing-Filter (wenn eine bilineare oder Interpolation verwendet wurden) zur Berichtigung berücksichtigen.
-
Auf äquivalente Weise kann eine Kostenfunktion ε(d|{i
n}) evaluiert werden, welche
für lokale Bildflicken erfüllt. Dann kann ein gieriges Tiefenkartenlabel erzeugt werden, indem einfach die Tiefenhypothese der minimalen Kosten für individuelle Pixel genommen wird.
-
-
In einigen Beispielen kann die diskrete Kostenfunktion auch als Datenkosten eines Markov-Zufallsfeldes verwendet werden, um ein Vor-Bild bzw. Prior räumlicher Glattheit zu inkorporieren. Im Nachfolgenden werden andere Verfahren diskutiert, die Tiefenschätzungen in kontinuierlichen Werten erzeugen, anstelle von Tiefenlabels, aus dieser Kostenmatrix, und welche ein räumliches Prior bzw. Vor-Bild im kontinuierlichen Bereich inkorporieren können. In einigen Beispielen kann ein Fourier Bereichs-Tiefenschätzungsalgorithmus eingeführt werden. Ein flaches Vor-Bild bzw. Prior der Tiefe kann angenommen werden
Pr(d) = const (18) und daher ist das Posterior von d proportional der multivariaten Verteilung zwischen unscharfen Bildern und die Tiefe kann sein
-
Die multivariate Verteilung unter den Alles-im-Fokus Bildflicken und die Tiefe kann weiter ausgedrückt werden als
worin
einem Bildrauschen-Modell entspricht und Pr(h) einem Vor-Bild bzw. Prior entspricht. Das Alles-im-Fokus Bild h kann ausgeklammert werden, indem es herausmarginalisiert wird.
-
Unter einem Gauss'schen Rauschmodell,
und einem Gauss'schen Vor-Bild bzw. Prior
kann die negative Log-Likelihood dann in geschlossener Form abgeleitet werden
-
Der Grenzwert von
kann weiter so berechnet werden, dass das Vor-Bild ein flaches Vor-Bild bzw. Prior wird. Dementsprechend kann die Likelihood-Funktion ausgerückt werden als
-
In einigen Beispielen kann die Implementierung der Gleichung 24 aufwendig sein, da sie lokale Flicken für das gesamte Bild extrahiert. Alternativ kann die Gleichung 24 in den Bildbereich umgeschrieben werden, um die Kostenfunktion unter Verwendung von Bildfaltung zu berechnen.
-
Eine Beobachtung kann sein, dass
auf Grund des Faltungstheorems und der Linearität der Fourier Transformation. Auf diese Weise können eingegebene Bilder als ein Datenstrom gesammelt und in einem Puffer gespeichert werden.
-
-
-
Dann kann ε(d) berechnet werden durch
-
Alternativ kann das Alles-im-Fokus Bild geschätzt werden durch h* = deconvwnr(ν1, ν2) (30)
-
In einigen Beispielen kann die Approximation in Gleichung 13 Artefakte in Bereichen mit schwacher Textur hervorrufen auf Grund von Vereinfachung über die Skalierungsoperation, wenn Bilder mit unterschiedlichen Vergrößerungen ausgerichtet werden. In einigen Beispielen kann die Vergrößerung fest sein bzw. fixiert werden, wenn zwei Bilder, jedes mit unterschiedlichen Blenden, die bei jeder Fokuseinstellung aufgenommen werden, beschränkt bzw. Nebenbedingungen unterworfen werden. Dies kann erreicht werden, zumindest zum Teil, indem zuerst eine MAP Schätzung bzw. Maximum a posteriori Schätzung eines Unschärfe-Kernels von Größe
σ * / n bei jeder Fokuseinstellung f
n für eine Referenz-Blendeneinstellung berechnet wird und dann die gemessene Unschärfe-Kernel-Größe als eine Funktion der Fokuseinstellung robust an das kalibrierte Linsenmodell angepasst wird.
wobei γ das Niveau von Rauschen in
{σ * / n} ist.
-
Wenn angenommen wird, dass die Bilder von denselben Fokuseinstellungen kontinuierlich aufgenommen werden, kann dieses Verfahren auch ein dichtes Matching zwischen kontinuierlichen Bildrahmen sicherstellen, da sowohl Bewegung als auch im Freien vorkommende Beleuchtungsänderungen typischer Weise kontinuierlich sind.
-
Die Tiefenkarte 310 wurde erzeugt, um relative Tiefen anzuzeigen unter Verwendung einer gleitenden Farbskala (wie in 10 gezeigt). Zum Beispiel repräsentiert rot nähere Tiefen, und blau repräsentiert Tiefen, die weiter entfernt sind. In einigen Beispielen kann die Tiefenkarte 310 absolute Tiefen enthalten. Sobald die Tiefenkarte 310 und das Alles-im-Fokus Bild 312 berechnet wurden, können eine angepasste Tiefenkarte 314 und ein angepasstes Alles-im-Fokus Bild 316 erzeugt werden. In einigen Beispielen werden die angepasste Tiefenkarte 314 und das angepasste Alles-im-Fokus Bild 316 direkt aus den eingegebenen Bildern 302 bis 308 berechnet unter Verwendung der Tiefen-Likelihood-Funktion. In einigen Beispielen werden die angepasste Tiefenkarte 314 und das angepasste Alles-im-Fokus Bild 316 angepasst, um Bewegungen von Objekten innerhalb der Szene wie zwischen den eingegebenen Bildern 302 bis 308 zu berücksichtigen. Zum Beispiel kann sich der Busch zur rechten in den Bildern bewegt haben, während die eingegebenen Bilder 302 bis 308 erfasst wurden. In einigen Beispielen wird die Bewegung der Objekte durch die unten stehenden Techniken berücksichtigt.
-
In einem Beispiel kann die Likelihood-Funktion in Gleichung 24 wie folgt umgeschrieben werden, um Paare von Bildern gleichzeitig zu betrachten:
-
In einigen Beispielen kann sich die abgeleitete Energiefunktion von der Gleichung 24 durch einen konstanten Offset unterscheiden. Auch wenn sie nicht gleich sind, können sie daher Nebenbedingungen für die Tiefe auf eine ähnliche Weise aufstellen, als ob sie derselben bedingten Wahrscheinlichkeit bzw. Likelihood und derselben hypothetischen Tiefe maximaler Wahrscheinlichkeit bzw. Likelihood entsprechen.
-
Daher kann das Berechnen der Tiefen-Likelihood-Funktion ein Berechnen von Differenzen zwischen Paaren von Bildern beinhalten, wobei die Defokus-Unschärfe ausgerichtet ist, jmn = im * ϕn (35) jmn = in * ϕm (36) oder ihre Frequenzen verglichen werden Jmn = ImΦn (37) Jnm = InΦm (38)
-
Basierend darauf können die nachfolgenden Techniken implementiert werden, um Bewegung zu berücksichtigen. Wenn die Bewegung nur klein ist, kann diese angenähert werden als eine lokale Translation. In diesem Fall mag die Funktion nur wenig zum Fourier Spektrum von J
mn, beitragen, aber dies hauptsächlich zu dessen Phase. Daher ist ein einfacher Weg, Robustheit gegenüber Bewegung zu erreichen, die Phase zu ignorieren
-
Um größere Bewegungen handzuhaben, oder um den größten Nutzen aus der Phaseninformation zu ziehen, können die Defokus-ausgerichteten Bilder jmn und jnm bis auf eine Verschiebung aneinander angepasst werden. In einigen Beispielen kann eine einfache Strategie diejenige sein, einfach den optischen Fluss auszuführen, um die relative Bewegung von dem ersten Bild, das als Referenz verwendet werden kann, zu irgendeinem anderen eingegebenen Bild zu schätzen. Danach können die eingegebenen Bilder gekrümmt bzw. verformt werden, um die eingegebenen Bilder auszurichten, und diese als Eingabe für den vorgenannten Tiefenschätzungsalgorithmus zu verwenden.
-
Schließlich kann es möglich sein, Ausreißer in der Szene zu erkennen (wo eine Szenenänderung zu groß ist für den optischen Fluss oder das lineare Beleuchtungsmodell), indem einfach die minimale erreichbare Kostenfunktion mind ε(d) und Schwellwertbereiche großer Kosten als Ausreißer betrachtet werden.
-
In einigen Beispielen können die angepasste Tiefenkarte 314 und das angepasste Alles-im-Fokus Bild 316 angepasst werden, um Beleuchtungsbedingungen innerhalb der Szene zu berücksichtigen. Zum Beispiel unterscheidet sich ein Schatten des Geländers an der Treppe in dem eingegebenen Bild 302 stark von dem Schatten in dem eingegebenen Bild 308. In einigen Beispielen werden sich ändernde Beleuchtungsbedingungen der Objekte berücksichtigt durch die unten stehenden Techniken.
-
Zum Beispiel kann die Beleuchtungsänderung modelliert werden als eine lokal konstante Kontraständerung und Helligkeitsoffset hn = pnh + qn (40)
-
Dementsprechend kann es sein, dass
jmn = pmnjnm + qmn, (41) mit
-
Daher kann die Likelihood-Funktion modifiziert werden als
wobei
j mn der Mittelwert von j
mn(s, t) ist.
-
In einigen Beispielen kann eine Robustheit gegenüber Beleuchtungsänderungen in die Formulierung im Fourier Bereich inkorporiert werden. In diesem Beispiel mag der Offset lediglich die DC Komponente beeinflussen, und die Fehlerfunktion kann berechnet werden, indem Jm(ξ) und Jn(ξ) über ξ verglichen werden bis zu einer Skala. Das Anpassen für Beleuchtungsänderungen kann daher ein Anpassen des Bias und der Verstärkung von Teilen zumindest einiger der Bildflicken beinhalten.
-
Die folgende Diskussion beschreibt beispielhafte Aktionen und/oder Prozeduren, die unter Verwendung von hierin beschriebenen Techniken ausgeführt werden, in Übereinstimmung mit zumindest einem Beispiel. Die 11 zeigt einen Prozess 400, welcher beispielhafte Aktionen oder Techniken beinhaltet, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder in Übereinstimmung mit zumindest einem Beispiel beziehen. Ein Teil von oder der gesamte Prozess 400 (oder irgend ein anderer hierin beschriebener Prozess, oder Variationen davon, und/oder Kombinationen davon) kann unter der Steuerung oder Regelung durch ein oder mehrere Computersysteme, die mit ausführbaren Anweisungen konfiguriert sind, ausgeführt werden und kann als Code implementiert sein (zum Beispiel ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen), der gemeinsam auf einem oder auf mehreren Prozessoren ausgeführt wird, durch Hardware oder Kombinationen davon. Der Code kann auf einem computerlesbaren Speichermedium gespeichert sein, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder von mehreren Prozessoren ausgeführt werden können. Das computerlesbare Speichermedium kann nichtflüchtig sein. Die Tiefenerzeugungsfunktionseinheit 102 (8), welche die hierin beschriebene Tiefen-Likelihood-Funktion verwendet, führt den Prozess 400 von 11 aus. Der Prozess 400 beginnt bei Block 402 mit dem Empfangen einer Menge von Bildern. In einigen Beispielen beinhaltet das Empfangen der Menge von Bildern ein Empfangen einer Menge von Bildern, die eine Szene zeigen und von im Wesentlichen demselben Standort aus erfasst wurden. In einigen Beispielen wurden die Bilder der Menge von Bildern durch eine Digitalkamera erfasst unter Verwendung unterschiedlicher Konfigurationseinstellungen, welche Blendeneinstellungen und Fokuseinstellungen beinhalten. Die Konfigurationseinstellungen, die verwendet wurden, um jedes einzelne Bild in der Menge von Bildern zu erfassen, werden in Metadaten gespeichert, die mit den Bildern assoziiert sind. Die Bilder können erfasst werden in Übereinstimmung mit Einstellungen, die erzeugt und der Digitalkamera bereitgestellt werden. In diesem Beispiel zeichnet die Vorrichtung, welche die Anweisungen erzeugt hat, auf, welche Einstellungen bereitgestellt wurden, und wenn (später) die Tiefenkarte erzeugt wird, wird auf diese Einstellungen zurückgegriffen. In einigen Beispielen wird eine Benutzereingabe empfangen, die anzeigt, dass die Bilder von dem Standpunkt aus aufgenommen wurden. Manchmal werden einige der Bilder der Menge von leicht unterschiedlichen Orten aus erfasst als andere Bilder, weil die Digitalkamera beim Erfassen der Bilder leicht bewegt wurde. Wenn dies passiert, können die Differenzen zwischen den Bildern, die darauf zurückzuführen sind, dass die Bilder an unterschiedlichen Orten erfasst wurden, auf ähnliche Weise modelliert werden wie die Differenzen, die auf Bewegung zurückzuführen sind. Daher kann eine Technik des optischen Flusses oder eine andere Anpassungstechnik ausgeführt werden, um die Differenzen zwischen den Bildern zu berücksichtigen. Die Technik des optischen Flusses oder andere Techniken der Anpassung sind in der Lage, kleinere Variationen zwischen den beiden Bildern zu berücksichtigen.
-
Bei 404 vergleicht der Prozess 400 Bildflicken von einem ersten Bild der Menge von Bildern, die mit partikulären Unschärfe-Kerneln unscharf gemacht wurden, mit Bildflicken von einem zweiten Bild der Menge von Bildern, die mit partikulären Unschärfe-Kerneln unscharf gemacht wurden, um eine Tiefenschätzung für jeden der Bilderflicken zu bestimmen. In einigen Beispielen beinhaltet das Vergleichen der Bildflicken ein Vergleichen der Bildflicken auf eine Weise, welche eine unangebrachte Neigung hin zu einem Auswählen von Unschärfe-Kerneln mit größeren Unschärfeniveaus vermeidet, insbesondere wenn Rauschen vorhanden ist. In einigen Beispielen beinhaltet das Vergleichen von Bildflicken, um Tiefenschätzungen zu bestimmen, ein Evaluieren der entsprechenden Bildflicken über eine diskrete Menge von Tiefenhypothesen und Auswählen der geschätzten Tiefe für die Bildflicken als die Tiefenhypothese, welche die maximale Tiefenwahrscheinlichkeit ergibt. Der Prozess von 404 wird in größerem Detail in 12 beschrieben.
-
Bei 406 verwendet der Prozess 400 die berechnete(n) Tiefenschätzung(en), um eine Tiefenkarte zu erzeugen. In einigen Beispielen beinhaltet das Erzeugen der Tiefenkarte ein Erzeugen einer Tiefenkarte, die Tiefeninformation enthält, die den Entfernungen von Objekten innerhalb einer Szene von im Wesentlichen dem gleichen Standpunkt aus entspricht, wo die Bilder erfasst wurden. Die Tiefenkarte wird erzeugt, indem eine Tiefenschätzung für jeden Bildflicken eines Bildes, wie bei 404 bestimmt, genommen wird. In einigen Beispielen beinhaltet das Erzeugen einer Tiefenkarte ein Extrahieren lokaler Flicken für die Gesamtheit der erfassten Bilder und ein Vergleichen der lokalen Flicken von den unterschiedlichen der erfassten Bilder, ohne dass bestimmte Annahmen über das Alles-im-Fokus Bild berücksichtigt werden. In einigen Beispielen kann das Erzeugen der Tiefenkarte ein Extrahieren von weniger als allen den lokalen Flicken für die Gesamtheit der erfassten Bilder beinhalten.
-
Bei 408 passt der Prozess 400 die Tiefenkarte an, um eine Bewegung eines Objekts zwischen Bildern einer Szene zu berücksichtigen. In einigen Beispielen beinhaltet das Anpassen der Tiefenkarte, um eine Bewegung des Objekts zu berücksichtigen, die Verwendung einer Technik des optischen Flusses oder das Transformieren in den Fourier Bereich, in dem Bildflicken der Bilder der Menge von Bildern als eine Menge von Frequenzen und Phasen repräsentiert werden, und Vergleichen der Beträge der Bildflicken, während die Phasen ignoriert werden.
-
Wenn mehrere Bilder erfasst werden, insbesondere im Freien, kann es vorkommen, dass kleine Positionsunterschiede zwischen Objekten in den mehreren Bilder auftreten als ein Ergebnis davon, dass sich die Objekte bewegen. Dies kann das Resultat davon sein, dass Wind die Objekte bewegt. Zum Beispiel kann Wind die Blätter des Baums 212 oder die Spitze der Karotten 210 dazu bringen, sich zu bewegen, während der Bediener 202 die mehreren Bilder erfasst. In einem ersten Bild können daher die Spitzen der Karotten 210 in einer ersten Position innerhalb des ersten Bildes sein, und können in einer zweiten Position innerhalb eines zweiten Bildes sein. Wenn diese Diskrepanzen nicht entweder vor oder während der Tiefenkarten-Erzeugung berücksichtigt werden, können diese die Qualität einer resultierenden Tiefenkarte beeinträchtigen. Dementsprechend werden, bei 408, eine oder mehrere Operationen auf Teilen der Bilder ausgeführt, um eine derartige Bewegung zu kompensieren. Diese Operationen beinhalten zum Beispiel das Ausführen einer Technik des optischen Flusses, um den neuen Ort von Pixeln in einem zweiten Bild zu schätzen, verglichen mit einem Ort der Pixel in einem ersten Bild, oder durch Transformieren von Flicken der Bilder in den Fourier Bereich, indem diese als eine Menge von Frequenzen und Phasen repräsentiert werden, und Vergleichen der Beträge aller Flicken, während die Phasen ignoriert werden. Dieses zweite Verfahren ist nützlich, da es gegenüber einer Translation der Flicken unempfindlich sein kann. In einigen Beispielen wird die Tiefen-Likelihood-Funktion angepasst, um auch Bewegung zu berücksichtigen. In einigen Beispielen wird Bewegung berücksichtigt durch eine separate Funktion, die ausgeführt wird, nachdem eine Tiefenkarte erzeugt wurde.
-
Bei 410 passt der Prozess 400 die Tiefenkarte an, um Veränderungen von Beleuchtungsbedingungen zwischen Bildern der Szene zu berücksichtigen. In einigen Beispielen beinhaltet das Anpassen der Tiefenkarte, um Veränderungen von Beleuchtungsbedingungen zu berücksichtigen, ein Modellieren von Beleuchtungsänderungen als eine lokal konstante Änderung in Helligkeit und Kontrast. Wenn zum Beispiel mehrere Bilder erfasst werden, insbesondere draußen, kann es in den mehreren Bildern kleine Beleuchtungsänderungen in der Farbintensität in Bildflicken, der Helligkeit von Bildflicken und ähnliches geben als ein Ergebnis von Beleuchtungsänderungen, die zwischen den Zeitpunkten aufgetreten sind, als die mehreren Bilder erfasst wurden. Dies kann das Ergebnis einer natürlichen Bedingung (wenn zum Beispiel die Sonne zwischen den Bildern hinter einer Wolke verschwindet) oder einer unnatürlichen Bedingung sein (wenn zum Beispiel ein Blitz ausgelöst wird, während bestimmte Bilder erfasst werden, aber nicht ausgelöst wird, während andere Bilder erfasst werden). Zum Beispiel kann der Baum 212 einen bestimmten Schatten werfen, wenn die Sonne zu dessen rechter steht, aber einen anderen Schatten werfen, wenn die Sonne zu dessen linker steht. Auf ähnliche Weise kann der Schatten definierter sein, wenn die Sonne unverdeckt ist, im Vergleich zu wenn die Sonne hinter einer Wolke steht. Ein Verfahren zum Kompensieren von Veränderungen von Beleuchtungsbedingungen beinhaltet zum Beispiel ein Modellieren von Beleuchtungsänderungen als eine lokal konstante Änderung in Helligkeit und Kontrast. Das Berücksichtigen der Beleuchtungsänderungen zwischen einem ersten Flicken in einem ersten Bild und einem zweiten Flicken in einem zweiten Bild beinhaltet ein Anpassen des Bias und der Verstärkung des zweiten Bildflickens. In einigen Beispielen wird die Tiefen-Likelihood-Funktion angepasst, um auch Beleuchtungsänderungen zu berücksichtigen. In einigen Beispielen werden Beleuchtungsänderungen durch eine separate Funktion berücksichtigt, die ausgeführt wird, nachdem eine Tiefenkarte erzeugt wurde.
-
Bei 412 stellt der Prozess 400 die Tiefenkarte zur Darstellung bereit. In einigen Beispielen beinhaltet das Bereitstellen der Tiefenkarte zur Darstellung das Bereitstellen der Tiefenkarte zur Darstellung auf einer Benutzervorrichtung.
-
12 zeigt einen beispielhaften Prozess 404 (11) zum Schätzen von Tiefe eines Bildflickens. Der Prozess 500 beginnt bei Block 502 durch Identifizieren eines Bildflickens von einem ersten Bild aus der Menge von zumindest zwei Bildern und einem entsprechenden Bildflicken aus einem zweiten Bild aus der Menge von zumindest zwei Bildern. In einigen Beispielen wird das Identifizieren durch das Rechnersystem ausgeführt. Beim Schritt 504 wird eine erste Tiefenhypothese aus einer diskreten Menge von Tiefenhypothesen. Die diskrete Menge von Tiefenhypothesen kann jede geeignete Anzahl an Tiefenhypothesen enthalten. In einigen Beispielen sind vierzig Tiefenhypothesen in der diskreten Menge enthalten.
-
Bei 506 wird ein erster Unschärfe-Kernel identifiziert, der von der ausgewählten Tiefenhypothese und einer ersten Konfigurationseinstellung abhängt, die verwendet wurde, um das erste Bild zu erfassen. Wie hierin beschrieben, hängt der erste Unschärfe-Kernel von der ausgewählten Tiefenhypothese und der ersten Konfigurationseinstellung ab, zumindest aus dem Grund, dass während des Kalibrierens der Digitalkamera Unschärfe-Kernel zu Tiefen und Konfigurationseinstellungen (das heißt, Variationen von Blenden- und Fokuseinstellungen) zugeordnet wurden. Auf ähnliche Weise wird bei 508 ein zweiter Unschärfe-Kernel identifiziert, der von der ausgewählten Tiefenhypothese und einer zweiten Konfigurationseinstellung abhängt, die verwendet wurde, um das zweite Bild zu erfassen. Wie hierin beschrieben hängt der zweite Unschärfe-Kernel von der Tiefenhypothese und der zweiten Konfigurationseinstellung ab, zumindest aus dem Grund, dass während des Kalibrierens der Digitalkamera Unschärfe-Kernel zu Tiefen und Konfigurationseinstellungen (das heißt, Variationen von Blenden- und Fokuseinstellungen) zugeordnet wurden.
-
Bei 510 wird der Bildflicken des ersten Bildes mit dem zweiten Unschärfe-Kernel gefaltet, und der entsprechende Bildflicken aus dem zweiten Bild wird mit dem ersten Unschärfe-Kernel gefaltet, um eine Tiefenwahrscheinlichkeit für den Bildflicken zu bestimmen. Die Faltung kann in einigen Beispielen normalisiert werden. Nach dem Bestimmen der Tiefenwahrscheinlichkeit, die von der ausgewählten Tiefenhypothese produziert wird, bestimmt der Prozess bei 512, ob es andere Tiefenhypothesen gibt, die zu evaluieren sind. Falls ja, kehrt der Prozess zu Schritt 504 zurück, um eine andere Tiefenhypothese auszuwählen, und der Prozess wird von diesem Punkt aus wiederholt. Wenn bei Schritt 512 dann schließlich bestimmt wird, dass keine anderen Tiefenhypothesen übrig sind, die zu evaluieren sind, schreitet der Prozess zu Schritt 514 fort, wo die Tiefenhypothese, welche die maximale Tiefenwahrscheinlichkeit ergeben hat, bestimmt wird als die Tiefenschätzung für den Bildflicken.
-
Es wird sich nun auf die 13 bezogen, in der eine beispielhafte Architektur 600 zum Implementieren von Techniken gezeigt ist, die sich auf das Schätzen von Tiefe innerhalb digitaler Bilder wie hierin beschrieben beziehen. Die Architektur 600 beinhaltet eine oder mehrere Benutzervorrichtungen 602(1) bis 602(N) (hiernach: „die Benutzervorrichtung 602”) in Kommunikation mit einem Bildeditierdienst 604 über Netzwerk(e) 624 (hiernach: „das Netzwerk 624”). Das Netzwerk 624 beinhaltet ein beliebiges oder eine Kombination von vielen verschiedenen Typen von Netzwerken, wie Kabelnetze, das Internet, drahtlose Netzwerke, Mobilfunknetze, Funknetzwerken, und andere private und/oder öffentliche Netzwerke.
-
Die Benutzervorrichtung 602 beinhaltet jede geeignete Vorrichtung, die geeignet ist, ein Bild zu erfassen, und/oder eine oder mehrere Operationen auf Bilder auszuführen. In einigen Beispielen kann die Benutzervorrichtung 602 jede geeignete Rechenvorrichtung sein, wie zum Beispiel, ohne hierauf beschränkt zu sein, eine Digitalkamera, ein Mobiltelefon, ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Laptop-Computer, ein PC, ein Arbeitsplatzcomputer, eine Set-Top-Box, eine Thin-Client-Vorrichtung, oder eine andere Rechenvorrichtung. Die Benutzervorrichtung 602 wird von einem oder von mehreren Benutzern (nicht dargestellt) verwendet, um mit dem Bildeditierdienst 604 zu interagieren. Jede Verwendung von ”Digitalkamera” in diesem Dokument dient lediglich der Veranschaulichung, und ein Fachmann würde verstehen, dass eine beliebige der Benutzervorrichtungen 602(1) bis 602(N) oder irgendeine ähnliche Vorrichtung stattdessen verwendet werden kann.
-
Die Benutzervorrichtung 602 enthält daher einen Prozessor 628, der kommunikativ mit einem Speicher 626 gekoppelt ist, und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die in dem Speicher 626 gespeichert ist. In einigen Beispielen speichert der Speicher 626 eine Tiefenerzeugungsfunktionseinheit 102(A) und eine Webdiensteanwendung 632. Der Prozessor 628 kann einen Mikroprozessor enthalten, eine anwendungsspezifische integrierte Schaltung („ASIC”), einen Zustandsautomaten, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 628 enthält auch eine beliebige Anzahl an Verarbeitungsvorrichtungen, einschließlich einer. Ein derartiger Prozessor kann ein computerlesbares Medium enthalten, oder mit einem solchen kommunikativ verbunden sein, das Anweisungen speichert, welche, wenn sie durch den Prozessor 628 ausgeführt werden, den Prozessor dazu veranlassen, die hierin beschriebenen Operationen auszuführen. Die Webdiensteanwendung 632 ermöglicht es dem Benutzer mit dem Bildeditierdienst 604 über das Netzwerk 624 zu interagieren. Die Benutzervorrichtung 602 beinhaltet auch eine Bilderfassungsvorrichtung 634. In einigen Beispielen kann die Bilderfassungsvorrichtung 634 konfiguriert sein, um ein Bild oder mehrere Bilder zu erfassen. In einigen Beispielen kann die Bilderfassungsvorrichtung 634 eine herkömmliche Digitalkamera umfassen, die eine Linse, eine Blendeneinstellung, eine Fokuseinstellung, einen Infrarotprojektor, oder eine Vorrichtung für strukturiertes Licht beinhaltet.
-
Der Bildeditierdienst 604 kann ein webbasierter Dienst sein, auf den durch die Benutzervorrichtung 602 und andere Vorrichtungen über das Netzwerk 624 zugegriffen werden kann. Zum Beispiel sei angenommen, dass eine Mehrzahl von Bildern aufgenommen würde unter Verwendung der Benutzervorrichtung 602(2) (zum Beispiel einer Digitalkamera), dann können diese Bilder zu der Benutzervorrichtung 602(N) (zum Beispiel ein Computer) transferiert werden, und die Benutzervorrichtung 602(N) kann mit dem Bildeditierdienst 604 kommunizieren, welcher die Tiefenerzeugungsfunktionseinheit 102(B) ausführt, um eine Tiefenkarte von den Bildern zu erzeugen. Auf diese Weise kann der Bildeditierdienst 604 konfiguriert sein, um auf Allgemeine Weise die hierin beschriebenen Techniken zu implementieren. In einigen Beispielen wird der Bildeditierdienst 604 durch einen oder durch mehrere Webserver implementiert und es kann auf den Bildeditierdienst 604 zugegriffen werden von der Benutzervorrichtung 602 über das Netzwerk 624, welches das Internet, ein Intranet, ein Extranet oder irgendein anderes Daten und/oder Kommunikationsnetzwerk sein kann.
-
Der Bildeditierdienst 604 enthält einen Prozessor 606, der mit einem Speicher 608 kommunikativ gekoppelt ist und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die in dem Speicher 608 gespeichert ist. In einigen Beispielen speichert der Speicher 608 eine Tiefenerzeugungsfunktionseinheit 102(B) und ein Betriebssystem 612. Das Betriebssystem 612 kann jedes geeignete Betriebssystem sein, das konfiguriert ist, um mit dem Bildeditierdienst 604 zu interagieren. Der Prozessor 606 kann einen Mikroprozessor enthalten, einen ASIC, einen Zustandsautomaten, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 606 kann auch jede beliebige Anzahl an Verarbeitungsvorrichtungen enthalten, einschließlich einer. Ein derartiger Prozessor kann ein computerlesbares Medium enthalten, oder mit einem solchen kommunikativ verbunden sein, das Anweisungen speichert, welche, wenn sie ausgeführt werden durch den Prozessor 606, den Prozessor dazu veranlassen, die hierin beschriebenen Operationen auszuführen.
-
Der Speicher 608 kann jedes geeignete computerlesbare Medium umfassen. Das computerlesbare Medium kann jede elektronische, optische, magnetische oder andere Speichervorrichtung umfassen, die in der Lage ist, für einen Prozessor computerlesbaren Anweisungen oder anderem Programmcode bereitzustellen. Ein computerlesbares Medium kann zum Beispiel eine magnetische Platte, einen Speicherchip, ROM, RAM, eine anwendungsspezifische Schaltung ASIC, einen konfigurierten Prozessor, einen optischen Speicher, ein Magnetband oder einen anderen magnetischen Speicher umfassen, oder jedes andere Medium, von dem ein Computerprozessor Anweisungen auslesen kann. Die Anweisungen können prozessorspezifische Anweisungen umfassen, die von einem Compiler und/oder einem Interpreter erzeugt werden aus Code, der in einer beliebigen geeigneten Computer Programmiersprache geschrieben ist, einschließlich zum Beispiel C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, und ActionScript.
-
Der Bildeditierdienst 604 beinhaltet auch eine Anzahl externer oder interner Vorrichtungen, wie Eingabe- oder Ausgabevorrichtungen. Zum Beispiel beinhaltet der Bildeditierdienst 604 Eingabe-/Ausgabe-(I/O)Vorrichtung(en) und/oder Anschlüsse 614, wie etwa um eine Verbindung mit einer Tastatur, einer Maus, einem Stift, einer Spracheingabevorrichtung, einer Berührungseingabevorrichtung, einer Anzeige, Lautsprechern, einem Drucker oder einer anderen Eingabe-/Ausgabevorrichtung zu ermöglichen. Der Bildeditierdienst 604 beinhaltet auch einen zusätzlichen Speicher 616, der einen entfernbaren Speicher und/oder einen nicht entfernbaren Speicher umfassen kann. Der zusätzliche Speicher 616 kann einen magnetischen Speicher, optische Platten und/oder Bandspeicher umfassen, ist aber nicht auf diese beschränkt. Die Plattenlaufwerke und deren assoziierte computerlesbare Medien können einen nichtflüchtigen Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programmodule und andere Daten bereitstellen. Der Bildeditierdienst 604 kann auch eine Benutzerschnittstelle 618 enthalten. Die Benutzerschnittstelle 618 kann von einem Bediener verwendet werden, oder einem anderen autorisierten Benutzer, um auf Teile des Bildeditierdiensts 604 zuzugreifen. In einigen Beispielen kann die Benutzerschnittstelle 618 eine graphische Benutzerschnittstelle, webbasierte Anwendungen, Programmschnittstellen wie Anwendungsprogrammierschnittstellen (APIs) oder andere Benutzerschnittstellenkonfigurationen beinhalten. Der Bildeditierdienst 604 beinhaltet auch einen Datenspeicher 620. Der Datenspeicher 620 kann Datenstrukturen beinhalten zum Speichern von Information, die sich auf die Implementierung der hierin beschriebenen Techniken bezieht. Derartige Information kann in einer Bilddatenbank 622 gespeichert werden. In der Bilddatenbank 622 können eingegebene Bilder, Tiefenkarten und andere ähnliche Bilder und Karten gespeichert werden, zusammen mit ihren zugeordneten Informationen.
-
Allgemeine Hinweise
-
Zahlreiche spezifische Details werden hierin dargelegt, um ein tiefgreifendes Verständnis des Gegenstandes des Anhangs 1 zu verschaffen. Die Fachleute werden jedoch verstehen, dass der Gegenstand des Anhangs 1 ohne diese spezifischen Details ausgeübt werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, welche den Fachleuten bekannt wären, nicht im Detail beschrieben, um den Gegenstand des Anhangs 1 nicht zu verdunkeln.
-
Es wird verstanden werden, dass, solange nicht ausdrücklich anderweitig angegeben, in diesem Dokument Ausführungen, welche Begriffe verwenden wie etwa „verarbeiten,” „berechnen,” „bestimmen,” und „identifizieren” oder ähnliches, sich auf Aktionen oder Prozesse einer Rechenvorrichtung beziehen, wie einem oder mehreren Computer oder eine ähnliche elektronische Rechenvorrichtung oder -vorrichtungen, welche Daten manipulieren oder transformieren, die als physische elektronische oder magnetische Quantitäten repräsentiert sind innerhalb Speichern, Registern oder anderen Informationsspeichereinheiten, Übertragungsvorrichtungen oder Anzeigevorrichtungen der Rechnerplattform.
-
Das System oder die Systeme, welche hierin diskutiert sind, sind nicht auf eine bestimmte Hardwarearchitektur oder Konfiguration beschränkt. Eine Rechenvorrichtung kann jede geeignete Anordnung von Komponenten beinhalten, welche ein Ergebnis bereitstellt, das von einer oder mehreren Eingaben abhängt. Geeignete Rechnervorrichtungen beinhalten Mikroprozessor-basierte Computersysteme, die vielfältig einsetzbar sind, welche auf Software zugreifen, welche das Rechnersystem von einer Allzweck-Rechnervorrichtung zu einer spezialisierten Rechnervorrichtung programmiert oder konfiguriert, die eine oder mehrere Ausführungsformen des vorliegenden Gegenstands implementiert. Jede geeignete Programmiersprache, Skriptsprache oder andere Art von Sprache, oder Kombination von Sprachen, kann verwendet werden, um die hierin enthaltenen Lehren in Software zu implementieren, die dazu verwendet wird, eine Rechnervorrichtung zu programmieren oder zu konfigurieren.
-
Ausführungsformen der hierin offenbarten Verfahren können beim Betrieb solcher Rechnervorrichtungen ausgeführt werden. Die Reihenfolge der Blöcke, die in den vorstehenden Beispielen dargestellt wurden, kann variiert werden – zum Beispiel können Blöcke umgeordnet, kombiniert und/oder in Unterblöcke unterteilt werden. Bestimmte Blöcke oder Prozesse können parallel ausgeführt werden.
-
Wenn hierin „eingerichtet zum” oder „konfiguriert zum” verwendet wird, ist dies als offene und inklusive Sprache gedacht, die keine Vorrichtungen ausschließt, die dazu angepasst sind, zusätzliche Aufgaben oder Schritte auszuführen. Darüber hinaus ist die Verwendung von „basierend auf” als offen und inklusiv gedacht, in dem Sinn, dass ein Prozess, ein Schritt, eine Berechnung oder eine andere Aktion „basierend auf” einer oder mehreren genannten Bedingungen oder Werten in der Praxisüber die genannten hinaus auf weiteren Bedingungen oder Werten basieren kann. Überschriften, Listen und Nummerierungen, die hierin enthalten sind, dienen lediglich der Einfachheit der Erläuterung und sind nicht als beschränkend gedacht.
-
Während der vorliegende Gegenstand im Detail mit Bezug auf spezifische Ausführungsformen desselben beschrieben wurde, wird es verstanden werden, dass die Fachleute, basierend auf einem Verständnis des Vorstehenden, leicht Abwandlungen, Variationen und Äquivalente zu solchen Ausführungsformen schaffen können. Dementsprechend wird verstanden werden, dass die vorliegende Offenbarung allein beispielhaft und nicht als Beschränkung gegeben wurde, und dass diese nicht die Einbeziehung solcher Modifikationen, Variationen und/oder Hinzufügungen zu dem vorliegenden Gegenstand ausschließt, wie sie den Fachleuten leicht ersichtlich sein werden.
-
Klauseln zum Anhang 1
-
Weitere Merkmale, Techniken und Vorteile, die sich auf den Gegenstand des Anhangs 1 beziehen, werden ersichtlich werden aus den folgenden Klauseln.
- 1. Computerimplementiertes Verfahren zum Erzeugen einer Tiefenkarte (108; 310, 314) aus Bildern (104(1) bis 104(N); 302 bis 308), die von einer Digitalkamera (204) erfasst wurden, worin die Tiefenkarte (108; 310, 314) unter Verwendung einer Tiefen-Likelihood-Funktion erzeugt wird, umfassend:
Empfangen, durch ein Rechnersystem, einer Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308), die eine Szene (206) zeigen und von im Wesentlichem demselben Standpunkt (208) aus erfasst wurden, wobei jedes der Bilder (104(1) bis 104(N); 302 bis 308) durch die Digitalkamera (204) unter Verwendung von zumindest einer Konfigurationseinstellung erfasst wurde, die unterschiedlich ist zu jeder der anderen Bilder (104(1) bis 104(N); 302 bis 308), wobei die zumindest eine unterschiedliche Konfigurationseinstellung in der Lage ist, eine Unschärfe in die Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) einzuführen;
Identifizieren, durch das Rechnersystem, einer Mehrzahl von Bildflicken von einem ersten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) und einer Mehrzahl von entsprechenden Bildflicken von einem zweiten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308);
iteratives Evaluieren, durch das Rechnersystem, jedes Bildflickens über eine diskrete Menge von Tiefenhypothesen unter Verwendung einer Tiefen-Likelihood-Funktion, welche den Bildflicken und dessen entsprechenden Bildflicken vergleicht unter Verwendung eines flachen Vor-Bilds in einem Frequenzbereich, worin die iterative Evaluierung für jede Tiefenhypothese umfasst:
Identifizieren eines ersten Unschärfe-Kernels, der von der Tiefenhypothese und einer ersten Konfigurationseinstellung, die verwendet wurde, um das erste Bild zu erfassen, abhängt,
Identifizieren eines zweiten Unschärfe-Kernels der von der Tiefenhypothese und einer zweiten Konfigurationseinstellung, die verwendet wurde, um das zweite Bild zu erfassen, abhängt,
Falten des Bildflickens mit dem zweiten Unschärfe-Kernel und des entsprechenden Bildflickens mit dem ersten Unschärfe-Kernel, um eine Tiefenwahrscheinlichkeit für den Bildflicken zu bestimmen, und
Bestimmen einer Tiefenschätzung für den Bildflicken, die Tiefenhypothese zu sein, welche eine maximale Tiefenwahrscheinlichkeit ergibt; und
Erzeugen, durch das Rechnersystem, einer Tiefenkarte (108; 310, 314) unter Verwendung der Tiefenschätzung für jeden Bildflicken.
- 2. Computerimplementiertes Verfahren nach Klausel 1, worin der erste Unschärfe-Kernel und der zweite Unschärfe-Kernel jeweils identifiziert werden aus einer Zuordnung von Tiefen und Konfigurationseinstellungen zu Unschärfe-Kerneln, worin die Zuordnung bestimmt ist aus Kalibrierungsdaten für die Digitalkamera (204).
- 3. Computerimplementiertes Verfahren nach Klausel 1 oder 2, weiter umfassend, vor dem Identifizieren der Mehrzahl von Bildflicken aus dem ersten Bild und der Mehrzahl entsprechender Bildflicken aus dem zweiten Bild, Analysieren, durch das Rechnersystem, des ersten Bildes und des zweiten Bildes unter Verwendung eines Bildkorrespondenzalgorithmus, um eine Änderung der Position eines Objekts (210, 212, 214) innerhalb der Szene (206) zu identifizieren, die zwischen dem Erfassen des ersten Bildes und Erfassen des zweiten Bildes aufgetreten ist; und
Anpassen von zumindest einen von dem ersten Bild oder dem zweiten Bild, um die identifizierte Änderung zu berücksichtigen.
- 4. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 3, worin die iterative Evaluierung weiter ein Analysieren des Bildflickens und des korrespondierenden Bildflickens umfasst, um eine Änderung in der Position eines Objekts (210, 212, 214) innerhalb der Szene (206) zu berücksichtigen, die zwischen dem Erfassen des ersten Bildes und dem Erfassen des zweiten Bildes aufgetreten ist, durch:
Repräsentieren des Bildflickens und des korrespondierenden Bildflickens im Frequenzbereich;
Berechnen der Gesamtenergie von jedem von dem Bildflicken und von dem korrespondierenden Bildflicken bei einer Menge räumlicher Frequenzen; und
Vergleichen des Bildflickens und des korrespondierenden Bildflickens durch Penalisieren von Energiedifferenzen über die Menge räumlicher Frequenzen.
- 5. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 4, worin die Tiefen-Likelihood-Funktion angepasst ist, Veränderungen von Beleuchtungsbedingungen in zumindest einem von dem ersten Bild oder dem zweiten Bild in Begriffen der Helligkeit und dem Kontrast zu modellieren.
- 6. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 5, worin die zumindest eine unterschiedliche Konfigurationseinstellung zumindest eines umfasst von einer Blendeneinstellung und einer Fokuseinstellung.
- 7. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 6, worin jedes der Bilder (104(1) bis 104(N); 302 bis 308) ohne Berücksichtigung eines Abtastmusters erfasst wird und die zumindest eine unterschiedliche Konfigurationseinstellung willkürlich ausgewählt wird.
- 8. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 7, worin die Tiefen-Likelihood-Funktion weiter eine Normalisierungstechnik umfasst, um einen Bias hin zu Unschärfe-Kerneln mit größeren Unschärfeniveaus zu vermeiden.
- 9. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 8, weiter umfassend Verwenden eines Dekonvolutionsalgorithmus, um aus der Tiefenwahrscheinlichkeit ein Alles-im-Fokus Bild zu berechnen, das der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) entspricht.
- 10. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 9, worin die Tiefen-Likelihood-Funktion weiter ein Unsicherheitsmaß für jeden Bildflicken bestimmt, worin das Unsicherheitsmaß einen Betrag der Varianz in der Tiefenwahrscheinlichkeit für eine gegebene Tiefenhypothese anzeigt.
- 11. Computerprogrammprodukt, welches computerlesbare Anweisungen umfasst, welche, wenn sie auf einem Computer oder einem System geladen werden, den Computer oder das System dazu veranlassen, das Verfahren nach einer der Klauseln 1 bis 10 auszuführen.
- 12. System zum Erzeugen einer Tiefenkarte (108; 310, 314) aus Bildern (104(1) bis 104(N); 302 bis 308), die von einer Digitalkamera (204) erfasst wurden, worin die Tiefenkarte (108; 310, 314) erzeugt wird unter Verwendung einer Tiefen-Likelihood-Funktion, wobei das System umfasst:
einen Speicher (626, 608), welcher von einem Computer ausführbare Anweisungen zum Erzeugen einer Tiefenkarte (108; 310, 314) und eine Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308), die eine Szene (206) zeigen und von im Wesentlichem demselben Standpunkt (208) aus erfasst wurden, speichert, wobei jedes der Bilder (104(1) bis 104(N); 302 bis 308) durch die Digitalkamera (204) erfasst wurde unter Verwendung von zumindest einer Konfigurationseinstellung, die unterschiedlich ist zu jeder der anderen Bilder (104(1) bis 104(N); 302 bis 308), wobei die zumindest eine unterschiedliche Konfigurationseinstellung in der Lage ist, eine Unschärfe in die Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) einzuführen; und
zumindest einen Prozessor, der konfiguriert ist, auf den Speicher (626, 608) zuzugreifen und die durch einen Computer ausführbaren Anweisungen auszuführen, um das System zur Ausführung von Operationen zu veranlassen, welche umfassen:
Identifizieren einer Mehrzahl von Bildflicken von einem ersten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) und einer Mehrzahl von entsprechenden Bildflicken von einem zweiten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308),
iteratives Evaluieren jedes Bildflickens über eine diskrete Menge von Tiefenhypothesen mit einer Tiefen-Likelihood-Funktion, die abgeleitet ist von einem flachen Vor-Bild in einem Frequenzbereich, welche den Bildflicken und dessen entsprechenden Bildflicken vergleicht unter Verwendung von Unschärfe-Kerneln, um eine Tiefenschätzung für den Bildflicken zu bestimmen, und
Erzeugen der Tiefenkarte (108; 310, 314) unter Verwendung der Tiefenschätzung für jeden Bildflicken.
- 13. System nach Klausel 12, worin die iterative Evaluierung für jede Tiefenhypothese umfasst:
Identifizieren eines ersten Unschärfe-Kernels, der von der Tiefenhypothese und einer ersten Konfigurationseinstellung, die verwendet wurde, um das erste Bild zu erfassen, abhängt;
Identifizieren eines zweiten Unschärfe-Kernels, der von der Tiefenhypothese und einer zweiten Konfigurationseinstellung, die verwendet wurde, um das zweite Bild zu erfassen, abhängt;
Falten des Bildflickens mit dem zweiten Unschärfe-Kernel und des entsprechenden Bildflickens mit dem ersten Unschärfe-Kernel, um eine Tiefenwahrscheinlichkeit für den Bildflicken zu bestimmen; und
Bestimmen einer Tiefenschätzung für den Bildflicken, die Tiefenhypothese zu sein, welche eine maximale Tiefenwahrscheinlichkeit ergibt.
- 14. System nach Klausel 12 oder 13, worin der erste Unschärfe-Kernel und der zweite Unschärfe-Kernel jeweils identifiziert werden aus einer Zuordnung von Tiefen zu und Konfigurationseinstellungen zu Unschärfe-Kerneln, worin die Zuordnung bestimmt wird aus Kalibrierungsdaten für die Digitalkamera (204).
- 15. System nach einer der Klauseln 12 bis 14, worin das Ausführen der computerlesbaren Anweisungen das System weiterhin dazu veranlasst, Operationen auszuführen, welche umfassen:
vor dem Identifizieren der Mehrzahl von Bildflicken aus dem ersten Bild und der Mehrzahl entsprechender Bildflicken aus dem zweiten Bild, Analysieren des ersten Bildes und des zweiten Bildes unter Verwendung eines Bildkorrespondenzalgorithmus, um eine Änderung der Position eines Objekts (210, 212, 214) innerhalb der Szene (206) zu identifizieren, die zwischen dem Erfassen des ersten Bildes und dem Erfassen des zweiten Bildes aufgetreten ist; und
Anpassen von zumindest einem von dem ersten Bild oder dem zweiten Bild, um der identifizierten Änderung Rechnung zu tragen.
- 16. System nach einer der Klauseln 12 bis 15, worin die Tiefen-Likelihood-Funktion angepasst ist, Veränderungen von Beleuchtungsbedingungen in zumindest einem von dem ersten Bild oder dem zweiten Bild in Begriffen der Helligkeit und dem Kontrast zu modellieren.
- 17. System nach einer der Klauseln 12 bis 16, worin die zumindest eine unterschiedliche Konfigurationseinstellung eine Blendeneinstellung und eine Fokuseinstellung umfasst.
- 18. System nach einer der Klauseln 12 bis 17, worin jedes der Bilder (104(1) bis 104(N); 302 bis 308) ohne Berücksichtigung eines Abtastmusters erfasst wird und die zumindest eine unterschiedliche Konfigurationseinstellung willkürlich ausgewählt wird.
- 19. Eine oder mehrere computerlesbare Speichervorrichtungen, welche computerausführbare Anweisungen speichern, welche, wenn sie durch ein oder mehrere Computersysteme ausgeführt werden, das eine oder die mehreren Computersysteme dazu konfigurieren, eine Tiefenkarte (108; 310, 314) aus Bildern (104(1) bis 104(N); 302 bis 308), die von einer Digitalkamera (204) erfasst wurden, zu erzeugen durch Ausführen von Operationen, welche umfassen:
Empfangen einer Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308), die eine Szene (206) zeigen und von im Wesentlichem demselben Standpunkt (208) aus erfasst wurden, wobei jedes der Bilder (104(1) bis 104(N); 302 bis 308) durch die Digitalkamera (204) erfasst wurde unter Verwendung von zumindest einer Konfigurationseinstellung, die unterschiedlich ist zu jeder der anderen Bilder (104(1) bis 104(N); 302 bis 308), wobei die zumindest eine unterschiedliche Konfigurationseinstellung eine Blendeneinstellung und eine Fokuseinstellung umfasst;
Identifizieren einer Mehrzahl von Bildflicken von einem ersten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308) und einer Mehrzahl von entsprechenden Bildflicken von einem zweiten Bild aus der Menge von zumindest zwei Bildern (104(1) bis 104(N); 302 bis 308);
iteratives Evaluieren jedes Bildflickens über eine diskrete Menge von Tiefenhypothesen unter Verwendung einer Tiefen-Likelihood-Funktion, die abgeleitet ist von einem flachen Vor-Bild in einem Frequenzbereich, welche den Bildflicken und dessen entsprechenden Bildflicken vergleicht, gefaltet mit Unschärfe-Kerneln; und
Erzeugen der Tiefenkarte (108; 310, 314) unter Verwendung der Tiefenschätzung für jeden Bildflicken.
- 20. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach Klausel 19, worin die iterative Evaluierung für jede Tiefenhypothese umfasst:
Identifizieren eines ersten Unschärfe-Kernels, der von der Tiefenhypothese und einer ersten Konfigurationseinstellung, die verwendet wurde, um das erste Bild zu erfassen, abhängt,
Identifizieren eines zweiten Unschärfe-Kernels, der von der Tiefenhypothese und einer zweiten Konfigurationseinstellung, die verwendet wurde, um das zweite Bild zu erfassen, abhängt,
Falten des Bildflickens mit dem zweiten Unschärfe-Kernel und des entsprechenden Bildflickens mit dem ersten Unschärfe-Kernel, um eine Tiefenwahrscheinlichkeit für den Bildflicken zu bestimmen, und
Bestimmen einer Tiefenschätzung für den Bildflicken, die Tiefenhypothese zu sein, welche eine maximale Tiefenwahrscheinlichkeit ergibt.
- 21. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach Klausel 19 oder 20, worin das iterative Evaluieren weiter ein Analysieren des Bildflickens und des korrespondierenden Bildflickens umfasst, um eine Änderung der Position eines Objekts (210, 212, 214) innerhalb der Szene (206) zu berücksichtigen, die zwischen dem Erfassen des ersten Bildes und dem Erfassen des zweiten Bildes aufgetreten ist, durch:
Repräsentieren des Bildflickens und des korrespondierenden Bildflickens im Frequenzbereich;
Berechnen der Gesamtenergie von jedem von dem Bildflicken und von dem korrespondierenden Bildflicken bei einer Menge räumlicher Frequenzen; und
Vergleichen des Bildflickens und des korrespondierenden Bildflickens durch Penalisieren von Energiedifferenzen über die Menge räumlicher Frequenzen.
-
Anhang 2
-
EINSTELLUNGEN EINER DIGITALKAMERA ZUR TIEFENKARTEN-VERFEINERUNG
-
Anhang 2 beschreibt im Detail den Gegenstand der US Anmeldung Anmeldenummer 14/576,936, der hilfreich für das Verständnis der vorliegenden Anmeldung ist, und der ein integraler Bestandteil der Offenbarung der vorliegenden Anmeldung ist.
-
Bezugszeichen, die im Anhang 2 verwendet werden, beziehen sich nur auf die 14 bis 19. Die Bezugszeichen sind nicht mit den Bezugszeichen zu verwechseln, die in anderen Abschnitten der vorliegenden Anmeldung verwendet werden, wie in den 1 bis 14 und den diesbezüglichen Abschnitten der Beschreibung.
-
Technisches Gebiet
-
Die vorliegende Offenbarung bezieht sich allgemein auf Verfahren und Systeme zum Bestimmen von Konfigurationseinstellungen für eine Digitalkamera und eine Anzahl an Bildern, die zu erfassen sind, durch die Digitalkamera unter Verwendung dieser Einstellungen zum Verbessern von Tiefeninformation.
-
Urheberrechtsvermerk
-
Ein Teil der Offenbarung dieses Patentdokuments enthält Material, das urheberrechtlichem Schutz unterliegt. Der Inhaber der Verwertungsrechte hat keine Einwände gegen die originalgetreue Wiedergabe durch jedermann des Patentdokuments oder der Patentoffenbarung, wie es bzw. wie sie in der Patentakte oder den Aufzeichnungen des Patent- und Markenamtes erscheint, behält sich aber alle anderen Verwertungsrechte jeder Art vor.
-
Hintergrund
-
Digitalkameras, einschließlich digitaler Spiegelreflexkameras (DSLR) und Digitalkameras, die in Mobilgeräte integriert sind, haben oftmals hochentwickelte Hardware und Software, die es einem Benutzer ermöglicht, digitale Bilder zu erfassen unter Verwendung einer Kombination unterschiedlicher benutzerdefinierter und kameradefinierter Konfigurationseinstellungen. Ein digitales Bild stellt eine digitale Repräsentation einer bestimmten Szene bereit. Ein digitales Bild kann im Nachgang bearbeitet werden, für sich allein oder in Kombination mit anderen Bildern der Szene, um aus dem Bild zusätzliche Information abzuleiten. Zum Beispiel kann ein oder können mehrere Bilder einer Szene verarbeitet werden, um die Tiefe der Objekte zu schätzen, die innerhalb der Szene dargestellt sind, das heißt, die Entfernung jedes Objekts von einer Stelle, von der aus die Bilder aufgenommen wurden. Die Tiefenschätzungen für jedes Objekt in einer Szene, oder möglicher Weise für jedes Pixel innerhalb eines Bildes, sind in einer Datei enthalten, die als eine „Tiefenkarte” bezeichnet wird. Unter anderem können Tiefenkarten verwendet werden, um bestehende Bildeditiertechniken (zum Beispiel Schneiden, Füllen von Löchern, Kopieren in Schichten eines Bildes und so weiter) zu verbessern.
-
Herkömmlicher Weise werden Tiefenkarten unter Verwendung von einer aus einer Vielzahl von Techniken erzeugt. Derartige Techniken beinhalten Techniken der Tiefe aus Defokus, welche die Außer-Fokus-Unschärfe verwenden, um die Tiefe der abgebildeten Szene zu schätzen. Die Tiefenschätzung unter Verwendung derartiger Techniken ist möglich, da abgebildete Stellen der Szene unterschiedliche Maße an Außer-Fokus-Unschärfe (das heißt, Tiefeninformation) haben werden, abhängig von den Kamerakonfigurationseinstellungen (zum Beispiel Blendeneinstellung und Fokuseinstellung), die verwendet wurden, um das bzw. um die Bilder zu erfassen. Das Schätzen von Tiefe beinhaltet daher, die Menge an Tiefeninformation an den unterschiedlichen Stellen der Szene zu schätzen, unabhängig davon, ob die Tiefeninformation aus einem Bild oder aus mehreren Bildern der Szene abgeleitet ist. Herkömmlicher Weise hängt die Genauigkeit solcher Tiefenschätzungen von der Anzahl an Bildern ab, die verwendet werden. Allgemein gesagt ist die Menge an Tiefeninformation, die für jede beliebige Position (zum Beispiel Pixel) der Szene verglichen werden kann, umso größer, je größer die Anzahl an Bildern ist, die eingegeben werden.
-
Viele herkömmliche Techniken der Tiefe aus Defokus können daher eine dichte Menge eingegebener Bilder erfordern, um eine Szenentiefe mit einem höheren Grad an Gewissheit zu schätzen. Jedoch sind herkömmliche Techniken nicht in der Lage, prädiktiv die optimale Anzahl an Bildern und die entsprechenden Kamerakonfigurationseinstellungen zu bestimmen, die notwendig sind, um eine Tiefenkarte der Szene mit einem bestimmten Grad an Gewissheit zu schätzen. Auch können herkömmliche Techniken nicht verwendet werden, um eine existierende Tiefenkarte zu analysieren, um prädiktiv eine Anzahl an zusätzlichen Bildern der Szene zu bestimmen, die mit bestimmten Kamerakonfigurationseinstellungen erfasst werden könnten, so dass hinreichend mehr Tiefeninformation verfügbar wäre, um die existierende Tiefenkarte zu verfeinern (das heißt, die Genauigkeit deren Tiefenschätzungen zu verbessern).
-
Dementsprechend ist es wünschenswert, verbesserte Lösungen zum Analysieren einer existierenden Tiefenkarte oder anderer Szenen-Tiefeninformation bereitzustellen, um prädiktiv eine Anzahl zusätzlicher Bilder der Szene zu bestimmen, die zu erfassen sind, sowie die Kamerakonfigurationseinstellungen, die zum Erfassen dieser verwendet werden, so dass hinreichend Tiefeninformation verfügbar ist für das Verfeinern der Tiefenschätzungen, welche von der existierenden Tiefenkarte oder anderer Szenen-Tiefeninformation bereitgestellt wird.
-
Zusammenfassung
-
In einigen Beispielen werden Systeme und Verfahren bereitgestellt zum prädiktiven Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung für das Verfeinern einer Tiefenkarte. Insbesondere geben die Tiefenverfeinerungsbilderfassungsanweisungen, nachdem sie bestimmt wurden, eine Anzahl an zusätzlichen aufzunehmenden Bildern an, und mit welchen Blenden- und Fokuseinstellungen diese aufzunehmen sind, so dass eine existierende Tiefenkarte verfeinert werden kann mit zusätzlicher Tiefeninformation, die abgeleitet ist von den zusätzlichen Bild(ern). Das Verfeinern einer existierenden Tiefenkarte beinhaltet ein Verbessern der Genauigkeit der Tiefenschätzungen in der existierenden Tiefenkarte. Tiefenverfeinerungsbilderfassungsanweisungen werden auf eine Weise bestimmt, die von der Szene abhängt, da Daten, die mit der existierenden Tiefenkarte assoziiert sind, analysiert werden Zum Beispiel nehmen die hierin beschriebenen Techniken zum Erzeugen von Tiefenverfeinerungsbilderfassungsanweisungen als eine Eingabe eine Kombination von einem Alles-im-Fokus Bild einer Szene, einer existierende Tiefenkarte der Szene, und/oder einem Unsicherheitsmaß, das der existierenden Tiefenkarte der Szene entspricht. Das Alles-im-Fokus Bild ist ein Bild der zugrunde liegenden Szene, das ohne jede Unschärfe erzeugt wird. Das Unsicherheitsmaß stellt eine Repräsentation der Genauigkeit jeder Tiefenschätzung in der existierenden Tiefenkarte dar, die eine Tiefenschätzung für jedes Pixel eines Bildes bereitstellt. Zum Beispiel kann das Unsicherheitsmaß anzeigen, dass für ein gegebenes Pixel eine Tiefenschätzung von fünf Meter eine bestimmte Varianz aufweist. In einigen Beispielen wird die existierende Tiefenkarte auch als eine Eingabe bereitgestellt. Da jedoch die Tiefenschätzungen, die in der Tiefenkarte gefunden werden können, aus dem Unsicherheitsmaß und dem Alles-im-Fokus Bild abgeleitet werden können, ist die existierende Tiefenkarte für das Implementieren der hierin beschriebenen Techniken optional. In einigen Beispielen wird auch eine Tiefenwahrscheinlichkeit, die der existierenden Tiefenkarte entspricht, ebenfalls als eine Eingabe bereitgestellt. Die Tiefenwahrscheinlichkeit stellt eine Zuordnung einer Wahrscheinlichkeit zur Tiefe dar und kann in Form einer Tiefenwahrscheinlichkeitskarte bereitgestellt werden.
-
Der Grad, zu dem die Tiefenschätzungen in einer existierenden Tiefenkarte verbessert werden kann, wird mit einem Verbesserungskriterium gemessen. Das Verbesserungskriterium ist eine Summe der Zunahme in der Tiefenpräzision (zum Beispiel in Bits), die an einem gegebenen Pixel in der existierenden Tiefenkarte möglich wäre, wenn eine bestimmte Konfigurationseinstellung verwendet wird, um ein zusätzliches Bild zu erfassen, und zusätzliche Tiefeninformation aus diesem abgeleitet wird. Das Verbesserungskriterium wird über eine Menge von möglichen Konfigurationseinstellungen für jedes Pixel evaluiert, um den Gesamtgrad der Verbesserung für jedes Pixel als eine Funktion von Konfigurationseinstellungen zu bestimmen. Diese Funktion kann hierin als eine Abstimmungskarte bezeichnet werden. Die Abstimmungskarte gibt für jedes Pixel in der existierenden Tiefenkarte den Grad an, zu dem zusätzliche Tiefeninformation, die abgeleitet wird von einem Bild, das unter Verwendung einer bestimmten Konfigurationseinstellung erfasst wird, die Tiefenschätzung bei diesem Pixel verbessern wird. Die Abstimmungskarte wird dann verwendet, um auszuwählen, welche Konfigurationseinstellungen verwendet werden sollten, um ein oder mehrere zusätzliche Bilder der Szene aufzunehmen.
-
Tiefenverfeinerungsbilderfassungsanweisungen für ein oder für mehrere Bilder werden dann bestimmt durch Analysieren der Abstimmungskarte. Zum Beispiel kann die Abstimmungskarte anzeigen, dass ein Bild der Szene, das mit einer bestimmten Fokuseinstellung und einer bestimmten Blendeneinstellung aufgenommen wird, die Genauigkeit der Tiefenschätzungen bedeutsam verbessern wird für einen ausreichenden Prozentsatz der Pixel der existierenden Tiefenkarte, und dass ein anderes Bild, das mit einer anderen Fokuseinstellung und/oder einer anderen Blendeneinstellung aufgenommen wird, die Genauigkeit der Tiefenschätzungen weiter bedeutsam verbessern wird für einen anderen ausreichenden Prozentsatz der Pixel. Datenausreißer in der Abstimmungskarte können ignoriert werden, so dass keine zusätzlichen Bilder erfasst und verarbeitet werden, wenn dies allein dazu wäre, um lediglich insignifikante Verfeinerungen für die existierende Tiefenkarte zu erzielen.
-
Diese illustrativen Beispiele sind nicht dazu genannt, die Offenbarung zu beschränken, oder zu definieren, sondern um Beispiele zu geben, die dem Verständnis der Offenbarung dienen sollen. Weitere Beispiele werden in der detaillierten Beschreibung genannt und dort näher beschrieben.
-
Kurze Beschreibung der Zeichnungen
-
Diese und andere Merkmale, Beispiele und Vorteile der vorliegenden Offenbarung werden besser verstanden werden beim Lesen der folgenden detaillierten Beschreibung mit Bezug auf die beigefügten Zeichnungen, in denen:
-
14 ein Blockdiagramm ist, das eine beispielhafte Tiefenverfeinerungsfunktionseinheit, eine beispielhafte Bilderfassungsvorrichtung, und beispielhafte Eingaben und Ausgaben von diesen zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung gemäß zumindest einer Ausführungsform zeigt;
-
15 ein Diagramm ist, das eine beispielhafte Tiefenverfeinerungsfunktionseinheit zeigt, welche Dienste zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung gemäß zumindest einer Ausführungsform beinhaltet;
-
16 ein Diagramm ist, das eine Vielzahl von Bildflicken veranschaulicht, die analysiert werden zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen gemäß zumindest einer Ausführungsform;
-
17 eine beispielhafte Umgebung ist, die einen Benutzer umfasst, der eine Szene erfasst gemäß Tiefenverfeinerungsbilderfassungsanweisungen gemäß zumindest einer Ausführungsform;
-
18 ein Flussdiagramm ist, das ein beispielhaftes Verfahren zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung gemäß zumindest einer Ausführungsform zeigt; und
-
19 ein Diagramm ist, das eine beispielhafte Netzwerkumgebung zeigt, welche Benutzervorrichtungen und einen beispielhaften Bildeditierdienst zum Implementieren von Techniken beinhaltet, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung gemäß zumindest einer Ausführungsform beziehen.
-
Detaillierte Beschreibung
-
Es werden computerimplementierte Systeme und Verfahren offenbart zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen, die im Zusammenhang mit dem Verfeinern einer existierenden Tiefenkarte verwendet werden. Wie oben beschrieben kann eine Tiefenkarte erzeugt werden, indem zum Beispiel Differenzen in Defokus-Unschärfe verglichen werden, die mit zwei oder mit mehreren eingegebenen Bildern assoziiert sind.
-
Die hierin beschriebenen Techniken werden verwendet, um prädiktiv Tiefenverfeinerungsbilderfassungsanweisungen auf eine Weise zu bestimmen, die den Betrag an möglicher Erhöhung an Tiefenpräzision bei jedem Pixel in einer existierenden Tiefenkarte berücksichtigt. In einem Beispiel wird eine Tiefenkarte erzeugt unter Verwendung herkömmlicher Techniken oder in Übereinstimmung mit bestimmten Techniken, die in verwandten Offenbarungen beschrieben sind, die durch in Bezugnahme hierin aufgenommen sind, wie nachstehend angegeben. Eine Tiefenkarte enthält Tiefeninformation für die Szene, die typischer Weise als eine Schätzung der Tiefe für jedes Pixel des Bildes angegeben ist. Die existierende Tiefenkarte kann zuvor erzeugt worden sein aus einem oder aus mehreren Bildern der Szene, erfasst unter Verwendung einer Digitalkamera. Die existierende Tiefenkarte hat ein entsprechendes Unsicherheitsmaß, das eine Varianz für jede Tiefenschätzung in der existierenden Tiefenkarte anzeigt. Die existierende Tiefenkarte weist auch eine entsprechende Tiefenwahrscheinlichkeit für jede Tiefenschätzung in der existierenden Tiefenkarte auf. Die Tiefenwahrscheinlichkeit ist eine Zuordnung von Wahrscheinlichkeit zu Tiefe, und kann in Form einer Tiefenwahrscheinlichkeitskarte bereitgestellt sein.
-
In einigen Beispielen kann eine Analyse der existierenden Tiefenkarte anzeigen, dass sie geeignete Tiefenschätzungen für die Szene enthält. In anderen Fällen kann die Analyse jedoch anzeigen, dass verbesserte (zum Beispiel verbessert im Hinblick auf die Genauigkeit) Tiefenschätzungen erzielt werden können, indem zusätzliche Tiefeninformation aus einem oder aus mehreren zusätzlichen Bildern berücksichtigt wird, die erfasst werden unter Verwendung bestimmter Kamerakonfigurationseinstellungen. In einigen Beispielen beinhaltet dies ein prädiktives Bestimmen, wie viele Bilder mit der Digitalkamera erfasst werden sollten, und welche Konfigurationseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) für das Erfassen dieser verwendet werden sollten.
-
In einigen Beispielen beinhaltet das Verfeinern der Tiefenschätzungen ein Bestimmen, für jede Konfigurationseinstellung (zum Beispiel Blende und Fokus) von Interesse, ob zusätzliche Tiefeninformation, die aus einem Bildflicken eines Bildes abgeleitet werden kann, das mit dieser Konfigurationseinstellung erfasst wird, verwendet werden kann, um zwischen einem Bereich von möglichen Tiefenwerten zu diskriminieren, die einer existierenden Tiefenschätzung entsprechen.
-
In einigen Beispielen sind die evaluierten Konfigurationseinstellungen diejenigen Konfigurationseinstellungen, die für eine bestimmte Digitalkamera mit einer bestimmten Linse zur Verfügung stehen. Zum Beispiel mag eine bestimmte Kombination von Linse und Kamera nur eine diskrete Anzahl möglicher Blendeneinstellungen und Fokuseinstellungen haben.
-
Die hierin beschriebenen Techniken verwenden als Eingabe eine Kombination eines Alles-im-Fokus Bildes, einer existierenden Tiefe, und/oder eines Unsicherheitsmaßes, das der existierenden Tiefe entspricht. Jede dieser Eingaben wird erzeugt unter Verwendung einer geeigneten Technik der Tiefenschätzung und wird verwendet, wie hierin beschrieben, um die Tiefenverfeinerungsbilderfassungsanweisungen zu bestimmen. Unter Verwendung des Alles-im-Fokus Bildes und eines Bereichs möglicher Tiefenwerte (zum Beispiel zwischen neun und zwölf Meter), der bestimmt ist aus dem Unsicherheitsmaß für die existierende Tiefenkarte, werden Bildflicken simuliert, um zu bestimmen, wie unscharf jeder Bildflicken sein würde bei jedem der möglichen Tiefenwerte (zum Beispiel bei neun Metern, zehn Meter, elf Meter, und zwölf Metern). Die Unschärfe eines Bildflickens entspricht der Menge an Tiefeninformation, die aus dem Bildflicken abgeleitet werden kann. Wenn im Frequenzbereich betrachtet, kann die Unschärfe des Bildes der Menge an Frequenzinhalt in dem Bildflicken entsprechen. In einigen Beispielen haben die Entfernungen unter den möglichen Tiefen einen größeren oder einen kleineren Grad an Granularität. Wenn für eine bestimmte Konfigurationseinstellung von Interesse ein simulierter Bildflicken bei einer ersten möglichen Tiefe und ein simulierter Bildflicken bei einer zweiten möglichen Tiefe sich hinreichend unterscheiden in Begriffen der Unschärfe, dann kann ein Bild, das mit dieser Konfigurationseinstellung erfasst wird, eine gute Wahl sein, um die Tiefenschätzung des Bildflickens von der existierenden Tiefenkarte zu verfeinern. Dies aus dem Grund, dass das Bild, das mit dieser Konfigurationseinstellung erfasst wird, eine adäquate Unterscheidung zwischen der ersten möglichen Tiefe und der zweiten möglichen Tiefe ermöglichen würde. Dieses Konzept wird als Tiefendiskriminierbarkeit bezeichnet. In einigen Beispielen wird eine Kamerakonfigurationseinstellung auf eine Weise ausgewählt, welche die Tiefendiskriminierbarkeit zwischen einem Bereich von möglichen Tiefenwerten, der dem Bildflicken entspricht, maximiert.
-
In einigen Beispielen wird ein Verbesserungskriterium erzeugt als Teil des Prozesses des Bestimmens von Tiefenverfeinerungsbilderfassungsanweisungen. Das Verbesserungskriterium gibt die Summe der Erhöhung in Tiefenpräzision (zum Beispiel in Bits) an, das bei jedem Pixel möglich ist, wenn eine bestimmte Konfigurationseinstellung (zum Beispiel Blendeneinstellung und Fokuseinstellung) einer Digitalkamera verwendet wird. In einigen Beispielen kann, basierend auf dem Verbesserungskriterium, die partikuläre Konfigurationseinstellung ausgewählt werden, welche die Erhöhung in gesamter Tiefenpräzision über eine Szene maximiert. In jedem Fall kann das Verbesserungskriterium über eine Menge von möglichen Konfigurationseinstellungen evaluiert werden, um einen Gesamtbetrag der Verbesserung in der Tiefenpräzision als eine Funktion der Konfigurationseinstellungen zu bestimmen. Diese Funktion kann hierin als eine Abstimmungskarte bezeichnet werden. Die Abstimmungskarte kombiniert, für jedes Pixel in der existierenden Tiefenkarte, „Stimmen” für diejenigen Konfigurationseinstellungen, welche die Tiefenschätzung bei diesem Pixel am meisten verbessern werden. Jeder Bildflicken, der analysiert wird, gibt eine „Stimme” für die partikuläre Konfigurationseinstellung ab, die dessen entsprechende Tiefenschätzung(en) verbessern wird. In einigen Beispielen stimmt ein partikulärer Bildflicken für mehr als eine Konfigurationseinstellung. Die Stimmen aller Bildflicken können gemittelt, oder auf andere Weise aggregiert werden, und eine Konfigurationseinstellung, die dem Mittelwert oder dem Aggregat der Stimmen entspricht, kann verwendet werden. In einigen Beispielen beinhaltet das Bestimmen der Konfigurationseinstellungen eines nächsten zu erfassenden Bildes das Auffinden des Ortes eines Maximums in der Abstimmungskarte. In einigen Beispielen hat eine Abstimmungskarte mehr als ein lokales Maximum, das unterschiedlichen Tiefenbereichen entsprecht, die durch Tiefeninformation verbessert werden können, die aus Bildern, die unter Verwendung unterschiedlicher Konfigurationseinstellungen erfasst werden, abgeleitet werden kann. In diesem Beispiel können Konfigurationseinstellungen ausgewählt werden, die einem jeweiligen Maximum entsprechen, und daher können die Tiefenverfeinerungsbilderfassungsanweisungen angeben, dass mehr als ein zusätzliches Bild aufgenommen werden sollte.
-
In einigen Beispielen werden, nachdem für eine Anzahl an Bildern bestimmte Konfigurationseinstellungen empfohlen und die Bilder erfasst wurden, ein verfeinertes Unsicherheitsmaß, ein verfeinertes Alles-im-Fokus Bild, und eine verfeinerte Tiefenkarte erzeugt. In einigen Beispielen wird auch eine verfeinerte Tiefenwahrscheinlichkeitskarte erzeugt. Die oben diskutierten Techniken (und die in größerem Teil nachfolgend diskutiert werden) werden dann wiederholt, um die Tiefenschätzungen in der verfeinerten Tiefenkarte weiter zu verfeinern. In einigen Beispielen wird eine Eingabe empfangen, die ein Mindestniveau an Tiefenpräzision angibt, eine Gesamtzahl zusätzlicher zu erfassender Bilder, eine Zeitdauer zum Erfassen zusätzlicher Bilder, einen Wunsch, zusätzliche Bilder in einem Stapel zu erfassen, oder irgendeine andere geeignete Eingabe, um Nebenbedingungen für die Bestimmung der Tiefenverfeinerungsbilderfassungsanweisungen aufzustellen. Basierend auf einer dieser Eingaben kann die Auswahl der Konfigurationseinstellungen, die in die Tiefenverfeinerungsbilderfassungsanweisungen aufzunehmen sind, angepasst werden. Wenn die Eingabe zum Beispiel anzeigt, dass ein Benutzer nur gewillt ist, drei zusätzlicher Bilder aufzunehmen, können die drei Konfigurationseinstellungen, welche die drei höchsten Stimmen erhalten, aus der Abstimmungskarte (zum Beispiel die, welche die drei höchsten Werte haben), ausgewählt und in die Tiefenverfeinerungsbilderfassungsanweisungen aufgenommen werden.
-
Die hierin beschriebenen Techniken, die sich auf das Erzeugen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung beziehen, können verwendet werden, um bestehende Bildeditiertechniken zu verbessern. Zum Beispiel kann die existierende Tiefenkarte eine Bilddatei mit Tiefeninformation sein, eine flache Datei mit Tiefeninformation, oder jeder andere geeignete Dateityp. In jedem Fall kann die Tiefeninformation als Teil eines Bildeditierprozesses verwendet werden. Zum Beispiel kann derartige Information relevant dafür sein, zwischen Vordergrundobjekten und Hintergrundobjekten zu unterscheiden. Eine derartige Unterscheidung kann relevant sein, um Objekte (ob sie im Vordergrund oder im Hintergrund sind) innerhalb des Bildes auszuwählen. Man stelle sich eine beispielhafte Szene vor, wo ein Bild – das Tiefenschätzungsinformation einhaltet, die wie hierin beschrieben erzeugt wurde – ein Kind zeigt (zum Beispiel ein Vordergrundelement), das vor einem Baum steht (zum Beispiel ein Hintergrundelement). Ein Benutzer, der das Kind aus der Szene „ausschneiden” möchte, kann dies anzeigen, indem er einen Teil des Kindes auswählt unter Verwendung einer Bildeditieranwendung. Die Bildeditieranwendung kann dann auf die Tiefeninformation zugreifen, zusätzlich zu Auswahlhinweisen wie Farbe und Textur, um einen Umriss des auszuschneidenden Kindes zu erzeugen. Daher kann in einigen Beispielen die Tiefeninformation verwendet werden, um herkömmliche Auswahlhinweise wie Farben und Textur zu ergänzen.
-
Mit Bezug nun auf die Figuren zeigt 14 ein Blockdiagramm 100 zum Implementieren von Techniken, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung wie hierin beschrieben beziehen. Das Blockdiagramm 100 beinhaltet eine Tiefenverfeinerungsfunktionseinheit 102. Die Tiefenverfeinerungsfunktionseinheit 102 ist konfiguriert, eine existierende Tiefenkarte 104, ein Unsicherheitsmaß 124, und ein Alles-im-Fokus Bild 122 zu empfangen oder darauf zuzugreifen. Jedes von der existierenden Tiefenkarte 104, dem Unsicherheitsmaß 124, und dem Alles-im-Fokus Bild 122 kann von einem Benutzer empfangen werden, auf dieses in einem Speicher zugegriffen werden, oder auf eine andere geeignete Weise abgerufen werden. Die existierenden Tiefenkarte 104 umfasst Tiefenschätzungen für jedes Objekt in einer Szene, oder möglicher Weise für jedes Pixel innerhalb eines Bildes, das der Szene entspricht. In einigen Beispielen wurde die existierende Tiefenkarte 104 zuvor unter Verwendung einer Technik der Tiefenschätzung ausgegeben. Beispielhafte Techniken der Tiefenschätzung beinhalten: Techniken der Tiefe aus Defokus, welche die Unschärfe in einem oder in mehreren Bildern analysieren, um die Tiefe zu schätzen, und Techniken der Computervision, welche die Tiefe unter Verwendung von Mengen von Alles-im-Fokus Bildern schätzen. Unabhängig davon, wie die existierende Tiefenkarte 104 erzeugt wurde, wird diese der Tiefenverfeinerungsfunktionseinheit 102 bereitgestellt. Die Tiefenverfeinerungsfunktionseinheit 102 ist konfiguriert, die existierende Tiefenkarte 104 zu analysieren und die enthaltenen Tiefenschätzungen zu verfeinern, indem Tiefenverfeinerungsbilderfassungsanweisungen 108 vorgeschlagen werden.
-
Als Teil des Erzeugens der existierenden Tiefenkarte 104 kann eine Technik der Tiefenschätzung auch das Unsicherheitsmaß 124 und das Alles-im-Fokus Bild 122 erzeugen. In einigen Beispielen werden das Unsicherheitsmaß 124 und das Alles-im-Fokus Bild 122 von einer Technik der Tiefenschätzung verwendet, um die existierende Tiefenkarte 104 zu erzeugen. Das Unsicherheitsmaß 124 umfasst die Varianz jeder Tiefenschätzung für jedes Pixel oder jeden Flicken, das bzw. der in der existierenden Tiefenkarte 104 repräsentiert ist. Das Alles-im-Fokus Bild 122 repräsentiert die abgebildete Szene, wie sie erscheinen würde, wenn keines der Pixel in dem Bild irgendeine Unschärfe erfahren würde. Auf diese Weise kann das Alles-im-Fokus Bild 122 als ein scharfes Bild betrachtet werden. In einigen Beispielen wird das Alles-im-Fokus Bild 122 aus einem oder aus mehreren Bildern der Szene erzeugt, die erfasst wurden, um die existierende Tiefenkarte 104 zu erzeugen. In einigen Beispielen wird das Alles-im-Fokus Bild 122 von der Kamera erfasst.
-
Das Unsicherheitsmaß 124, das Alles-im-Fokus Bild 122 und optional die existierenden Tiefenkarte 104 (kollektiv: die Tiefenverfeinerungseingabe 126) werden im Voraus berechnet, bevor sie der Tiefenverfeinerungsfunktionseinheit 102 bereitgestellt werden. In einigen Beispielen ist auch eine Tiefenwahrscheinlichkeitskarte, die der existierenden Tiefenkarte 104 entspricht, auch als eine Eingabe zu der Tiefenverfeinerungsfunktionseinheit 102 umfasst. In einigen Beispielen wird die Tiefenwahrscheinlichkeitskarte von der existierenden Tiefenkarte 104 und dem Unsicherheitsmaß 124 abgeleitet. In einigen Beispielen beinhaltet die Tiefenwahrscheinlichkeitskarte Tiefenwahrscheinlichkeiten für jedes Pixel der existierenden Tiefenkarte 104, für Mehrzahlen von Pixeln der existierenden Tiefenkarte 104, für Bildflicken der existierenden Tiefenkarte 104 (welche ein oder mehrere Pixel umfassen können), oder für die Gesamtheit der existierenden Tiefenkarte 104. Wie hierin verwendet bezieht sich ein „Bildflicken” auf einen kleinen Bereich eines Bildes (zum Beispiel die Bilder 118(1) bis 118(N)), welcher eine Mehrzahl von Pixeln beinhaltet. Die Tiefenverfeinerungsfunktionseinheit 102 nimmt die Tiefenverfeinerungseingabe 126 als eine Eingabe und gibt die Tiefenverfeinerungsbilderfassungsanweisungen 108 aus. Schließlich ist es ein Zweck des Erzeugens der Tiefenverfeinerungsbilderfassungsanweisungen 108 oder zumindest eines Teils der Tiefenverfeinerungsbilderfassungsanweisungen 108, die existierende Tiefenkarte 104 unter Verwendung zusätzlicher Tiefeninformation zu verfeinern, die aus einem oder aus mehreren Bildern 118(1) bis 118(N) abgeleitet wird, welche von der Bilderfassungsvorrichtung 106 gemäß den Anweisungen erfasst werden.
-
Die Tiefenverfeinerungsfunktionseinheit 102 bestimmt daher die Tiefenverfeinerungsbilderfassungsanweisungen 108 auf eine Weise, so dass die Präzision der Tiefenschätzungen in der existierenden Tiefenkarte 104 verbessert werden kann, wenn eine verfeinerte Tiefenkarte erzeugt wird unter Verwendung der Bilder 118(1) bis 118(N). Die Erhöhung in Präzision wird gemessen gemäß einem Verbesserungskriterium. Das Verbesserungskriterium gibt, wie in größerem Detail hierin beschrieben, für jedes Pixel einen Betrag der möglichen Erhöhung an Tiefenpräzision für eine Tiefenschätzung des Pixels an. Zu diesem Zweck bestimmt die Tiefenverfeinerungsfunktionseinheit 102 eine Anzahl an Bildern 110 und Konfigurationseinstellungen 112. Die Anzahl an Bildern 110 gibt die Anzahl an Bildern (das heißt, die Zahl der Bilder 118(1) bis 118(N)) an, die aufgenommen werden sollten unter Verwendung der Bilderfassungsvorrichtung 106, und die Konfigurationseinstellungen 112 geben die Einstellungen der Bilderfassungsvorrichtung 106 zum Erfassen der Bilder 118(1) bis 118(N) an, so dass die existierende Tiefenkarte 104 verfeinert werden kann unter Verwendung von Tiefeninformation, die abgeleitet wird aus den Bildern 118(1) bis 118(N). Insbesondere geben die Konfigurationseinstellungen 112 die Kameraeinstellungen an, in Begriffen von Blendeneinstellungen 114 und Fokuseinstellungen 116, die verwendet werden sollen, wenn die empfohlene Anzahl an Bildern erfasst wird, die durch die Anzahl an Bildern 110 identifiziert wird. Die Blendeneinstellungen 114 beziehen sich auf die Menge an Licht, das in die Kamera gelassen wird, wenn ein Bild erfasst wird. Die Blende einer Kamera wird angepasst unter Verwendung eines Lamellenmechanismuses, welcher die Menge an Licht anpasst. Die Fokuseinstellungen 116 beziehen sich auf eine Entfernung einer Fokusebene von der Bilderfassungsvorrichtung 106 (zum Beispiel einer Digitalkamera) und werden dementsprechend angepasst.
-
Die Tiefenverfeinerungsfunktionseinheit 102 erzeugt nicht nur jeden Teil der Tiefenverfeinerungsbilderfassungsanweisungen 108, sondern assoziiert auch die Teile. Zum Beispiel sei angenommen, dass die Tiefenverfeinerungsfunktionseinheit 102 bestimmt, dass die Anzahl an Bildern 112, die erfasst werden sollten, vier ist. Die Tiefenverfeinerungsfunktionseinheit 102 assoziiert auch, mit jedem der vier Bilder, eine bestimmte Blendeneinstellung aus den Blendeneinstellungen 114 und eine bestimmte Fokuseinstellung aus den Fokuseinstellungen 116. In einigen Beispielen unterscheiden sich die Blendeneinstellungen 114 und die Fokuseinstellungen 116 für jedes der zusätzlichen Bilder. In einigen Beispielen sind jedoch zumindest einige der Blendeneinstellungen 114 und/oder zumindest einige der Fokuseinstellungen 116 für jedes der zusätzlichen Bilder gleich.
-
Die Tiefenverfeinerungsbilderfassungsanweisungen 108 werden dann der Bilderfassungsvorrichtung 106 bereitgestellt. Die Bilderfassungsvorrichtung 106 wird gemäß den Tiefenverfeinerungsbilderfassungsanweisungen 108 konfiguriert, um die Bilder 118(1) bis 118(N) zu erfassen. Weil die Bilder 118(1) bis 118(N) mit der Bilderfassungsvorrichtung 106 gemäß den Tiefenverfeinerungsbilderfassungsanweisungen 108 erfasst werden, enthalten die Bilder 118(1) bis 118(N) Konfigurationsinformation 120(1) bis 120(N). Die Konfigurationsinformation 120(1) ist assoziiert mit dem Bild 118(1), die Konfigurationsinformation 120(2) ist assoziiert mit dem Bild 118(2), und so weiter. Die Konfigurationsinformation 120(1) bis 120(N) für jedes der Bilder 118(1) bis 118(N) beinhaltet zumindest die Blendeneinstellung und die Fokuseinstellung, die von der Bilderfassungsvorrichtung 106 verwendet wurden, um die Bilder 118(1) bis 118(N) zu erfassen. Unter Verwendung der aus den Bildern 118(1) bis 118(N) abgeleiteten Tiefeninformation kann die existierende Tiefenkarte 104 verbessert werden.
-
15 zeigt eine beispielhafte Tiefenverfeinerungsfunktionseinheit 102 zum Implementieren von Techniken, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen beziehen, wie hierin beschrieben. Die Tiefenverfeinerungsfunktionseinheit 102 ist konfiguriert, zu verwalten, oder wird gebildet durch eine oder mehrere Funktionseinheiten, Unterfunktionseinheiten, Module, Untermodule, Komponenten, und/oder Dienste, die auf hierin offenbarte Beispiele gerichtet sind. In einigen Beispielen beinhaltet die Tiefenverfeinerungsfunktionseinheit 102 einen Kommunikationsdienst 204, eine Tiefenverfeinerungsanweisungsdienst 206, und einen Tiefenkarten-Verfeinerungsdienst 208. Während beispielhafte Module in 15 gezeigt sind und mit Bezug auf die anderen hierin genannten Figuren als diskrete Tasks auszuführen beschrieben werden, wird verstanden werden, dass andere Module und/oder Konfigurationen zum Ausführen anderer Tasks und/oder ähnlicher Tasks wie die hierein beschriebenen implementiert werden können gemäß den hierin beschriebenen Techniken. Die Tiefenverfeinerungsfunktionseinheit 102 kann auf jeder geeigneten Rechnervorrichtung implementiert werden, wie eine Benutzervorrichtung oder eine Servervorrichtung, wie mit Bezug auf die 19 erläutert.
-
Der Kommunikationsdienst 204 ist konfiguriert, Kommunikationen zwischen den anderen Modulen der Tiefenverfeinerungsfunktionseinheit 102 und anderen Vorrichtungen oder Komponenten (zum Beispiel Hardware- und/oder Softwarekomponenten), die mit der Tiefenverfeinerungsfunktionseinheit 102 kommunizieren, zu verwalten. Zum Beispiel wird die Tiefenverfeinerungseingabe 126 durch den Kommunikationsdienst 204 empfangen. In einigen Beispielen wird die Tiefenverfeinerungseingabe 126 einem anderen Modul der Tiefenverfeinerungsfunktionseinheit 102 bereitgestellt. Zum Beispiel stellt der Kommunikationsdienst 204, wie unten beschrieben, nachdem er die Tiefenverfeinerungseingabe 126 empfängt, die Tiefenverfeinerungseingabe 126 (oder einen Teil davon) dem Tiefenverfeinerungsanweisungsdienst 206 bereit. Der Kommunikationsdienst 204 stellt auch die Tiefenverfeinerungsbilderfassungsanweisungen 108 an andere Module der Tiefenverfeinerungsfunktionseinheit 102 bereit, einem Bediener einer Digitalkamera, einer Digitalkamera, einer Ausgabevorrichtung (zum Beispiel einem Drucker), einer Speicherstruktur, die mit der Tiefenverfeinerungsfunktionseinheit 102 assoziiert ist, und/oder an andere ähnliche Stellen. Wenn die Tiefenverfeinerungsfunktionseinheit 102 auf derselben Benutzervorrichtung implementiert ist, die dazu konfiguriert ist, die Bilder zu erfassen, und die verwendet wird, um die Tiefenkarte zu erzeugen (zum Beispiel eine mobile Vorrichtung mit einer Digitalkamera, ein Tablet-Computer mit einer Digitalkamera, eine handgehaltene Digitalkamera, ein Laptopcomputer mit einer Digitalkamera, und andere ähnliche Benutzervorrichtungen), verarbeitet der Kommunikationsdienst 204 Anforderungen, um Operationen auszuführen, die von anderen Komponenten jener Benutzervorrichtung empfangen werden. Wenn die Tiefenverfeinerungsfunktionseinheit 102 als Teil eines Bildeditierdiensts implementiert ist (zum Beispiel gehostet von einem Netzwerkserver), verarbeitet der Kommunikationsdienst 204 eine oder mehrere Anforderungen von Benutzervorrichtungen, um auf Teile der Tiefenverfeinerungsfunktionseinheit 102 zuzugreifen. In einigen Beispielen, werden von dem Kommunikationsdienst 204 andere Eingaben empfangen. In einigen Beispielen stellen diese anderen Eingaben Begrenzungen oder Nebenbedingungen für die Bestimmung von Tiefenverfeinerungsbilderfassungsanweisungen 108 auf.
-
Der Tiefenverfeinerungsanweisungsdienst 206 ist konfiguriert, die Techniken zu implementieren, die sich auf das Bestimmen der Tiefenverfeinerungsbilderfassungsanweisungen 108 zur Verwendung in Tiefenkarten-Verfeinerung beziehen, wie hierin beschrieben. In einigen Beispielen bestimmt der Tiefenverfeinerungsanweisungsdienst 206 die Tiefenverfeinerungsbilderfassungsanweisungen 108 basierend auf einem Teil der Tiefenverfeinerungseingabe 126. In einigen Beispielen geben die Tiefenverfeinerungsbilderfassungsanweisungen 108 die Anzahl an Bildern 110 an, die zu erfassen sind, eine Blendeneinstellung 114 für jedes der Bilder, und eine Fokuseinstellung 116 für jedes der Bilder 118. In einigen Beispielen identifiziert der Tiefenverfeinerungsanweisungsdienst 206 Tiefenverfeinerungsbilderfassungsanweisungen 108 so, dass eine Tiefenmehrdeutigkeit für texturierte Flicken konstanter Tiefe innerhalb einer simulierten Szene eliminiert wird. In einigen Beispielen beinhaltet das Bestimmen der Tiefenverfeinerungsbilderfassungsanweisungen 108 das Identifizieren eines Tiefenbereichs in der existierenden Tiefenkarte 104, der verfeinert werden kann. In einigen Beispielen beinhaltet das Verfeinern der existierenden Tiefenkarte 104 das Bestimmen der Tiefenverfeinerungsbilderfassungsanweisungen 108 derart, dass, wenn die Bilder 118 aufgenommen und die daraus abgeleitete Tiefeninformation mit der existierenden Tiefenkarte 104 kombiniert wird, die Tiefenwahrscheinlichkeiten für die Tiefenschätzungen der existierenden Tiefenkarte 104 verbessert werden.
-
Der Tiefenkarten-Verfeinerungsdienst 208 ist konfiguriert, die existierende Tiefenkarte 104 unter Verwendung von Tiefeninformation zu verfeinern, die abgeleitet ist von einem Bild bzw. Bildern 118, das bzw. die gemäß den Tiefenverfeinerungsbilderfassungsanweisungen 108 erfasst wurde(n). In einigen Beispielen erzeugt der Tiefenkarten-Verfeinerungsdienst 208 auch ein verfeinertes Unsicherheitsmaß, ein verfeinertes Alles-im-Fokus Bild und eine verfeinerte Tiefenwahrscheinlichkeit als Teil des Erzeugens einer verfeinerten Tiefenkarte. In einigen Beispielen erzeugt der Tiefenkarten-Verfeinerungsdienst 208 eine verbesserte oder verfeinerte Tiefenkarte, und die Tiefenverfeinerungsanweisungsmodule 206 analysieren die verbesserte Tiefenkarte, um zu sehen, ob die verbesserte Tiefenkarte nochmals verbessert werden kann. Falls ja, erzeugt der Tiefenverfeinerungsanweisungsdienst 206 zweite Tiefenverfeinerungsbilderfassungsanweisungen zum Erfassen zusätzlicher Bilder. Die zusätzliche Tiefeninformation, die von diesen zusätzlichen Bildern 118 abgeleitet wird, wird dem Tiefenkarten-Verfeinerungsdienst 208 bereitgestellt, um eine zweite verbesserte Tiefenkarte zu erzeugen. Auf diese Weise kann die Verbesserung oder Verfeinerung einer existierenden Tiefenkarte 104 iterativ erfolgen. Wie hierin verwendet bezieht sich das „iterative” Evaluieren auf ein sequentielles Evaluieren und/oder ein paralleles Evaluieren.
-
16 zeigt ein beispielhaftes Diagramm 300, das einen Plot von simulierten Bildflicken verglichen mit tatsächlichen Bildflicken zeigt, die in Übereinstimmung mit hierin beschriebenen Techniken erzeugt werden. In einigen Beispielen kann ein solcher Plot verwendet werden, um ein Verbesserungskriterium zu identifizieren, das erfüllt werden kann für die existierende Tiefenkarte 104 unter Verwendung zusätzlicher Tiefeninformation, die abgeleitet ist von zumindest einem zusätzlichen Bild. Das Diagramm 300 zeigt Alles-im-Fokus Bildflicken 302(A) bis 302(D) eines Alles-im-Fokus Bildes 122 in Nebeneinanderstellung mit simulierten Bildflicken 304(A) bis 304(D). Die simulierten Bildflicken 304(A) bis 304(D) werden erzeugt unter Verwendung der Alles-im-Fokus Bildflicken 302(A) bis 302(D) und eines geeigneten Unschärfe-Kernels für jeden möglichen Tiefenwert, Fokuseinstellung und Blendeneinstellung. Wie hierin verwendet ist ein „Unschärfe-Kernel” ein Modell der Außer-Fokus-Unschärfe indem Bildakquisitionsprozess. Ein Unschärfe-Kernel kann durch eine Scheibe eines gewissen Radius, ein Polygon, eine Gauss'sche, ein Rechteck, oder jedes andere geeignete Merkmal repräsentiert werden, das die Außer-Fokus-Unschärfe während des Bildakquisitionsprozesses modelliert. Unschärfe-Kernel werden aus Kamerakalibrierungsinformation vorbestimmt, die verwendet wird, um eine Zuordnung von Konfigurationseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) zu Unschärfe-Kerneln zu erzeugen. Ein Unschärfe-Kernel ist daher eine Funktion von Tiefe, Blendeneinstellung und Fokuseinstellung.
-
Der Bereich möglicher Tiefen ist in dem dargestellten Beispiel 9 bis 12 Meter. Daher wird ein erster simulierter Bildflicken 304(A) bei neun Meter erzeugt, ein zweiter simulierter Bildflicken 304(B) wird bei zehn Meter erzeugt, ein dritter simulierter Bildflicken 304(C) wird bei elf Meter erzeugt und ein vierter simulierter Bildflicken 304(D) wird bei zwölf Meter erzeugt. In einigen Beispielen werden die simulierten Bildflicken 304(A) bis 304(D) entlang einer Bildflicken-Mannigfaltigkeit 306 gezeichnet, die sich unter der Linie erstreckt, die verwendet wurde, um die Kurve 308 zu illustrieren. In einigen Beispielen wird die Bildflicken-Mannigfaltigkeit 306 als eindimensional betrachtet, weil die Tiefe das einzige ist, das sich entlang der Kurve 308 der Bildflicken-Mannigfaltigkeit 306 ändert. Unabhängig davon, ob die simulierten Bildflicken 304(A) bis 304(D) 5 × 5, 20 × 20, oder irgendeine andere geeignete Größe von Pixelgittern sind, verbleibt daher die Bildflicken-Mannigfaltigkeit 306 eindimensional. In einigen Beispielen entspricht die Länge der Kurve 308 von der minimalen Tiefe (das heißt, neun Meter) bis zur maximalen Tiefe (das heißt, zwölf Meter) der Anzahl an Bits in Präzision, um die eine Tiefenschätzung in der existierenden Tiefenkarte verbessert werden kann. In einigen Beispielen werden die Bits an Präzision auch als die Anzahl an Klassen bezeichnet, in die der Tiefenbereich unterteilt werden kann. In einigen Beispielen ist es daher wünschenswert, dass die Kurve 308 lang ist, wodurch eine größere mögliche Erhöhung in Tiefenpräzision möglich ist. Mit anderen Worten, umso größer die Länge der Kurve 308, umso einfacher ist es, zwischen den möglichen Tiefenwerten zu unterscheiden, um den wahrscheinlichsten Tiefenwert für einen Bildflicken zu bestimmen. In einigen Beispielen resultiert eine Erhöhung in Tiefenpräzision in einer Reduktion in der Varianz der Tiefenschätzungen des Unsicherheitsmaßes 124.
-
In einigen Beispielen wählt die Tiefenverfeinerungsfunktionseinheit 102, um die Bildflicken-Mannigfaltigkeit 306 zu erzeugen, Konfigurationseinstellungen für ein nächstes zu erfassendes Bild so aus, dass eine Tiefenschätzung für einen Bildflicken mit einer flachen unimodalen Tiefenwahrscheinlichkeit so verfeinert wird, dass sie eine unimodale Tiefenwahrscheinlichkeit mit einer Spitze wird. Die Tiefenwahrscheinlichkeit kann in einem Graphen repräsentiert werden, mit der Tiefe entlang der X-Achse und der Wahrscheinlichkeit entlang der Y-Achse. Die flache unimodale Tiefenwahrscheinlichkeit kann einem Bereich möglicher Tiefen für die Tiefenschätzung entsprechen, und unimodale Tiefenwahrscheinlichkeit mit einer Spitze kann die Tiefenschätzung repräsentieren, nachdem das nächste Bild aufgenommen wurde und eine verbesserte Tiefenkarte erzeugt wurde. In einigen Beispielen wird der Bereich von möglichen Tiefenwerten für die Tiefenschätzung (das heißt, der Bereich von möglichen Tiefenwerten, über den simulierte Bildflicken 304(A) bis 304(D) evaluiert werden bestimmt durch Auffinden der maximalen Wahrscheinlichkeit für die Tiefenschätzung und Auswählen des Bereichs von möglichen Tiefenwerten durch Auswählen von möglichen Tiefenwerten, die um einen Prozentsatz geringer als das Maximum sind. In einigen Beispielen beinhaltet der Bereich von möglichen Tiefenwerten für die Tiefenschätzung einen Bereich von möglichen Tiefenwerten, der einer multimodalen Tiefenwahrscheinlichkeit entspricht. In einigen Beispielen wird das Unsicherheitsmaß 124 verwendet, um den Bereich von möglichen Tiefenwerten zu bestimmen. Zum Beispiel wird eine Tiefenschätzung aus der existierenden Tiefenkarte 104 bereitgestellt, und die Varianz (aus dem Unsicherheitsmaß 124), die der Tiefenschätzung entspricht, wird verwendet, um einen minimalen und einen maximalen möglichen Tiefenwert zu bestimmen. Der minimale mögliche Tiefenwert und der maximale mögliche Tiefenwert können bestimmt werden, indem eine Entfernung um eine Anzahl von Standardabweichungen entfernt von der Tiefenschätzung in Richtung zu verminderten Tiefen bzw. in Richtung auf erhöhte Tiefen genommen wird.
-
Für jeden möglichen Tiefenwert des Bereich möglicher, zu evaluierender Tiefenwerte wird jeder simulierte Bildflicken 304(A) bis 304(D) über eine Menge von Konfigurationseinstellungen evaluiert (zum Beispiel Blendeneinstellungen und/oder Fokuseinstellungen), um ein Verbesserungskriterium für jede Konfigurationseinstellung bei jedem möglichen Tiefenwert zu bestimmen. Für jeden möglichen Tiefenwert werden eine Konfigurationseinstellung 112 und ein entsprechender Unschärfe-Kernel ausgewählt. Der Unschärfe-Kernel wird verwendet um den anwendbaren Alles-im-Fokus Bildflicken 302(A) bis 302(D) zu verunschärfen, um einen entsprechenden simulierten Bildflicken 304(A) bis 304(D) zu erhalten. Der simulierte Bildflicken 304(A) bis 304(D) repräsentiert den Betrag an Unschärfe, die ein Bildflicken an dem möglichen Tiefenwert erfahren würde, wenn das Bild unter Verwendung der ausgewählten Konfigurationseinstellung erfasst würde. Der Prozess wird wiederholt für jede Konfigurationseinstellung 112 von Interesse (zum Beispiel jede für die zum Erfassen der Bilder 118 verwendete partikuläre Abbildungsvorrichtung 106 verfügbare Konfigurationseinstellung 112).
-
Sobald die Evaluierung jeder Konfigurationseinstellung 112 über den Bereich von möglichen Tiefenwerten vollständig ausgeführt wurde, oder zu jeder anderen Zeit, nachdem zumindest zweit simulierte Bildtiefenflicken (zum Beispiel 304(A) und 304(B)) erzeugt wurden für die entsprechenden Alles-im-Fokus Bildflicken (zum Beispiel 302(A) und 302(B)), wird die Bildflicken-Mannigfaltigkeit 306 berechnet. Die Bildflicken-Mannigfaltigkeit 306 gibt die Bits an Tiefenpräzision an, um welche die Tiefenschätzung verbessert werden kann. Die Bildflicken-Mannigfaltigkeit 306 wird als eine 1 – D Mannigfaltigkeit betrachtet, da sie mit Bezug auf die Tiefe eindimensional ist. Mit anderen Worten wird entlang der Bildflicken-Mannigfaltigkeit 306 jeder der simulierten Bildflicken 304(A) bis 304(D) gezeichnet für jeden möglichen Tiefenwert für die erste Menge an Konfigurationseinstellungen. Ein größerer Winkel (zum Beispiel 308(A) bis 308(D)) zwischen den unterschiedlichen simulierten Bildflicken 304(A) bis 304(D) zeigt eine größere Tiefendiskriminierbarkeit für deren Tiefenschätzungen an.
-
Die Gesamtlänge der Bildflicken-Mannigfaltigkeit 306 für die erste Konfigurationseinstellung wird berechnet. In einigen Beispielen wird das Berechnen der Länge der Bildflicken-Mannigfaltigkeit 306 ausgeführt, indem ein Maß einer Entfernung zwischen Flickenerscheinungen für jedes Paar simulierter Bilder 304(A) bis 304(D) genommen wird, die benachbarten möglichen Tiefenwerten entsprechen. Als nächstes werden die Maße der Entfernung zwischen den Flickenerscheinungen aufsummiert, um ein Maß der Länge der Bildflicken-Mannigfaltigkeit 306 zu bestimmen. In dem dargestellten Beispiel entspricht die Länge der Bildflicken-Mannigfaltigkeit 306 daher der Summe von: dem Entfernungsmaß zwischen den simulierten Bildflicken 304(A) und 304(B); dem Entfernungsmaß zwischen den simulierten Bildflicken 304(B) und 304(C); und dem Entfernungsmaß zwischen den simulierten Bildflicken 304(C) und 304(D). In einigen Beispielen umfasst eine Flickenerscheinung eine Unschärfe der Flicken, die im Frequenzbereich oder dem Flicken-Bereich repräsentiert werden kann.
-
Die Länge der Bildflicken-Mannigfaltigkeit 306 entspricht der Verbesserung in Begriffen von Bits an Tiefenpräzision, die erzielt werden kann in den Tiefenschätzung für den Bildflicken unter Verwendung der ersten Konfigurationseinstellung. Wenn die Länge der Mannigfaltigkeit 306 lang ist, zeigt dies an, dass es eine gute Tiefendiskriminierbarkeit zwischen den möglichen Tiefenwerten unter Verwendung der ausgewählten Konfigurationseinstellung gibt. Wenn die ausgewählten Konfigurationseinstellungen eine geringe Tiefendiskriminierbarkeit bieten, dann wird die Länge der Bildflicken-Mannigfaltigkeit 306 kürzer sein. Eine ungünstige Auswahl der Konfigurationseinstellung ist eine Auswahl, die in einer sehr kurzen Bildflicken-Mannigfaltigkeit 306 resultiert. Dies bedeutet, dass es schwierig sein wird, zwischen den möglichen Tiefen innerhalb des Bereichs möglicher Tiefenwerte zu unterscheiden.
-
In einigen Beispielen entspricht die Länge der Kurve 308 und/oder der Bildflicken-Mannigfaltigkeit 306 dem Verbesserungskriterium. In einigen Beispielen wird eine Abstimmungskarte erzeugt, um Verbesserungskriterien für jeden Bildflicken zu aggregieren. Tatsächlich gibt jeder Bildflicken eine „Stimme” für die Konfigurationseinstellung ab, welche ein nächstes Bild 118 der Szene erzeugen wird, aus dem genügend Tiefeninformation abgeleitet und verwendet werden kann, um eine Erhöhung in der Tiefenpräzision für die Tiefenschätzung des Bildflickens zu erzielen. Die Abstimmungskarte kann Stimmen für jedes Pixel angeben, das in der existierenden Tiefenkarte 104 repräsentiert ist, oder zumindest für diejenigen Pixel, die in dem Teil der existierenden Tiefenkarte 104 repräsentiert sind, der evaluiert wurde. Da sich überlappende Bildflicken gemeinsame Pixel umfassen, können mehrere Stimmen für zumindest einige Pixel, die in der Abstimmungskarte repräsentiert sind, abgegeben worden sein. Die Konfigurationseinstellung(en) 112, welche die meisten Stimmen empfängt bzw. empfangen, kann bzw. können verwendet werden, um die Tiefenverfeinerungsbilderfassungsanweisungen 108 zu erzeugen. In einigen Beispielen werden die Stimmen zusammengezählt, in anderen Beispielen können sie gemittelt oder auf andere Weise aggregiert werden. In einigen Beispielen können die Stimmen in eine Matrix kombiniert werden, die Kombinationen von Blendeneinstellungen 114 und Fokuseinstellungen 116 und den Betrag an möglicher Erhöhung an Tiefenpräzision für jedes Pixel enthält. In einigen Beispielen werden ausreißende Stimmen ignoriert, so dass keine zusätzlichen Bilder 118 erfasst und verarbeitet werden, wenn dies nur zum Zweck geschehen würde, nur insignifikante Verfeinerungen für die existierenden Tiefenkarte 104 zu erzeugen.
-
Die Abstimmungskarte kann unimodal oder multimodal sein. In einigen Beispielen wird eine höchste Spitze (welche die größte Anzahl an Stimmen repräsentiert) in der Abstimmungskarte ausgewählt und verwendet, um eine Tiefenverfeinerungsbilderfassungsanweisung 108 zu erzeugen. In einigen Beispielen ist die höchste Spitze die einzige Spitze, das heißt, die Abstimmungskarte ist unimodal. In einigen Beispielen wird die Abstimmungskarte mehrere Spitzen aufweisen, das heißt, wird multimodal sein. In solch einem Fall kann eine Anzahl von Spitzen ausgewählt und verwendet werden, um Tiefenverfeinerungsbilderfassungsanweisungen 108 zu erzeugen, die anzeigen, dass mehrere zusätzliche Bilder 118 erfasst werden sollten.
-
In einigen Beispielen kann die Anzahl an zu erfassenden Bildern 110 einer Benutzereingabe entsprechen oder durch diese beschränkt sein. Zum Beispiel kann die Benutzereingabe einen Modus anzeigen, der Details darüber leitet, was ein Benutzer zu unternehmen gewillt ist, um die Tiefenschätzungen in der existierenden Tiefenkarte 104 zu verbessern. Ein Modus kann einen Modus einer einzelnen besten Aufnahme, einen Modus einer Anzahl bester Aufnahmen, einen besten Stapelmodus, einen Zeitmodus oder jeden anderen geeigneten Modus umfassen. Der Modus der einzelnen besten Aufnahme zeigt an, dass der Benutzer gewillt ist, ein einzelnes Bild aufzunehmen, um die Tiefenschätzungen zu verbessern. In diesem Beispiel wird die signifikanteste Spitze in der Abstimmungskarte ausgewählt. Der Modus einer Anzahl bester Aufnahmen zeigt an, dass der Benutzer Willens ist, eine vorbestimmte Anzahl an Aufnahmen zu machen, um die Tiefenschätzungen zu verbessern. In diesem Beispiel benennt der Benutzer eine ganze Zahl (das heißt, 3) und die entsprechende Anzahl der signifikantesten Spitzen in der Abstimmungskarte werden ausgewählt werden. Der beste Stapelmodus zeigt an, dass der Benutzer Willens ist, die Bilder in einem Stapel bzw. Satz zu erfassen. Der Zeitmodus zeigt eine Zeit an, die der Benutzer Willens ist, für die Erfassung zusätzlicher Bilder 118 aufzuwenden und/oder zu warten, um die existierende Tiefenkarte 104 zu verbessern. Zum Beispiel mag der Benutzer anzeigen, sei es unter Verwendung des Zeitmodus oder auf andere Weise, dass der Benutzer nur drei Sekunden dafür verwenden mag, um die Bilder 118 zu erfassen. Basierend auf dieser Eingabe und in Übereinstimmung mit den hierin beschriebenen Techniken, kann die Anzahl an zu erfassenden Bildern und/oder an Iterationen des Prozesses zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen angepasst werden.
-
17 zeigt eine beispielhafte Umgebung 400 zum Implementieren von Techniken, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zur Verwendung in der Tiefenkarten-Verfeinerung wie hierin beschrieben beziehen. Die Umgebung 400 umfasst einen Bediener 402, der eine Digitalkamera 404 verwendet, um ein Bild einer Szene 406 zu erfassen. Der Bediener 402 ist für das Implementieren der hierin beschriebenen Techniken optional. In einigen Beispielen ist die Digitalkamera 404 auf einem Dreibein oder einer anderen geeigneten Vorrichtung montiert und die Bilder der Szene 406 werden programmtechnisch mit wenig oder keiner Hilfestellung durch den Bediener 402 erfasst. Der Bediener 402 befindet sich an einem Standpunkt 408, während der Bediener das Bild der Szene 406 erfasst. Die Szene 406 enthält eine Mehrzahl von Objekten 410 bis 414. Insbesondere sind drei Objekte der Szene 406 in der Umgebung 400 gezeigt, bei denen es sich um Karotten 410, einen Baum 412 und einen Zaun 414 handelt. Wie gezeigt erscheinen die Karotten 410 eher im Vordergrund der Szene 406, während der Baum 412 und der Zaun 414 eher im Hintergrund erscheinen. Unabhängig davon, wo die Objekte 410 bis 412 in der Szene erscheinen, ist jedes Objekt definiert, eine Entfernung von dem Bediener 402 zu haben. In einigen Beispielen wird die Entfernung jedes Objekts innerhalb der Szene 406 relativ zu einer Linie 416 gemessen, welche eine Linse der Digitalkamera 404 kreuzt.
-
In einigen Beispielen erzeugt die Digitalkamera 404, oder eine andere Benutzervorrichtung, oder Dienst, in Übereinstimmung mit den hierin angegebenen Techniken die Tiefenverfeinerungsbilderfassungsanweisungen 108 (zum Beispiel die Anzahl an Bildern 110 und die Konfigurationseinstellungen 112 einschließlich der Blendeneinstellungen 114 und den Fokuseinstellungen 116), die dem Bediener 402 oder der Digitalkamera 404 bereitgestellt werden. Die Tiefenverfeinerungsbilderfassungsanweisungen 108 weisen den Bediener 402 und/oder die Kamera 404 an, wie genau die Bilder 118(1) bis 118(N) zu erfassen sind. In einigen Beispielen werden die Tiefenverfeinerungsbilderfassungsanweisungen 108 in einer Nachschlagtabelle gespeichert, auf die der Bediener 402 und/oder die Digitalkamera 404 zugreifen kann. Zum Beispiel kann dem Bediener 404 ein Ausdruck eines Teils der Nachschlagtabelle bereitgestellt werden und der Bediener 404 kann manuell die Konfigurationseinstellungen der Digitalkamera 404 anpassen, um die Bilder 118 in Übereinstimmung mit den Tiefenverfeinerungsbilderfassungsanweisungen 108 zu erfassen. In einigen Beispielen werden die Tiefenverfeinerungsbilderfassungsanweisungen 108 erzeugt und im Speicher der Digitalkamera 404 oder einer anderen Benutzervorrichtung gespeichert zur Verwendung zu einem späteren Zeitpunkt. In einigen Beispielen sind die Tiefenverfeinerungsbilderfassungsanweisungen 108 für die Digitalkamera 404 partikulär, da sie auf Kalibrierungsdaten beruhen, die für die Digitalkamera 404 partikulär sind.
-
In einigen Beispielen können, bevor das erste Bild 118(1) erfasst wird, die Tiefenverfeinerungsbilderfassungsanweisungen 108 eine erste Blendeneinstellung 114 und eine erste Fokuseinstellung 116 angegeben haben, welche von der Kamera 404 zu verwenden sind, wenn das Bild 118(1) erfasst wird. Dementsprechend passt der Bediener 402 die Digitalkamera 404 gemäß der ersten Blendeneinstellung 114 an (zum Beispiel ausgewählt aus f/1,2, f/2, f/4, f/5,6, f/8, f/16, f/22 oder anderen geeigneten Blendeneinstellungen), die dem ersten Bild 118(1) entspricht wie durch die Tiefenverfeinerungsbilderfassungsanweisungen 108 identifiziert. Der Bediener 402 fokussiert dann die Digitalkamera 404 gemäß der ersten Fokuseinstellung 116 die dem ersten Bild 118(1) entspricht wie durch die Tiefenverfeinerungsbilderfassungsanweisungen 108 identifiziert, und erfasst mittels der Digitalkamera 404 das Bild 118(1), das die Szene 406 repräsentiert.
-
Auf ähnliche Weise können in einigen Beispielen, bevor ein zweites Bild 118(2) erfasst wird, die Tiefenverfeinerungsbilderfassungsanweisungen 108 eine zweite Blendeneinstellung 114 und eine zweite Fokuseinstellung 116 angegeben haben, die von der Kamera 404 beim Erfassen des Bildes 118(2) zu verwenden sind. Der Bediener 402 passt die Digitalkamera 404 dann gemäß der zweiten Blendeneinstellung 114 an (zum Beispiel ausgewählt aus f/1,2, f/2, f/4, f/5,6, f/8, f/16, f/22 oder andere geeignete Blendeneinstellungen), die dem zweiten Bild 118(2) entspricht, wie durch die Tiefenverfeinerungsbilderfassungsanweisungen 108 identifiziert. Der Bediener 402 fokussiert dann die Digitalkamera 304 gemäß der zweiten Fokuseinstellung 116, die dem zweiten Bild 118(2) entspricht, wie durch die Tiefenverfeinerungsbilderfassungsanweisungen 108 identifiziert, und erfasst, unter Verwendung der Digitalkamera 404, das Bild 118(2)k, das die Szene 406 repräsentiert. In einigen Beispielen erfasst der Bediener 402 weitere Bilder 118 mit denselben oder unterschiedlichen Blendeneinstellungen 114 und Fokuseinstellungen 116. Da die erfassten Bilder 118(1) bis 118(N) partikuläre Unschärfeeigenschaften aufweisen, aus denen Tiefeninformation abgeleitet werden kann, und die verwendet werden können, um die existierenden Tiefenkarte 104 zu verbessern, können diese von der Tiefenverfeinerungsfunktionseinheit 102 und/oder der Tiefenerzeugungsfunktionseinheit 626(A) oder 626(B) verwendet werden, um eine oder mehrere verbesserte Tiefenkarten auszugeben.
-
Techniken, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen 108 beziehen zur Verwendung in Tiefenkarten-Verfeinerung wurden vorstehend beschrieben. In einigen Beispielen können bestimmte Merkmale der oben beschriebenen Techniken in Übereinstimmung mit den nachfolgend angegebenen und diskutierten Gleichungen implementiert werden.
-
In einigen Beispielen kann eine hohe Tiefenpräzision notwendig sein für „Bodenwahrheits-Tiefen” bzw. Ground Truth Tiefen, und eine niedrige Präzision mag benötigt werden für Tiefen, an denen es keine Objekte gibt. Daher können in einigen Beispielen die hierin beschriebenen Techniken angewandt werden, um zusätzliche Bilder 118 zu bestimmen, um Tiefen in Bereichen mit niedrigem Kontrast zu verfeinern.
-
In einigen Beispielen kann eine gute Schätzung von versteckten Bildfrequenzen zuvor erhalten worden sein in Übereinstimmung mit hierin beschriebenen Techniken und/oder anderen Techniken. Es kann angenommen werden, dass die Unschärfe-Kernet {ψ
n, n = 1...N} sind, und die erfassten Bilder können {i
n} sein, die posteriore Verteilung des Alles-im-Fokus Bilds kann eine Gauss'sche sein mit Mittelwert
und inverser Varianz
-
-
Indem die Likelihood-Funktion inspiziert wird, die berechnet wird aus den letzten N Bildern, kann ein Tiefenbereich mit Mehrdeutigkeit [dmin, dmax] für jeden Bildflicken bestimmt werden. In einigen Beispielen kann dies erzielt werden, indem untersucht wird, ob die unimodale Bedingung erfüllt wurde, aber auf bequemere Weise kann dies erzielt werden, durch einen Vergleich mit einem empirischen Schwellwert von einem Bereich von Tiefenwerten, wo ΔΕ(d, d ^) ≤ τη2. In einigen Beispielen mag es wünschenswert sein, die Klasse mit Mehrdeutigkeit in eine verfeinerte Menge von Klassen aufzuteilen, und sicherzustellen, dass die Wahrscheinlichkeit einzelner Klassen sich hinreichend unterscheiden.
-
Das Verfeinern der Tiefe kann daher als ein Klassifikationsproblem betrachtet werden. In einigen Beispielen können die Verteilung des defokussierten Flickens für jede Tiefenklasse aus der posterioren versteckten Bildverteilung aus den vorherigen Stapeln, sowie die Linseneinstellungen für ein zusätzliches Bild berechnet werden. Als nächstes können die Bildflicken in dem zusätzlichen Bild eine verrauschte Beobachtung darstellen, und dessen Tiefe kann geschätzt werden, indem dieser dem nächsten Cluster zugewiesen wird.
-
In einigen Beispielen kann eine Bildflicken-Mannigfaltigkeit
h = i(σ), welche den defokussierten Flicken desselben versteckten Bildes entspricht, berechnet werden. Da nur das Niveau der Defokussierung variiert, kann die Bildflicken-Mannigfaltigkeit eine numerisch simulierte 1 – D Mannigfaltigkeit sein.
-
In einigen Beispielen kann das Risiko einer fehlerhaften Tiefenzuordnung begrenzt werden, indem sichergestellt wird, dass die Cluster für jede Tiefenklasse geeignet separiert sind. Da die Entfernung zwischen jedem Paar von Cluster typischer Weise größer sein mag als ihre Entfernung auf der Mannigfaltigkeit
h, kann die Anzahl separierbarer Klassen durch die Länge der 1 – D Mannigfaltigkeit begrenzt sein.
-
-
In einigen Beispielen kann das folgende Theorem relevant sein: Sei t τ η
2 die minimal zulässige Bilddifferenz unter einem beliebigen Paar von Tiefenhypothesen in dem Bereich [d
min, d
max], dann ist die maximale Anzahl separierbarer Tiefenklassen
-
Es wird angenommen, dass die 1 – D Mannigfaltigkeit in n Klassen unterteilt wird, mit Schwerpunkten
-
Da die 1–2 Norm zwischen beliebigen 2 Punkten der kürzeste Pfad zwischen diesen ist, ist
-
Daher ist
-
-
Und folglich ist
-
-
In einigen Beispielen kann eine Strategie entwickelt werden zum Verfeinern von Tiefenschätzung von allgemeinen Szenen, die Stimmen von allen Flicken in dem Bild sammelt. In einigen Beispielen kann in Übereinstimmung mit hierin beschriebenen Techniken l(0, σ) im Voraus berechnet werden für eine diskrete Menge von σ. Als nächstes kann eine bestimmte Konfigurationseinstellung evaluiert werden durch:
Zuerst, Berechnen von σmin und σmax für den mehrdeutigen Tiefenbereich von jedem Pixel.
-
Als nächstes, Berechnen der Stimme für jeden Bildflicken h.
-
-
In einigen Beispielen kann der Schwellenwert, um eine Stimme abzugeben, als zwischen [1, Mmax] liegend gehalten werden, um Bereiche ohne Textur und Bereiche mit hoher Gewissheit zu ignorieren.
-
Und, Aufsummieren der Stimmen.
wobei w
h eine Maske ist, die Null ist, wo E(d*) in der letzten Iteration zu groß ist.
-
In einigen Beispielen kann die finale Abstimmungskarte eine Funktion f und a sein, und kann multimodal sein. Daher können in der Abstimmungskarte alle lokalen Maxima ausgewählt werden als die nächsten Bilder, die in dem nächsten Stapel zu erfassen sind.
-
In dem Extremfall, in dem [σ
min, σ
max] einem sehr engen Bereich entspricht, kann
h annähernd linear sein
-
Unter derartigen Bedingungen kann l(d
min, d
max) in geschlossener Form angenähert werden
und das folgende Korollar kann abgeleitet werden:
In einigen Beispielen kann ein Korollar verwendet werden, um Mehrdeutigkeit in einem engen Bereich aufzulösen. Wenn [d
min, d
max] eng genug ist, um
h zu linearisieren, sollten der Fokus und die Blende so gewählt werden, dass das Defokus-Niveau ungefähr 1,2 Pixel ist.
-
In einigen Beispielen kann ∥ ∂A(σξ) / ∂σ ∥ als Funktion von ξ und σ gezeichnet werden. Nachdem dies gemacht wird, kann beobachtet werden, dass für ein breites Frequenzband 0,2π ≤ ξ ≤ π ein Defokus-Radius von ungefähr 1,2 Pixels einen großen Gradienten über alle Frequenzen erzielen kann.
-
Für das Korollar kann die folgende Strategie für sehr weit entfernte Szenen bestimmt werden, wo der Radius des Defokuskernels sich nicht groß ändert:
In einigen Beispielen, in denen die Szene extrem weit entfernt ist, mag die optimale Strategie zum Erfassen von Tiefe sein, die Fokuseinstellungen zu verwenden, welche eine Defokussierung von +/–1,2 Pixel ergeben, und die größte verfügbare Blende zu verwenden.
-
18 zeigt einen beispielhaften Prozess 500 zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen 108 zur Verwendung in der Tiefenkarten-Verfeinerung wie hierin beschrieben. Ein Teil von oder der gesamte Prozess 500 (oder irgend ein anderer hierin beschriebener Prozess, oder Variationen davon, und/oder Kombinationen davon) kann unter der Steuerung oder Regelung durch ein oder mehrere Computersysteme, die mit ausführbaren Anweisungen konfiguriert sind, ausgeführt werden zum Implementieren der beschriebenen Funktionen und kann als Code implementiert sein (zum Beispiel ausführbare Anweisungen, ein oder mehrere Computerprogramme oder eine oder mehrere Anwendungen) die gemeinsam auf einem oder auf mehreren Prozessoren ausgeführt werden, durch Hardware oder Kombinationen davon. Der Code kann auf einem computerlesbaren Speichermedium gespeichert sein, zum Beispiel in Form eines Computerprogramms, das eine Vielzahl von Anweisungen umfasst, die von einem oder von mehreren Prozessoren ausgeführt werden können. Das computerlesbare Speichermedium kann nichtflüchtig sein. Die Tiefenverfeinerungsfunktionseinheit 102 (14) kann den Prozess 500 von 18 ausführen.
-
Der Prozess 500 beginnt bei 502 mit dem Empfangen eines Alles-im-Fokus Bildes 122 und eines Unsicherheitsmaßes 124. In einigen Beispielen entspricht das Unsicherheitsmaß 124 einer existierenden Tiefenkarte 104. In einigen Beispielen gibt das Unsicherheitsmaß 124 die relative Genauigkeit von Tiefenschätzungen für Bildflicken von einem existierenden Bild an, das der existierenden Tiefenkarte 104 entspricht. In einigen Beispielen empfängt der Prozess 500 die existierende Tiefenkarte 104 und/oder eine Tiefenwahrscheinlichkeitskarte. In einigen Beispielen gibt die Tiefenwahrscheinlichkeitskarte Wahrscheinlichkeiten für jede Tiefenschätzung an, die in der existierenden Tiefenkarte 104 enthalten ist, und kann erzeugt sein durch eine Tiefen-Likelihood-Funktion.
-
Bei 504 identifiziert der Prozess 500 einen Bildflicken eines existierenden Bildes, das der existierenden Tiefenkarte 104 entspricht. In einigen Beispielen beinhaltet das Identifizieren der Bildflicken ein Auswählen eines Bildflickens des existierenden Bildes, der sich an einer ersten Position in dem existierenden Bild befindet. Ein Bildflicken ist eine kleine Gruppierung von Pixeln in einem Bild, in der die Tiefe als kontinuierlich angenommen wird. Während die hierin beschriebenen Techniken auf einer Bildflicken-um-Bildflicken Basis implementiert sind, werden die Tiefenschätzungen der existierenden Tiefenkarte 104 auf einer Pixel-um-Pixel Basis verfeinert. In einigen Beispielen beinhaltet ein Bildflicken eine Mehrzahl von Pixeln, die um ein partikuläres Pixel zentriert sind.
-
Bei 506 identifiziert der Prozess 500 eine Konfigurationseinstellung 112 aus einer Menge von Konfigurationseinstellungen. In einigen Beispielen enthält die Menge von Konfigurationseinstellungen Blendeneinstellungen 114 und Fokuseinstellungen 116, die in einer bestimmten Konfiguration von einer Digitalkamera und einer Linse verfügbar sind. Wenn zum Beispiel fünf Fokuseinstellungen 116 verfügbar sind und fünf Blendeneinstellungen 114 verfügbar sind, enthält die Menge von Konfigurationseinstellungen 25 Konfigurationseinstellungen.
-
Bei 508 wählt der Prozess 500 einen möglichen Tiefenwert aus, der in einen Tiefenbereich fällt, der dem Bildflicken entspricht. In einigen Beispielen beinhaltet der Tiefenbereich eine Mehrzahl von möglichen Tiefenwerten und das Auswählen des möglichen Tiefenwerts beinhaltet ein Bestimmen des Tiefenbereichs, der dem Bildflicken entspricht. In einigen Beispielen basiert das Bestimmen des Tiefenbereichs auf dem Unsicherheitsmaß 124. Zum Beispiel können sich ein maximaler möglicher Tiefenwert und ein minimaler möglicher Tiefenwert bei Entfernungen von der Tiefenschätzung des Bildflickens entfernt befinden, die äquivalent einer oder mehrerer Standardabweichungen der Varianz für die Tiefenschätzung sind. In einigen Beispielen wird der Tiefenbereich bestimmt basierend auf der bzw. den Tiefenwahrscheinlichkeit(en) für den Flicken. Zum Beispiel kann, für eine unimodale Tiefenwahrscheinlichkeit, der Tiefenbereich bestimmt werden durch Auswählen von Werten, die sich mit der Tiefenwahrscheinlichkeit kreuzen, und die weniger wahrscheinlich sind als die Spitze der Tiefenwahrscheinlichkeit. Wenn zum Beispiel die Tiefenwahrscheinlichkeit für die Tiefenschätzung eine Spitze bei 0,8 Meter hat, können die Tiefen verwendet werden, die sich bei einer Kreuzung einer horizontalen Linie befinden, die bei 10% weniger als 0,8 Meter gezeichnet wird, um den Tiefenbereich zu definieren. In einigen Beispielen wird eine multimodale Tiefenwahrscheinlichkeit, die der Tiefenschätzung entspricht, verwendet, um den Tiefenbereich zu bestimmen. In diesem Beispiel kann sich der Tiefenbereich von einer ersten Spitze der multimodalen Tiefenwahrscheinlichkeit bis zu einer zweiten Spitze der multimodalen Tiefenwahrscheinlichkeit erstrecken, oder kann sich von einer anderen Tiefe, die geringer als die erste Spitze und größer als die zweite Spitze ist, erstrecken.
-
Bei 510 identifiziert der Prozess 500 einen Unschärfe-Kernel basierend auf dem ausgewählten möglichen Tiefenwert und der ausgewähten Konfigurationseinstellung. In einigen Beispielen beinhaltet das Identifizieren des Unschärfe-Kernels ein Zugreifen auf die Kamerakalibrierungsinformation, welche eine Zuordnung von Konfigurationseinstellungen (zum Beispiel Blendeneinstellungen und Fokuseinstellungen) und Tiefen zu Unschärfe-Kerneln angibt. Ein Unschärfe-Kernel ist daher eine Funktion der Tiefe, Blendeneinstellung, und Fokuseinstellung. In einigen Beispielen wird der identifizierte Unschärfe-Kernel verwendet, um einen Flicken des Alles-im-Fokus Bildes zu verunschärfen, der dem ausgewählten Bildflicken entspricht, um einen simulierten Bildflicken bereitzustellen. Der simulierte Bildflicken entspricht daher derselben Position in der Szene wie der ausgewählte Bildflicken. Der simulierte Bildflicken ist eine Simulation der Erscheinung (zum Beispiel in Begriffen der Unschärfe) des Bildflickens bei dem möglichen Tiefenwert, wenn das Bild unter Verwendung der ausgewählten Konfigurationseinstellung erfasst worden wäre.
-
Bei 512 bestimmt der Prozess 500 einen Betrag der möglichen Zunahme an Tiefenpräzision für den ausgewählten Bildflicken, der erzielt werden kann, indem zusätzliche Tiefeninformation in einem zusätzlichen Bild 118, das unter Verwendung der ausgewählten Konfigurationseinstellung erfasst wird, berücksichtigt wird. In einigen Beispielen ist der Betrag an möglicher Erhöhung an Tiefenpräzision eine Funktion der Konfigurationseinstellungen und entspricht einer Bildflicken-Mannigfaltigkeit 306, wie mit Bezug auf die 16 beschrieben. In einigen Beispielen wird die Länge der Bildflicken-Mannigfaltigkeit 306 bestimmt, nachdem die Konfigurationseinstellung über jeden möglichen Tiefenwert des Tiefenbereichs (zum Beispiel die Blöcke 514, 516, 510, 512, bis die Entscheidung bei 514 „nein” ist) evaluiert wurde. In einigen Beispielen umfasst der Betrag an möglicher Erhöhung an Tiefenpräzision für den ausgewählten Bildflicken ein Verbesserungskriterium für den Tiefenbereich. Daher entspricht die Länge der Bildflicken-Mannigfaltigkeit 306 und/oder der Kurve 308, die zwischen dem maximalen möglichen Tiefenwert und dem minimalen möglichen Tiefenwert verläuft, dem Verbesserungskriterium. Das Verbesserungskriterium gibt daher den Betrag an Tiefenpräzision an, um dein die Tiefenschätzung für den Bildflicken verbessert werden kann. Bei 514 wird bestimmt, ob es andere mögliche Tiefenwerte des Bereichs von möglichen Tiefenwerten gibt, die als Teil von 508 identifiziert wurden. Wenn die Antwort bei 514 ja ist, schreitet der Prozess 500 fort zu 516, wo ein nächster möglicher Tiefenwert, der in den Tiefenbereich fällt, ausgewählt wird. Der Prozess 500 kehrt dann zurück zu und wird wiederholt von 510, wo ein Unschärfe-Kernel basierend auf dem nächsten möglichen Tiefenwert und der Konfigurationseinstellung ausgewählt wird.
-
Wenn bei 514 bestimmt wird, dass keine weiteren möglichen Tiefenwerte des Tiefenbereichs evaluiert werden müssen, schreitet der Prozess 500 fort zu 518, wo bestimmt wird, ob es andere Konfigurationseinstellungen von Interesse gibt. Falls ja, schreitet der Prozess 500 fort zu 520, wo eine nächste Konfigurationseinstellung aus der Menge von Konfigurationseinstellungen identifiziert wird. Der Prozess 500 kehrt dann zurück zu und wird wiederholt von 508. Wenn bei 518 bestimmt wird, dass keine zusätzlichen Konfigurationseinstellungen von Interesse sind, schreitet der Prozess 500 fort zu 522.
-
Bei 522 bestimmt der Prozess 500, ob es andere Bildflicken gibt, die zu evaluieren sind, in dem existierenden Bild, entsprechend der existierenden Tiefenkarte 104. Falls ja, wird bei 524 ein nächster Bildflicken identifiziert und bei 526 wird der Prozess für den nächsten Bildflicken von 506 bis 522 wiederholt. In einigen Beispielen werden bestimmte Bildflicken, wo es keine Textur in dem existierenden Bild gibt, oder wo es keine Tiefenschätzung in der existierenden Tiefenkarte gibt, von dem Prozess 500 ignoriert. Wenn bei 522 bestimmt wird, dass keine weiteren Bildflicken evaluiert werden müssen, schreitet der Prozess 500 zu 528 fort, wo eine Abstimmungskarte erzeugt wird basierend auf dem Betrag an Erhöhung in Tiefenpräzision für jeden Bildflicken. In einigen Beispielen wird eine Abstimmungskarte für jedes Pixel erzeugt und ist eine Funktion der Konfigurationseinstellungen (das heißt, gibt an, welche Konfigurationseinstellungen die Tiefenschätzungen verbessern werden für jedes Pixel, das in der existierenden Tiefenkarte 104 repräsentiert ist).
-
Bei 530 bestimmt der Prozess 500 zumindest eine Tiefenverfeinerungsbilderfassungsanweisung 108 basierend auf der Abstimmungskarte. Dies kann auf eine Vielzahl unterschiedlicher Weisen ausgeführt werden. Zum Beispiel können die Tiefenverfeinerungsbilderfassungsanweisungen 108 bestimmt werden durch Auswählen einer Konfigurationseinstellung 112, die dem Ort des Maximums (das heißt, der größten Anzahl von Stimmen) aus der Abstimmungskarte entspricht. Die Tiefenverfeinerungsbilderfassungsanweisungen können auch bestimmt werden durch Auswählen einer Menge der höchsten lokalen Maxima aus der Abstimmungskarte. In anderen Beispielen können die Tiefenverfeinerungsbilderfassungsanweisungen 108 auch bestimmt werden durch Auswählen, aus der Tiefenkarte, einer ersten Konfigurationseinstellung 112, die einem ersten lokalen Maximum entspricht, das mit einem ersten Tiefenbereich assoziiert ist, und einer zweiten Konfigurationseinstellung 112, die einem zweiten lokalen Maximum entspricht, das mit einem zweiten Tiefenbereich assoziiert ist. Der Prozess 500 kann einmal oder mehrmals wiederholt werden, um zusätzliche Tiefenverfeinerungsbilderfassungsanweisungen 108 zur weiteren Verfeinerung einer verfeinerten Tiefenkarte zu erzeugen.
-
19 zeigt eine beispielhafte Architektur 600 zum Implementieren von Techniken, die sich auf das Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen zum Verbessern einer existierenden Tiefenkarte 104 wie hierin beschrieben beziehen. Die Architektur 600 beinhaltet eine oder mehrere Benutzervorrichtungen 602(1) bis 602(N) (hiernach: „die Benutzervorrichtung 602”), die über Netzwerk(e) 624 (hiernach: „das Netzwerk 624”) in Kommunikation mit einem Bildeditierdienst 604 stehen. Das Netzwerk 624 beinhaltet ein beliebiges oder eine Kombination von vielen verschiedenen Typen von Netzwerken, wie Kabelnetze, das Internet, drahtlose Netzwerke, Mobilfunknetze, Funknetzwerken, und andere private und/oder öffentliche Netzwerke.
-
Eine Benutzervorrichtung 602 kann jede geeignete Vorrichtung sein, die ein Bild erfassen und/oder eine oder mehrere Operationen auf Bilder ausführen kann. In einigen Beispielen ist die Benutzervorrichtung 602 jede geeignete Rechenvorrichtung wie zum Beispiel, ohne hierauf beschränkt zu sein, eine Digitalkamera, ein Mobiltelefon, ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Laptop-Computer, ein PC, ein Arbeitsplatzcomputer, eine Set-Top-Box, eine Thin-Client-Vorrichtung, oder eine andere Rechenvorrichtung. Die Benutzervorrichtung 602 wird von einem oder von mehreren Benutzern (nicht dargestellt) verwendet, um mit dem Bildeditierdienst 604 zu interagieren.
-
Die Benutzervorrichtung 602 enthält daher einen Prozessor 632, der kommunikativ mit einem Speicher 634 gekoppelt ist und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die in dem Speicher 634 gespeichert ist. In einigen Beispielen speichert der Speicher 634 eine Webdiensteanwendung 636 und eine oder mehrere Funktionseinheiten (zum Beispiel eine Bildeigenschaftsfunktionseinheit 628(A), eine Tiefenerzeugungsfunktionseinheit 626(A), die Tiefenverfeinerungsfunktionseinheit 102(A), eine Bildeditierfunktionseinheit 630(A), eine Webdienstanwendung 636). Der Prozessor 632 kann ein Mikroprozessor sein, eine anwendungsspezifische integrierte Schaltung („ASIC”), ein Zustandsautomat, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 632 kann auch jede beliebige Anzahl an Verarbeitungsvorrichtungen enthalten, einschließlich einer. Ein solcher Prozessor 632 kann ein computerlesbares Medium beinhalten, oder mit einem solchen kommunikativ in Verbindung stehen, welches Anweisungen speichert, die, wenn sie durch den Prozessor 632 ausgeführt werden, den Prozessor 632 dazu veranlassen, die hierin beschriebenen Operationen auszuführen. Die Webdiensteanwendung 636 kann es dem Benutzer ermöglichen, über das Netzwerk 724 mit dem Bildeditierdienst 704 zu interagieren. Die Benutzervorrichtung 602 umfasst auch eine Bilderfassungsvorrichtung 106(A). Die Bilderfassungsvorrichtung 106(A) ist konfiguriert, um ein Bild oder mehrere Bilder zu erfassen. In einigen Beispielen umfasst die Bilderfassungsvorrichtung 106(A) eine herkömmliche Digitalkamera, die eine Linse, eine Blendeneinstellung, eine Fokuseinstellung, einen Infrarotprojektor, und/oder eine Vorrichtung für strukturiertes Licht beinhaltet. Jede Verwendung von ”Digitalkamera” in diesem Dokument dient lediglich der Veranschaulichung, und ein Fachmann würde verstehen, dass ein solcher Begriff allgemein verwendet werden kann, um sich auf jede beliebige Bilderfassungsvorrichtung 106 zu beziehen, die ausgeführt wird durch oder integriert ist in eine beliebige der Benutzervorrichtungen 602(1) bis 602(N) oder irgendeine ähnliche Vorrichtung. Daher können die Begriffe „Digitalkamera” und „Benutzervorrichtung” hierin manchmal allgemein und austauschbar verwendet werden. In einigen Beispielen ist die Benutzervorrichtung 602(1) eine Digitalkamera und kann konfiguriert sein mit der Bilderfassungsvorrichtung 106(A), um Bilder zu erfassen, mag aber manche oder alle der Funktionseinheiten nicht enthalten. In diesem Beispiel werden der Benutzervorrichtung 602(1) (oder einem Bediener der Benutzervorrichtung 602(1)) Tiefenverfeinerungsbilderfassungsanweisungen 108 gegeben, die beim Erfassen der Bilder 118 unter Verwendung der Bilderfassungsvorrichtung 106(A) zu verwenden sind.
-
Der Bildeditierdienst 604 enthält einen Prozessor 606, der kommunikativ mit einem Speicher 608 gekoppelt ist und der einen durch einen Computer ausführbaren Programmcode ausführt und/oder auf Information zugreift, die in dem Speicher 608 gespeichert ist. In einigen Beispielen speichert der Speicher 608 ein Betriebssystem 612 und eine oder mehrere Funktionseinheiten (zum Beispiel die Bildeigenschaftsfunktionseinheit 628(A), die Tiefenerzeugungsfunktionseinheit 626(B), die Tiefenverfeinerungsfunktionseinheit 102(B), und die Bildeditierfunktionseinheit 620(B)). Das Betriebssystem 612 umfasst jedes geeignete Betriebssystem, das konfiguriert ist, um mit dem Bildeditierdienst 604 zu interagieren. Der Prozessor 606 umfasst einen Mikroprozessor, einen ASIC, einen Zustandsautomaten, oder eine andere Verarbeitungsvorrichtung. Der Prozessor 606 umfasst auch jede beliebige Anzahl an Verarbeitungsvorrichtungen, einschließlich einer. Ein derartiger Prozessor kann ein computerlesbares Medium enthalten, oder mit einem solchen kommunikativ verbunden sein, das Anweisungen speichert, welche, wenn sie ausgeführt werden durch den Prozessor 606, den Prozessor dazu veranlassen, die hierin beschriebenen Operationen auszuführen.
-
Der Speicher 608 umfasst jedes geeignete computerlesbare Medium. Das computerlesbare Medium kann jede elektronische, optische, magnetische oder andere Speichervorrichtung umfassen, die in der Lage ist, für einen Prozessor computerlesbaren Anweisungen oder anderem Programmcode bereitzustellen. Ein computerlesbares Medium kann zum Beispiel eine magnetische Platte, einen Speicherchip, ROM, RAM, einen ASIC, einen konfigurierten Prozessor, einen optischen Speicher, ein Magnetband oder einen anderen magnetischen Speicher umfassen, oder jedes andere Medium, von dem ein Computerprozessor Anweisungen auslesen kann. Die Anweisungen können Prozessor-spezifische Anweisungen umfassen, die bestimmt werden durch einen Compiler und/oder einen Interpreter aus Code, der geschrieben ist in einer beliebigen geeigneten Computerprogrammiersprache, einschließlich zum Beispiel C, C++, C#, Visual Basic, Java, Python, Perl, JavaScript, und ActionScript.
-
Der Bildeditierdienst 604 beinhaltet auch eine Anzahl externer oder interner Vorrichtungen, wie Eingabe- oder Ausgabevorrichtungen. Zum Beispiel beinhaltet der Bildeditierdienst 604 Eingabe-/Ausgabe-(I/O)Vorrichtung(en) und/oder Anschlüsse 614, wie etwa um eine Verbindung zu ermöglichen mit einer Tastatur, einer Maus, einem Stift, einer Spracheingabevorrichtung, einer Berührungseingabevorrichtung, einer Anzeige, Lautsprechern, einem Drucker oder einer anderen Eingabe-/Ausgabevorrichtung. Der Bildeditierdienst 604 beinhaltet auch einen zusätzlichen Speicher 616, der einen entfernbaren Speicher und/oder einen nicht entfernbaren Speicher umfassen kann. Der zusätzliche Speicher 616 kann einen magnetischen Speicher, optische Platten und/oder Bandspeicher umfassen, ist aber nicht auf diese beschränkt. Die Plattenlaufwerke und deren assoziierte computerlesbare Medien können einen nichtflüchtigen Speicher von computerlesbaren Anweisungen, Datenstrukturen, Programmodule und andere Daten bereitstellen. Der Bildeditierdienst 604 beinhaltet auch eine Benutzerschnittstelle 618. Die Benutzerschnittstelle 618 wird von einem Bediener, oder einem anderen autorisierten Benutzer, verwendet, um auf Teile des Bildeditierdiensts 604 zuzugreifen. In einigen Beispielen beinhaltet die Benutzerschnittstelle 618 eine graphische Benutzerschnittstelle, webbasierte Anwendungen, Programmschnittstellen wie Anwendungsprogrammierschnittstellen (APIs) oder andere Benutzerschnittstellenkonfigurationen. Der Bildeditierdienst 604 beinhaltet auch einen Datenspeicher 620. Der Datenspeicher 620 umfasst Datenstrukturen zum Speichern von Information, die sich auf die Implementierung der hierin beschriebenen Techniken bezieht. Derartige Information wird gespeichert in einer Bilddatenbank 622. In der Bilddatenbank 622 werden eingegebene Bilder, Tiefenkarten, Tiefenwahrscheinlichkeitskarten, Abstimmungskarten, Unsicherheitsmaße, zusammen mit ihren zugeordneten Informationen, und beliebige andere geeignete Daten gespeichert, die sich auf das Implementieren der hierin beschriebenen Techniken beziehen.
-
Die Tiefenerzeugungsfunktionseinheiten 626(A), 626(B) sind konfiguriert, Tiefenkarten zu erzeugen basierend auf einer Mehrzahl der Bilder 118, die durch die Bilderfassungsvorrichtung 106 erfasst wurden, oder die durch eine andere Bilderfassungsvorrichtung erfasst und einer der Benutzervorrichtungen 602(1) bis 602(N) oder dem Bildeditierdienst 604 bereitgestellt wurden. In einigen Beispielen führen die Tiefenerzeugungsfunktionseinheiten 626(A), 626(B) eine oder mehrere Operationen aus, um Tiefenkarten zu erzeugen in Übereinstimmung mit Techniken, die beschrieben sind in der US Anmeldung Anmeldenummer 14/552,332, eingereicht am 24. November 2014, die hiermit durch Bezugnahme in Gänze miteinbezogen wird. Zum Beispiel können, wie in größerem Detail in der US Anmeldung Anmeldenummer 14/552,332 beschrieben, die Tiefenerzeugungsfunktionseinheiten 626(A), 626(B) Tiefenkarten, Tiefenwahrscheinlichkeitskarten, Alles-im-Fokus Bilder, und Unsicherheitsmaße erzeugen. In einigen Beispielen, nachdem zumindest eine Tiefenverfeinerungsbilderfassungsanweisung 108 erzeugt wurde und zumindest ein zusätzliches Bild erfasst wurde, können die Tiefenerzeugungsfunktionseinheiten 626(A), 626(B), die wie in der US Anmeldung Anmeldenummer 14/552,332 beschrieben arbeiten, eine verfeinerte Tiefenkarte, eine verfeinerte Tiefenwahrscheinlichkeitskarte, ein verfeinertes Alles-im-Fokus Bild, und/oder ein verfeinertes Unsicherheitsmaß erzeugen. Zumindest ein Teil von der verfeinerten Tiefenkarte, der verfeinerten Tiefenwahrscheinlichkeitskarte, den verfeinerten Alles-im-Fokus Bildern, und dem verfeinerten Unsicherheitsmaß kann dann der Tiefenverfeinerungsfunktionseinheit 102 eingegeben werden, um die verfeinerte Tiefenkarte weiter zu verfeinern. Auf diese Weise kann die Verfeinerung der Tiefe iterativ erfolgen. Der Gegenstand der US Anmeldung Anmeldenummer 14/552,332 ist beschrieben in Anhang 1 der vorliegenden Anmeldung.
-
Die Bildeigenschaftsfunktionseinheiten 628(A), 628(B) sind konfiguriert, Bilderfassungsanweisungen für das Erfassen von Bildern zu bestimmen, die verwendet werden können, um eine Tiefenkarte zu erzeugen, wie die existierende Tiefenkarte 104. In einigen Beispielen führen die Bildeigenschaftsfunktionseinheiten 628(A), 628(B) eine oder mehrere Operationen aus, um Bilderfassungsanweisungen zu erzeugen in Übereinstimmung mit Techniken, die beschrieben sind in der US Anmeldung Anmeldenummer 14/577,792, eingereicht am 19. Dezember 2014. Der Gegenstand der US Anmeldung Anmeldenummer 14/577,792 ist beschrieben in Anhang 2 der vorliegenden Anmeldung. Zum Beispiel, wie in größerem Detail in der US Anmeldung Anmeldenummer 14/577,792 beschrieben, identifizieren die Bilderfassungsanweisungen, welche von den Bildeigenschaftsfunktionseinheiten 628(A), 628(B) bestimmt werden, eine Anzahl an Bildern und die Blendeneinstellungen und/oder Fokuseinstellungen, die zu deren Erfassung zu verwenden sind, derart, dass aus den Bildern eine Qualitäts-Tiefenkarte erzeugt werden kann. In einigen Beispielen wird eine der Bildeigenschaftsfunktionseinheiten 628(A), 628(B), verwendet, um Bilderfassungsanweisungen zu bestimmen. Die Bilder, die gemäß diesen Anweisungen erfasst werden, werden einer der Tiefenerzeugungsfunktionseinheiten 626(A), 626(B) bereitgestellt, und eine Tiefenkarte wird erzeugt. In einigen Beispielen wird die Tiefenkarte, zusammen mit anderen Daten, einer der Tiefenverfeinerungsfunktionseinheiten 102(A), 102(B) bereitgestellt, wo Tiefenverfeinerungsbilderfassungsanweisungen 108 zum Verfeinern der Tiefenkarte bestimmt werden.
-
Die Bildeditierfunktionseinheiten 630(A), 630(B) sind konfiguriert, eine oder mehrere Operationen auszuführen, die sich auf das Editieren von Bildern beziehen. Zum Beispiel wird, nachdem die Bilder 118 in Übereinstimmung mit den Bilderfassungsanweisungen 108 erfasst wurden, und eine Tiefenkarte erzeugt (und optional verfeinert) wurde, eine der Bildeditierfunktionseinheiten 630(A), 630(B) verwendet, um ein Bild zu editieren, das der Tiefenkarte entspricht. Wie zuvor bemerkt, kann die Tiefenkarte als eine separate Datei gespeichert werden, die mit dem Bild assoziiert ist, oder kann als Daten oder Metadaten innerhalb der Bilddatei enthalten sein.
-
Allgemeine Hinweise
-
Zahlreiche spezifische Details werden hierin dargelegt, um ein tiefgreifendes Verständnis des Gegenstandes des Anhangs 2 zu verschaffen. Die Fachleute werden jedoch verstehen, dass der Gegenstand ohne diese spezifischen Details ausgeübt werden kann. In anderen Fällen wurden Verfahren, Vorrichtungen oder Systeme, welche den Fachleuten bekannt wären, nicht im Detail beschrieben, um den Gegenstand des Anhangs 2 nicht zu verdunkeln.
-
Es wird verstanden werden, dass, solange nicht ausdrücklich anderweitig angegeben, in diesem Dokument Ausführungen, welche Begriffe verwenden wie etwa „verarbeiten,” „berechnen,” „bestimmen,” und „identifizieren” oder ähnliche, sich auf Aktionen oder Prozesse einer Rechenvorrichtung beziehen, wie einen oder mehrere Computer oder einer ähnlichen elektronischen Rechnervorrichtung oder -vorrichtungen, welche Daten manipulieren oder transformieren, die als physische elektronische oder magnetische Quantitäten repräsentiert sind innerhalb Speichern, Registern oder anderen Informationsspeichereinheiten, Übertragungsvorrichtungen oder Anzeigevorrichtungen der Rechnerplattform.
-
Das System oder die Systeme, welche hierin diskutiert sind, sind nicht auf eine bestimmte Hardwarearchitektur oder Konfiguration beschränkt. Eine Rechenvorrichtung kann jede geeignete Anordnung von Komponenten beinhalten, welche ein Ergebnis bereitstellt, das von einer oder mehreren Eingaben abhängt. Geeignete Rechnervorrichtungen beinhalten Mikroprozessor-basierte Computersysteme, die vielfältig einsetzbar sind, welche auf Software zugreifen, welche das Rechnersystem von einer Allzweck-Rechnervorrichtung zu einer spezialisierten Rechnervorrichtung programmiert oder konfiguriert, die eine oder mehrere Ausführungsformen des vorliegenden Gegenstands implementiert. Jede geeignete Programmiersprache, Skriptsprache oder andere Art von Sprache, oder Kombination von Sprachen, kann verwendet werden, um die hierin enthaltenen Lehren in Software zu implementieren, die dazu verwendet wird, eine Rechnervorrichtung zu programmieren oder zu konfigurieren.
-
Ausführungsformen der hierin offenbarten Verfahren können beim Betrieb solcher Rechnervorrichtungen ausgeführt werden. Die Reihenfolge der Blöcke, die in den vorstehenden Beispielen dargestellt wurden, kann variiert werden – zum Beispiel können Blöcke umgeordnet, kombiniert und/oder in Unterblöcke unterteilt werden. Bestimmte Blöcke oder Prozesse können parallel ausgeführt werden.
-
Wenn hierin „eingerichtet zum” oder „konfiguriert zum” verwendet wird, ist dies als offene und inklusive Sprache gedacht, die keine Vorrichtungen ausschließt, die dazu angepasst sind, zusätzliche Aufgaben oder Schritte auszuführen. Darüber hinaus ist die Verwendung von „basierend auf” als offen und inklusiv gedacht, in dem Sinn, dass ein Prozess, ein Schritt, eine Berechnung oder eine andere Aktion „basierend auf” einer oder mehreren genannten Bedingungen oder Werten in der Praxisüber die genannten hinaus auf weiteren Bedingungen oder Werten basieren kann. Überschriften, Listen und Nummerierungen, die hierin enthalten sind, dienen lediglich der Einfachheit der Erläuterung und sind nicht als beschränkend gedacht.
-
Während der vorliegende Gegenstand im Detail mit Bezug auf spezifische Ausführungsformen desselben beschrieben wurde, wird es verstanden werden, dass die Fachleute, basierend auf einem Verständnis des Vorstehenden, leicht Abwandlungen, Variationen und Äquivalente zu solchen Ausführungsformen schaffen können. Dementsprechend wird verstanden werden, dass die vorliegende Offenbarung allein Beispielhaft und nicht als Beschränkung gegeben wurde, und dass diese nicht die Einbeziehung solcher Modifikationen, Variationen und/oder Hinzufügungen zu dem vorliegenden Gegenstand ausschließt, wie sie den Fachleuten ersichtlich sein werden.
-
Klauseln zu Anhang 2
-
Weitere Merkmale, Techniken und Vorteile, die sich aujf den Gegenstand des Anhangs 2 beziehen, werden ersichtlich werden aus den folgenden Klauseln.
- 1. Computerimplementiertes Verfahren zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen (108) durch prädiktives Bestimmen von Konfigurationseinstellungen (112) zur Verwendung durch eine Kamera (404), um zumindest ein nächstes Bild (118) einer Szene (406) zu erfassen, zum Verfeinern von Tiefenschätzungen in einer existierenden Tiefenkarte (104), die einem existierenden Bild (118) der Szene (406) entspricht, wobei das Verfahren umfasst:
Identifizieren, durch ein Rechnersystem, einer Mehrzahl von Bildflicken des existierenden Bildes (118);
Bestimmen, durch das Rechnersystem, eines Tiefenbereichs entsprechend jedem der Bildflicken, wobei der Tiefenbereich mögliche Tiefenwerte für den entsprechenden Bildflicken umfasst;
Evaluieren, durch das Rechnersystem, jedes der Bilderflicken unter Verwendung von jeder einer Mehrzahl von Konfigurationseinstellungen (112) bei jedem der entsprechenden möglichen Tiefenwerte, um einen Betrag der möglichen Erhöhung an Tiefenpräzision für den Bildflicken zu bestimmen, der erzielt werden kann, indem zusätzliche Tiefeninformation von dem zumindest einen nächsten Bild (118) der Szene (406) berücksichtigt wird, wenn erfasst von der Kamera (404) unter Verwendung der Konfigurationseinstellung (112), wobei jede der Konfigurationseinstellungen (112) zumindest eines umfasst von einer Blendeneinstellung (114) und einer Fokuseinstellung (116); und
Erzeugen, durch das Rechnersystem, und basierend auf dem Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken, von zumindest einer Tiefenverfeinerungsbilderfassungsanweisung (108), wobei jede Tiefenverfeinerungsbilderfassungsanweisung (108) zumindest eine der Konfigurationseinstellungen (112) umfasst, worin die zusätzliche Tiefeninformation, die abgeleitet wird aus dem zumindest einen nächsten Bild (118), wenn erfasst unter Verwendung der zumindest einen der Konfigurationseinstellungen (112), zu einer Erhöhung an Tiefenpräzision in der existierenden Tiefenkarte (104) führen wird.
- 2. Computerimplementiertes Verfahren nach Klausel 1, worin der Tiefenbereich bestimmt wird basierend, zumindest teilweise, auf zumindest einem von einem Unsicherheitsmaß und einer Tiefenwahrscheinlichkeitskarte.
- 3. Computerimplementiertes Verfahren nach Klausel 1 oder 2, worin das Evaluieren jedes der Bildflicken unter Verwendung von jeder der Konfigurationseinstellungen (112) bei jedem der möglichen Tiefenwerte in dem entsprechenden Tiefenbereich beinhaltet:
Identifizieren eines Unschärfe-Kernels entsprechend jedem der möglichen Tiefenwerte und der Konfigurationseinstellung (112);
für jeden Unschärfe-Kernel, Bestimmen eines simulierten Bildflickens (304(A) bis 304(D)) durch verunschärfen eines Alles-im-Fokus Bildflickens (302(A) bis 302(D)) eines Alles-im-Fokus Bildes (122) mit dem Unschärfe-Kernel, wobei der simulierte Bildflicken (304(A) bis 304(D)) dem Bildflicken des existierenden Bildes entspricht; und
Bestimmen, basierend auf den simulierten Bildflicken (304(A) bis 304(D)), des Betrags an möglicher Erhöhung an Tiefenpräzision für den Bildflicken für jede Konfigurationseinstellung (112).
- 4. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 3, worin das Evaluieren jedes der Bildflicken unter Verwendung von jeder der Konfigurationseinstellungen (112) bei jedem der möglichen Tiefenwerte in dem entsprechenden Tiefenbereich beinhaltet:
Identifizieren eines Unschärfe-Kernels entsprechend jedem der möglichen Tiefenwerte und der Konfigurationseinstellung (112);
für jeden Unschärfe-Kernel, Bestimmen eines simulierten Bildflickens (304(A) bis 304(D)) durch verunschärfen eines Alles-im-Fokus Bildflickens (302(A) bis 302(D)) eines Alles-im-Fokus Bildes (122) mit dem Unschärfe-Kernel, wobei der simulierte Bildflicken (304(A) bis 304(D)) dem Bildflicken des existierenden Bildes (118) entspricht; und
Bestimmen, basierend auf den simulierten Bildflicken (304(A) bis 304(D)), des Betrags an möglicher Erhöhung an Tiefenpräzision für den Bildflicken für jede der Konfigurationseinstellungen (112) durch:
Bestimmen eines Entfernungsmaßes zwischen Flickenerscheinungen für jedes Paar simulierter Bildflicken (304(A) bis 304(D)), die benachbarten möglichen Tiefenwerten entsprechen; und
Summieren der Entfernungsmaße, worin die Summe der Entfernungsmaße dem Betrag an möglicher Erhöhung an Tiefenpräzision für den Bildflicken entspricht.
- 5. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 4, worin der Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken verwendet wird, um eine Abstimmungskarte zu erzeugen, wobei die Abstimmungskarte eine Entsprechung zwischen den Konfigurationseinstellungen (112) und dem Betrag an möglicher Erhöhung an Tiefenpräzision bei jedem Pixel berücksichtigt, das in der existierenden Tiefenkarte (104) repräsentiert ist, und worin das Erzeugen der Tiefenverfeinerungsbilderfassungsanweisungen (108) auf der Abstimmungskarte basiert.
- 6. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 5, weiter umfassend:
Erfassen des zumindest einen nächsten Bildes (118) in Übereinstimmung mit den Tiefenverfeinerungsbilderfassungsanweisungen (108); und
Erzeugen einer verfeinerten Tiefenkarte (104) unter Verwendung von wenigstens dem zumindest einen nächsten Bild (118), und worin die verfeinerte Tiefenkarte (104) zumindest eine Tiefenschätzung enthält, die präziser ist als die zumindest eine Tiefenschätzung in der existierenden Tiefenkarte (104).
- 7. Computerimplementiertes Verfahren nach einer der Klauseln 1 bis 6, weiter umfassend Empfangen einer Eingabe, wobei die Eingabe zumindest eines umfasst von einem minimalen Betrag der möglichen Erhöhung in Tiefenpräzision für die existierende Tiefenkarte (104), einer gesamten Anzahl an zu erfassenden zusätzlichen Bildern (110), und einer Gesamtzeitdauer für das Erfassen zusätzlicher Bilder (118), und worin das Erzeugen der Tiefenverfeinerungsbilderfassungsanweisungen (108) in Übereinstimmung mit der Eingabe ausgeführt wird.
- 8. Computerprogrammprodukt, welches computerlesbare Anweisungen umfasst, welche, wenn sie auf einem Computer oder einem System geladen werden, den Computer oder das System dazu veranlassen, ein Verfahren nach einer der Klauseln 1 bis 7 auszuführen.
- 9. Eine oder mehrere computerlesbare Speichervorrichtungen, welche computerausführbare Anweisungen speichern, welche, wenn sie durch ein oder mehrere Computersysteme ausgeführt werden, das eine oder die mehreren Computersysteme dazu konfigurieren, Tiefenverfeinerungsbilderfassungsanweisungen (108) zu bestimmen durch prädiktives Bestimmen von Konfigurationseinstellungen (112) zur Verwendung durch eine Kamera (404), um zumindest ein nächstes Bild (118) einer Szene (406) zu erfassen, zum Verfeinern von Tiefenschätzungen in einer existierenden Tiefenkarte (104), die einem existierenden Bild (118) der Szene (406) entspricht, durch Ausführen von Operationen, welche umfassen:
Identifizieren einer Mehrzahl von Bildflicken des existierenden Bildes (118);
Bestimmen eines Tiefenbereichs entsprechend jedem der Bildflicken, wobei der Tiefenbereich mögliche Tiefenwerte für den entsprechenden Bildflicken umfasst;
Evaluieren von jedem der Bilderflicken unter Verwendung von jeder einer Mehrzahl von Konfigurationseinstellungen (112) bei jedem der entsprechenden möglichen Tiefenwerte, um einen Betrag der möglichen Erhöhung an Tiefenpräzision für den Bildflicken zu bestimmen, der erzielt werden kann, indem zusätzliche Tiefeninformation von dem zumindest einen nächsten Bild (118) der Szene (406) berücksichtigt wird, wenn erfasst von der Kamera (404) unter Verwendung der Konfigurationseinstellung (112), wobei jede der Konfigurationseinstellungen (112) zumindest eines umfasst von einer Blendeneinstellung (114) und einer Fokuseinstellung (116); und
Erzeugen, basierend auf dem Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken, von zumindest einer Tiefenverfeinerungsbilderfassungsanweisung (108), wobei jede Tiefenverfeinerungsbilderfassungsanweisung (108) zumindest eine der Konfigurationseinstellungen (112) umfasst, worin die zusätzliche Tiefeninformation, die abgeleitet wird aus dem zumindest einen nächsten Bild (118), wenn erfasst unter Verwendung der zumindest einen der Konfigurationseinstellungen (112), zu einer Erhöhung an Tiefenpräzision in der existierenden Tiefenkarte (104) führen wird.
- 10. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach Klausel 9, worin die zusätzliche Tiefeninformation, die durch das zumindest eine nächste Bild (118) bereitgestellt wird, wenn erfasst unter Verwendung der zumindest einen der Konfigurationseinstellungen (112), eine Erhöhung in Tiefendiskriminierbarkeit bereitstellt zwischen den möglichen Tiefenwerten in dem Tiefenbereich für den Bildflicken entsprechend der zumindest einen Tiefenschätzung.
- 11. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach Klausel 9 oder 10, worin das Evaluieren jedes der Bildflicken unter Verwendung von jeder der Konfigurationseinstellungen (112) bei jedem der möglichen Tiefenwerte in dem entsprechenden Tiefenbereich beinhaltet:
Identifizieren eines Unschärfe-Kernels entsprechend jedem der möglichen Tiefenwerte und der Konfigurationseinstellung (112);
für jeden Unschärfe-Kernel, Bestimmen eines simulierten Bildflickens (304(A) bis 304(D)) durch verunschärfen eines Alles-im-Fokus Bildflickens (302(A) bis 302(D)) eines Alles-im-Fokus Bildes (122) mit dem Unschärfe-Kernel, wobei der simulierte Bildflicken (304(A) bis 304(D)) dem Bildflicken des existierenden Bildes (118) entspricht; und
Bestimmen, basierend auf den simulierten Bildflicken (304(A) bis 304(D)), des Betrags an möglicher Erhöhung an Tiefenpräzision für den Bildflicken für jede der Konfigurationseinstellungen (112).
- 12. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach einer der Klauseln 9 bis 11, worin das Evaluieren jedes der Bildflicken unter Verwendung von jeder der Konfigurationseinstellungen (112) bei jedem der möglichen Tiefenwerte in dem entsprechenden Tiefenbereich beinhaltet:
Identifizieren eines Unschärfe-Kernels entsprechend jedem der möglichen Tiefenwerte und der Konfigurationseinstellung (112);
für jeden Unschärfe-Kernel, Bestimmen eines simulierten Bildflickens (304(A) bis 304(D)) durch verunschärfen eines Alles-im-Fokus Bildflickens (302(A) bis 302(D)) eines Alles-im-Fokus Bildes (122) mit dem Unschärfe-Kernel, wobei der simulierte Bildflicken (304(A) bis 304(D)) dem Bildflicken des existierenden Bildes (118) entspricht; und
Bestimmen, basierend auf den simulierten Bildflicken (304(A) bis 304(D)), des Betrags an möglicher Erhöhung an Tiefenpräzision für den Bildflicken für jede der Konfigurationseinstellungen (112) durch:
Bestimmen eines Entfernungsmaßes zwischen Flickenerscheinungen für jedes Paar simulierter Bildflicken (304(A) bis 304(D)), die benachbarten möglichen Tiefenwerten entsprechen; und
Summieren der Entfernungsmaße, worin die Summe des Maßes der Entfernungen dem Betrag an möglicher Erhöhung an Tiefenpräzision für den Bildflicken entspricht.
- 13. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach einer der Klauseln 9 bis 12, worin der Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken verwendet wird, um eine Abstimmungskarte zu erzeugen, wobei die Abstimmungskarte eine Entsprechung zwischen den Konfigurationseinstellungen (112) und dem Betrag an möglicher Erhöhung an Tiefenpräzision bei jedem Pixel berücksichtigt, das in der existierenden Tiefenkarte (104) repräsentiert ist, und worin das Erzeugen der Tiefenverfeinerungsbilderfassungsanweisungen (108) auf der Abstimmungskarte basiert.
- 14. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach einer der Klauseln 9 bis 13, weiter umfassend:
Erfassen des zumindest einen nächsten Bildes (118) in Übereinstimmung mit den Tiefenverfeinerungsbilderfassungsanweisungen (108); und
Erzeugen einer verfeinerten Tiefenkarte (104) unter Verwendung von wenigstens dem zumindest einen nächsten Bild (118), und worin die verfeinerte Tiefenkarte (104) zumindest eine Tiefenschätzung enthält, die präziser ist als die zumindest eine Tiefenschätzung in der existierenden Tiefenkarte (104).
- 15. Die eine oder die mehreren computerlesbaren Speichervorrichtungen nach einer der Klauseln 9 bis 14, worin der Tiefenbereich bestimmt wird basierend, zumindest teilweise, auf zumindest einem von einem Unsicherheitsmaß und einer Tiefenwahrscheinlichkeitskarte.
- 16. System zum Bestimmen von Tiefenverfeinerungsbilderfassungsanweisungen (108) durch prädiktives Bestimmen von Konfigurationseinstellungen (112) zur Verwendung durch eine Kamera (404), um zumindest ein nächstes Bild (118) einer Szene (406) zu erfassen, zum Verfeinern von Tiefenschätzungen in einer existierenden Tiefenkarte (104), die einem existierenden Bild (118) der Szene (406) entspricht, wobei das System umfasst:
einen Speicher, welcher Anweisungen speichert, die von einem Computer ausgeführt werden können; und
zumindest einen Prozessor, der konfiguriert ist, auf den Speicher zuzugreifen und die durch einen Computer ausführbaren Anweisungen auszuführen, um das System zur Ausführung von Operationen zu veranlassen, welche umfassen:
Identifizieren einer Mehrzahl von Bildflicken des existierenden Bildes (118);
Bestimmen eines Tiefenbereich entsprechend jedem der Bildflicken, wobei der Tiefenbereich mögliche Tiefenwerte für den entsprechenden Bildflicken umfasst;
Evaluieren von jedem der Bilderflicken unter Verwendung von jeder einer Mehrzahl von Konfigurationseinstellungen (112) bei jedem der entsprechenden möglichen Tiefenwerte, um einen Betrag der möglichen Erhöhung an Tiefenpräzision für den Bildflicken zu bestimmen, der erzielt werden kann, indem zusätzliche Tiefeninformation von dem zumindest einen nächsten Bild (118) der Szene (406) berücksichtigt wird, wenn erfasst von der Kamera (404) unter Verwendung der Konfigurationseinstellung (112), wobei jede der Konfigurationseinstellungen (112) zumindest eines umfasst von einer Blendeneinstellung (114) und einer Fokuseinstellung (116); und
Erzeugen, basierend auf dem Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken, von zumindest einer Tiefenverfeinerungsbilderfassungsanweisung (108), wobei jede Tiefenverfeinerungsbilderfassungsanweisung (108) zumindest eine der Konfigurationseinstellungen (112) umfasst, worin die zusätzliche Tiefeninformation, die abgeleitet wird aus dem zumindest einen nächsten Bild (118), wenn erfasst unter Verwendung der zumindest einen der Konfigurationseinstellungen (112), zu einer Erhöhung an Tiefenpräzision in der existierenden Tiefenkarte (104) führen wird.
- 17. System nach Klausel 16, worin die zusätzliche Tiefeninformation, die durch das zumindest eine nächste Bild (118) bereitgestellt wird, wenn erfasst unter Verwendung der zumindest einen der Konfigurationseinstellungen (112), eine Erhöhung in Tiefendiskriminierbarkeit bereitstellt zwischen den möglichen Tiefenwerten in dem Tiefenbereich für den Bildflicken entsprechend der zumindest einen Tiefenschätzung.
- 18. System nach Klausel 16 oder 17, worin das Evaluieren jedes der Bildflicken unter Verwendung von jeder der Konfigurationseinstellungen (112) bei jedem der möglichen Tiefenwerte in dem entsprechenden Tiefenbereich beinhaltet:
Identifizieren eines Unschärfe-Kernels entsprechend jedem der möglichen Tiefenwerte und der Konfigurationseinstellung (112);
für jeden Unschärfe-Kernel, Bestimmen eines simulierten Bildflickens (304(A) bis 304(D)) durch verunschärfen eines Alles-im-Fokus Bildflickens (302(A) bis 302(D)) eines Alles-im-Fokus Bildes (122) mit dem Unschärfe-Kernel, wobei der simulierte Bildflicken (304(A) bis 304(D)) dem Bildflicken des existierenden Bildes (118) entspricht; und
Bestimmen, basierend auf den simulierten Bildflicken (304(A) bis 304(D)), des Betrags an möglicher Erhöhung an Tiefenpräzision für den Bildflicken für jede der Konfigurationseinstellungen (112).
- 19. System nach einer der Klauseln 16 bis 18, worin der Betrag an möglicher Erhöhung an Tiefenpräzision für jeden Bildflicken verwendet wird, um eine Abstimmungskarte zu erzeugen, wobei die Abstimmungskarte eine Entsprechung zwischen den Konfigurationseinstellungen (112) und dem Betrag an möglicher Erhöhung an Tiefenpräzision bei jedem Pixel berücksichtigt, das in der existierenden Tiefenkarte (104) repräsentiert ist, und worin das Erzeugen der Tiefenverfeinerungsbilderfassungsanweisungen (108) auf der Abstimmungskarte basiert.
- 20. System nach einer der Klauseln 16 bis 19, weiter umfassend:
Erfassen des zumindest einen nächsten Bildes (118) in Übereinstimmung mit den Tiefenverfeinerungsbilderfassungsanweisungen (108); und
Erzeugen einer verfeinerten Tiefenkarte (104) unter Verwendung von wenigstens dem zumindest einen nächsten Bild (118), und worin die verfeinerte Tiefenkarte (104) zumindest eine Tiefenschätzung enthält, die präziser ist als die zumindest eine Tiefenschätzung in der existierenden Tiefenkarte (104).
- 21. System nach einer der Klauseln 16 bis 20, worin der Tiefenbereich bestimmt wird basierend, zumindest teilweise, auf zumindest einem von einem Unsicherheitsmaß und einer Tiefenwahrscheinlichkeitskarte.