Sie fragen - wir antworten!

Apps & Leitfäden

Photogrammetrie mit Meshroom

Photogrammetrie ist eine Methode zur Umwandlung physischer Objekte in dreidimensionale digitale Modelle, die mit 3D-Software bearbeitet werden können. Für diesen Prozess werden in der Regel spezielle Geräte, so genannte 3D-Scanner, verwendet, die es in zwei Haupttypen gibt: optische und Laser-Scanner.

Optische Scanner verwenden häufig eine oder mehrere Digitalkameras und eine spezielle Beleuchtung, um das Objekt während des Scannens gleichmäßig zu beleuchten. Dies ermöglicht die Erstellung eines 3D-Modells. Laserscanner hingegen verwenden Laserstrahlen. Diese Geräte senden mehrere Laserstrahlen aus und messen die Zeit, die jeder Strahl braucht, um vom Objekt zurück zu prallen. Anhand dieser Daten und der Informationen von Positionssensoren berechnet der Scanner die Entfernung zu jedem Punkt des Objekts. So entsteht eine "Punktwolke", die die Grundlage für das 3D-Modell bildet.

Punktwolke

Points cloud rabbit

Um das zukünftige Gerüst eines Objekts zu erstellen, muss das System die Koordinaten jedes Scheitelpunkts im dreidimensionalen Raum kennen. Die Menge der Scheitelpunkte wird als Punktwolke bezeichnet. Je mehr Scheitelpunkte es gibt, desto detaillierter wird das Objekt sein. Die Erstellung einer Punktwolke ist der erste und einer der wichtigsten Schritte bei der Erstellung eines 3D-Modells aus Fotos.

Es ist wichtig zu beachten, dass jeder Scheitelpunkt in der Punktwolke zunächst nicht mit anderen Scheitelpunkten verbunden ist. Dies ermöglicht eine einfache Filterung: die notwendigen Punkte werden beibehalten und der Rest wird entfernt, bevor das Netz des Objekts neu erstellt wird.

Mesh-Objekte

Mesh object rabbit

Ein Mesh-Objekt ist eine Art von 3D-Modell, das aus dreieckigen geometrischen Primitiven besteht, die oft als Meshes oder Polymeshes bezeichnet werden. Sobald Objektpunkte gebildet sind, kann die Anwendung unabhängig dreieckige Primitive aus ihnen zusammensetzen. Durch Verbinden dieser Primitive lässt sich ein 3D-Modell mit nahezu beliebiger Form erstellen. In diesem Stadium hat das Modell noch keine Farbe und bleibt unbemalt.

Die anschließende Texturierungsphase behebt dieses Problem.

Texturierung

Textured rabbit

In der letzten Phase wird die aus den Fotos extrahierte Bildtextur auf das vorbereitete Netzobjekt aufgetragen. Die Qualität der aufgenommenen Fotos und ihre Auflösung spielen hier eine wichtige Rolle. Ist sie niedrig, wird das Endergebnis nicht optimal aussehen. Wenn jedoch eine ausreichende Anzahl von Fotos in guter Qualität aufgenommen wurde, erhalten Sie am Ende ein vollständig fertiges 3D-Modell eines realen Objekts. Im Folgenden geben wir einige nützliche Tipps zur Vorbereitung der Originalfotos.

Kameraeinstellungen

Um Enttäuschungen bei Ihren ersten Versuchen, ein 3D-Modell aus Fotos zu erstellen, zu vermeiden, sollten Sie diese einfachen Grundregeln beachten. Jede dieser Regeln hilft Ihnen, Probleme zu vermeiden, die normalerweise bei der Erstellung von Mesh-Objekten auftreten.

Erstens: Verlassen Sie sich nicht auf die automatischen Einstellungen Ihrer Digitalkamera. Moderne Kameras versuchen, vier wichtige Parameter unabhängig voneinander auszugleichen:

  • ISO,
  • Weißabgleich,
  • Belichtungszeit,
  • Blende.

Im Automatikmodus können selbst geringfügige Änderungen der äußeren Bedingungen dazu führen, dass diese Einstellungen von Bild zu Bild variieren. Diese Abweichungen können zu spürbaren Unstimmigkeiten während der Texturierungsphase führen.

