SfM/Structure from Motion (nicht nur) unter Wasser

3D-Photogrammetrie mit Agisoft Metashape und anderen. Workshop zur Einführung für die Endausbildung zum/zur geprüften Forschungstaucher*in, CAU Kiel, erstmalig September 2019. Stand: 10/2026

von Ulf Schleth

Ein Sportbootwrack in Bearbeitung mit Agisoft Metashape

Ein Sportbootwrack in Bearbeitung mit Agisoft Metashape

Die aus der Geodäsie (Landvermessung) stammende Photogrammetrie „ist eine Gruppe von Messmethoden und Auswerteverfahren der Fernerkundung, um aus Fotografien und genauen Messbildern eines Objektes seine räumliche Lage oder dreidimensionale Form zu bestimmen. Im Regelfall werden die Bilder mit speziellen Messkameras aufgenommen. „1

Structure from Motion2 (SfM) ist ein Verfahren der Photogrammetrie, aus der die verwendeten Techniken und Algorithmen stammen. Mit seiner Hilfe können aus 2-dimensionalen Bildinformationen aus verschiedenen Winkeln und Perspektiven 3d-Daten berechnet werden. Dies geschieht durch Featuredetection, mit der Merkmalspunkte erkannt und extrahiert werden können, Zuordnung homologer Punktepaare, relative Orientierung von Bildpaaren, Ausreißerdetektion und die Bündelblockausgleichung.  SfM ist eine Methode der 3D-Photogrammetrie, die Begriffe sind keine Synonyme füreinander.

Vorteile

  • Fundstätten können schonend räumlich dokumentiert werden. Hilfreich für die Vor- und Nachbereitung von Projekten.
  • Fotografische Arbeiten können u.U. auch von Drohnen vorgenommen werden.
  • So lange ein Maßstab vorliegt, können auch nachträglich genaue Vermessungen  durchgeführt werden.
  • Spart Aufwand, Geld und Risiko (sowohl für Menschen als auch für Material)
  • Gut für die Öffentlichkeitsarbeit: Artefakte können 3dimensional erlebbar gemacht werden, etwa durch 3D-Druck, Virtual/Augmented Reality oder Weiterverarbeitung in 3D-Animationssoftware wie Blender.

Software

  • Verschiedene Freeware-/Open Source-Programme und Webdienste, allen voran COLMAP und Meshroom, zwei sehr mächtige Applikationen für den ganzen SfM Workflow.3
  • Agisoft Metashape. Deckt mehr oder weniger den gesamten Workflow ab, erkennt Merkmalspunkte, generiert Punktwolken, erlaubt deren Bearbeitung, bildet Gitternetze und kann sogar Texturen aus den verwendeten Fotos extrahieren und simple Animationen erstellen. Die Professional-Version kostet z. Zt. 3499 $, die Standard-Version 179$. Die Educational License ist mit 549$/59$ entsprechend günstiger. Beide Versionen können für 30 Tage kostenlos verwendet werden. Die Professional-Version bietet darüber hinaus vor allem: Marker, Passpunkte (GCPs) und Maßstäbe (Scale Bars), wobei coded targets automatisch erkannt werden. Das hilft bei schwierigem Bildmaterial und ist Voraussetzung für Messungen von Strecken, Flächen und Volumen. Außerdem gibt es Georeferenzierung, georeferenzierte Orthomosaike und Höhenmodelle (DSM/DTM), automatische Klassifizierung der Punktwolke, die Verarbeitung von Multispektral- und Thermalbildern sowie Rechnen im Netzwerk oder in der Cloud. Vor allem aber hat nur Pro eine Python- und Java-Schnittstelle: Damit lassen sich Arbeitsabläufe per Skript automatisieren und eigene Funktionen in die Oberfläche einbauen. Agisoft stellt dafür Beispielscripte auf GitHub bereit. Darauf baut auch ein inoffizieller MCP-Server auf (ab Pro 2.3). Über ihn kann man Metashape per KI-Assistent wie Claude in natürlicher Sprache steuern, vom Import über Align und Modell bis zum Export. Das ist allerdings ein frühes Hobbyprojekt eines einzelnen Entwicklers und kein Agisoft-Produkt.
  • Realityscan vom Spielehersteller EPIC Games. Es ist kostenlos für Studierende, Lehrende, Privatpersonen und Firmen unter 1 Mio. US-$ Umsatz, ohne Funktionseinschränkung. Version 2.0 brachte KI-gestütztes Maskieren, bessere Ausrichtung und visuelle Qualitätsprüfung. Kann ein paar Dinge, die nur Metashape Pro kann. Einschränkung: Es läuft leider nur unter Windows.

Anwendungsbeispiele

