Was ist Photogrammetrie?

Photogrammetrie ist technisch gesehen kein 3D Scanverfahren.

Während ein 3D Laserscanner seine Umgebung mit Laserstrahlen abtastet und mit dieser Vermessung eine Punktwolke aus Koordinaten erstellt, nutzt man beim photogrammetrischen Verfahren Fotografien als Grundlage. Die Software rekonstruiert aus einer Serie aus unterschiedlichen winkeln aufgenommenen Bildern ein digitales 3D Modell. Durch die leichte Parallaxverschiebung zwischen den unterschiedlichen Bildern kann ein 3D Objekt rekonstruiert werden.

 

Aber fangen wir bei den Grundlagen an:

Bildproduktion

Um präzise Modelle zu errechnen, solltest du bei der Bildproduktion Folgendes beachten:

Kamera

  • Kamera mit mehr als 5 Megapixel (mehr geht immer, weniger wird schwierig)
  • Kamera mit manuell einstellbarer Blende ( f=8 oder höher) für Bilder mit grosser Tiefenschärfe (viel Tiefenschärfe liefert genauere 3D Modelle)
  • ein Objektiv mit 50mm (35mm Äquivalent) Brennweite ist ideal

Kameraeinstellungen

Bezüglich Kamerahandling solltest du Folgendes beachten:

  • Blende: Nutze eine möglichst hohe Blendenzahl um eine hohe Tiefenschärfe in den Bildern zu erzielen: f=8 oder höher
  • ISO: wähle die tiefste ISO-Zahl, die bei deiner Kamera in dem entsprechenden Licht gerade noch geht
  • Objektivwahl: Es sollten alle Bilder mit der selben Brennweite aufgenommen werden. Beachte die Do’s and Dont’s:
    • Fixbrennweite: idealerweise +/- 50mm (35mm Äquivalent)
    • Zoom-Objektiv geht selbstverständlich auch! Aber: Zoome nicht, behalte bei allen Bildern dieselben Einstellungen. Eine Serie von Bildern mit unterschiedlicher Brennweite kann zu ungenauen Resultaten führen
    • Ultraweitwinkel sollten vermieden werden
  • Blitz: Bilder aufzublitzen sollte vermieden werden – ausser man arbeitet mit einer Softbox oder Ähnlichem (siehe Licht/ Beleuchtung)

Kamerahandling

Das Objekt soll aus möglichst vielen unterschiedlichen Winkeln fotografiert werden. Damit das Programm möglichst viele Bezugspunkte in den Bildern finden kann, sind 60-80% Überlappungen gut. Das heisst, die Bilder sollten mit geringen Verschiebungen aufgenommen werden.

  • Landschaften werden umkreist / in einem Raster aufgenommen
  • Objekte werden umkreist – auch mehrmals in verschiedenen Höhen
  • In einem Raum folgt man den Wänden

Objektauswahl

Objekte eigenen sich besser für erste Tests mit Photogrammetrie als Räume.

Folgende Punkte sind zu beachten, um genaue Photoscans von Objekten zu erhalten. Die Objekte sollen:

  • nicht reflektieren,
  • nicht in Bewegung sein (Bewegungsunschärfe)
  • keine Transparenzen aufweisen

Bestens eignen sich solide, matte Objekte mit einer unregelmässigen Oberflächenstruktur z.B. Steine, Baumstämme, Bronzestatuen mit Patina etc.

Tipp: Wenn du ein transparentes oder reflektierendes Objekt (z.B. ein Trinkglas, ein Autorücklicht oder den Balloon Dog von Jeff Koons) scannen willst, kannst du es mit einem leicht abwaschbaren Pulver bestäuben. Durch einen leichten Pulverauftrag erhältst du eine Oberfläche, die du besser scannen kannst. Das Pulver muss nicht perfekt homogen & flächendeckend auf der Oberfläche verteilt werden. In der Regel helfen Unregelmässigkeiten dem Programm die Bilder auszurichten.

Licht / Beleuchtung

Schlechtes Wetter ist gutes Wetter – zumindest wenn es bewölkt ist. Damit hast du indirekte, diffuse Beleuchtung und deswegen später keine störenden Schatten auf der Textur deines 3D Modells.

Solltest du dich entscheiden im Studio oder in einem Innenraum zu fotografieren, dann solltest du eine Softbox nutzen, um dein Objekt mit weichem Licht zu beleuchten. Das kann durchaus auch improvisiert werden. Mit einem Aufsteckblitz frontal aufzublitzen ist nicht ratsam.

Wie viele Fotos brauche ich?

Das hängt einerseits von der Grösse deines Objekts ab und andererseits von der Genauigkeit, die du im Nachhinein von deinem virtuellen Objekt erwartest. In der Regel reichen 30- 150 Bilder für fast alle Modelle. Weniger ist mehr: bei 300 oder mehr Bildern zieht sich die Berechnung zeitlich so stark in die Länge, dass ein Tweaken zu einer Geduldsprobe wird. Falls du die Bilder z.B. für ein Game oder eine Onlineanwendung brauchst, macht es wenig Sinn Highpoly-Objekte mit mehreren Millionen Polygonen zu rechnen.