Um die Parameter über alle Bilder hinweg konsistent zu halten, verwenden Sie den Modus Manual (M). Die Blende ist hier eine entscheidende Einstellung. Je nach Objektiv sollten Sie eine Position anstreben, in der die Blende fast geschlossen ist. So erreichen Sie eine maximale Schärfentiefe: Je weniger offen die Blende ist, desto besser. Vermeiden Sie jedoch extreme Werte. Wenn Ihr Objektiv bis auf f/22 geschlossen werden kann, erzielen Sie gute Ergebnisse mit Werten zwischen f/11 und f/20.

Makarios aperture difference

Links f/11, rechts f/22

Wenn Sie die Blende schließen, entsteht jedoch ein weiteres Problem: zu wenig Licht. Dem kann auf zwei Arten begegnet werden: durch Erhöhung der ISO-Empfindlichkeit oder durch Verlängerung der Belichtungszeit. Beide Methoden wirken sich auf das Endergebnis aus, wenn auch auf unterschiedliche Weise. Eine Erhöhung der ISO-Empfindlichkeit auf 6400 führt zu digitalem Rauschen im Bild, daher ist es am besten, die niedrigstmöglichen Werte zu verwenden. Für nahezu optimale Ergebnisse ist es sinnvoll, den ISO-Wert auf 100 einzustellen. Allerdings bleibt das Problem der unzureichenden Beleuchtung bestehen:

Makarios ISO difference

Links ISO 100, rechts ISO 6400

Die effektivste Methode, um die Lichtmenge zu erhöhen, die bei schlechten Lichtverhältnissen auf den Kamerasensor trifft, ist die Verlängerung der Verschlusszeit. Je länger die Blende geöffnet bleibt, desto mehr Photonen treffen auf den Sensor, was zu einer besseren Bildqualität führt. Dieser Ansatz birgt jedoch ein Problem: Ohne Stativ kann eine Verschlusszeit von 1/50 Sekunde oder länger das Bild verwackeln. Die Verwendung eines Stativs beseitigt dieses Problem.

Der Weißabgleich ist der letzte entscheidende Parameter. Es ist wichtig, die automatische Einstellung zu deaktivieren und entweder ein voreingestelltes Profil (wie "Sonnentag") oder einen benutzerdefinierten Wert in Kelvin zu wählen. Eine gängige Einstellung ist zum Beispiel 5200K. Niedrigere Werte verschieben den Farbton in Richtung Gelb, während höhere Werte in Richtung Blau tendieren. Um zeitaufwändige Farbkorrekturen in der Nachbearbeitung zu vermeiden, sollten Sie für alle Fotos einer Serie das gleiche Weißabgleichsprofil verwenden.

Makarios white balance

WB-Profile. Links "Sonnentag", rechts "Auto"

Zusammenfassend lässt sich sagen, dass Sie hochwertige Fotos für die Photogrammetrie aufnehmen sollten:

  1. Verwenden Sie ein Stativ, wenn das Licht nicht ausreicht.
  2. Schließen Sie die Blende fast auf ihr Minimum.
  3. Stellen Sie den ISO-Wert auf das Minimum ein.
  4. Wählen Sie eine Verschlusszeit, die das gewünschte Ergebnis liefert (oder verwenden Sie den integrierten Belichtungsmesser Ihrer Kamera).
  5. Verwenden Sie die gleiche Voreinstellung für den Weißabgleich.

Aufnehmen von Fotos

Wir besprechen nun, wie viele Fotos Sie aus welchen Winkeln aufnehmen sollten. Die Art des Objekts und sein Hintergrund haben einen großen Einfluss auf das Endergebnis. Objekte ohne glänzende, transparente oder reflektierende Oberflächen sind ideal für die Photogrammetrie. In der Praxis müssen Objekte wie Fenster und Glas später oft in einem 3D-Editor korrigiert werden. Die allgemeine Aufnahmetechnik bleibt jedoch dieselbe.

Bei kleinen Objekten auf einer Oberfläche stellen Sie sich eine Kugel um das Objekt herum vor. Machen Sie Fotos, als ob Ihre Kamera das Objekt dreimal umkreist: einmal von unten, einmal in der Mitte und einmal von oben.

Rabbit camera positions

Es ist wichtig, dass das Objekt mindestens die Hälfte, besser drei Viertel jedes Bildes einnimmt. Versuchen Sie, sich dem Objekt physisch zu nähern, anstatt es zu vergrößern. Bei der Erstellung eines Wolkenpunkts benötigt die Software so viele Pixel wie möglich.

Denken Sie bei der Aufnahme daran, dass die Software die Einzelbilder zu einem einzigen Objekt kombiniert, um eine korrekte Geometrie zu erhalten. Nehmen Sie in der Regel mindestens drei Bilder aus jedem Winkel auf. Wenn Sie das Objekt im Bild zentriert haben, teilen Sie es gedanklich vertikal in drei gleiche Teile auf. Machen Sie drei Aufnahmen, die jeweils ein Drittel des Objekts abbilden. So entsteht die notwendige Überlappung, damit die Anwendung die Position jedes Punktes im 3D-Raum genau berechnen kann. Nachdem Sie das Objekt von allen möglichen Seiten und Winkeln fotografiert haben, können Sie mit der Vorbereitung der Software beginnen.

Meshroom installieren

Meshroom ist eine kostenlose, plattformübergreifende Anwendung, die alle Verarbeitungsschritte sequentiell durchführt und dabei CPU- und GPU-Ressourcen nutzt. Es kann zwar auf einem Standard-Heimcomputer ausgeführt werden, aber jeder Schritt kann zeitaufwändig sein. Für groß angelegte Projekte, die die 3D-Rekonstruktion zahlreicher Objekte beinhalten, wie z. B. die Erstellung einer beeindruckenden 3D-Szene, könnte die Anmietung eines dedizierten GPU-Servers eine praktische Lösung sein.

Betrachten wir einen LeaderGPU-Server mit der folgenden Konfiguration: 2 x NVIDIA® RTX™ 3090, 2 x Intel® Xeon® Silver 4210 (3.20 GHz), 128GB RAM. Wir werden Windows Server 2022 als Betriebssystem verwenden. Bevor Sie Meshroom installieren, müssen Sie einige vorbereitende Schritte durchführen:

Besuchen Sie die offizielle Website des Projekts, um Meshroom herunterzuladen. Entpacken Sie das resultierende Archiv, um eine gebrauchsfertige Anwendung zu finden, die keine zusätzliche Installation erfordert. Starten Sie Meshroom.exe, um zu beginnen.

Bilder hochladen

Das Hauptfenster der Anwendung ist in zwei Bereiche unterteilt: den oberen und den unteren. Der obere Bereich enthält die Bildgalerie, den Bildbetrachter und den 3D-Betrachter. Im unteren Bereich befinden sich der Grafik-Editor und der Task-Manager. Um zu beginnen, ziehen Sie Ihre aufgenommenen Fotos in den dafür vorgesehenen Bereich und legen Sie sie dort ab. Es werden sowohl komprimierte (z. B. JPG) als auch RAW-Dateiformate unterstützt. Es wird empfohlen, RAW-Dateien zu verwenden, da sie wesentlich mehr Daten für jedes Bild enthalten.

Meshroom main window

Bitte beachten Sie, dass Sie standardmäßig bereits über eine vorgefertigte Standard-Pipeline verfügen, die im Diagrammeditor schematisch dargestellt ist. Dies ist eines der wichtigsten Steuerelemente, mit dem Sie alle Aspekte der Bildverarbeitung in jeder Phase konfigurieren können. Sie können jeden Schritt manuell ausführen, indem Sie mit der rechten Maustaste klicken und Compute aus dem Dropdown-Menü auswählen.

Aber zum ersten Mal können Sie einfach auf die grüne Schaltfläche Start klicken, und die Anwendung wird alles für Sie erledigen. Sie werden aufgefordert, das Projekt zu speichern, damit Sie die Ergebnisse der Berechnung nicht versehentlich verlieren. Klicken Sie auf Save, geben Sie einen Namen und ein Verzeichnis an und speichern Sie das Projekt:

Meshroom save project

Anschließend überträgt die Anwendung alle Verarbeitungsschritte aus dem Diagrammeditor in den Task-Manager, der sie in einer bestimmten Reihenfolge abarbeitet. Um den Status jeder Stufe zu überprüfen, wählen Sie den entsprechenden Block im Diagrammeditor aus und klicken Sie auf die Schaltfläche Log in der unteren rechten Ecke des Bildschirms. Sie können auch in Echtzeit sehen, welche Stufe gerade bearbeitet wird:

Meshroom task manager

Auf der rechten Seite sehen Sie die Punktwolke, die Sie erstellt haben. Das Endergebnis, das mit der Standard-Pipeline erstellt wurde, ist im Verzeichnis verfügbar:

[Your_Project_Path]\MeshroomCache\Texturing\[Random_Symbols]\texturedMesh.obj

Wenn Sie den Ausgabepfad im letzten Knoten der Pipeline vorher festlegen, wird das Objekt natürlich auf dem von Ihnen angegebenen Pfad landen. Anschließend können Sie es in einen beliebigen Texteditor importieren, um vor dem Rendern Oberflächen zu korrigieren, Lichtquellen hinzuzufügen und andere Effekte zu erzielen.

Integration

Auch wenn das ursprüngliche Ergebnis beeindruckend aussieht, muss es oft in einem 3D-Editor verfeinert werden. Meshroom vereinfacht diesen Prozess, indem es Ihnen ermöglicht, nicht nur das Modell, sondern auch die Punktewolke und die Kamerapositionen in Drittanbieter-Editoren wie Houdini oder Blender zu importieren. Im folgenden Abschnitt zeigen wir Ihnen, wie das geht.

Houdini

Eigentlich ist Meshroom eine benutzerfreundliche Schnittstelle für die AliceVision-Engine, die alle rechenrelevanten Operationen übernimmt. Diese Schnittstelle implementiert die entsprechende Pipeline und den Taskmanager. Wenn Sie Houdini verwenden, können Sie Ihre eigene Pipeline direkt in der Anwendung erstellen und sie zusammen mit anderen Tools verwenden, ohne Meshroom separat starten zu müssen.

Um loszulegen, ist es am besten, einen speziellen Launcher herunterzuladen und zu installieren, der Houdini-Updates und Plugins verwaltet. Als Nächstes fügen Sie das SideFX Labs-Plugin hinzu, das zahlreiche zusätzliche Tools bietet, darunter auch spezielle Nodes für AliceVision. Klicken Sie dazu auf die Schaltfläche + und wählen Sie dann Shelves:

Houdini add Shelves Houdini add Shelves

Blättern Sie in der Liste nach unten und wählen Sie SideFX Labs, dann klicken Sie auf die Schaltfläche Update Toolset:

Houdini SideFX Labs Update Toolset

Um ein Plugin zu installieren, gehen Sie folgendermaßen vor: Klicken Sie auf die Schaltfläche Start Launcher, navigieren Sie zum Abschnitt Labs/Packages im linken Menü und wählen Sie Install packages. Daraufhin wird ein Fenster geöffnet, in dem Sie die zu installierenden Pakete auswählen können:

Add Houdini plugin

Wählen Sie das Production Build für Ihre Version von Houdini und klicken Sie auf Install. Starten Sie anschließend die Anwendung neu, um sicherzustellen, dass die neuen Effektsymbole am oberen Rand angezeigt werden:

Houdini new items

Es ist wichtig zu beachten, dass Sie hier keine Erwähnung von AliceVision oder Meshlab finden werden. Das liegt daran, dass das entsprechende Plugin nur innerhalb der Geometriekontext-Pipeline funktioniert. Um dies zu überprüfen, klicken Sie auf das Symbol +, dann auf New Pane Tab Type und wählen Sie Network View:

Houdini Network View

Drücken Sie die Taste Tab und fügen Sie einen Knoten Geometry hinzu:

Houdini add Geometry

Doppelklicken Sie, um den erstellten Knoten zu öffnen, und geben Sie av auf Ihrer Tastatur ein. Das System zeigt sofort eine Liste der verfügbaren Knoten an, die mit den Symbolen Labs AV beginnen. Mit diesen Knoten können Sie die AliceVision-Engine steuern und sie in Ihre eigenen Pipelines integrieren:

Houdini AliceVision nodes

Um eine geeignete Pipeline zu erstellen, lesen Sie die offizielle Dokumentation für das Plugin. Außerdem sollten Sie das AliceVision-Verzeichnis in die Liste der Umgebungsvariablen in der Datei houdini.env aufnehmen. Bei einer Standardinstallation mit dem Launcher befindet sich diese Datei normalerweise im Verzeichnis C:\Users\Administrator\Documents\houdini20.5\

