-
TECHNISCHES GEBIET
-
Diese Erfindung bezieht sich allgemein auf die Messung von Tiefenwerten in Szenen unter Verwendung von strukturierten Lichtmustern, und insbesondere auf die Messung von Formen in Szenen, die einer umfassenden Beleuchtung ausgesetzt sind.
-
STAND DER TECHNIK
-
Die Triangulation von strukturiertem Licht ist ein Verfahren der Wahl zum Messen der Form bei Anwendungen wie industrielle Automatisierung, Computergrafik, virtuelle Realität, Roboter-Mensch-Interaktion, medizinische Chirurgie und maschinelles Sehen. Die Formen werden anhand von Tiefenwerten gemessen.
-
Die Arbeit auf diesem Gebiet wurde durch zwei Faktoren beschleunigt: erstens Reduzieren der Erfassungszeit und zweitens Vergrößern der Tiefenauflösung. Herkömmliche Verfahren können 3D-Formen nahe bei 1000 Hz mit einer Tiefenauflösung von mehr als 30 Mikrometern messen.
-
Die meisten Verfahren mit strukturiertem Licht machen eine wichtige Annahme: Eine Szene empfängt eine Beleuchtung nur direkt von einer Lichtquelle. Diese Annahme kann nur in einem kontrollierten Labor oder in einer Studioumgebung erfüllt werden. Für die meisten Szenen in der realen Welt gilt dies nicht. Bei mehreren Anwendungen empfängt die Szene einen beträchtlichen Anteil von indirekter oder globaler Beleuchtung in der Form von Zwischenreflexionen, Streuung unter der Oberfläche, volumetrisches Streuen, Diffusion, die häufig größer als die direkte Beleuchtung ist.
-
Herkömmliche Verfahren mit strukturiertem Licht berücksichtigen diese Globallicht-Transportwirkungen, was zu beträchtlichen und systematischen Fehlern bei der Rückgewinnung von Formen anhand von Tiefenwerten führt. Darüber hinaus ist es aufgrund der systematischen Natur dieser Fehler schwierig, die Fehler durch Nachverarbeitung zu korrigieren. Es ist daher nicht überraschend, dass solche Verfahren bei relativ einfachen Szenen angewendet wurden, bei denen keine Globallicht-Transportwirkungen auftreten.
-
Historisch wurde eine Globalbeleuchtung bei Anwendungen des maschinellen Sehens nicht modelliert, da Computermodelle für Globalbeleuchtung komplex sind, selbst bei relativ einfachen Szenen.
-
Kürzlich wurde gezeigt, dass die direkten und globalen Komponenten einer Beleuchtung wirksam getrennt werden können. Dies führte zu einer Anzahl von Verfahren zum Durchführen einer Formenrekonstruktion auf der Grundlage von strukturiertem Licht bei Globallichttransport. Alle diese Verfahren beruhen auf der Entfernung oder Herabsetzung der Wirkungen von Globallichttransport, entweder durch Polarisation, Hochfrequenzmodulation von strukturierten Lichtmustern oder iterativem Herabsetzen der Gesamtbeleuchtung in der Szene. Da solche Verfahren darauf beruhen, die direkte Komponente zu erhalten, treten Fehler auf, wenn die Trennverfahren nicht wirksam sind.
-
Beispielsweise versagt eine sowohl auf Polarisation als auch auf modulierter Beleuchtung basierende Trennung bei der Filterung von Hochfrequenz-Zwischenreflexionen. Darüber hinaus kann beispielsweise bei Szenen, in denen die direkte Komponente relativ niedrig ist, mit hochdurchlässigen Materialien das Entfernen der globalen Komponente kontraproduktiv sein, da sie zu beträchtlichen Fehlern aufgrund eines niedrigen Störabstands (SNR) führt. Zusätzlich haben alle diese Verfahren einen erheblichen Overhead in Bezug auf die Hardwareeinrichtung und die Erfassungszeit.
-
Formenwiederherstellung unter Globallichttransport
-
Bei Anwendungen des maschinellen Sehens rekonstruiert ein iteratives photometrisches Verfahren die Form von Lambert-Objekten bei Anwesenheit von Zwischenreflexionen. Ein anderes Verfahren trennt explizit die globale Komponente von Bildern für die Durchführung einer photometrischen Stereoabbildung. Tiefen können wiedergewonnen werden durch Verwendung einer Projektordefokussierung unter globalen Beleuchtungseffekten. Ein anderes Verfahren verwendet Zwischenreflexionen zum Auflösen einer Flachrelief-Mehrdeutigkeit, die bei Form-aus-Schattierung-Techniken inhärent ist. Eine aktive Mehrsicht-Stereotechnik verwendet eine Hochfrequenzbeleuchtung als Szenentextur, die für globale Beleuchtung unveränderlich ist. Ein anderes Verfahren bewegt die Kamera oder die Szene, um die Wirkungen von Globallichttransport bei einer Anwendung mit strukturiertem Licht zu reduzieren.
-
Die
US 2009/0238449 A1 offenbart ein Verfahren zum Erfassen eines Bildes eines 3D-Objekts, das die Oberflächengeometrie zumindest eines Teils des Objekts kodiert. Hierbei werden mehrere Fransenmuster auf das Objekt projiziert, Phasenänderungen in Reflexionen der Fransenmuster von dem Objekt erfasst, ein gleichförmiges Bild auf das Objekt projiziert, eine Reflexion des gleichförmigen Bildes von dem Objekt erfasst und die erfassten Phasenänderungen und die erfasste Reflexion des gleichförmigen Bildes auf einer Pixel-für-Pixel-Basis miteinander kombiniert, um eine holografische Darstellung des Objekts zu erhalten.
-
Die
US 2009/0297020 A1 beschreibt ein Verfahren, bei dem eine Kamera einen Satz von kodierten Bildern und einen Satz von Blitzlichtbildern eines halbspiegelnden Objekts aufnimmt. Die kodierten Bilder werden aufgenommen, während das Objekt mit einem Laserstrahlmuster abgetastet wird, und die Blitzlichtbilder werden aufgenommen, während das Objekt mit einem Satz von Lichtquellen an verschiedenen Orten nahe der Kamera belichtet wird. 3D-Koordinaten von Oberflächenpunkten des Objekts, die durch den Satz von kodierten Bildern erhalten werden, und 2D-Silhouetten des Objekts, die anhand von in dem Satz von Blitzlichtbildern geworfenen Schatten erhalten werden, werden zur Bestimmung der Stellung des Objekts verwendet.
-
Die
US 2008/0118143 A1 bezieht sich auf ein Verfahren zum Erhalten eines Bildes für die Bestimmung einer dreidimensionalen Form eines stationären oder sich bewegenden Objekts unter Verwendung eines bidimensionalen kodierten Lichtmusters mit mehrere unterschiedlichen, identifizierbaren Merkmalstypen.
-
Aus der
US 2004/0240754 A1 ist ein optisches Verfahren zur Bemessung von auf Paletten gelagerter Fracht durch Bestimmung der Abmessungen eines Rechteckprismas mit dem kleinesten Volumen, das die Fracht aufnehmen kann, bekannt.
-
Die
US 6 503 195 B1 offenbart ein Echtzeit-Extraktionssystem für Tiefeninformationen mithilfe von strukturiertem Licht. Ein Projektor projiziert strukturierte Lichtmuster auf ein Objekt. Eine Kamera tastet synchron mit der Projektion der strukturierten Lichtmuster von dem Objekt reflektiertes Licht ab. Ein Prozessor empfängt digitale Signale von der Kamera und verarbeitet diese zur Gewinnung von Tiefeninformationen über das Objekt in Echtzeit.
-
Auch die
US 2009/0016572 A1 beschreibt ein Verfahren zum Gewinnen von Tiefeninformationen über eine Oberfläche, das jedes von mehreren strukturierten Lichtmustern unter Verwendung einer jeweiligen Trägerfrequenz entlang der orthogonalen Richtung moduliert, ein zusammengesetztes Bild, das die mehreren modulierten Lichtmuster enthält, auf die Oberfläche projiziert und Musterinformationen aus einem von der Oberfläche reflektierten Bild für jedes der mehreren modulierten Lichtmuster gewinnt.
-
Die
US 2004/0151365 A1 beschreibt ein Verfahren zur Schätzung der Entsprechung zwischen mehreren Bildern, das die Schritte aufweist: Projizieren einer Folge von Lichtsymbolen, die Informationen über zweidimensionale Positionen in einer Projektionsebene mit eindeutigen Lichtsymbolfolgecodes zeitlich kodieren, auf eine Szene; Erfassen von von der Szene reflektierten Lichtmustern in einer Erfassungsebene; und Berechnen einer Entsprechungsabbildung zwischen Mehrpixelbereichen in der Erfassungsebene und entsprechenden Bereichen in der Projektionsebene auf der Grundlage der Entsprechung zwischen Lichtsymbolfolgecodes, die in der Erfassungsebene erfasst wurden, und Lichtsymbolfolgecodes, die von der Projektionsebene projiziert wurden.
-
Die
US 6 754 370 B1 bezieht sich auf ein Verfahren zur Entfernungsmessung mit den Schritten: Projizieren einer Folge von Strahlungsmustern auf eine Szene, Erfassen von Bildern der Szene, Bestimmen von Entsprechungen zwischen Bildmerkmalen und Projektionsmustermerkmalen und Berechnen eines Entfernungsbilds der Szene durch Triangulation der Entsprechungen.
-
Es ist erwünscht, ein Verfahren zum Messen von Tiefenwerten in einer Szene mit strukturiertem Licht mit einer einzelnen Kamera und einem Projektor ohne bewegliche Teile vorzusehen, um durchlässige, undurchlässige und halbdurchlässige Oberflächen sowie Oberflächen, die zu globalen Beleuchtungseffekten führen, wie Zwischenreflexionen und Streuungen unter der Oberfläche, zu rekonstruieren.
-
Diese Aufgabe wird erfindungsgemäß durch ein Verfahren mit den Merkmalen des Anspruchs 1 gelöst. Vorteilhafte Weiterbildungen dieses Verfahrens ergeben sich aus den Unteransprüchen.
-
Bei den meisten Anwendungen des maschinellen Sehens nehmen Formmessverfahren, die strukturiertes Licht verwenden, an, dass Szenenpunkte nur direkt durch eine Lichtquelle beleuchtet werden. Folglich verschlechtern Globallichttransport-(GLT-)Effekte wie Zwischenreflexionen, Diffusion, Streuung unter der Oberfläche und volumetrische Streuung sowie Halbdurchlässigkeit in schwerwiegendem Maße das Leistungsvermögen derartiger Verfahren.
-
Die Ausführungsbeispiele unserer Erfindung sehen ein Verfahren zum Messen von 3D-Formen in einem von einer Szene unter Globallichttransport aufgenommenen Bild vor. Die Formen werden anhand von Tiefenwerten in der Szene gemessen. Wir analysieren Fehler aufgrund verschiedener Moden von Globallichttransport für strukturiertes Licht auf der Grundlage von Tiefenwiedergewinnung.
-
Auf der Grundlage dieser Analyse identifizieren wir die Eigenschaften, die strukturierte Lichtmuster haben müssen, um gegenüber diesen Fehlern unempfindlich zu sein. Diese Eigenschaften basieren auf den räumlichen Frequenzen von strukturierten Mustern, die auf die Szene projiziert werden.
-
Wir sehen vielfache Sätze von strukturierten Beleuchtungsmustern vor, die belastbar gegenüber Fehlern sind, die durch unterschiedliche Lichttransportmoden bewirkt werden, und auch optische Bildfehler wie Defokussierung.
-
Wir sehen Verfahren zum Erfassen von Restfehlern und Korrigieren der Fehler durch Erfassen einer kleinen Anzahl von zusätzlichen Bildern vor. Unsere Verfahren erfordern keine explizite Trennung der globalen und der direkten Komponenten der Beleuchtung, wie es im Stand der Technik der Fall ist. Folglich können wir eine größere Klasse von Szenen handhaben, während wir im Vergleich mit herkömmlichen expliziten Verfahren weniger Bilder benötigen.
-
KURZBESCHREIBUNG DER ZEICHNUNGEN
-
1 ist ein Diagramm enthaltend (A)–(D), die Histogramme der Projektorstreifenbreite als eine Funktion der Anzahl von Streifen für Sätze von strukturierten Lichtmustern gemäß Ausführungsbeispielen der Erfindung sind; und
-
2 ist eine schematische Darstellung eines Systems und eines Verfahrens zum Messen von Tiefenwerten in einer Szene gemäß Ausführungsbeispielen der Erfindung.
-
BESCHREIBUNG DER AUSFÜHRUNGSBEISPIELE
-
Fehleranalyse für strukturiertes Licht unter Globallichttransport
-
Das Grundprinzip hinter der Form von strukturierten Lichtverfahren ist die Triangulation. Jede Reihe und Spalte von Pixeln in einem Projektor wird mit einmaligen räumlichen oder zeitlichen Codes kodiert, um strukturierte Lichtmuster zu bilden. Der Projektor beleuchtet die Szene mit dem Lichtmuster, während eine Kamera eine Folge von Bildern, eines für jedes Muster, erfasst.
-
Für jedes Pixel in dem Kamerasensor sind die entsprechende Reihe und Spalte des Projektors bestimmt durch Dekodieren gemessener Intensitätswerte. Dann werden Tiefen bestimmt durch Triangulieren von Kamerastrahlen und einer Projektorebene. Für korrektes Dekodieren wird angenommen, dass jedes Kamerapixel eine Bestrahlung von einem einzelnen Projektorpixel empfängt.
-
Jedoch kann bei den meisten Szenen aus der realen Welt das Kamerapixel eine Bestrahlung von mehreren Projektorpixeln empfangen aufgrund von Globallichttransporteffekten, einer Kamera/Projektor-Defokussierung und optischen Bildfehlern, räumlicher Fehlausrichtung von Projektor-Kamera-Pixeln und Kamerapixeln, die größer als die Projektorpixel sind. Im Folgenden analysieren wir die Fehler in dem Dekodierprozess unter den vorbeschriebenen Effekten.
-
Zur Vereinfachung beschreiben wir binäre Kodierfunktionen, obgleich andere Kodierfunktionen möglich sind. Beispielsweise folgt die Analyse für N-äre, diskrete Codes und kontinuierliche Codes, die Phasenverschiebung verwenden, in einer ähnlichen Weise. Für binäre Codes werden binäre log2N-Muster auf die Szene projiziert, wobei N die Anzahl von zu kodierenden Projektorspalten und -reihen ist. Wenn der Punkt Si in einem Szenepunkt direkt beleuchtet wird, ist die Strahlungsdichte an dem Punkt Si gleich: Li = Li d + αLi g, (1) worin Li d und Li g die direkte und die globale Komponente der Strahlungsdichte bei Si sind, wenn die Szene voll beleuchtet ist, α ein Bruchteil der globalen Komponente ist, die an dem Punkt Si unter dem projizierten Muster P empfangen wird.
-
Wie hier definiert ist, entspricht ein Szenepunkt einem Pixel eines Bildsensors in einer Kamera. Jeder Szenepunkt hat einen assoziierten (x, y)-Ort und einen z-Tiefenwert. Daher sind die Szenepunkte dreidimensional. Die (x, y)-Orte entsprechen einfach Pixelkoordinaten auf dem Sensor. Unser Hauptaugenmerk gilt den Tiefenwerten z.
-
Zur Genauigkeit projizieren binärkodierte Techniken das Muster P und sein inverses Muster P . Das inverse Muster kann erzeugt werden durch Subtrahieren des Bildes von einem Bild der voll beleuchteten Szene mit einem vollständig weißen Muster. Mit dem Muster P ist die Intensität am Punkt Si: L i = (1 – α)Li g. (2)
-
Für ein korrektes Dekodieren muss die folgende Bedingung gelten: Li > L i (3) ⇒ Li d + αLi g > (1 – α)Li g. (4)
-
Situationen, in denen die Gleichung (4) nicht eingehalten wird
-
Für das genaueste Dekodieren werden, wenn der Punkt Si direkt beleuchtet wird, alle anderen Szenepunkte, die zu der globalen Komponente an dem Punkt Si beitragen, auch direkt beleuchtet. In diesem Fall ist α = 1. Als Nächstes betrachten wir Szenarien, in denen die Gleichung (4) nicht eingehalten wird, was zu systematischen Dekodierfehlern führt.
-
Weiträumige Effekte: Mehrfachreflexionen und Diffusion
-
Mehrfachreflexionen (diffuse und spiegelnde) und Diffusionen haben die Tendenz, weiträumige Lichttransporteffekte zu haben. Unter diesen Bedingungen kann ein Szenepunkt eine beträchtliche globale Beleuchtung von Punkten empfangen, die nicht in der lokalen Nachbarschaft sind. Durch Verwendung eines Hochfrequenz-Beleuchtungsmusters, beispielsweise eines Musters, dessen eine Hälfte der Pixel EIN sind und dessen andere Hälfte AUS sind, ist es möglich, sicherzustellen, dass α = 0,5 ist.
-
Jedoch enthalten die meisten strukturierten Lichtmuster einen großen Bereich von Frequenzen. Zum Beispiel haben herkömmliche 10-Bit-Gray-Codes 10 Muster (Bitebenen), bei denen sich die räumliche Frequenz bei jedem Muster verdoppelt. Somit haben herkömmliche Strukturlichtmuster sowohl Muster mit hohen Frequenzen als auch Muster mit niedrigen Frequenzen. Für die Muster mit niedrigen Frequenzen ist es möglich, dass α << ½ ist und dass die Ungleichheit in Gleichung (4) nicht eingehalten wird. Dies führt zu einem Bit-Dekodierfehler. Da die Muster mit niedrigen Frequenzen den signifikantesten Bits entsprechen, ist der Dekodierfehler groß.
-
Es ist auch festzustellen, dass der einzelne Satz von Mustern nach dem Stand der Technik mit einer einzelnen Funktion kodiert wird, und daher kann er nur einzelnen Aspekt der Beleuchtung in der Szene erforschen, zum Beispiel nur direkte Beleuchtung, und nicht andere Teilaspekte von globaler Beleuchtung, wie indirekte Beleuchtung, Mehrfachreflexionen, Streuung unter der Oberfläche und volumetrische Streuung, Diffusion.
-
Lokale Effekte: Streuung unter der Oberfläche
-
Streuung unter der Oberfläche führt zu einer Tiefpassfilterung der auftreffenden Beleuchtung. Für strukturiertes Licht kann die Streuung unter der Oberfläche die Hochfrequenzmuster schwerwiegend verwischen, wodurch die Muster nicht dekodierbar werden. Muster mit höheren Frequenzen entsprechen den weniger signifikanten Bits. Wenn diese Muster nicht dekodiert werden können, ergibt sich ein Verlust von Tiefenauflösung. Wenn der Streukern unter der Oberfläche groß ist, dann ist die Anzahl von Mustern, die verloren werden, auch groß, und desto stärker wird die Tiefenauflösung herabgesetzt. Dies kann auch vermittels der Ungleichheit in Gleichung (4) erläutert werden.
-
Bei durchscheinenden Materialien ist die direkte Komponente invers proportional zu der Stütze des Streukerns unter der Oberfläche, je größer der Kern, desto kleiner die direkte Komponente. Für Muster mit hohen Frequenzen ist α ≈ 0,5, da Li d ≈ 0, Li ≈ L i. Folglich kann in der Anwesenheit von Störungen das Muster nicht korrekt dekodiert werden, da die direkte Komponente Li d sehr klein ist.
-
Für Muster mit niedrigen Frequenzen ist α > 0,5. In diesem Fall hilft die globale Komponente tatsächlich bei einer korrekten Dekodierung. Wir nutzen diese Beobachtung für den Entwurf von Mustern aus, die in Anwesenheit von Streuung unter der Oberfläche dekodierbar sind.
-
Kamera/Projektor-Defokussierung und optische Bildfehler
-
In der Anwesenheit von Defokussierung (Projektor oder Kamera) sind die projizierten Muster und das erfasste Bild verwischt. In gleicher Weise führen auch Projektoren mit fehlerhafter Optik zu einem Verwischen der projizierten Muster. Beispielsweise sind Pico-Projektoren zunehmend beliebt für Anwendungen mit strukturiertem Licht bei industriellen Montagestraßen. Jedoch kann aufgrund fehlerhafter Optik ein gestreiftes Muster mit 2 Pixeln Breite nicht aufgelöst werden.
-
Die Verwendung der Gray-Codes, die einen Hamming-Abstand von eins zwischen aufeinanderfolgenden Codewörtern haben, gibt einen Widerstand für eine Unschärfe bis zu 1 Pixel. Wenn die Unschärfe größer ist, dann beeinflusst die Unschärfe die Muster mit den höchsten Frequenzen, wobei häufig die Muster vollständig verwischt werden. Anders als das Streuen unter der Oberfläche moduliert die Defokussierung auch die direkte Komponente. Die Bildintensitäten sind gegeben als: Li = βLi d + αLi g + Li a, (5) L i = (1 – β)Li d + (1 – α)Li g + Li a, (6) wobei β der Bruchteil der direkten Komponente ist, die in der Anwesenheit von Defokussierung empfangen wird. Bei einer schwerwiegenden Unschärfe oder Verwischung und bei Mustern hoher Frequenz ist β ≈ 0,5. Für Muster hoher Frequenz ist, da α ≈ 0,5 ist, Li ≈ L i, und die Bits, die diesen Mustern entsprechen, können nicht aufgelöst werden. Wie vorher führt dies zu einem Verlust von Tiefenauflösung.
-
Entwerfen von Codes, die gegenüber Globallichttransport belastbar sind
-
Die vorbeschriebenen Quellen von Fehlern stellen gegensätzliche Anforderungen an die projizierten Codes. Für weiträumige Effekte führen Muster mit niedrigen Frequenzen zu Dekodierfehlern. Für lokale Effekte, wie Defokussierung und Streuung unter der Oberfläche, werden Muster mit hohen Frequenzen verwischt und können nicht dekodiert werden. Wir entwerfen Codes, die belastbar gegenüber Fehlern sind, die sich aufgrund jeder Klasse von Effekten ergeben.
-
Histogramm von Streifenbreiten (Lauflängen) für unterschiedliche Codes
-
1(A)–(D) zeigt Histogramme von log2-Projektorstreifenbreiten als eine Funktion der Anzahl von Streifen für Sätze von strukturierten Lichtmustern gemäß Ausführungsbeispielen der Erfindung. Die Gray-Code-Streifenbreiten in 1(A) liegen im Bereich von 2 bis 512 Pixeln. 1(B) zeigt Goddyn-Codes.
-
Da die kleinste Streifenbreite dieser Codes hoch ist, sind diese Codes belastbar gegenüber lokalen Effekten. 1(C) und (D) zeigen logisch exklusive ODER-Codes-Gray-Codes (XOR-02 und XOR-04, wie nachfolgend beschrieben wird), die für Weitbereichs-Mehrfachreflexionen optimiert sind. In diesem Fall sind alle Streifenbreiten relativ klein.
-
Logisches Kodieren für weiträumige Effekte
-
Für eine Elastizität gegenüber weiträumigen Globallichttransporteffekten verwenden wir Kodierfunktionen, die keine Muster mit niedrigen Frequenzen haben. Jedoch bilden Muster mit niedrigen Frequenzen einen integralen Teil aller herkömmlichen Kodierschemen. Für die herkömmlichen Gray-Codes in 1(A) liefern die Muster mit niedrigen Frequenzen die bedeutsameren Bits. Beim Phasenverschieben sind Muster mit niedrigen Frequenzen erforderlich für eine Phasenabwicklung. Beim Dekodieren der Muster mit niedrigen Frequenzen gemachte Fehler haben einen viel schwerwiegenderen Einfluss auf das endgültige Dekodierergebnis im Vergleich zu einem Fehler, der beim Dekodieren von Mustern mit hohen Frequenzen gemacht wird.
-
Ein korrektes Dekodieren kann erhalten werden durch getrenntes Bestimmen nur der direkten Komponente der unter diesen Mustern erfassten Bilder. Jedoch ist diese Trennung nicht immer möglich. Die Haupteinsicht ist, dass die direkte Komponente nur eine Zwischendarstellung ist.
-
Für binäre Codes projizieren wir Sätze von binären Mustern auf die Szene. Wir sind interessiert an einer binären Klassifizierung der Szenepunkte, die direkt beleuchtet werden, gegenüber Punkten, die dies nicht werden. Diese Transformation kann als eine Funktion mit einer binären Domäne und einem binären Bereich modelliert werden: f:P ⇒ B, (7) worin P die Sätze sämtlicher binärer projizierter Muster darstellt und B der Satz sämtlicher binärer Klassifizierungen des erfassten Bildes ist. Für ein gegebenes Muster P ∪ P führt diese Funktion zu einer binären Klassifizierung des erfassten Bildes, in welchem Szenepunkte, die unter dem Muster P direkt beleuchtet werden, als 1 klassifiziert werden, und ansonsten 0. Wir wissen, dass diese Funktion für die Muster mit hohen Frequenzen genau bestimmt werden kann.
-
Wir verwenden diese Idee, um einen Weg zur genauen Bestimmung dieser Funktion für Muster mit niedrigen Frequenzen zu konstruieren. Ein Muster mit niedrigen Frequenzen kann als eine logische Kombination, zum Beispiel ein logisches XOR, von zwei Mustern mit hohen Frequenzen dargestellt werden. Wir bestimmen die Dekodierung für die Muster mit zwei hohen Frequenzen und kombinieren dann die dekodierten Ergebnisse wieder unter Verwendung des XOR, um die Dekodierung zu erhalten, als geschähe sie unter dem ursprünglichen Muster mit niedriger Frequenz: f(Plf) = f(P1 hf ⊗ P2 hf) = f(P1 hf) ⊗ f(P2 hf), (8) worin Plf das ursprüngliche Muster mit niedrigen Frequenzen ist, P1 hf und P2 hf die zwei Muster mit hohen Frequenzen sind und ⊗ der logische XOR-Operator ist.
-
In der Praxis sind Muster mit hohen Frequenzen solche Muster, bei denen die Streifenbreite relativ klein ist, z. B. 1, 2, 3 Pixel. Für Muster mit niedrigen Frequenzen ist die Streifenbreite groß. Zum Beispiel haben für 10-Bit-Codes die Muster mit den niedrigsten Frequenzen Streifenbreiten von 512 Pixeln.
-
Bei herkömmlichen Mustern, die durch eine einzelne 10-Bit-Gray-Codefunktion kodiert sind, ändert sich die Streifenbreite von 512 auf 1, wobei sie jedes Mal um einen Faktor 2 abnimmt.
-
Im Allgemeinen können globale Beleuchtungseffekte einen Bereich von räumlichen Frequenzen haben. Jedoch gibt es in der Praxis zwei vorherrschende Moden. Effekte wie Defokussieren, Streuen unter der Oberfläche führen zu lokalen Verwischungen, wodurch Probleme für Muster geschaffen werden, bei denen die Streifenbreite der Muster mit hohen Frequenzen relativ klein ist. Wenn die lokale Unschärfegröße gleich k ist, dann werden Muster mit einer Streifenbreite von k Pixeln vollständig verwischt und sind nicht brauchbar.
-
Der andere vorherrschende Modus sind Mehrfachreflexionen, die mehr sind, wenn die Streifenbreite groß ist wie bei einem Muster mit niedrigen Frequenzen.
-
So werden Muster an beiden Enden des Frequenzspektrums bei einer herkömmlichen Strukturlichttechnik nicht ordnungsgemäß dekodiert, wenn nur eine einzelne Funktion zum Kodieren des einzelnen Satzes von Mustern verwendet wird. Muster, die in der Mitte sind, z. B. mit einer Streifenbreite von 64, können in den meisten Fällen korrekt dekodiert werden. Jedoch kann man immer einen pathologischen Fall haben, in welchem selbst derartige Muster nicht korrekt dekodiert werden können.
-
Logische Codes können anhand regelmäßiger Gray-Codes in der folgenden Weise konstruiert werden. Wir wählen ein Muster mit hohen Frequenzen als ein Basismuster mit hohen Frequenzen aus. Für die verbleibenden Muster projizieren wir anstelle des Projizierens der ursprünglichen Muster das logische XOR des Musters und des Basismusters. Wenn wir beispielsweise das letzte Gray-Codemuster (Streifenbreite von 2 Pixeln) als das Basismuster verwenden, haben sämtliche projizierten Muster eine maximale Breite von 2 Pixeln. Wir bezeichnen diese als die XOR-02-Codes, wie in 1(C) gezeigt ist.
-
Demgegenüber haben die herkömmlichen Gray-Codes Streifenbreiten bis zu 512 Pixeln. In gleicher Weise erhalten wir, wenn wir das zweitletzte Muster als die Basisebene verwenden, die XOR-04-Codes von 1(D). Dies vergrößert den Overhead nicht, da die Anzahl von projizierten Mustern dieselbe bleibt wie bei herkömmlichen Codes.
-
Gegenüber lokalen Effekten widerstandsfähige Codes
-
Die herkömmlichen XOR-Codes sind, während sie gegenüber weiträumigen Effekten widerstandsfähig sind, nicht für lokale Effekte geeignet. Lokale Effekte, wie Streuen unter der Oberfläche und Projektor/Kamera-Defokussierung, können die Basisebene verwischen. Die Fehler pflanzen sich zu allen dekodierten Mustern fort, was zu großen Fehlern führt.
-
Für die Handhabung lokaler Effekte entwerfen wir Codes, bei denen die minimale Streifenbreite (Lauflänge) maximiert ist. Wir erzeugen Codes mit niedriger maximaler Lauflänge durch Berücksichtigen zufälliger Permutationen der herkömmlichen Gray-Codes und Auswählen der Codes mit einer geringsten maximalen Lauflänge. Indem eine derartige Suche durchgeführt wird, erzeugen wir einen Code mit einer maximalen Lauflänge von 9.
-
Jedoch ist das zweifache Problem des Erzeugens von Codes mit großer minimaler Lauflänge durch eine Brute-Force-Suche schwer zu lösen, da diese Codes viel seltener sind. Glücklicherweise wurde dieses Problem in der Literatur der Kombinationsmathematik ausgiebig untersucht. Es gibt spezifische Konstruktionen, die verfügbar sind, um Codes mit großer minimaler Lauflänge zu erzeugen.
-
Es gibt bestimmte Konstruktionen, die verfügbar sind, um Codes mit großen minimalen Lauflängen zu erzeugen, siehe Goddyn et al., ”Binary gray codes with long bit runs”, The Electronic Journal of Combinatorics, 10, 2003, hier einbezogen.
-
Insbesondere ist der Code ein zyklischer binärer n-Bit-Gray-Code, dessen sämtliche Bitläufe eine Länge von zumindest n – 3log2n haben. Das heißt, es gibt eine zyklische Ordnung von {0, 1}n, derart, dass benachbarte Codewörter in genau einem Koordinatenbit unterschiedlich sind, und derart, dass kein Bit seinen Wert in jeder Subfolge von n – 3log2n aufeinanderfolgenden Wörtern zweimal ändert. Derartige Gray-Codes sind ”lokalabstandsbewahrend” dahingehend, dass der Hamming-Abstand gleich der Indextrennung für nahe Wörter in der Folge ist. Diese 10-Bit-”Goddyn”-Gray-Codes haben eine minimale Lauflänge von 8, wie in 1(B) gezeigt ist.
-
Für Gray-Codes haben die maximale und die minimale Lauflänge eine enge Beziehung. Ein Gray-Code, der die minimale Lauflänge erhöht, dient auch dem doppelten Zweck der Verringerung der maximalen Lauflänge. Der vorbeschriebene Code hat eine maximale Lauflänge von 32. Folglich ist dieser Code, während er eine hohe Tiefenauflösung bei Anwesenheit von lokalen Effekten aufrechterhält, auch genauer für weiträumige Effekte im Vergleich mit den herkömmlichen Gray-Codes. Wie bei den XOR-Codes erhöht die Verbesserung des Leistungsvermögens die Anzahl von Mustern nicht.
-
Automatisches 3D-Rekonstruktionssystem
-
In diesem Abschnitt beschreiben wir ein vollständig automatisches und robustes 3D-Rekonstruktionssystem, das genau ist für die Effekte des Globallichttransports. Wir berücksichtigen die folgenden drei Aspekte eines derartigen Systems: Verhindern von Fehlern aufgrund von Globallichttransporteffekten, Erfassen verbleibender Fehler und Korrigieren der verbleibenden Fehler.
-
Wie in 2 gezeigt ist, messen ein System 200 und ein Verfahren 250 3D-Tiefenwerte in einer Szene 201, die einer globalen Beleuchtung 202 unterworfen ist. Ein Projektor projiziert (Pr) 210 mehrere Sätze von 220 strukturierten Lichtmustern 221–224 auf die Szene, während eine Kamera (Ca) 230 ein entsprechendes Bild 231 für jedes Muster erfasst. Die unterschiedlichen Sätze von Mustern werden gemäß unterschiedlichen Funktionen kodiert, z. B. Gray-, Goddyn-, XOR-2- bzw. XOR-4-Codefunktionen. Die Muster können zweifarbig (schwarz und weiß) oder bunt (RGB) sein. Zusätzlich können die Sätze von Mustern an spezifische Szenen und globale Beleuchtungseffekte in Abhängigkeit von der jeweiligen Anwendung angepasst sein. Alternativ werden die Muster adaptiv modifiziert in Abhängigkeit von Änderungen der Szene und der globalen Beleuchtungseffekte.
-
Das Verfahren vergleicht 240 Tiefenwerte z für Pixel an identischen Ortspixeln in den entsprechenden Bildern. Wenn zumindest zwei Tiefenwerte ähnlich sind, dann wird der Tiefenwert zurückgeführt 242. Wenn nur die Gray- und Goddyn-Tiefenwerte ähnlich sind 243, wird der Goddyn-Tiefenwert zurückgeführt 244.
-
Wenn keine der Tiefenwerte ähnlich sind, dann wird der Tiefenwert als ein Fehler markiert 246. Nur Szenepunkte, die fehlerhaften Pixeltiefenwerten entsprechen, werden wieder projiziert mit den Sätzen von Mustern 220, und die Fehler werden korrigiert 248. Dies erfolgt durch Setzen aller Projektorpixel, an denen die Tiefe erfolgreich bestimmt wurde, auf ”aus”. Somit werden die Sätze von Mustern wieder projiziert durch Maskieren der Projektorpixel, die in dem vorhergehenden Schritt bestimmt wurden. Da die maskierten Projektorpixel aus sind, tragen sie nicht zu der globalen Beleuchtung bei, und die Gesamtwirkung der globalen Beleuchtung wird reduziert. Dieser Prozess kann wiederholt werden 249, bis alle Tiefenwerte für alle Pixel wiedergewonnen wurden oder eine Beendigungsbedingung erreicht ist, z. B. eine vorbestimmte Anzahl von Wiederholungen, oder die Anzahl von Fehlern geringer als ein Schwellenwert ist.
-
Alternativ kann eine Ähnlichkeit zwischen dekodierten Projektorreihen von Pixeln, Projektorspalten von Pixeln oder entsprechenden Projektorpixelorten in den mehreren Sätzen von Bildern an den entsprechenden Projektorpixelorten verwendet werden, um das Pixel als fehlerhaft zu markieren.
-
Die Schritte des Verfahrens können in einem Prozessor 260 durchgeführt werden, der in bekannter Weise mit Speichern und Eingabe/Ausgabe-Schnittstellen verbunden ist.
-
Fehlerverhinderung
-
Unsere Codes verhindern einen großen Bruchteil von Fehlern, die sich aus individuellen Beleuchtungseffekten ergeben. Jedoch ist der Globallichttransport in den meisten Szenen in der realen Welt nicht auf irgendeinen einzelnen Effekt beschränkt. Für einen Effekt optimierte Codes verursachen Fehler in der Anwesenheit von anderen Effekten. Es ist nicht einfach, zu identifizieren, welcher Code zu verwenden ist, ohne den vorherrschenden fehlerinduzierenden Modus des Lichttransports zu kennen, was seinerseits eine A-priori-Kenntnis über die Szenegeometrie und Materialeigenschaften oder die Lichttransportmatrix erfordert. Durch Projizieren eines kleinen Satzes von Codes, die für unterschiedliche Effekte optimiert sind, können wir die Fehler ohne eine A-priori-Kenntnis über die Szene automatisch minimieren.
-
Daher projizieren (Pr) 210 wir mehrere unterschiedliche Sätze von Mustern, wobei jeder Satz mit einer unterschiedlichen Funktion kodiert ist, z. B. den XOR-04-Codes, den XOR-02-Codes, den Goddyn-Gray-Codes und den herkömmlichen Gray-Codes. Die Schlüsselidee ist, dass die durch zwei unterschiedliche Codes bestimmten Tiefenwerte nur im Einklang sind, wenn sie korrekt sind. Durch Codes bewirkte Fehler sind nahezu zufällig, d. h., zwei unterschiedliche Codes bewirken nicht denselben Fehler. Somit können wir den korrekten Tiefenwert durch einfaches Vergleichen der Tiefenwerte für Pixel, die durch die individuellen Codes gegeben werden, bestimmen.
-
Wenn irgendwelche zwei ähnlich sind 241, d. h., eine Differenz zwischen den beiden Tiefenwerten kleiner als ein vorbestimmter Schwellenwert τ ist, führen wir diesen Tiefenwert zurück 242.
-
Wenn nur der reguläre Gray und Goddyn-Gray ähnlich sind 243, führen wir den Tiefenwert zurück 244, der durch den Goddyn-Gray-Code gegeben ist, da erwartet wird, dass er eine größere Tiefenauflösung hat. Da der ausgewählte Satz von Codes für verschiedene Effekte optimiert ist, überdeckt der Satz einen großen Bereich von Effekten und daher eine große Klasse von optisch anspruchsvollen Szenen.
-
Interessanterweise können wir durch Analysieren der Fehler, die durch die individuellen Codes in dem Satz bewirkt werden, qualitative Szeneinformationen, wie Materialeigenschaften, erhalten. Beispielsweise empfangen Szenepunkte, an denen nur die logischen Codes übereinstimmen, starke Mehrfachreflexionen. Andererseits entsprechen Szenepunkte, an denen nur die beiden Gray-Codes übereinstimmen, durchscheinenden Materialien. Szenepunkte, an denen sämtliche Codes übereinstimmen, empfangen nur einen kleinen Anteil von globaler Beleuchtung.
-
Fehlererfassung
-
Es ist möglich, dass keiner 245 der Sätze von vier Mustern einen korrekten Tiefenwert bestimmt. Es ist wichtig, solche Pixel, an denen eine korrekte Tiefe nicht geschätzt werden konnte, zu identifizieren 246. Das vorbeschriebene Abstimmschema liefert einen einfachen Weg zum Erfassen verbleibender Fehler. Wenn keine der vier Codes für ein Pixel übereinstimmen, markieren wir es als ein Fehlerpixel. Es ist zu beachten, dass es möglich ist, dass einer der vier Tiefenwerte korrekt sein könnte. Jedoch wählen wir, da wir eine Fehlerkorrekturstufe haben, ein konservatives Verfahren und klassifizieren derartige Pixel als Fehlerpixel.
-
Fehlerkorrektur
-
Für extrem anspruchsvolle Fälle können einige Fehler weiterhin verbleiben. Für derartige Szenen verwenden wir ein iteratives Verfahren. In aufeinanderfolgenden Iterationen beleuchten wir 247 die Szenepunkte entsprechend nur den als inkorrekt bezeichneten Pixeln und rekonstruieren 248 solche Punkte, um die Fehler zu korrigieren. Da unsere Techniken einen großen Bruchteil der Szene bei der ersten Iteration korrekt rekonstruieren, benötigen wir nur eine kleine Anzahl von zusätzlichen Iterationen, typischerweise 1 oder 2, für anspruchsvolle Szenen. Die meisten Szenen können ohne eine zusätzliche Iteration rekonstruiert werden.
-
Wirkung der Erfindung
-
Wir liefern ein System und ein Verfahren zum Verhindern, Erfassen und Korrigieren von Fehlern, die durch Globallichttransport bewirkt werden, für strukturiertes Licht auf der Grundlage von 3D-Abtastung und Formwiedergewinnung. Wir stellen ein vollständiges System dar, ohne beträchtlichen Overhead in Bezug auf den Erfassungsaufwand oder die Erfassungszeit oder die Nachbehandlung. Unser Verfahren kann Szenen mit einer großen Verschiedenheit von optisch anspruchsvollen Objekten und Materialien behandeln.
-
Wir projizieren Sätze von Mustern auf die Szene. Dann vergleichen wir Fehler in Tiefenwerten, die durch individuelle Codes in dem Satz bewirkt wurden, um qualitative Informationen über die Szene zu erhalten.
-
Das Ziel besteht darin, eine 3D-Szenenform in Anwesenheit von Globallichttransport zu messen. Wir beginnen mit der Analyse von Fehlern aufgrund unterschiedlicher Moden von Globallichttransport für auf strukturiertem Licht basierende Tiefenwiedergewinnung. Auf der Grundlage dieser Analyse identifizieren wir die Eigenschaften, die strukturierte Lichtmuster haben müssen, um gegenüber diesen Fehlern belastbar zu sein. Diese Eigenschaften basieren auf den räumlichen Frequenzen der projizierten Muster. Unterschiedliche Moden von Globallichttransport ergeben unterschiedliche Arten von Fehlern, die den projizierten Mustern unterschiedliche, häufig gegensätzliche Anforderungen auferlegen.
-
Beispielsweise erzeugen weiträumige Effekte, wie diffuse und spiegelnde Mehrfachreflexionen und Diffusion, Fehler für Muster mit niedrigen Frequenzen oder Streifen großer Breite. Andererseits wirken lokale Effekte, wie Streuen unter der Oberfläche und Kamera/Projektor-Defokussierung als Tiefpassfilter für die auftreffenden Muster und zerstören die Hochfrequenzeinzelheiten.
-
Durch Berücksichtigung der angesammelten Effekte dieser unterschiedlichen Moden des Lichttransports sehen wir Codes vor, die gegenüber Fehlern, die sich individuell aufgrund jedes Effekts ergeben, belastbar sind. Globallichttransport ist bei den meisten Szenen in der realen Welt nicht auf irgendeinen einzelnen Effekt beschränkt.
-
Wir können qualitative Szeneinformationen erhalten, wie Materialeigenschaften wie durchscheinende Materialien, schwere Mehrfachreflexionen, Punkte mit einem geringen Anteil von globaler Beleuchtung. Die Optimierung für einen Effekt bewirkt Fehler in der Anwesenheit anderer Effekte. Es ist nicht einfach, zu identifizieren, welcher Code zu verwenden ist, ohne die Kenntnis des vorherrschenden fehlerinduzierenden Modus des Lichttransports, was seinerseits eine A-priori-Kenntnis über die Szenegeometrie und Materialeigenschaften oder die Lichttransportmatrix erfordert. Wir zeigen, dass wir durch Projizieren eines kleinen Satzes von Codes, die für verschiedene Effekte optimiert sind, die Fehler minimieren können, ohne eine A-priori-Kenntnis der Szene oder Erfassen der Lichttransportmatrix. Durch Verwendung eines Abstimmschemas können wir die verbleibenden Fehler, die durch den vollständigen Satz von Codes sowie jeden Code individuell bewirkt werden, erfassen. Interessanterweise können Fehler, die durch individuelle Codes bewirkt werden, zum Schließen auf verschiedene qualitative Szeneeigenschaften, wie Materialeigenschaften, verwendet werden. Wir sehen auch Korrekturmaßnahmen für die erfassten Fehler durch Sammeln einer kleinen Anzahl zusätzlicher Bilder vor.
-
Wir zeigen, dass es nicht erforderlich ist, für eine korrekte strukturierte Lichtdekodierung die globale Komponente explizit zu entfernen. Tatsächlich verwenden in einigen Situationen unsere Codes die globale Komponente zum Verbessern der Genauigkeit des Dekodiervorgangs. Unsere Techniken erfordern eine beträchtlich geringere Anzahl von Bildern als die expliziten Verfahren.