Haben Sie sich jemals gewünscht, dass Sie einfach ein reales Objekt in eine digitale Datei übertragen könnten? Die Technologie ist da, aber die meisten von uns haben einfach keinen Zugang zu High-End-3D-Scannern, die die digitale Geometrie eines physischen Modells rekonstruieren können.  Ganz zu schweigen davon, dass einige Objekte für jeden herkömmlichen 3D-Scanner viel zu groß sein können. Es gibt jedoch eine andere, viel billigere Möglichkeit, 3D-Modelle zu erstellen, die realen Objekten entsprechen.

Was ist Fotogrammetrie?

Fotogrammetrie (oder SFM – Structure From Motion) ist ein Verfahren, das die dreidimensionalen Koordinaten von Oberflächenpunkten anhand von Bildern eines einzelnen physikalischen Objekts aus verschiedenen Winkeln schätzt. Zumindest ist das die vereinfachte einzeilige Erklärung. Man nimmt eine Reihe von Bildern des Objekts aus allen möglichen Richtungen auf, dann verwendet man diese Fotos als Input für eine spezialisierte Software. Diese Software sucht nach Merkmalen, die in mehreren Bildern sichtbar sind, und versucht zu erraten, von welchem Punkt aus das Bild aufgenommen wurde. Da sie die Kamerapositionen und -ausrichtungen kennt, erzeugt sie einen 3D-Punkt, der dem 2D-Merkmal auf dem Foto entspricht (im Grunde ein Pixel). Im Idealfall erhalten Sie ein fertiges 3D-Netz als Ausgabe. Oftmals ist es jedoch besser, die rekonstruierten Punkte manuell zu einem Netz zu verarbeiten, um wesentlich bessere Ergebnisse zu erzielen.

Software

Die Liste der verfügbaren Fotogrammetrie-Software ist ziemlich lang. Das Problem ist, dass die meisten Programme entweder sehr teuer oder in den Funktionen der freien Version eingeschränkt sind. Einige Programme bieten sogar eine cloud-basierte Berechnung an, was zwar praktisch ist, aber die Kosten weiter erhöht.

Wir haben versucht, die beste kostenlose Software auszuwählen:

  • Colmap (Win/Mac/Linux) – wird in diesem Artikel verwendet
  • 3DF Zephyr (Win) – Frei mit der Beschränkung auf maximal 50 Fotos
  • Visuelles SFM (Win/Mac/Linux)

Wir werden auch eine Art Software für die Nachbearbeitung der Ausgabedaten benötigen. Die Auswahl ist hier ziemlich einfach – Meshlab.
Die Berechnung ist ziemlich anspruchsvoll für die Hardware. Der Betrieb auf einem alten Laptop ist möglicherweise nicht möglich, da die Berechnungszeiten extrem lang werden würden. Viele Anwendungen hängen auch von der NVIDIA CUDA-Schnittstelle (Colmap) ab, die nicht auf AMD-Grafikkarten läuft.

Aufnahme von Bildern für die Fotogrammetrie

Natürlich brauchen Sie eine Kamera. Eine Smartphone-Kamera wird gut funktionieren, aber wenn Sie eine DSLR haben, ist sie noch besser. Wenn Sie eine DSLR verwenden, drehen Sie die Blende auf mindestens 7-8, um die Schärfe zu erhöhen und eine geringe Schärfentiefe zu vermeiden.

Sie werden mindestens 20 Bilder aufnehmen wollen. Während unserer Tests haben wir oft 50-80 Bilder aufgenommen, um jedes Detail zu erfassen. Denken Sie daran, dass einige Bilder verworfen werden könnten, wenn das Programm nicht genügend Ähnlichkeiten mit anderen Bildern findet.

  1. Bewegen Sie sich kreisförmig um das Zielobjekt. Bewegen Sie das Objekt oder seine Umgebung nicht zwischen den Bildern.
  2. Überlappung! Sie sollten jeden Teil des Modells mit mindestens 2 Bildern erfassen lassen. Im Idealfall haben Sie etwa 60-80% Überlappung bei den nachfolgenden Bildern.
  3. Harte Schatten vermeiden, diffuses Licht verwenden oder die Bilder an einem halb bewölkten Tag im Freien aufnehmen.
  4. Das Objekt sollte einen signifikanten Anteil an jedem Bild ausmachen.
  5. Bewegte Ziele vermeiden (z.B. Haustiere, sofern sie nicht schlafen).
  6. Hochglänzende oder durchsichtige Ziele vermeiden. (Mehr dazu später)