Objekt fotografiert – was nun?

Du hast ein Objekt in einer Bildserie festgehalten und willst nun endlich loslegen. Wir haben zwei Programme auf unserem Rechner im MediaLab: Agisoft Metashape und Meshroom.

 

Workflow: Agisoft Metashape

Installation

Hier kannst du dir die Software herunterladen und danach auf deinem Computer installieren: https://softwaredownload.hslu.ch/

Solange du im Netzwerk der HSLU bist oder über VPN damit verbunden bist, kannst du die Software nutzen.

Preferences

MAC: Menu > Metashape > Preferences

PC: Menu > Tools >

Stelle sicher, dass unter Preferences die GPU`s aktiviert hast öffne die Preferences und gehe zum Reiter GPU und setze die Häckchen neben den verfügbaren Grafikeinheiten deines Computers.

First Steps

Zuerst einen überblick über die Programmoberfläche:

  • pink: Menu
  • grün: Toolbar
  • blau: Workspace
  • rot: Model Viewport

Chunk öffnen

Um ein neues Projekt zu erstellen, öffnest du erstmal ein neues Chunk mit dem ersten Icon im Workspace links oben.

Bilder Importieren

In das durch doppelklick angewählten Chunk kannst du deine Bilderserie importieren. Dies kann per drag & drop auf das nun Fett markierte Chunk geschehen oder du wählst das Bildsymbol rechst dem Chunksymbol und wählst im Popup-Fenster deine Fotoauswahl an.

 

Align Photos – erste Bearbeitungsstufe

  • Menu > Workflow > Align Photos

Wenn du die Bilder geladen hast, öffnest du im Menu den Reiter Workflow und klickst Align Photos an. Hier kannst du Einstellungen zur Präzision Vornehmen: in den meisten Fällen empfehle ich hier High zu nehmen. Wenn du diesen Schritt startest, werden deine Bilder das erste mal ausgerichtet – Agisoft Metashape rekonstruiert nun die möglichen Kameraperspektiven anhand der Bilder.

Überprüfen der Punktegruppe, Bearbeitungsregion korrigieren.

Punktewolke niedriger Dichte (low density point cloud)
Das Programm hat nun deine Bilder ausgerichtet und eine Punktewolke von niedriger Dichte generiert (low density point cloud). Durch diese Punktewolke kann man bereits die Umrisse des ursprünglich gescannten Projekts erahnen.

Anpassen der Objektregion
Nun wird die Objektregion angepasst: Das Objekt, das uns wirklich interessiert, wird in diesem Kasten festgelegt. Alles was innerhalb dieses festgelegten Kastens liegt wird von dem Programm in den weiteren Arbeitsschritten als relevant angeschaut und berechnet. Pass die Region so an, wie du sie haben willst.

Dieser Schritt wird wichtig, wenn du ein grosse Projekte (viele Fotos, viele Chunks) berechnest. Je exakter die zu berechnende Region, desto schneller wird das entsprechende Objekt errechnet. Der Computer berechnet keine unnötigen Details.

Erstellen einer Punktewolke mit hoher Dichte

  • Menu > Workflow > Build Dense Cloud

Nachdem du im Menu Worklfow > Build Dense Cloud ausgewählt hast, kannst du im Popup-Menu die Präzision einstellen. In der Regel reicht es, einen Wert zwischen Low und High zu wählen. Generell gilt: Je höher die Genauigkeit, desto länger dauert der Berechnungsprozess.Ultra High kann deine Renderzeiten erheblich verlangsamen.

Da dieser Prozess Zeit in Anspruch nimmt, ist es nun Zeit für Kaffeepause.

Erstellen eines Meshs

  • Menu > Workflow > Build Mesh

Surface Type: Arbitrary (3D für 3D Modelle (print, animation etc.) / Height field (2.5D für Pläne ect.)
Source Data: in der Regel: Dense Cloud / Sparse cloud (die erste Berechnung: Low Density Point Cloud)
Facecount: Hier wird es interessant: eine hohe Anzahl Polygone liefert dir ein sehr detailliertes Objekt. Viele Details bedeuten aber auch schwere Dateien: für Games und Webapplikationen sollten deshalb niedrige Werte genutzt werden.

Erstellen einer Textur

  • Menu > Workflow > Build Texture

Mapping Mode: Generic (empfohlen) für Karten kann Orthophoto interessant sein
Blending Mode: Mosaic
Texture size: 4096 x1 (wenn du eine hochauflösende Textur willst, kannst du hier hochschrauben)

3D Modell exportieren

  • File > Export Model

Für die weitere Verwendung in Blender, C4D, Maya etc. empfiehlt sich das Format .obj. Nun brauchst du nur noch das gewünschte Textur-File auszuwählen und weiter geht’s. Wenn du dein Modell drucken willst, kannst du es auch als .stl ausspielen.

[Advanced] Gebrauch der Batch Process Funktion

Wenn du mehrere Chunks gleichzeitig rechnen willst, kannst du über die Batch Process Funktion eine Stapelverarbeitung programmieren.