Wie Sand am Meer
Marco Mojica
Eindrücke mit mehr Tiefe
Für wie Sand am Meer wurden für fünfhundert Schnappschüsse Tiefenbilder erzeugt, um aus den Bild- und Tiefeninformationen Punktwolken zu generieren. Zum Generieren der Tiefenbilder wurde MiDaS eingesetzt. MiDaS ist ein maschinelles Lernmodell, das die Tiefe für ein beliebiges Eingabebild schätzen kann.
Die geschätzte Tiefe wird durch ein Bild in Graustufen wiedergegeben, helle Farbwerte signalisieren Nähe zur Kamera, dunkle Werte signalisieren eine weite Entfernung zur Kamera.
Aus den Pixeln des Originalbildes und den Tiefeninformationen lassen sich Punktwolken generieren.
Dabei wird für jedes Pixel ein Punkt an seiner X und Y-Koordinate erzeugt, für die Z-Koordinate wird ein auf den Tiefeninformationen basierender Wert verwendet.
Die Punktwolke wird mithilfe eines Points Objektes und angepassten Fragment- bzw. Vertexshadern in @react-three/fiber visualisiert.
@react-three/fiber ist ein Bindeglied zwischen der Benutzeroberflächenbibliothek React und der 3D-Bibliothek three.js. Die Kombination ermöglicht das deklarative Erstellen von 3D-Scenen zum Darstellen in modernen Webbrowsern.
Die Visualisierung ist interaktiv, damit sie aus verschiedenen Blickwinkeln betrachtet werden kann.
Schnappschuss mit viel Tiefe
Von MiDaS generierte Depthmap
Die Teile zusammensetzten
Durch die Kombination von Bild und Tiefeninformationen lässt sich etwas Neues konstruieren.
An der Position jedes Pixels wird ein Punkt in seiner Farbe generiert.
Die Depthmap bestimmt die Z-Position des Punktes.
Bild und Depthmap zusammengeführt
Eine Auswahl
Nicht alle Bilder eignen sich zum Umwandeln in eine Punktwolke.
Nach dem Erzeugen der Depthmaps und dem Zusammenführen mit den Ausgangsbildern ist, war ein weiterer Auswahlprozess nötig.