Ideale Ziele für die Fotogrammetrie sind strukturierte oder grobe Gegenstände (Statuen). Wenn es möglich ist, können Sie glänzende oder transparente Objekte mit Pulver (Mehl) bedecken, um Reflexionen zu vermeiden. Oder die glänzende Oberfläche mit einem Malerklebeband abdecken.

Fortgeschrittene Benutzer können auch ein Video des Ziels aufnehmen und es dann in einzelne Frames konvertieren. Halten Sie in diesem Fall die Verschlusszeit hoch (z.B. 1/80), um unscharfe Bilder zu vermeiden.

Rekonstruktion von Geometrie aus Fotos

Wir schlagen vor, einen Ordner zu erstellen, der alle Dateien für eine einzige Rekonstruktion enthält. Erstellen Sie in diesem Ordner einen weiteren Ordner mit dem Namen „Fotos“ und legen Sie alle Ihre Bilder hier ab. Gehen Sie die Fotos schnell durch und löschen Sie alle verschwommenen. Für die Rekonstruktion verwenden wir unter Windows 10 Colmap.

  1. Starten Sie Colmap mit Colmap.bat
  2. Wählen Sie aus dem oberen Menü Rekonstruktion – Automatische Rekonstruktion
  3. Arbeitsbereich, dieser Ordner wird für die Speicherung von Rekonstruktionsberechnungen und des Ausgabe-Netzes verwendet.

    • Erstellen Sie zu diesem Zweck ein weiteres Verzeichnis neben dem Ordner Fotos
  4. Wählen Sie den Ordner Fotos aus, der alle Ihre Bilder enthält
  5. Sie können den Vokabularbaum leer lassen, alternativ können Sie einen von dieser Download-Seite
  6. herunterladen und verwenden.

  7. Behalten Sie den Datentyp als Einzelbilder oder ändern Sie ihn in Videobilder, wenn Sie die Bilder aus Video erstellt haben
  8. Ändern Sie die Qualität auf Mittel
    • Sie können es mit Qualität Hoch versuchen, aber nach unserer Erfahrung stürzt Colmap bei dieser Einstellung sehr oft ab
  9. Lassen Sie andere Einstellungen mit Standardwerten und drücken Sie Ausführen
  10. Dieser Vorgang kann zwischen 5 Minuten und scheinbar ewig dauern, abhängig von der Anzahl der Fotos und der Spezifikationen Ihres PC

Wenn Colmap die Rekonstruktion abgeschlossen hat, erhalten Sie eine rekonstruierte Ansicht der Szene und der geschätzten Positionen der Kamera.

Colmap-Aufbau und fertige Ansicht der rekonstruierten Szene

Colmap-Ausgabe

Als Ausgabe erstellt Colmap zwei Dateien, die uns interessieren, fused.ply und meshed.ply. Sie finden sie in einem Unterordner im Arbeitsbereichsordner, den Sie zuvor erstellt haben (Workspace folder/dense/0/). Meshed.ply ist, wie der Name schon sagt, ein bereits trianguliertes Netz. Colmap ist nicht die beste Methode zum Erstellen von Netzen aus den aufgezeichneten Daten, aber wenn Sie sich etwas Arbeit ersparen wollen, ist das Netz auf jeden Fall verwendbar. PLY kann z.B. in Meshmixer oder Meshlab leicht in STL umgewandelt werden. Es ist jedoch keine gute Idee, dieses Mesh direkt zu drucken. Alle durch 3D-Scannen oder Photogrammetrie erzeugten Gewebe enthalten normalerweise eine Menge Fehler und es fehlt die flache Basis, die leicht auf dem Druckbett platziert werden könnte. Folgen Sie unserem Leitfaden zu Reparatur beschädigter 3D-Modelle und Modelle schneiden, um zu erfahren, wie diese Probleme behoben werden können. Denken Sie auch daran, dass der Maßstab des gescannten Objekts ziemlich zufällig sein wird, also passen Sie ihn entsprechend an.

Die zweite Datei ist die interessantere. Die Datei fused.ply enthält eine sogenannte Punktwolke. Es handelt sich nur um eine Menge von Punkten im Raum, keine Dreiecke und daher kein Netz. Wir müssen das Netz selbst erstellen, das ist eine zusätzliche Arbeit, aber das Ergebnis ist normalerweise viel besser.

