Photogrammetrie

Photogrammetrie bezeichnet Methoden, die aus Fotos Messungen und Informationen zur Tiefe ableiten. Bei der Aufnahme von Fotos wird die dreidimensionale Szenerie auf eine 2D-Fläche projiziert, wodurch die Tiefeninformationen verlorengehen. Das Ziel der Photogrammetrie ist es, diesen Prozess so gut wie möglich rückgangig zu machen.
Als Ergebnis einer solchen Verarbeitung von Fotos entsteht in den meisten Anwendungsfällen ein 3D-Modell, welches das fotografierte Objekt und dessen Struktur, Textur und geometrische Form exakt abbildet.

Motivation

Den ersten Kontakt mit Photogrammetrie hatte ich im Rahmen meines Bachelorprojektes 2018/19, in dem unsere Projektgruppe sich mit Möglichkeiten beschäftigt hat, Museen und deren Ausstellungsstücke zu digitalisieren und durch neue Möglichkeiten, wie durch eine Darstellung im Web für die Besucher noch greifbarer zu machen.

Genutzte Programme

Im Laufe des Projektes wurden im Bereich Photogrammetrie mehrere Programme ausprobiert, wobei dabei großen Wert auf Open-Source Software gelegt wurde. Besonders überzeugende Ergebnisse haben dabei die Programme COLMAP und AliceVision geliefert. Letzteres bietet neben einer Bedienung über die Kommandozeile auch eine stabile GUI, die es besonders neuen Anwendern einfach macht, mit der Photogrammetrie zu beginnen. Zusätzlich gibt es bei AliceVision eine große und aktive Community, die bei Fragen, Tipps und Problemen helfen kann.
Aus den genannten Gründen beziehen sich einige Abschnitte dieser Seite speziell auf AliceVision und die Verwendung der zugehörigen Befehle und Parameter.

Voraussetzungen

Um aus eigenen Fotos eines Objektes oder einer Szene ein 3D-Modell berechnen zu lassen, benötigt man nicht viel Equipment. Es reicht bereits eine Handykamera aus, um Fotos zu machen. Hierbei gilt jedoch wie meistens, je besser die Fotos sind, desto besser werden die Ergebnisse. Jedoch steigt auch die Berechnungszeit bei höherer Auflösung der Fotos stark an.
Neben den Fotos benötigt man außerdem einen Computer mit einer Grafikkarte von NVIDIA. AliceVision benutzt eine spezielle Grafik-Schnittstelle, genannt CUDA, die nur NVIDIA-Karten bereitstellen. Dadurch scheiden AMD-Grafikkarten leider aus, da AliceVision diese nicht unterstützt und die Berechnungen aufgrund der fehlenden Schnittstelle deutlich länger dauern würden.
Die Software Meshroom kann man sich - natürlich kostenlos - auf Github runterladen. Danach lässt sich die Anwendung mit Klick auf das ausführbare "Meshroom" starten.

Tipps für gute Fotos

Generell gilt: Je hochauflösender die Fotos sind, desto besser wird auch das generierte 3D-Modell. Es gibt allerdings einige Dinge, die man beachten sollte, um das Beste aus den Fotos herauszuholen:

Benutzeroberfläche

Meshroom bietet eine benutzerfreundliche grafische Oberfläche, die das Arbeiten gerade als Einsteiger sehr einfach macht. Mehr dazu gibt es bald hier.

Workflow

kommt bald...

Kommandozeile

Meshroom lässt sich neben der GUI auch mittels Befehlen und Parametern in der Kommandozeile bedienen. Dafür existiert eine eigene Anwendung, "meshroom_photogrammetry", die viele Schalter besitzt, die man einstellen kann. Die in der Pipeline benutzten Parameter werden bald hier erklärt.

Pipeline

Durch den Fokus auf die Nutzung der Kommandozeile, ist es möglich eine automatisierte Verarbeitung der Bilder anzustoßen. So kann mit einem einzigen Aufruf eines Skriptes der gesamte Prozess durchlaufen werden. Mehr dazu findet sich bald hier.

Skripte

Um die Pipeline reibungslos für ein Bilderset ablaufen zu lassen, habe ich Skripte entwickelt, die sich um die Erstellung der benötigten Ordner und Webseiten kümmern. So kann vollautomatisch ein Ordnername angegeben werden, in dem beim erfolgreichen Durchlauf des Programms das Modell, sowie ein eigenständiger Ordner mit mehreren Beispielseiten abgelegt wird. Hier bald mehr dazu.

Bildersets und Modelle

Im Laufe der Zeit sind einige Modelle entstanden, die man sich hier angucken kann: