-
Gebiet der Offenbarung
-
Die vorliegende Offenbarung betrifft allgemein das Gebiet der Digitalbildverarbeitung und insbesondere Techniken zur 3D-Objektrekonstruktion (3D dreidimensional) aus Bildsequenzen unter Nutzung fotometrischer Netzdarstellungen.
-
Hintergrund
-
Ein 3D-Bild eines Objektes kann aus einem oder mehreren 2D-Bildern (2D zweidimensional) unter Nutzung verschiedener Rekonstruktionstechniken generiert werden. Beispielsweise stellen geometrische Mehrfachansichtsrekonstruktionsverfahren, so beispielsweise SfM (Structure-from-Motion SfM, Struktur aus Bewegung) und SLAM (Simultaneous Localization And Mapping SLAM, Simultane Lokalisierung und Abbildung), Punktwolken als zugrunde liegende 3D-Struktur von RGB-Bildsequenzen (RGB Rot-Grün-Blau) oftmals mit hoher Genauigkeit wieder her. Punktwolken fehlt jedoch die inhärente 3D-Raumstruktur zur effizienten Weiterverwertung. Aus diesem Grunde werden bei wenigstens einigen Szenarien Netzdarstellungen zur 3D-Objektrekonstruktion stärker als Punktwolken bevorzugt. Ein 3D-Netz ist eine Strukturdarstellung oder ein Modell eines polyedrischen bzw. vielflächigen Objektes, wo die dreidimensionalen Referenzpunkte (x, y und z) in dem Modell Höhe, Breite und Tiefe verschiedener Objektoberflächen definieren. Als Datenstrukturen sind Netze merklich kompakter als Punktwolken, da Netze inhärente geometrische Strukturen, die durch ihre Punktkonnektivität definiert sind, aufweisen, während sie zudem kontinuierliche Oberflächen darstellen, die für viele Anwendungen, so beispielsweise das Texturabbilden, nützlich sind. Das Vernetzen von Punktwolken stellt jedoch, wie hier noch weiter erläutert wird, ein schwieriges und rechentechnisch kostenintensives Problem dar, wobei bestehende Lösungen zum Vernetzen von Punktwolken nicht praxistauglich sind.
-
Eine weitere Beschränkung bei geometrischen Mehrfachansichtsverfahren besteht darin, dass sie auf manuell gestalteten Merkmalen beruhen und sehr empfindlich sein können, wenn Annahmen zu jenen Merkmalen für ein gegebenes Bild nicht gültig sind. Dies tritt insbesondere in texturschwächeren Bereichen oder bei Beleuchtungsschwankungen auf. Im Gegensatz hierzu beinhalten datengetriebene Lösungsansätze das vorherige Wissen über Formen, die in einem gegebenen Bild wahrscheinlich vorhanden sind (auch als Formurelemente (shape priors) bezeichnet), um schlecht formulierte 3D-Rekonstruktionsprobleme zu lösen. Derartige datengetriebene Lösungsansätze sind auf 3D-Vorhersageaufgaben unter Nutzung von Einzelbildern angewendet worden. Diese Lösungsansätze können jedoch nur aus dem bekannten Raum von Trainingsbeispielen, die zum Lernen benutzt werden, rekonstruiert werden, was eine begrenzte Fähigkeit dahingehend ergibt, auf nichtgesehene (nichtgelernte) Daten zu verallgemeinern.
-
Daher stellen sich weiterhin komplexe und nichttriviale Fragen im Zusammenhang mit der 3D-Objektrekonstruktion infolge der Beschränkungen bei bestehenden Techniken.
-
Figurenliste
-
Die beigefügten Zeichnungsfiguren sollen nicht maßstabsgetreu sein.
- 1 zeigt ein exemplarisches System zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung.
- 2A zeigt eine exemplarische allgemeine Übersicht zum Prinzip der Mehrfachansichts-3D-Rekonstruktion unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung.
- 2B zeigt eine exemplarische detaillierte Übersicht zur Technik der 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung.
- 3 bis 5 sind Flussdiagramme eines exemplarischen Prozesses der 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung.
- 6 zeigt ein Beispiel für quantitative Ergebnisse eines Prozesses zur 3D-Objektrekonstruktion entsprechend einer Ausführungsform der vorliegenden Offenbarung.
- 7 zeigt exemplarische RGB-Sequenzen von Objekten auf realistisch texturierten Hintergründen.
- 8 zeigt ein Beispiel für eine kategoriespezifische Leistungs-Rausch-Beziehung bei einer Koordinatensystemabbildung entsprechend einer Ausführungsform der vorliegenden Offenbarung.
-
Detailbeschreibung
-
Offenbart werden Techniken zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen. Eine fotometrische Verlustfunktion erweitert ein deep-learning-basiertes Rekonstruktionssystem, so beispielsweise ein neuronales Netzwerk, das 3D-Netze direkt aus Bildern von Objekten generiert. Die fotometrische Verlustfunktion ermöglicht ein derartiges Optimieren des Systems, dass das sich ergebende optimierte System ein 3D-Netz rekonstruiert, das zu den Bildern konsistent ist. Die offenbarten Techniken sind besonders vorteilhaft, da sie das effiziente Vorhersagen von Szenennetzen direkt aus Mehrfachansichtsbildern ermöglichen, was sich vom Erzeugen von 3D-Punktwolken aus den Bildern und dem anschließenden Vernetzen jener Punkte unterscheidet.
-
Bei einer Ausführungsform wird ein Decoder, so beispielsweise ein neuronales Netzwerk, darauf trainiert, einen Satz von Punkten, die aus 2D-Patches repräsentativer Objekte abgetastet sind, in einen Satz von polygonalen 3D-Netzen zu transformieren. Ist eine Bildsequenz oder ein Video eines Objektes als Eingabe in Form von RGB-Bildern, die mit zugeordneten Kameramatrizen gepaart sind, gegeben, so wird ein Bildframe mit zentriertem Objekt entweder manuell oder automatisch ausgewählt. Der ausgewählte Frame wird in einen Encoder eingespeist, um einen Anfangslatentcodevektor als Ausgabe zu erhalten. Für jeden Frame und jedes Kamerapaar aus der Sequenz wird ein polygonales (beispielsweise dreieckiges) Netz an den gegebenen Ansichtspunkten durch Netzrasterung wiedergegeben, wodurch eine gerasterte Karte mit polygonalen (beispielsweise dreieckigen) Flächenindices erzeugt wird.
-
Das Netz wird durch zunächst erfolgendes Auswählen von Paaren von aufeinanderfolgenden Frames aus der Bildsequenz optimiert. Als Nächstes wird für jedes Paar von Frames ein virtueller Ansichtspunkt geschaffen, indem die Bisektion der entsprechenden Drehungen und Kamerazentren verwendet wird. Das Netz wird sodann gerastert, und man erhält eine Tiefenkarte von dem virtuellen Ansichtspunkt aus. Die Tiefenkarte kann als Satz von 3D-Punkten ausgedrückt werden, die auf der Oberfläche des Netzes liegen. Als Nächstes werden die 2D-Netzprojektionen ausgerichtet, indem der Satz von 3D-Punkten von der Tiefenkarte auf die beiden ausgewählten Ansichtspunkte projiziert wird. Der fotometrische Fehler wird aus der Differenz zwischen den RGB-Pixelintensitäten, die aus beiden Frames abgetastet sind, berechnet. Damit kann eine fotometrische Verlustfunktion als pixelweise gegebener Intensitätsfehler zwischen beiden synthetisierten Bildern berechnet werden. Gradienten werden sodann von dem fotometrischen Fehler zu den Vertices der zugewiesenen polygonalen (beispielsweise dreieckigen) Indices zurückgeführt (backpropagation), indem auf die baryzentrischen Koordinaten eines jeden Bildes zurückgegriffen wird, um den Latentcodevektor zu aktualisieren. Daher kann der vorab trainierte Decoder bei Optimierung über die fotometrische Verlustfunktion ein 3D-Netz rekonstruieren, das zu Objekten, die in der Sequenz von Bildern auftreten, konsistent ist. Bei dieser Technik wird eine Anfangsnetzvorhersage unter Nutzung der RGB-Information mit den entsprechenden Kameraansichtspunkten optimiert. Das Netz kann beispielsweise als 3D-Stock-Asset in einer virtuellen Realität (Virtual Reality VR) oder einer realitätserweiterten (Augmented Reality AR) Szene benutzt werden, wenn ein Anzeigen als Ausgabe für eine VR- oder Stereoanzeige erfolgt. Im Lichte der vorliegenden Offenbarung erschließen sich zahlreiche Abwandlungen.
-
Allgemeine Übersicht
-
Wie vorstehend erläutert worden ist, treten im Zusammenhang mit dem Rekonstruieren von Bildern von 3D-Objekten aus 2D-Bildern unter Nutzung bestehender geometrischer Mehrfachansichtsverfahren und datengetriebener Lösungsansätze nichttriviale Probleme auf. Obwohl Punktwolken 3D-Strukturen beispielsweise mit hoher Genauigkeit wiederherstellen können, sind Netzdarstellungen zum Einfügen von Objekten in eine realitätserweiterte (AR) Szene und für andere Anwendungen mit tiefenbasierten Effekten üblicherweise brauchbarer als Punktwolken. Des Weiteren verdecken punktwolkenbasierte Darstellungen virtuelle Objekte hinter Vordergrundszenenelementen wegen Rauschen in der Tiefe und möglicher Löcher, die in der Szene auftreten, nicht. Daher müssen 3D-Punktwolken in ein 3D-Netz transformiert werden, um zu bestimmen, ob ein Objekt verdeckt ist. Gleichwohl ist das Vernetzen von Punktwolken ein schwieriges Problem, dessen bestehende Lösungen nicht praxistauglich sind.
-
Zu diesem Zweck werden Techniken zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen offenbart. Insbesondere wird ein Netz direkt aus Mehrfachansichtsbildern in Kombination mit bekannten 3D-Objektmodellen, die ein neuronales Netzwerk lernt, und anderen Formurelementen (shape priors) vorhergesagt. Eine fotometrische Konsistenzverlustfunktion erweitert die deep-learning-basierten Objektnetzrekonstruktionen. Mit dem Fokus auf Objektvarianten (object instances) zur verbesserten 3D-Rekonstruktion nutzen die offenbarten Techniken Formurelemente (shape priors), die vorab definierte Objektformen sind, die zum Rekonstruieren einer realistischen Geometrie bei unvollständigen Beobachtungen genutzt werden, sowie geometrische Mehrfachansichtsrandbedingungen, um Netzvorhersagen an den eingegebenen 2D-Bildsequenzen zu verfeinern. Die Formurelemente können beispielsweise von einem oder mehreren vorab trainierten neuronalen Netzwerken erhalten werden. Der Vorteil dieses Lösungsansatzes ist eine dichte Rekonstruktion mit Objektsemantiken aus den gelernten Formurelementen, was bei den traditionellen Pipelines mit MVS (Multi-View Stero MVS, Mehrfachansichtsstereo) und anschließendem Oberflächenvernetzen nicht möglich ist. Dieser Lösungsansatz verallgemeinert sich zudem auf Abwandlungen bei nichtgesehenen Objekten durch Einsetzen einer Mehrfachansichtsgeometrie, um die Beobachtungskonsistenz über Ansichtspunkte zu fördern.
-
Es kann eine Netzrekonstruktion aus farbigen (beispielsweise RGB-) Bildsequenzen unter Nutzung einer fotometrischen Optimierung erhalten werden. Dies stellt sich als stückweise gegebenes Bildausrichtungsproblem einzelner Netzflächen dar. Es werden Gradienten des fotometrischen Fehlers in Bezug auf Netzvertices hergeleitet, was eine entsprechende Verformung des Netzes ermöglicht. Ein Vorteil dieser fotometrischen Netzoptimierung ist ihre Nichtabhängigkeit von einer a priori bekannten Tiefe oder Maskeninformation, die ansonsten eine notwendige Bedingung zur Rekonstruktion von Objekten aus Bildsequenzen ist. Dies ermöglicht die praktische Nutzung der formurelementbasierten 3D-Netzrekonstruktion mit Ausrichtung auf RGB-Sequenzen, und zwar beispielsweise bei Anwendungen, die Robotik (beispielsweise die genaue Lokalisierung beim autonomen Fahren), Computergrafik (beispielsweise die physikalische Simulation und die Textursynthese) und virtuelle Realität beinhalten.
-
Im Detail betreffen die offenbarten Techniken Aspekte der Mehrfachansichtsobjektrekonstruktion, der Netzrekonstruktion, des Lernens von Formurelementen (shape prior learning) und der Bildausrichtung, um die fotometrische Mehrfachansichtskonsistenz durch randbedingungsartiges Einschränken der Netzverformung zu maximieren.
-
Die Mehrfachansichtskalibrierung und Rekonstruktion werden benutzt, um Kamerakoordinaten unter Nutzung eines 2D-Schlüsselpunktabgleiches (2D keypoint matching), eines Prozesses, der als SLAM oder SfM bekannt ist, mit anschließenden Dichterekonstruktionsverfahren, so beispielsweise MVS und Vernetzen, zu schätzen. Andere 3D-Rekonstruktionstechniken nutzen verschiedentlich die Mehrfachansichtskonsistenz zwischen 2D-Maskenprojektionen, die Tiefenwiedergabe und allgemeine 2D-Beobachtungen. All diese Verfahren nutzen Formen der 2D-Überwachung, die im Vergleich zu 3D-CAD-Modellen, die mit Blick auf die Menge vergleichsweise beschränkt sind, einfacher umsetzbar sind. Im Gegensatz zu bestehenden 3D-Rekonstruktionstechniken nutzen einige Ausführungsformen der vorliegenden Offenbarung sowohl geometrische wie auch bildbasierte vorherige bzw. urelementbezogene Randbedingungen, was einige gängige Beschränkungen bei Mehrfachansichten, so beispielsweise fehlende Beobachtungen und texturschwache Bereiche, beseitigt.
-
Netze können aus 3D-Modellen (beispielsweise computergestütztes Design oder CAD-Modelle), aus angenäherten Gradienten zur 2D-Maskenoptimierung und der Nutzung einer 2D-Überwachung von Texturen, Masken und 2D-Schlüsselpunkten rekonstruiert werden. Im Gegensatz zu bestehenden Netzrekonstruktionstechniken nutzen einige Ausführungsformen der vorliegenden Offenbarung fotometrische Anhaltspunkte (cues) über Bildansichtspunkte hinweg, anstatt dass sie auf Masken oder Schlüsselpunkte zurückgreifen. Darüber hinaus sind einige Ausführungsformen der vorliegenden Offenbarung für 3D-Netze unter Nutzung fotometrischer 2D-Anhaltspunkte optimiert. Es kann Störrauschen größeren Ausmaßes berücksichtigt werden, indem man über einen Latentmerkmalsvektor oder einen Formcode optimiert, anstatt dass man über Netzvertices optimiert, was derartige Ausführungsformen für die praktische Nutzung geeigneter macht.
-
Für das schwierige Problem der Mehrfachansichtsszenenrekonstruktion ist bislang ein ebenes und primitives Urelement benutzt worden. Obwohl ein geometrisches primitives Urelement nicht aus einem Objektdatensatz lernen muss, können die sich ergebenden Rekonstruktionen merklich von der Zielgeometrie abweichen, wenn das Objekt von den gewählten Primitiven nicht gut dargestellt wird. Vorab trainierte neuronale Netzwerke, die Formurelemente darstellen, können in Kombination mit Punktwolken anstatt der Primitive benutzt werden, um die 3D-Rekonstruktion zu verbessern. Typischerweise benötigt man bei neuronalen Netzwerken Objektmasken als zusätzliche Randbedingungen für die Eingabebilder während der Optimierung, um die Objekte vom Hintergrund zu isolieren. Das Generieren genauer Objektmasken ist jedoch keine triviale Aufgabe. Im Gegensatz hierzu beseitigen einige Ausführungsformen der vorliegenden Offenbarung die Notwendigkeit der Maskenüberwachung, indem die optimierten Latentmerkmalsvektoren aus dem vorab trainierten neuronalen Netzwerk regularisiert werden, um sicherzustellen, dass die Merkmalsvektoren innerhalb eines zuverlässigen Bereiches des Merkmalsraumes verbleiben, und um zu verhindern, dass die Netze degenerierte Lösungen ergeben. Bislang sind Formurelemente auch dafür benutzt worden, Formentsprechungen ausfindig zu machen, wobei das Netzwerk das Verformungsfeld aus einer Vorlagenform für den Abgleich mit 3D-Beobachtungen lernt. Im Gegensatz hierzu optimieren einige Ausführungsformen der vorliegenden Offenbarung anstatt dessen die Latentmerkmalsvektoren direkt für den Abgleich mit 2D-Anhaltspunkten von mehreren Ansichtspunkten aus und benötigen keine bekannte Formvorlage für das Objekt.
-
Bei der Bildausrichtung stellt sich die Netzoptimierung als Mehrfachbildausrichtungsproblem von Netzflächen dar, das durch Optimieren eines Latentmerkmalsvektors aus dem Encoder eines Deep-Netzwerkes anstatt aus den Vertices selbst gelöst wird.
-
Systemarchitektur
-
1 zeigt ein exemplarisches System 100 zur 3D-Objektrekonstruktion (3D dreidimensional) unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung. Das System 100 beinhaltet eine Rechenvorrichtung 110 mit einem Prozessor 120, einer Objektrekonstruktionsanwendung 130 und einer grafischen Nutzerschnittstelle (Graphical User Interface GUI) 140. Die GUI 140 beinhaltet eine Anzeige und eine Nutzereingabevorrichtung. Der Prozessor 120 der Rechenvorrichtung 110 ist dafür konfiguriert, die nachfolgenden Module, von denen jedes im Anschluss detaillierter beschrieben wird, auszuführen: ein Netzgenerierungsmodul 150, ein Netzoptimierungsmodul 152 und ein Trainingsmodul 154. Die Rechenvorrichtung 110 ist des Weiteren dafür konfiguriert, als Eingaben wenigstens zwei Bilder eines Objektes und Daten, die Formurelemente 112 darstellen, sowie ein dem Generieren eines Objektnetzes dienendes neuronales Netzwerk 114 zu empfangen. Das Netzwerk 114 stellt für die Rechenvorrichtung 110 Objektmodelle bereit, die Formurelemente darstellen, die das Netzwerk unter Nutzung von Techniken maschinellen Lernens lernt. Die Bilder 112 stellen eine Abfolge von Bildern oder eine Sequenz von Videoframes des Objektes dar, die unter verschiedenen Ansichtswinkeln aufgenommen werden und von dem System 100 verarbeitet werden sollen. Die Rechenvorrichtung 110 ist des Weiteren dafür konfiguriert, als Ausgabe eine rekonstruierte Darstellung 116 des Objektes zu erzeugen, die wenigstens teilweise auf den Objektbildern und den Formurelementen 112 und dem dem Generieren eines Objektnetzes dienenden neuronalen Netzwerk 114 beruht. Die rekonstruierte Darstellung 116 kann beispielsweise ein Digitalbild oder eine Abfolge von Digitalbildern beinhalten, das/die das Objekt, das in den Bildern 112 auftritt, virtuell in 3D repliziert, oder auch Daten, die zum physischen Replizieren des Objektes in 3D, so beispielsweise durch einen 3D-Drucker, benutzt werden können, wie in der vorliegenden Offenbarung verschiedentlich beschrieben wird. Es kann eine beliebige Anzahl von standardisierten oder proprietären Digitalbildern (beispielsweise JPEG, bitmap, PNG, TIFF, QickTime VR und PANO) für die Objektbilder 112 und Bilder, die aus der rekonstruierten Darstellung des Objektes 116 generiert werden, benutzt werden. Jedes der Module 150, 152 und 154 kann in Verbindung mit einem anderen zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen benutzt werden, wobei der Rekonstruktionsprozess die rekonstruierte Darstellung 116 oder andere Daten, die mit der rekonstruierten Darstellung 116 verknüpft sind, erzeugt, so beispielsweise eine Strukturdarstellung (beispielsweise ein Polygonnetz) des Objektes, das zum Generieren eines oder mehrerer visueller Bilder des Objektes in 3D oder von 3D-Drucken des Objektes benutzt werden kann.
-
Die Rechenvorrichtung 110 kann ein beliebiges Computersystem sein, so beispielsweise eine Workstation, ein Desktopcomputer, ein Server, ein Laptop, ein Handcomputer, ein Tabletcomputer (beispielsweise der Tabletcomputer iPad®), eine mobile Rechen- oder Kommunikationsvorrichtung (beispielsweise die mobile Kommunikationsvorrichtung iPhone®, die mobile Kommunikationsvorrichtung Android™ und dergleichen), eine VR-Vorrichtung oder eine VR-Komponente (beispielsweise ein Headset, ein Handschuh, eine Kamera, ein Laufband (treadmill) und dergleichen) oder eine andere Form von Rechen- oder Telekommunikationsvorrichtung, die zur Kommunikation fähig ist und die ausreichend Prozessorleistung und Speicherkapazität aufweist, um die in der vorliegenden Offenbarung beschriebenen Vorgänge durchzuführen. Es kann auch ein verteiltes Rechensystem vorgesehen sein, das mehrere derartige Rechenvorrichtungen beinhaltet.
-
Die Rechenvorrichtung 110 beinhaltet eine oder mehrere Speichervorrichtungen 122 oder nichttemporäre computerlesbare Medien 124, auf denen eine oder mehrere computerausführbare Anweisungen oder Software zum Implementieren von Techniken, wie sie in der vorliegenden Offenbarung verschiedentlich beschrieben sind, codiert sind. Die Speichervorrichtungen 122 können einen Computersystemspeicher oder einen Speicher mit wahlfreiem Zugriff beinhalten, so beispielsweise einen Permanentplattenspeicher (der eine beliebige geeignete optische oder magnetische Permanentspeichervorrichtung beinhalten kann, so beispielsweise einen RAM, einen ROM, einen Flash, ein USB-Laufwerk oder ein anderes halbleiterbasiertes Speichermedium), ein Festplattenlaufwerk, eine CD-ROM oder andere computerlesbare Medien zum Speichern von Daten und computerlesbaren Anweisungen oder Software, die verschiedene Ausführungsformen, wie sie in der vorliegenden Offenbarung vorgestellt werden, implementieren. Die Speichervorrichtung 122 kann auch andere Typen von Speichern oder Kombinationen hieraus beinhalten. Die Speichervorrichtung 122 kann auf der Rechenvorrichtung 110 vorgesehen sein oder kann getrennt oder entfernt von der Rechenvorrichtung 110 vorgesehen sein. Die nichttemporären computerlesbaren Medien 124 können unter anderem einen oder mehrere Typen von Hardwarespeicher, nichttemporären physischen Medien (beispielsweise eine oder mehrere magnetische Speicherplatten, eine oder mehrere optische Platten, ein oder mehrere USB-Flash-Laufwerke) und dergleichen beinhalten. Die nichttemporären computerlesbaren Medien 124, die in der Rechenvorrichtung 110 beinhaltet sind, können computerlesbare und computerausführbare Anweisungen oder Software zum Implementieren von verschiedenen Ausführungsformen speichern. Die computerlesbaren Medien 124 können auf der Rechenvorrichtung 110 vorgesehen sein oder können getrennt oder entfernt von der Rechenvorrichtung 110 vorgesehen sein.
-
Die Rechenvorrichtung 110 beinhaltet zudem wenigstens einen Prozessor 120 zum Ausführen von computerlesbaren und computerausführbaren Anweisungen oder Software, die auf der Speichervorrichtung 122 oder auf den nichttemporären computerlesbaren Medien 124 gespeichert sind, sowie andere Programme zum Steuern bzw. Regeln von Systemhardware. Es kann eine Virtualisierung auf der Rechenvorrichtung 110 derart eingesetzt werden, dass die Infrastruktur und die Ressourcen auf der Rechenvorrichtung 110 dynamisch geteilt werden können. Es kann beispielsweise eine Virtual Machine vorgesehen sein, die einen Prozess, der auf mehreren Prozessoren läuft, so abwickelt, dass es aussieht, als würde der Prozess nur eine Vorrichtung anstelle mehrerer Rechenvorrichtungen nutzen. Es können auch mehrere Virtual Machines mit einem Prozessor benutzt werden. Die Netzwerkschnittstelle (I/F) 126 kann ein beliebiger geeigneter Netzwerkchip oder ein Chipsatz sein, der eine verdrahtete oder drahtlose Verbindung zwischen der Vorrichtung 110 und einem Kommunikationsnetzwerk (nicht gezeigt) und anderen Rechenvorrichtungen und Ressourcen ermöglicht.
-
Interagieren kann ein Nutzer mit der Rechenvorrichtung 110 durch eine Ausgabevorrichtung 160, so beispielsweise einen Bildschirm oder Monitor, darunter auch eine realitätserweiternde Anzeigevorrichtung, die eine oder mehrere Nutzerschnittstellen, die entsprechend einigen Ausführungsformen bereitgestellt werden, anzeigen kann. Die Ausgabevorrichtung 160 kann zudem andere Aspekte, Elemente oder Informationen oder Daten, die einigen Ausführungsformen zugeordnet sind, anzeigen. Die Rechenvorrichtung 110 kann Eingabe- oder Eingabe-/Ausgabe-Vorrichtungen 162 zum Empfangen einer Eingabe von einem Nutzer beinhalten, so beispielsweise eine Tastatur, einen Joystick, einen Gamecontroller, eine Zeigevorrichtung (beispielsweise eine Maus, den Finger eines Nutzers, der direkt mit einer berührungsempfindlichen Anzeigevorrichtung eine Schnittstelle bildet, und dergleichen) oder eine beliebige geeignete Nutzerschnittstelle, darunter ein AR-Headset. Die Rechenvorrichtung 110 kann andere geeignete herkömmliche I/O-Peripheriegeräte beinhalten. Die Rechenvorrichtung 110 beinhaltet verschiedene geeignete Vorrichtungen zum Durchführen eines oder mehrerer der Aspekte, die in der vorliegenden Offenbarung verschiedentlich beschrieben werden, oder ist damit operativ gekoppelt.
-
Auf der Rechenvorrichtung 110 kann ein beliebiges Betriebssystem laufen, so beispielsweise eine beliebige der Versionen der Betriebssysteme Microsoft® Windows@, der verschiedenen Releases der Betriebssysteme von Unix® und Linux®, eine beliebige Version von MacOs® für Macintosh-Computer, ein beliebiges eingebettetes Betriebssystem, ein Echtzeitbetriebssystem, ein beliebiges Open-Source-Betriebssystem, ein beliebiges proprietäres Betriebssystem, beliebige Betriebssysteme für mobile Rechenvorrichtungen oder ein beliebiges anderes Betriebssystem, das auf der Rechenvorrichtung 110 laufen und die in der vorliegenden Offenbarung beschriebenen Vorgänge durchführen kann. Bei einer Ausführungsform kann das Betriebssystem auf einer oder mehreren Cloud-Machine-Versionen laufen.
-
Bei anderen Ausführungsformen können die funktionellen Komponenten/Module mit Hardware implementiert sein, so beispielsweise als Gatelevellogik (beispielsweise FPGA) oder als zweckgebundener Halbleiter (beispielsweise ASIC). Wieder andere Ausführungsformen können mit einem Microcontroller implementiert sein, der mehrere Eingabe-/Ausgabe-Ports zum Empfangen und Ausgeben von Daten aufweist, sowie mehrere eingebettete Routinen zum Ausführen der in der vorliegenden Offenbarung beschriebenen Funktionalität. In einem allgemeineren Sinne kann eine beliebige geeignete Kombination aus Hardware, Software und Firmware, wie sich erschließt, benutzt werden.
-
Wie sich im Lichte der vorliegenden Offenbarung erschließt, sind die verschiedenen Module und Komponenten des Systems, so beispielsweise die Module 150, 152, 154, die GUI 140 oder eine beliebige Kombination hieraus in Software implementiert, so beispielsweise als Satz von Anweisungen (beispielsweise in HTML, XML, C, C++, objektorientiertem C, JavaScript®, Java®, BASIC etc.), die auf einem beliebigen computerlesbaren Medium oder einem Computerprogrammerzeugnis (beispielsweise einem Festplattenlaufwerk, einem Server, einer Platte oder einem anderen geeigneten nichttemporären Speicher oder einem Satz von Speichern) codiert sind und die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass die verschiedenen in der vorliegenden Offenbarung vorgesehenen methodischen Vorgehensweisen ausgeführt werden. Es sollte einsichtig sein, dass bei einigen Ausführungsformen verschiedene Funktionen und Datentransformationen, die von dem Nutzerrechensystemen so, wie in der vorliegenden Offenbarung beschrieben wird, durchgeführt werden, auch von ähnlichen Prozessoren oder Datenbanken in anderen Konfigurierungen und Anordnungen durchgeführt werden können und dass die dargestellten Ausführungsformen nicht beschränkend sein sollen. Verschiedene Komponenten der exemplarischen Ausführungsform, darunter die Rechenvorrichtung 100, können beispielsweise in einen oder mehrere Desktop- oder Laptopcomputer, Workstations, Tablets, Smartphones, Spielekonsolen, Settopboxen oder andere derartige Rechenvorrichtungen integriert sein. Andere Komponenten und Module, die für ein Rechensystem typisch sind, so beispielsweise Prozessoren (beispielsweise eine zentrale Verarbeitungseinheit und ein Coprozessor, ein Grafikprozessor und dergleichen), Eingabevorrichtungen (beispielsweise Tastatur, Maus, Touchpad, Touchscreen etc.) und ein Betriebssystem sind nicht gezeigt, erschließen sich jedoch ohne Weiteres.
-
Methodische Vorgehensweise
-
2A zeigt eine Übersicht über das Prinzip der Mehrfachansichts-3D-Rekonstruktion. Eine Szene 200 beinhaltet ein Objekt 202. Zwei oder mehr Kameras 204a, 204b erhalten Bilder eines Punktes 206a an der Oberfläche des Objektes 202 unter verschiedenen Ansichtswinkeln. Jede Kamera 204a, 204b weist einen zugeordneten Referenzframe 208a, 208b auf, auf den der Punkt 206a projiziert wird, was durch 206b und 206c angegeben ist. Sind die mehreren Projektionen 206b, 206c desselben Punktes 206a bezüglich der mehreren Bilder gegeben, so ist eine 3D-Position des Punktes 206a der Schnitt der beiden Projektionsstrahlen. Diese Technik wird als Triangulierung bezeichnet. Die 3D-Position des Punktes 206a kann aus den bekannten Orten und Orientierungen der Kameras 204a, 204b relativ zu dem Objekt 202 trianguliert werden. Das Auffinden der Entsprechung zwischen den Projektionen 206b und 206c, die zum Identifizieren der 3D-Position des Punktes 206a benötigt werden, ist jedoch ein schwieriges Problem.
-
2B zeigt eine exemplarische Übersicht 250 über eine Technik zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen, die Objektnetze optimieren und dabei die fotometrische Mehrfachansichtskonsistenz maximieren, entsprechend einer Ausführungsform der vorliegenden Offenbarung. Die dreidimensionale Objektrekonstruktion stellt sich als stückweise gegebenes Bildausrichtungsproblem dar, bei dem die Netzverformung über ein Formurelement, das durch ein neuronales Netzwerk parametrisiert ist, randbedingungsartig eingeschränkt ist. Die offenbarten Techniken nutzen das vorab trainierte dem Generieren eines Objektnetzes dienende Netzwerk 114 als Formurelement, und es werden Kameramatrizen von der Objektbildsequenz 112 unter Nutzung von SfM-Verfahren erhalten. Es können Dreiecksnetze benutzt werden, obwohl die offenbarten Techniken auf ein Netz beliebigen Polygontyps anwendbar sind, wie sich im Lichte der vorliegenden Offenbarung erschließt.
-
Stückweise erfolgende Bildausrichtung
-
Dichte 2D-Projektionen aus einem 3D-Netz eines Objektes
254 und daher die polygonalen Flächen
258 des Netzes
254 werden alle als über die Kameraansichtspunkte
256a,
256b,
256c hinweg als konsistent angenommen. Das Problem der 3D-Netzausrichtung wird daher zu einer Sammlung von stückweise gegebenen 2D-Bildausrichtungsteilproblemen einer jeden Dreiecksfläche
258 für jede Projektion. Für ein Dreiecksnetz mit N Vertices, das als Satz von Vertices V ∈ ℝ
N×3 geschrieben wird, kann die fotometrische Objektivfunktion
folgendermaßen zerlegt werden:
-
Hierbei ist
ein Teil des fotometrischen Verlustes, den das Dreieck j beiträgt, wobei die Vertices hiervon als V
j ∈ ℝ
3×3 geschrieben werden, die bei gemeinsamer Nutzung durch mehrere Flächen durch eine vordefinierte Netztopologie verbunden sind.
-
Die 2D-Bildausrichtung kann durch Lösen für eine parametrisierte Verzerrung (warp) W(-) an einem Quellbild I
S gegen ein Vorlagenbild I
T verwirklicht werden. Entsprechend einer Ausführungsform kann diese Lösung als pro Dreieck gegebene fotometrische Objektivfunktion geschrieben werden:
-
Hierbei ist x'
i = W (x
i; V
j) die verzerrte Pixelkoordinate, wo I
S abgetastet ist, und X
j ist der Satz von sichtbaren Pixelkoordinaten innerhalb des Projektionsbereiches der Dreiecksfläche j. Die Verzerrungsfunktion W (·), die durch die 3D-Dreiecksvertices V
j parametrisiert ist, ist eine Reprojektion π
-1(·; ·, Ω
T) von der Vorlagenansicht auf das Dreieck j, zusammengesetzt mit einer Reprojektion π(·; Ω
S) auf die Quellenansicht, bestimmt durch die Kameramatrizen Ω
T beziehungsweise Ω
S. x'
i kann daher folgendermaßen umgeschrieben werden:
-
Die Reprojektion π-1(·) erfordert üblicherweise eine bekannte Tiefe, wie dies bei einigen SLAM-Problemen der Fall ist. Entsprechend einer Ausführungsform kann die Reprojektion jedoch direkt durch einen Strahldreiecksschnitt für ein gegebenes Vj gelöst werden. In dem Fall, in dem sich mehrere Dreiecke schneiden, werden die nächsten Dreiecke unter Nutzung von Netzwiedergabetechniken, so beispielsweise einer Rasterung oder einer Strahlverfolgung, ausgewählt. Hierdurch wird bestimmt, zu welchen Vertices die fotometrischen Gradienten aus jedem Pixel beitragen und zurückgeführt werden. Dies erhält auch die eigentliche Differenzierbarkeit ohne die Notwendigkeit, Näherungsgradienten umzusortieren.
-
Netzausrichtung unter Nutzung virtueller Vorlagen
-
Entsprechend einer Ausführungsform stellt Xj die sichtbaren Pixelkoordinaten innerhalb der Projektion des Dreiecks j (beispielsweise des Dreiecks 258) dar. Beim Ausrichten von Netzprojektionen variiert Xj mit den Dreiecksvertices Vj. Dies steht im Gegensatz zu vorhandenen Bildausrichtungstechniken, bei denen die Vorlagenkoordinaten X konstant sind und Verzerrungen asymmetrisch nur auf das Quellenbild angewendet werden. Um die gleichzeitige Variabilität einer gepaarten Abbildung in Bezug auf Vj zu berücksichtigen, werden Bildgradienten aus beiden Bildern dafür benutzt, die Stabilität während der Optimierung aufrechtzuerhalten.
-
Das fotometrische Objektiv kann folgendermaßen umformuliert werden:
-
Hierbei ist Ω
VT die Kameramatrix bei einer virtuellen Vorlagenansicht. Virtuelle Vorlagen werden benutzt, da die Reprojektion von x
i in Gleichung (3) auf sich selbst folgendermaßen geschrieben werden kann:
-
Durch Reprojizieren der Koordinaten aus einem dritten Frame ermöglichen virtuelle Vorlagen die korrekte Gradientenberechnung
aus beiden Bildern, wobei man
durch eine differenzierbare Bildabtastung erhalten kann. Entsprechend einer Ausführungsform ist Ω
T als Bisektion zwischen Ω
1 und Ω
2 gewählt; es sollte jedoch einsichtig sein, dass Ω
T beliebig gewählt werden kann.
-
Netzoptimierung
-
Das Optimieren für ein 3D-Netz mit N Vertices impliziert das Lösen für 3N Freiheitsgrade (Degrees of Freedom, DoFs), was üblicherweise ein unterbestimmtes Problem ergibt, wenn N groß ist. Daher wird eine Regularisierung benutzt, um sicherzustellen, dass sich die Objektnetzverformungen während der Optimierung wunschgemäß verhalten. Entsprechend einer Ausführungsform können neuronale Deep-Netzwerke als Formurelemente benutzt werden und über einen Latentmerkmalsvektor oder einen Formcode z optimieren. Die Vertices V können daher als V = g(z) reparametrisiert werden, wobei g ein neuronales Netzwerk darstellt. Dies hat den Vorteil, dass ermöglicht wird, dass sich das Netz innerhalb eines erlernten Formraumes verformt, während sich die zahlreichen lokalen Minima, die bei der direkten Vertexoptimierung auftreten, vermeiden lassen.
-
Netzvorhersagen aus neuronalen Netzwerken liegen in einem kanonischen Koordinatensystem unabhängig vom Weltkoordinatensystem, das SfM wiederherstellt. Eine Grobausrichtung dieser Koordinatensysteme kann aus einer Cheap Annotation von Grobentsprechungen berechnet werden. Um die Netze genauer auf die RGB-Sequenzen auszurichten, kann eine 3D-Ähnlichkeitstransformationsverfeinerung
an den Netzwerkvertices V = [v
1, v
2, ..., v
N]
T folgendermaßen optimiert werden:
-
Hierbei sind 0=[s,ω,t]T ∈ ℝ7 die 7-DoF-Parameter, und R ist eine 3D-Drehmatrix, die durch ω parametrisiert ist. Das Exponenzieren von s wird zur Sicherstellung der Positivität vorgenommen. Diese Parametrisierung wird benutzt, um zusätzliche Randbedingungen (beispielsweise eine Skalierung) festzulegen.
-
Obwohl neuronale Netzwerke effektive Urelemente sind, ist der Latentmerkmalsvektorraum nur innerhalb der Spanne (span), die von den Trainingsdaten erfasst wird, vernünftig. Um zu vermeiden, dass Objektnetze degenerierte Lösungen ergeben, wird dem Code z eine zusätzliche Sanktion (extra penalty) auferlegt, um sicherzustellen, dass dieser innerhalb eines zuverlässigen Bereiches des Anfangscodes z
0 (aus einem vorab trainierten Bildencoder f extrahiert) verbleibt, was folgendermaßen definiert ist:
-
Zusätzlich wird eine Skalensanktion
addiert bzw. hinzugefügt, um den Umstand zu fördern, dass sich das Netz ausdehnt, da der Umstand, dass das Netz ins Infinitesimale bzw. unendlich Kleine schrumpft, die triviale Lösung mit einem fotometrischen Fehler von 0 ist.
-
Die vollständige Optimierungsverlustfunktion kann folgendermaßen dargestellt werden:
-
Hierbei sind λcode und λscale die Sanktionsgewichtungen der zusätzlichen Regularisierung. Sämtliche Funktionen sind in Bezug auf den fotometrischen Fehler vollständig differenzierbar.
-
Exemplarisches Verfahren
-
3 bis 5 zeigen Flussdiagramme eines exemplarischen Prozesses 300 zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen entsprechend einer Ausführungsform der vorliegenden Offenbarung. Der Prozess kann beispielsweise in der Bildrekonstruktionsanwendung 130 von 1 implementiert sein. Der Prozess 300 beinhaltet ein Generieren (302) eines polygonalen Netzes 304, das eine Form eines ersten Objektes in drei Dimensionen darstellt. Das Netzgenerierungsmodul 150 von 1 kann beispielsweise generiert werden, um das polygonale Netz 304 zu generieren. Das Netz wird unter Nutzung des dem Generieren des Objektnetzes dienenden neuronalen Netzwerkes 114 generiert. Das neuronale Netzwerk 114 wird darauf trainiert, einen Satz von 2D-Datenpunkten (2D zweidimensional) 306, die das erste Objekt darstellen, in das Polygonnetz zu transformieren. Der Satz von 2D-Datenpunkten 306 stellt Farbpixel (RGB) in wenigstens zwei Bildern des ersten Objektes dar. Die Bilder können eine Abfolge oder Sequenz von Standbildern oder auch Frames eines Videos sein. Die Bilder weisen verschiedene Kamerastellungen auf, in denen die Bilder verschiedene Ansichtswinkel des Objektes, so beispielsweise von vorne, von der Seite, von oben und dergleichen mehr, bereitstellen.
-
4 zeigt detaillierter ein Flussdiagramm des Prozesses zum Generieren (302) des polygonalen Netzes 304. Zu Beginn wird ein Bildframe mit zentriertem Objekt aus der Bildsequenz oder dem Video in Form von RGB-Bildern, die mit zugeordneten Kameramatrizen gepaart sind, ausgewählt (402). Der Bildframe kann entweder manuell oder automatisch ausgewählt werden. Der ausgewählte Frame wird in einen Encoder eingespeist (404), um einen Anfangslatentcodevektor 406 als Ausgabe zu erhalten. Für jeden Frame und jedes Kamerapaar aus der Sequenz wird ein polygonales (beispielsweise dreieckiges) Netz an den gegebenen Ansichtspunkten durch eine Netzrasterung wiedergegeben (408), wodurch eine gerasterte Karte mit polygonalen (beispielsweise dreieckigen) Flächenindices (polygonales Netz 304) erzeugt wird.
-
Wie wiederum in 3 gezeigt ist, beinhaltet das Verfahren 300 des Weiteren ein Optimieren (308) des polygonalen Netzes 304 über einen Satz von Latentmerkmalsvektoren oder einen Code unter Nutzung einer fotometrischen Objektivfunktion. Das Netzoptimierungsmodul 152 von 1 kann beispielsweise zum Optimieren des polygonalen Netzes konfiguriert sein. Der Satz von Latentmerkmalsvektoren stellt eine oder mehrere vordefinierte Formen eines zweiten Objektes dar, die in der vorliegenden Offenbarung auch als Formurelement (shape prior) bezeichnet werden. In einigen Fällen ist das zweite Objekt ein Modell des ersten Objektes. Ist das erste Objekt (das Objekt in den Bildern) beispielsweise ein Bürostuhl, so kann das zweite Objekt ein Strukturmodell desselben Typs von Bürostuhl oder ein ähnlich geformter Stuhl sein, der aus einem großen Satz von vorher validierten Daten, die derartige Stühle darstellen, entwickelt worden ist, wie sich einem Fachmann auf dem Gebiet der Computervision und der Deep-Learning-Netzwerke erschließt.
-
5 zeigt detaillierter ein Flussdiagramm des Prozesses zum Optimieren (308) des polygonalen Netzes 304. Das Netz wird optimiert, indem zunächst Paare von aufeinanderfolgenden Frames 504 aus der Bildsequenz ausgewählt werden (502). Als Nächstes wird für jedes Paar von Frames 504 ein virtueller Ansichtspunkt 508 geschaffen (506), indem die Bisektion der entsprechenden Drehungen und Kamerazentren gebildet wird. Das Netz wird sodann gerastert (510), um eine Tiefenkarte von dem virtuellen Ansichtspunkt aus zu erhalten. Die Tiefenkarte kann als Satz von 3D-Punkten ausgedrückt werden, die auf der Oberfläche des Netzes liegen. Als Nächstes werden die 3D-Netzprojektionen ausgerichtet (514), indem der Satz von 3D-Punkten von der Tiefenkarte auf beide ausgewählten Ansichtspunkte, von denen Pixelintensitäten 516 abgetastet werden können, projiziert wird. Der fotometrische Fehler wird aus der Differenz zwischen den RGB-Pixelintensitäten 516, die aus beiden Frames abgetastet sind, bestimmt (518). Daher kann eine fotometrische Objektivfunktion als pixelweise gegebener Intensitätsfehler zwischen beiden synthetisierten Bildern berechnet werden. Wie vorstehend beschrieben worden ist, stellt die fotometrische Objektivfunktion wenigstens teilweise einen fotometrischen Verlust aus dem Beitrag durch Pixel in jeder jeweiligen Fläche des Netzes als Funktion der Bildgradienten, die aus den Farbpixeln (RGB) erhalten werden, dar. Gradienten werden sodann von dem fotometrischen Fehler zu den Vertices der zugewiesenen polygonalen (beispielsweise dreieckigen) Indices zurückgeführt (522), indem auf die baryzentrischen Koordinaten eines jeden Bildes zurückgegriffen wird, um den Latentcodevektor zu aktualisieren, wodurch die rekonstruierte Darstellung des Objektes 310 (rekonstruiertes Netz) erzeugt wird. In einigen Fällen beinhaltet die fotometrische Objektivfunktion ein Anwenden einer parametrisierten Verzerrungsfunktion auf Pixel in den wenigstens zwei Bildern des ersten Objektes, wie vorstehend erläutert worden ist. In einigen Fällen beinhaltet der Prozess 300 des Weiteren ein Veranlassen 314 dessen, dass das rekonstruierte Bild des ersten Objektes von einer Anzeigevorrichtung, so beispielsweise von der GUI 140 von 1, angezeigt wird. In einigen Fällen kann das rekonstruierte Bild des ersten Objektes benutzt werden, um unter Nutzung eines 3D-Druckers oder einer anderen geeigneten Vorrichtung zur Bildung eines Musterstücks des Objektes aus einem physischen Material eine physische Darstellung des Objektes zu drucken.
-
Wie wiederum in 3 gezeigt ist, beinhaltet der Prozess 300 in einigen Fällen des Weiteren ein durch den wenigstens einen Prozessor erfolgendes Trainieren 316 des dem Generieren eines Objektnetzes dienenden Netzwerkes zum Transformieren des Satzes von 2D-Datenpunkten in das polygonale Netz unter Nutzung von 3D-CAD-Modellwiedergaben (Computer-Aided Design CAD, computergestütztes Gestalten). Das Trainingsmodul 154 von 1 kann beispielsweise zum Trainieren des Netzwerkes konfiguriert sein. Ein derartiges Training ist beispielsweise dann von Nutzen, wenn zusätzliche validierte Formurelemente verfügbar sind, um die Leistung des Netzwerkes für eine gegebene Klasse von Objekten (beispielsweise zum Lernen eines neuen Objektes) zu verbessern.
-
6 ist ein Beispiel für quantitative Ergebnisse unter Nutzung des Prozesses 300, wobei eine Sequenz von RGB-Bildern 602 und die entsprechenden rekonstruierten Bilder 604 gezeigt sind. Die offenbarten Techniken können sich vorteilhafterweise einer Mehrfachansichtsgeometrie bedienen, um große Fehlausrichtungen aufzulösen und genauere Formen zu optimieren. Der hohe fotometrische Fehler aus dem Hintergrund zwischen den Ansichten wirkt dem entgegen, dass Vertices in derartigen Bereichen verbleiben. Dies wirkt als natürliches Bestreben, das Netz innerhalb der 3D-Bereiche einzuschränken, was die Notwendigkeit einer zusätzlichen Tiefen- oder Maskeninformation während der Optimierung beseitigt.
-
Die offenbarten Techniken können sowohl auf Einfach- wie auch Mehrfachobjektkategorien von Bildsequenzen unter Nutzung synthetischer Daten wie auch von Videos aus der realen Welt angewendet werden. Datensätze von 3D-CAD-Modellwiedergaben werden zum Trainieren eines Netzgenerierungsnetzwerkes wie auch zum Bewerten des Optimierungsframeworks generiert. Die Wiedergabepipeline stellt darauf ab, realistische Bilder mit komplexen Hintergründen zu generieren, damit diese auf Videosequenzen aus der realen Welt angewendet werden können. Es kann ein vordefinierter Objektdatensatz genutzt werden, und es werden alle Objekte derart normiert, dass sie auf eine ursprungszentrierte Einheitskugel passen. Die RGB-Bilder eines jeden Objektes werden von Perspektivenkameras unter beispielsweise 24 gleich beabstandeten Azimuthwinkeln und drei Elevationswinkeln wiedergegeben. Um realistischere Hintergründe zu simulieren, werden sphärische Bilder aus einer Datenbank willkürlich verzerrt und beschnitten bzw. abgeschnitten, um Hintergrundbilder derselben Szene, die unter verschiedenen Kameraansichtspunkten aufgenommen ist, zu schaffen. Durch Zusammensetzen der Vordergrund- und Hintergrundbilder mit entsprechenden Kamerastellungen erhält man RGB-Sequenzen von Objekten auf realistisch texturierten Hintergründen, wie in 7 gezeigt ist.
-
Während der Optimierung wird 0 auf 0 initialisiert (Identitätstransformation), wobei die Rotationskomponente ω mit der so(3)-Lie-Algebra parametrisiert ist. Der Code z0 wird initialisiert, indem ein RGB-Frame mit dem Encoder rotiert wird: für synthetische Sequenzen benutzt man Frames bei einem Azimuthwinkel von 45°; bei Realweltsequenzen wird ein Frame ausgewählt, in dem das Objekt möglichst zentral bezüglich des Bildes ausgerichtet ist, damit es auf die Wiedergabeeinstellungen abgestimmt ist. Während der Optimierung werden zwei aufeinanderfolgende Frames als Bildpaar ausgewählt, und es wird eine stochastische Strategie des willkürlichen Auswählens von acht Paaren pro Iteration benutzt.
-
8 zeigt Beispiele für eine kategoriespezifische Leistungs-Rausch-Beziehung bei einer Koordinatensystemabbildung bei Anwendung der offenbarten Techniken auf Ei ngabebildseq uenzen.
-
Im Lichte der vorliegenden Offenbarung erschließen sich zahlreiche Ausführungsformen, und die hier beschriebenen Merkmale können in einer beliebigen Anzahl von Konfigurierungen kombiniert werden. Eine exemplarische Ausführungsform stellt beispielsweise in einer Digitalmedienumgebung zur Bearbeitung von Digitalbildern ein computerimplementiertes Verfahren zur dreidimensionalen Objektrekonstruktion bereit. Das Verfahren beinhaltet ein durch wenigstens einen Prozessor erfolgendes Generieren eines Polygonnetzes zur Darstellung einer Form eines ersten Objektes in drei Dimensionen unter Nutzung eines dem Generieren eines Objektnetzes dienenden neuronalen Netzwerkes, das darauf trainiert ist, einen Satz von 2D-Daten (2D zweidimensional), die das erste Objekt darstellen, in das Polygonnetz zu transformieren. Der Satz von 2D-Datenpunkten stellt Farbpixel in wenigstens zwei Bildern des ersten Objektes dar. Die wenigstens zwei Bilder weisen verschiedene Kamerastellungen auf. Das Verfahren beinhaltet des Weiteren ein durch den wenigstens einen Prozessor erfolgendes Optimieren des Polygonnetzes über einen Satz von Latentmerkmalsvektoren unter Nutzung einer fotometrischen Objektivfunktion zum Herstellen einer rekonstruierten Darstellung des ersten Objektes, wobei der Satz von Latentmerkmalsvektoren eine vordefinierte Form eines zweiten Objektes darstellt, und ein durch den wenigstens einen Prozessor erfolgendes Veranlassen, dass die rekonstruierte Darstellung des ersten Objektes an eine Ausgabevorrichtung ausgegeben wird. In einigen Fällen beinhaltet das Verfahren ein durch den wenigstens einen Prozessor erfolgendes Trainieren des dem Generieren des Objektnetzes dienenden Netzwerkes zum Transformieren des Satzes von 2D-Datenpunkten in das Polygonnetz unter Nutzung von 3D-CAD-Modellwiedergaben (CAD Computer-Aided Design, computergestütztes Gestalten). In einigen Fällen ist das zweite Objekt ein Modell des ersten Objektes. In einigen Fällen stellt die fotometrische Objektivfunktion wenigstens teilweise einen fotometrischen Verlust aus dem Beitrag durch Pixel in der wenigstens einen Fläche des Polygonnetzes dar. In einigen Fällen beinhaltet die fotometrische Objektivfunktion ein Anwenden einer parametrisierten Verzerrungsfunktion auf Pixel in den wenigstens zwei Bildern des ersten Objektes. In einigen Fällen ist lautet die fotometrische Objektivfunktion folgendermaßen:
wobei x'
i = W (x
i; V
j) eine verzerrte Pixelkoordinate x
i in einem Polygonnetz V eines ersten Bildes I
S des ersten Objektes ist, I
T ein zweites Bild des ersten Objektes ist, V das Polygonnetz ist und X
j ein Satz von sichtbaren Pixelkoordinaten innerhalb eines Projektionsbereiches der wenigstens einen Fläche j des Polygonnetzes ist. In einigen Fällen beinhaltet das Optimieren ein Anwenden einer Skalensanktion auf die Optimierungsverlustfunktion. In einigen Fällen beinhaltet die Ausgabevorrichtung wenigstens eines von einer Anzeigevorrichtung zum Anzeigen der rekonstruierten Darstellung des ersten Objektes und einer 3D-Druckervorrichtung zum 3D-Drucken der rekonstruierten Darstellung des ersten Objektes. In einigen Fällen beinhaltet die Ausgabevorrichtung eine Speichervorrichtung zum Speichern der rekonstruierten Darstellung des ersten Objektes. Eine weitere exemplarische Ausführungsform stellt ein Computerprogrammerzeugnis bereit, das ein oder mehrere nichttemporäre maschinenlesbare Medien beinhaltet, auf denen Anweisungen codiert sind, die bei Ausführung durch einen oder mehrere Prozessoren veranlassen, dass der eine oder die mehreren Prozessoren einen Prozess, so beispielsweise den im vorliegenden Absatz ausgeführten, durchführen.
-
Weitere exemplarische Ausführungsformen stellen ein System zur 3D-Objektrekonstruktion unter Nutzung fotometrischer Netzdarstellungen bereit. Das System beinhaltet wenigstens einen Prozessor und einen Speicher, der operativ mit dem wenigstens einen Prozessor gekoppelt ist, und dem Speichern von Anweisungen dient, die bei Ausführung durch den wenigstens einen Prozessor veranlassen, dass der wenigstens eine Prozessor ein Polygonnetz zur Darstellung einer Form eines ersten Objektes in drei Dimensionen unter Nutzung eines dem Generieren eines Objektnetzes dienenden neuronalen Netzwerkes generiert, das darauf trainiert ist, einen Satz von 2D-Datenpunkten (2D zweidimensional), die das erste Objekt darstellen, in das Polygonnetz zu transformieren. Der Satz von 2D-Datenpunkten stellt Farbpixel in wenigstens zwei Bildern des ersten Objektes dar. Die wenigstens zwei Bilder weisen verschiedene Kamerastellungen auf. In einigen Fällen veranlassen die Anweisungen, dass der wenigstens eine Prozessor das Polygonnetz über einen Satz von Latentmerkmalsvektoren unter Nutzung einer fotometrischen Objektivfunktion optimiert, um eine rekonstruierte Darstellung des ersten Objektes zu erzeugen, wobei der Satz von Latentmerkmalsvektoren eine vordefinierte Form eines zweiten Objektes darstellt und veranlasst, dass die rekonstruierte Darstellung des ersten Objektes wenigstens eine von einer durch eine Anzeigevorrichtung angezeigten und einer durch eine 3D-Druckvorrichtung gedruckten ist. In einigen Fällen ist das zweite Objekt ein Modell des ersten Objektes. In einigen Fällen stellt die fotometrische Objektivfunktion wenigstens teilweise einen fotometrischen Verlust aus dem Beitrag durch Pixel in der wenigstens einen Fläche des Polygonnetzes dar. In einigen Fällen beinhaltet die fotometrische Objektivfunktion ein Anwenden einer parametrisierten Verzerrungsfunktion auf Pixel in den wenigstens zwei Bildern des ersten Objektes. In einigen Fällen lautet die fotometrische Objektivfunktion:
wobei x'
i = W(x
i; V
j) eine verzerrte Pixelkoordinate x
i in einem Polygonnetz V eines ersten Bildes I
S des ersten Objektes ist, I
T ein zweites Bild des ersten Objektes ist, V das Polygonnetz ist und X
j ein Satz von sichtbaren Pixelkoordinaten innerhalb eines Projektionsbereiches der wenigstens einen Fläche j des Polygonnetzes ist. In einigen Fällen beinhaltet das Optimieren ein Anwenden einer Skalensanktion auf die Optimierungsverlustfunktion.
-
Die vorstehende Beschreibung der verschiedenen Ausführungsformen und die Zeichnung sind rein beispielhalber vorgestellt worden. Die Beispiele sollen nicht erschöpfend sein oder die Erfindung genau auf die offenbarten Formen beschränken. Abänderungen, Modifikationen und Abwandlungen erschließen sich im Lichte der vorliegenden Offenbarung und sollen innerhalb des Umfanges so, wie in den Ansprüchen niedergelegt, beinhaltet sein.