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, September 2019.

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, VirtualAugmented Reality oder Weiterverarbeitung in 3D-Animationssoftware wie Blender.

Software

  • Verschiedene Freeware-/Open Source-Programme und Webdienste, allen voran VisualSFM. Bei den Webdiensten sollte man sich AGB & Datenschutzbedingungen gut durchlesen, auch im Hinblick auf Positionsdaten.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. Leider kann man nur in der Professional-Version manuell Marker setzen und coded targets erzeugen, was bei schwierigem Bildmaterial hilfreich sein kann.

Anwendungsbeispiele

Tauchgangsplanung

  • Welches Objekt? Wie groß? Wird ein Ausschnitt gewählt? Welcher?
  • 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. Verfügbarkeit von Speicherplatz prüfen.
    Computer so schnell wie möglich, Agisoft enpfiehlt 32GB RAM. OpenCL-Grafikkarten können die Berechnung ebenfalls stark beschleunigen (muss in den Einstellungen unter Tools / Preferences / GPU aktiviert werden).
    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 einerr Drehung
  • Harte Schatten – schlechtes Licht
  • unscharfe Bilder
  • Sonnenlich / 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 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“ läßt sich zusätzlich eine Aussage über die Qualität der Bilder finden, so daß sich schlechte leichter aussortieren lassen.
  • 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 Dense Cloud: Quality Medium, für Depth filtering sind die EInstellungen „Mild“ oder „Moderate“ oft ausreichend, „Aggressive“ sollte verwendet werden, wenn das Objekt 7 di eBilder keine große Detailtiefe haben.
  • Build Mesh: Source data „Dense cloud“, 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
  • 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 obligartorisch, sondern Erfahrungswerte für schnelle und qualitativ akzeptable Ergebnisse.

Sonstige Weiterverarbeitung

  • Import der Daten in Blender oder andere 3D-Software.
  • 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

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.

*

*