Tauchgangsplanung

  • Welches Objekt? Wie groß? Wird ein Ausschnitt gewählt? Welcher? Grosse, ebene oder soiegelnde Flächen meiden.
  • Fotografieren oder Filmen? Beim Fotografieren ist die Bildinformation höherwertig, Filmen ist einfacher und stressfreier.
  • Vorauss. Wetterlage prüfen, insbesondere auch im Hinblick auf Sichtverhältnisse.
  • Sedimentsbeschaffenheit. Muss etwas freigelegt werden? Wie? Bei Strömung z.B. können Objekte häufig gut mit der Hand freigewedelt werden, ohne daß das aufgewirbelte Sediment lange die Sicht trübt. Sind evtl. weitere Geräte wie ein Sedimentsauger nötig?
  • Ist Bewuchs vorhanden? Wie wird damit umgegangen, möglichst ohne biologischen Lebensraum zu beeinträchtigen? Können störende Elemente durch Nachbeabeitung korrigiert werden?
  • Wie viele Tauchgänge werden voraussichtlich nötig sein?
  • Auswahl von Equipment und Kamera
    Kamera: Kameras sollten immer die gleiche Brennweite (50mm und geringer) haben. Feste Objektive bevorzugen. Falls Zoom-Objektiv möglichst am Anschlag, um Variationen zu vermeiden. Fischeye-Objektive vermeiden, falls aber nichts anderes zu haben ist, bei der Nachbearbeitung unbedingt Camera calibration verwenden! Metadaten sollten vorhanden sein. Video: Auch mit 4K- oder auch Full HD-Actionkameras (GoPro) läßt sich sehr gut arbeiten. Speicher: Immer auf ausreichend Speicherplatz prüfen, nur schnellen Speicher von renommierten Herstellern verwenden. Bilder nur auf sicheren Wegen übertragen (Messenger zB. komprimieren Bilder und entfernen Metadaten).
    Computer so schnell wie möglich, Agisoft empfiehlt 32GB RAM. CUDA/OpenCL-taugliche Grafikkarten können die Berechnung ebenfalls stark beschleunigen (kann in den Metashape-Einstellungen unter Tools / Preferences / GPU aktiviert werden; für manche Software sind sie zwingend erforderlich).
    Auf gute Beleuchtung achten: Lampen sind hinsichtlich einer gleichmäßigen Beleuchtung und bzgl. Lichtreflexen Blitzen vorzuziehen. Ggfs. Lichtsignale von Equipment abschalten/überkleben um störende Irritationen zu vermeiden. Konstante Lichtquellen sind variablen vorzuziehen.

Tauchgangsvorbereitung

  • Sicherstellen, daß Akkus und Blitze bzw. Lampen geladen sind.
  • Sicherstellen, daß Speicherkarten groß genug / leer / formattiert sind.
  • O-Ringe müssen intakt und ggfs. gefettet sein.
  • Kameraeinstellungen prüfen:
    RAW-Format für Details, JPEG für schnelle Berechnungen / Ergebnisse
    evtl. Serienmodus einstellen (bei RAW u.U. langsamer)
    4K-Auflösung ideal, falls möglich.
    Beim Filmen möglichst auf 50 Frames/sec. hochgehen, um möglichst scharfe Einzelbilder extrahieren zu können.
    Lichtempfindlichkeit(ISO) nicht zu hoch bzw. so gering wie möglich, je nach Rauschverhalten
    Blende nicht zu niedrig (8 oder höher)
    Belichtungszeit mindestens 1/80, besser Wie ist die Umgebung beschaffen? 1/100 oder schneller.
    Weißabgleich: fest auf 5600K oder Tageslicht bei Verwendung von Lampen. Automatik in jedem Fall abschalten.
  • Bedienvorgänge durchspielen
  • Kamera und Blitz testen, Testfotos
  • Wie wird die Kamera am besten montiert? Hand- oder stabilisierender Doppelgriff?
  • Werden die Lampen am Griff montiert? Kann ein Tauchpartner sie übernehmen?
  • Wie und wo wird die Kamera befestigt? Karabiner/Boltsnap, …
  • Wie wird anderes Equipment befestigt, das leicht ins Bild geraten kann?

Tauchgang

  • Fotos / Videos im Team: Tauchpartner achten auf Sicherheit, fragen Flaschendruck ab, halten sich immer aus dem Bild, Blitz-/Lichttaucher über/hinter der Kamerafrau.
  • Fotos aus unterschiedlichen Winkeln/Perspektiven
  • Es sollte möglichst nur das Objekt auf den Bildern zu sehen sein.
  • Bilder sollten sich 70-80% überlappen! Wenn sie sich weniger als zu 1/3 überlappen, können nicht mehr genügen übereinstimmende Merkmalspunkte gefunden werden.
  • Nicht zu nah (Verzerrung), nicht zu weit weg
  • Spiralförmig, gut für kleinere Objekte. „Rasenmäher“ gut für große, flache Objekte:
    Tauchmuster
  • Keine großen, schnellen Bewegungen zwischen den einzelnen Fotos!
  • Langsames und ruhiges Tauchen (Frog Kick / Back Kick ist für Rückwärtsbewegungen sehr wichtig). Auch die auf Präzision ausgelegten Flossenschläge „modified flutterkick“ und „modified frogkick“ sind von Interesse.
  • Sedimentkontakt vermeiden!
  • Eventuell Maßstab zum Größenvergleich ins Bild legen.
  • Bei schwierigen Oberflächen und kontrastarmem Grund oder weiteren Entfernungen physische Marker installieren.

Mögliche Probleme beim Tauchgang

  • Nicht genügend Überlappung (Keine Eile!)
  • Zu wenig Bilder (Keine Eile!)
  • Zu nah am Objekt: führt mit falschem Objektiv / Einstellungen zu Verzerrungen, mit dem richtigen ist es zu nah am Objekt sehr leicht, versehentlich nicht ausreichend Fotos zu machen.
  • keine Fotos während einer Drehung
  • Harte Schatten – schlechtes Licht
  • unscharfe Bilder
  • Sonnen- / Gegenlicht
  • Sich bewegende Fische & Pflanzen
  • Schlechte Sicht

Tauchgangsnachbereitung

  • Debriefing und Auslesen der Daten.
  • Falls gefilmt wurde, Einzelbilder extrahieren, z.B. mit VLC:
    Tools->Preferences unten „Show settings“auf „All“ stellen.
    links Video->Filters anklicken und rechts bei „Scene video filter“ ein Häkchen setzen.
    links Video->Filters->Scene filter anklicken.
    ggfs. „Filename prefix“ ändern.
    In „Directory path prefix“ den Ordner einragen, in dem die Einzelbilder landen sollen.
    Häkchen bei „Always write to the same file“ löschen, falls vorhanden.
    In „Recording ratio“ eine sinnvolle Größe eintragen, bei 5 wird z.B. jeder 5te Frame extrahiert.
    VLC neu starten. Video laden. Mit Abspielen des Videos werden die Frames extrahiert.
    Nicht vergessen, „Scene video filter“ wieder auszuschalten, sonst werden beim Ansehend es nächsten Videos die Einzelbilder überschrieben.
    Alternativ kann man ffmpeg verwenden um auf der Kommandozeile Bilder zu erzeugen. Mit

    ffmpeg -i input.mp4 -vf fps=20 out%d.png

    werden 20 Bilder (frames) pro Sekunde in Bilder gespeichert.

  • Bilder sichten. Ggfs. unscharfe Bilder aussortieren (s.u.) oder Bilder rudimentär nachbearbeiten / beschneiden: Nicht zum Objekt gehörende Störobjekte können entweder durch Transparenz / α -Kanal der Bilder oder durch späteres Maskieren in der SfM-Software entfernt werden. Zur Erkennung von unscharfen Bildern gibt es verschiedenste Hilfssoftware und Python-Scripte im Internet finden, die mit Hilfe von OpenCV unscharfe Bilder erkennen.

SfM-Workflow mit Agisoft Metashape

  • Add Photos: Bilder importieren. Falls mehrere Datensätze existieren in verschiedenen Chunks. Achtung: Die Bilder werden nicht kopiert, also die Dateien nicht löschen.
  • Durch Markieren der Fotos und die Funktion „Estimate Image Quality“ (erst im „Photos“ Fenster die Detailansicht aktivieren) läßt sich zusätzlich eine Aussage über die Qualität der Bilder finden, so daß sich schlechte leichter aussortieren lassen. Beurteilt wird aber die Schäfste Stelle des Fotos. Wenn das der Fisch ist und nicht das Wrack: Pech gehabt.
  • Align Photos: Accuracy Medium (geht schnell, high kann bei schlechtem Bildmaterial zu unerwünschten Ergebnissen führen). Key point limit 40.000, Tie Point limit 4.000 (default).
    Erscheint die Meldung „Some photos failed to align …“ kann man folgendes versuchen: Unter Tools / Preferences / Advanced „Keep key points“ einschalten, evtl. vorher nicht mit einbezogene Bilder hinzufügen und dann erneut Workflow / Align Photos aufrufen.
  • Build Model: Source data „Depth maps“ (= Tiefenkarten, können, wenn  Tools → Preferences… → Reiter Advanced → „Keep depth maps“ ausgewählt ist, am Photos-Fenster angesehen werden) unter , Surface type „Arbitrary(3D)“, Face count „High“ (defaults)
    Löcher lassen sich am besten nachträglich stopfen, indem neue Fotos hinzugefügt in einem neuen Chunk hinzugefügt und neu berechnet werden. Ist das nicht möglich, ist die Funktion /Tools/Mesh/Close Mesh hilfreich. Sind grosse Fotomengen vorhanden ist es möglich, erst ein grobes Mesh zu erzeugen und dann mit Hilfe von /Tools/Reduce Overlap redundante Bilddaten, die nur unnötig den Prozess verlangsamen zu entfernen.
  • Build Texture
  • Build Point Cloud: Optional. Kann zum Versäubern benutzt werden oder wenn es für GIS oder zur Vemessung braucht. Quality Medium, für Depth filtering sind die Einstellungen „Mild“ oder „Moderate“ oft ausreichend, „Aggressive“ sollte verwendet werden, wenn das Objekt / die Bilder keine große Detailtiefe haben.
  • Es gibt Fälle, in denen die geometrische Auflösung von Metashape zu hoch ist und zu sehr zu Lasten der Performance einer Anwendung gehen (ZB für Online-Anwendungen). In diesen Fällen lässt ist das „Decimation Tool“ (/Tools/Mesh/Decimate Mesh) hilfreich.
  • Die hier genannten Werte sind nicht obligatorisch, sondern Erfahrungswerte für schnelle und qualitativ akzeptable Ergebnisse.

Sonstige Weiterverarbeitung

  • 3D Gaussian Splatting ist eine 2023 von Kerbel und Kollegen eingeführte Technik, die, ausgehend von den aus Metashape exportierten Kameras im Colmap-Format , an jeden dieser Punkte einen unscharfen, halbtransparenten Farbklecks setzt, dessen Form, Farbe und Deckkraft so lange an die Fotos angepasst werden, bis eine oft fotorealistischere Darstellung als mit einem texturierten Mesh entsteht, die sich jedoch mangels geschlossener Oberfläche eher zur Präsentation als zur Vermessung eignet. Lichtfeld Studio oder Brush zum Berechnen, Supersplat zum bearbeiten.
  • Zum Vermessen können Tools wie der Agisoft Viewer oder CloudCompare verwendet werden, es muss aber immer noch anhand einer Referenz jede Messung nachberechnet werden.
  • CloudCompare kann noch mehr: Aus exportierten Punktwolken oder Meshes zB. im PLY Format durch den Vergleich vonm 2 Modellen den Verfall von Wracks messbar machen (M3C2 Plugin), Plugins für Strukturgeologie, Volumenänderung, …
  • Import der Daten in Blender oder andere 3D-Software.
  • Zur öffentlichen Archivierung von SfM-Daten wäre für Forschende eher Zenodo geeignet.
  • Zu Demonstrationszwecken gibt es das Portal Sketchfab, das es erlaubt, 3D-Dateien hochzuladen, zu präsentieren und in eigene Websites einzubinden. Datenschutzbestimmungen / AGB beachten.
    Mit Agisoft Metashape können die Modelle als .fbx – Datei ex- und in Sketchfab importiert werden. Die Bild-datei mit der Textur speichert Metashape im selben Ordner. Sie muss in Sketchfab seperat in den 3d-settings des Models unter materials / diffuse hochgeladen werden.

Übung 1 – über Wasser

  • Es wird ein kleineres Objekt (Tennisball bis Melonengröße) ausgewählt und 30 bis 40 Fotos aus verschiedenen Winkeln/Perspektiven gemacht, aus denen dann das Model berechnet wird.
  • Beispiel: steinzeitlicher Mörser. 33 Fotos, mit dem Handy aufgenommen. Man sieht deutlich, daß der untere Sockelbereich nicht sorgfältig genug fotografiert wurde.

    Übung 1 – steinzeitlicher Mörser
    by uschleth
    on Sketchfab

Übung 2 – unter Wasser

  • Es wird ein passendes Objekt gesucht, das nicht zu tief liegen sollte, um ggfs. ohne Beleuchtung arbeiten zu können.

Links

Hinweis

Bei den Webdiensten sollte man sich AGB & Datenschutzbedingungen gut durchlesen, auch im Hinblick auf Positionsdaten.

Danke

Vielen Dank für Infos und Material an den Verein für Unterwasserarchäologie Berlin-Brandenburg (auf Sketchfab hier), Florian Huber, Emily Anderson, Benedikt & Jonathan Witte, Lukas Goldmann, André Wolfstein und das Internet.

 

  1. Wikipedia: Photogrammetrie
  2. Wikipedia: Structure from Motion
  3. Image Matching / Structure from Motion (SfM) — Chair of Photogrammetry — TU Dresden: Freeware SfM Tools
Dieser Text gefällt Dir?

Kommentar schreiben

Die E-Mail-Adresse wird nicht angezeigt. Felder mit * müssen ausgefüllt werden.

*

*