Netz aus Punktwolkendaten erzeugen

  1. Öffnen Sie Meshlab, Wählen Sie Datei – Mesh importieren und wählen Sie die Datei fused.ply Datei
  2. Die aufgenommene Szene wird Ihnen aus 3D-Punkten präsentiert.
  3. Wählen Sie das Eckpunkte auswählen-Werkzeug aus der Hauptsymbolleiste (oben) und verwenden Sie es, um alle Punkte auszuwählen, die Sie löschen möchten.
    • Das Werkzeug arbeitet als Kastenauswahl, halten Sie die linke Maustaste gedrückt, um eine Auswahl zu erstellen
    • Sie können die Strg-Taste gedrückt halten, um zu den bereits ausgewählten Eckpunkten weitere hinzuzufügen
  4. Klicken Sie auf die Schaltfläche Eckpunkte löschen in der Hauptsymbolleiste. Ausgewählte Eckpunkte werden verschwinden
  5. Wiederholen Sie die Schritte 3-4, solange bis Sie für das gescannte Objekt sämtliche Punkte, die Sie für die Erstellung des Netzes verwenden wollen, erzeugt haben
  6. Auswahl Filter – Neuvernetzung, Vereinfachung und Rekonstruktion – Abgeschirmte Poisson-Oberflächenrekonstruktion
    • Die Rekonstruktionstiefe hat einen großen Einfluss auf das Endergebnis. Werte zwischen 13-15 sehen in der Regel am besten aus und benötigen eine gewisse Zeit, um zu berechnen.
    • Andere Einstellungen funktionieren normalerweise am besten bei Standardwerten, aber Sie können gerne mit ihnen experimentieren
  7. Wählen Sie Anwenden, um ein Netz zu erstellen
  8. Die Ränder Ihres Modells enden in der Regel in einer seltsamen Form oder rollen sich sogar zusammen und bilden einen riesigen Klecks.
    • Ähnlich wie bei der Auswahl und dem Löschen von Eckpunkten können Sie dasselbe mit Dreiecken tun, indem Sie die Werkzeuge Auswahl im Dreiecksbereich und Flächen löschen aus der Hauptwerkzeugleiste verwenden
  9. Wählen Sie Datei – Netz exportieren
    • Wenn Sie den Scan in digitaler Form mit der Textur teilen wollen, verwenden Sie Formate wie PLY, 3DS oder OBJ
    • Für den 3D-Druck wählen Sie STL

Tipps zur Verbesserung Ihres rekonstruierten Modells

Hier sind einige weitere Tipps, um einige Unvollkommenheiten zu beseitigen und Ihr rekonstruiertes Modell in Meshlab zu verbessern:

  1. Wählen Sie Glättung für Ihr Modell aus dem Menü Filter – Glättung, Verkleidung und Verformung – Laplacian Glättung
    • Versuchen Sie, den Wert Glättungsschritte auf 8-15
    • zu erhöhen.

    • Sie können diesen Prozess so oft wiederholen, wie Sie wollen, aber wenn Sie Ihr Modell zu sehr glätten, werden wertvolle Details wegfallen
  2. Um zusätzliche Flächen loszuwerden, die oft durch die Rekonstruktion erzeugt werden, können Sie Filter – Auswahl – Flächen mit Kanten länger als… auswählen.
    • Klicken Sie Vorschau
    • Ändern Sie den Wert Kantenschwelle so, dass die große Mehrheit der Flächen, die Sie löschen möchten, ausgewählt ist, aber alle Flächen, die Sie behalten möchten, immer noch nicht ausgewählt sind
  3. Wenn Ihr Modell eine große Anzahl von Scheitelpunkten und Flächen hat, kann es schwierig sein, damit zu arbeiten, ganz zu schweigen vom Slicen, das ewig dauern würde. Verringern Sie deren Anzahl mit Filtern – Glättung, Verkleidung und Verformung – Quadric Edge Collapse Decimation
    • Setzen Sie die gewünschte Anzahl von Flächen
    • Alles über 1 Million Ansichten ist definitiv ein Overkill. Selbst 100k Ansichten sind normalerweise mehr als genug

Beispiele

Statuen

Statuen sind perfekt für die Fotogrammetrie. Ihre Oberfläche ist rau, sie können keine Reflexionen erzeugen. Es gibt viele Details und Merkmale, die von der Software verfolgt werden können. Statuen sind normalerweise zu groß für traditionelle 3D-Scanner, ganz zu schweigen von der Unbequemlichkeit, einen 3D-Scanner nach draußen zu tragen und zu versuchen, ihn dort aufzustellen. Aber mit der Fotogrammetrie ist es ganz einfach, nehmen Sie einfach Ihre Kamera und beginnen Sie mit der Aufnahme von Bildern. Da sie jedoch normalerweise draußen aufgestellt werden, gibt es einige Dinge zu beachten. Versuchen Sie zu vermeiden, bewegliche Ziele auf Ihrem Bild zu haben. Wenn Menschen vorbeigehen, lassen Sie Sie sie vorbeigehen und machen Sie in der Zwischenzeit Bilder aus den Richtungen, in denen die Menschen nicht sichtbar sind. Wenn möglich, warten Sie, bis eine Wolke die Sonne verdeckt, damit es keine harten Schatten gibt.

Die Statue der sitzenden Frau von Václav Bejcek aus dem Jahr 1967, das rekonstruierte 3D-Modell (prüfen Sie die 3D-Ansicht auf Sketchfab), und die gedruckte Version

Baby-Groot

Das Scannen eines 3D-Drucks mag dumm erscheinen, die Verwendung der ursprünglichen STL-Datei ist offensichtlich viel besser. Aber es ist ein gutes Beispiel dieser Technik, wir können das rekonstruierte Modell leicht mit der für den Druck verwendeten Original-STL-Datei vergleichen. Ein weiterer legitimer Grund, Fotogrammetrie zur Digitalisierung von 3D-Drucken zu verwenden, ist, wenn Sie das Modell handgemalt haben und es mit der handgemalten Textur teilen möchten.

Wie Sie in der 3D-Ansicht unten sehen können, gibt es in Bezug auf die Geometrie einen offensichtlichen Qualitätsverlust. Dennoch wurden die meisten Merkmale erfolgreich rekonstruiert, und mit ein paar kleinen Ausbesserungen würde das Modell ziemlich gut aussehen. Und die Textur hat auch eine schöne Haptik.

Drücken Sie I und wählen Sie Matcap, um die Textur auszublenden und nur die Geometrie der Modelle zu vergleichen.

Ping Pong Paddle – Umgang mit glänzenden Oberflächen

Die Rekonstruktion eines Tischtennisschlägers war mit einer Ausnahme ziemlich einfach. Die beiden großen Flächen (die, die den Ball schlagen) haben keine Details, um von der Software erkannt zu werden, und zu allem Überfluss sind sie glänzend. Wenn die Kamera um das Paddel kreist, verändert die glänzende Oberfläche ihr Aussehen und reflektiert die umgebenden Lichtquellen. Dies führt dazu, dass auf dieser Oberfläche kaum noch Punkte rekonstruiert werden können. Dies führt letztendlich zu einer falschen Netzform. Um dies zu verhindern, müssen diese Oberflächen mit einigen Details versehen werden. Das kann z.B. mit Malerklebeband erreichen. Kleben Sie einige Streifen davon über glänzende Oberflächen, um Reflexionen zu vermeiden und ein mattes, strukturiertes Aussehen zu erzeugen. In der 3D-Ansicht können Sie den Unterschied sehen, den diese schnelle Veränderung bewirkt hat.

Glas – transparente Flächen

Ähnlich wie bei glänzenden Oberflächen sind transparente Objekte ein Problem. Scharfe Kanten können von der Fotogrammetrie-Software erfasst werden, aber glatte transparente Bereiche werden völlig ignoriert, was zu unvollständigen Daten für die Netzrekonstruktion führt. Auch hier können Sie Malerband verwenden, um diese Flächen abzudecken. Alternativ können Sie wasserlösliche Farben mit einem Sprühgerät verwenden und das Glas verschmutzen.

Zusammenfassung

Durch Fotogrammetrie erzeugte Netze können leicht billige 3D-Scanner übertreffen. Sie können große Objekte nachbilden, die mit herkömmlichen 3D-Scan-Werkzeugen kaum zu erfassen wären. Es ist extrem erschwinglich und die Chancen stehen gut, dass Sie bereits alles haben, was Sie für die Fotogrammetrie benötigen – eine Kamera (Smartphone) und einen etwas leistungsstarken PC. Und es muss nicht mit der Rekonstruktion einer Statue enden. Besitzen Sie eine Drohne? Machen Sie ein paar Fotos, rekonstruieren Sie Ihr Haus und drucken Sie es aus. Also…

Ist Fotogrammetrie ein brauchbares 3D-Scanwerkzeug? Definitiv JA. Sollten Sie rekonstruierte Modelle ohne Nachbesserungen drucken? Wahrscheinlich nicht.

Genau wie bei jeder anderen 3D-Scantechnik wird das endgültige Netz nicht perfekt sein. Einige Bereiche könnten Details fehlen, flache Oberflächen könnten nicht ganz flach werden, das Netz könnte Löcher, nicht mehr vorhandene Kanten oder andere Fehler enthalten. Wenn Sie jedoch in der Lage sind, diese Probleme zu beheben, ist das Endergebnis die Zeit wert.

Quellen

Schonberger, Johannes Lutz and Frahm, Jan-Michael, Structure-from-Motion Revisited. University of North Carolina at Chapel Hill, Eidgenössische Technische Hochschule Zürich.

All3DP – Autodesk 123D Catch Review