Öffnen Sie die Datei houdini.env mit einem beliebigen Texteditor und fügen Sie die folgende Zeile ein:

ALICEVISION_PATH = [path to alicevision directory in Meshroom folder]

Wenn Sie zum Beispiel Meshroom im Stammverzeichnis des Laufwerks D: installiert haben, könnte Ihr Pfad wie folgt aussehen:

ALICEVISION_PATH = D:\Meshroom\aliceVision

Speichern Sie die Datei und starten Sie dann die Houdini-Anwendung neu.

Blender

Für Blender-Benutzer empfehlen wir das Plugin Meshroom2Blender. Es funktioniert zwar anders als das Houdini-Plugin, ermöglicht aber den Export der von Meshroom berechneten Punktwolken und Kamerapositionen nach Blender. Um auf den Plugin-Code zuzugreifen, öffnen Sie den Link in Ihrem Browser:

https://raw.githubusercontent.com/tibicen/meshroom2blender/master/view3d_point_cloud_visualizer.py

Speichern Sie den Code als view3d_point_cloud_visualizer.py in einem geeigneten Verzeichnis. Öffnen Sie dann Blender und navigieren Sie zu Edit - Preferences. Wählen Sie von dort aus die Registerkarte Add-ons:

Blender Preferences

Klicken Sie auf den Pfeil nach unten und wählen Sie Install from Disk:

Blender install addons

In dem neu geöffneten Fenster navigieren Sie zu dem Verzeichnis, in dem Sie das Plugin gespeichert haben. Wählen Sie die Plugin-Datei aus und klicken Sie auf die Schaltfläche Install from Disk button:

Blender choose plugin file

Das Plugin ist nun installiert. Es wird empfohlen, die Anwendung neu zu starten. Nach dem Neustart sehen Sie das Element Point Cloud Visualizer im Anzeigemodus. Für das Plugin müssen Sie den Pfad zu einer Datei mit der Erweiterung .ply angeben:

Blender new option

Standardmäßig generiert Meshroom diese Art von Datei nicht. Um sie zu erstellen, öffnen Sie die Pipeline und fügen Sie den Knoten ConvertSfMFormat hinzu. Verwenden Sie die SfMData des Knotens StructureFromMotion als Eingabe. Geben Sie für die Ausgabe die Images Folder des Knotens Texturing an.

Meshroom add Convert node

Der letzte Schritt besteht darin, das Format anzugeben. Klicken Sie auf SfM File Format im Knoten ConvertSfMFormat und wählen Sie ply aus der Dropdown-Liste:

Meshroom Convert format

Klicken Sie mit der rechten Maustaste auf den erstellten Knoten und wählen Sie Compute:

Meshroom compute task

Sobald der Vorgang abgeschlossen ist, finden Sie die gewünschte Datei im Verzeichnis:

[Your_Project_Path]\MeshroomCache\ConvertSfMFormat\[Random_Symbols]\sfm.ply

Du kannst sie auf zwei Arten in Blender laden: über das oben erwähnte Plugin oder über den Standard-Importprozess File - Import - Stanford PLY (.ply):

Blender import points cloud

Für weitere Informationen zur Verwendung dieses Plugins empfehlen wir, das Projekt-Repository oder eine spezialisierte Web-Ressource zu konsultieren.

Schlussfolgerung

Photogrammetrie ist ein großes Wissensgebiet, in dem wir versucht haben, nur einige grundlegende Techniken zur Umwandlung von 2D-Bildern in ein 3D-Modell zu vermitteln. Dies wird in vielen Branchen eingesetzt, von der Architektur bis zur Erstellung von Computerspielen.

Nachdem Sie die ersten Erfahrungen mit der Aufnahme eines Datensatzes und seiner konsistenten Umwandlung in ein 3D-Modell gesammelt haben, können Sie Ihre Fähigkeiten verbessern und physische Objekte in einen virtuellen 3D-Raum übertragen. Nun, LeaderGPU wird Ihnen mit Rechenleistung helfen, die Berechnungszeit zu reduzieren und Ihre Workstation für andere, oft höher priorisierte Aufgaben freizugeben.

Siehe auch:



Aktualisiert: 12.08.2025

Veröffentlicht: 21.01.2025