COLMAP

Aus WolleDEsHomepage
Zur Navigation springen Zur Suche springen
Das Programmfenster von COLMAP (mit dem geöffneten Fenster "Automatic Reconstruction")
Fenster "Automatic Reconstruction" von COLMAP
Ausgabe von COLMAP in der Shell

Was ist COLMAP?

COLMAP ist eine Software, die aus einzelnen (zweidimensionalen) Fotos eines Objekts dieses Objekt dreidimensional rekonstruiert. Die dafür erforderlichen Fotos müssen das Objekt aus unterschiedlichen Perspektiven und Blickwinkeln darstellen.

Schnellstart

Ich habe drei Versuche gebraucht, bis ich Erfolge verbuchen konnte. Hier sind einige Tipps, damit es beim Nachmachen schneller geht.

Download

COLMAP kann man hier herunterladen. Im Absatz "Download" auf dieser Seite findet man den Link auf die "Release Version". Folgt man diesem Link, dann kommt man zur aktuellen Version. Als diese Seite entstanden ist, war die Version 3.6 aktuell.

Es werden mehrere Downloads angeboten. Zu v3.6 sind es ein Download für den Mac und zwei Downloads für Windows. Bei Windows muss man sich entscheiden, ob NVIDIA CUDA enthalten sein soll, oder nicht. Ich habe erst ohne CUDA getestet. COLMAP hat aber immer vorzeitig abgebrochen, weil CUDA nicht gefunden wurde. Danach hab ich COLMAP-3.6-windows-cuda.zip heruntergeladen und es hat funktioniert. Aber Vorsicht: Die Grafikkarte muss gewisse Mindestanforderungen für CUDA erfüllen. Mein kleiner Computer hat COLMAP mit CUDA nicht gestartet.

CUDA ist ein Toolkit für NVIDIA-Entwickler. Wer es bereits auf seinem Computer installiert hat, kommt bestimmt mit dem kleinen Download ohne CUDA klar. Das separate Toolkit CUDA setzt aber auch MS Visual Studio auf dem Computer voraus.

Installation

COLMAP wird nicht auf dem Computer installiert. Es genügt, die heruntergeladene ZIP-Datei zu entpacken und im Programmverzeichnis die Datei "COLMAP.bat" zu starten. Es öffnet sich die Shell und das Programmfenster von COLMAP. Wenn man COLMAP mit CUDA starten möchte, muss die Grafikkarte bestimmte Mindestanforderungen erfüllen.

Einstellungen

Im Programmfenster wählt man im Menü das Register "Reconstruktion" und dann den Menüpunkt "Automatic Reconstruction". Es öffnet sich ein Fenster, in dem man die wichtigsten Einstellungen vornehmen kann. Mein Beispiel zeigt die Einstellungen, die ich für alle drei Versuche benutzt habe (nur die Verzeichnisse haben variiert)[1]:

  1. "Workspace folder" eingeben (in diesem Verzeichnis wird COLMAP seine Daten schreiben)
  2. "Image folder" eingeben (in diesem Verzeichnis befinden sich die Bilder des Objekts)
  3. in "Data type" den Wert "Individual images" wählen (wenn nicht schon voreingestellt)
  4. in "Quality" empfehle ich beim ersten Versuch "Low", damit man schnell merkt, ob COLMAP mit den Fotos arbeiten kann; wenn alles funktioniert, kann man immer noch die Qualität hochsetzen und eine neue Rekonstruktion starten
  5. Haken bei "Sparse model" setzen
  6. Haken bei "Dense model" setzen
  7. in "Mesher" den Wert "Poisson" wählen
  8. in "num_threads" den Wert "-1" setzen
  9. Haken bei "GPU" setzen
  10. in "gpu_index" den Wert "-1" setzen

Fertig! Jetzt nur noch auf "Run" klicken und COLMAP nimmt die Arbeit auf.

Auf der rechten Seite des Programmfensters werden die Arbeitsschritte protokolliert. In der Shell bekommt man zusätzliche Informationen, denen ich bisher aber noch keine große Bedeutung beigemessen habe. Wenn COLMAP fertig ist, dann werden im linken Teil des Programmfensters die aus den Fotos abgeleiteten Kamerapositionen grafisch dargestellt. Die Darstellung kann in alle Richtungen gedreht und gezoomt werden.

Der erste Versuch

Aufbau
Aufbau im ersten Versuch für die Anfertigung der Fotos

Dieser Versuch war nicht erfolgreich.

Aufbau

Für meinen ersten Versuch habe ich mir als Objekt eine meiner Buchstützen ausgesucht. Sie ist eine Skulptur und zeigt eine klassische Loriot-Figur, die auf einem Sessel sitzt. Um sie zu fotografieren habe ich sie in die Mitte meines Couchtisches gestellt. Damit die Fugen der Tischkacheln nicht stören, legte ich eine Bast-Matte unter. Die habe ich gewählt, weil sie eine eigene Struktur hat und Licht nicht so stark reflektiert. So wollte ich auch unschöne Effekte durch blendendes Licht in der Objektnähe vermeiden.

Rechts und links des Tisches habe ich je eine Fotoleuchte aufgestellt und auf das Objekt ausgerichtet.

Die Fotos habe ich mit der Nikon D5500 und einem Teleobjektiv gemacht. Das Teleobjektiv habe ich gewählt, um die Tiefenschärft zu reduzieren. Der auf den Fotos nicht zu vermeidende Hintergrund, der nur vom Objekt ablenken würde, sollte so unscharf werden. Dann habe ich begonnen, die Fotos zu machen. Ich habe vorne begonnen und aus mehreren Blickwinkeln Fotos aufgenommen. Dabei habe ich mich schrittweise im Uhrzeigersinn um den Tisch bewegt, bis ich wieder vorne angekommen bin. Dabei sind 34 Fotos entstanden.

Problematisch war der Umstand, dass ich mit dem Teleobjektiv einen gewissen Mindestabstand zum Objekt haben musste, damit die Kamera das Objekt scharf stellen kann. Das ist mir nicht immer gelungen, besonders nicht im Bereich der Couch. Die Folge war, dass einige Fotos unscharf sind. Ab und zu habe ich versucht, nachträglich (und entgegen dem Uhrzeigersinn) unscharfe Fotos erneut aufzunehmen. Dadurch ist die Reihenfolge der Fotos gestört. Nicht immer gehen benachbarte Fotos geschmeidig ineinander über. Manchmal folgt einer Vorderansicht eine Rückansicht. Die Galerie weiter unten zeigt dies deutlich.

Auch COLMAP hat dies bemerkt und die Arbeit vorzeitig abgebrochen, weil die Übergänge oder Überlappungen zwischen den benachbarten Bildern nicht ausreichend waren. Es gibt kein Rekonstruktions-Ergebnis.

Fotos (Galerie)

Der zweite Versuch

Aufbau im zweiten Versuch für die Anfertigung der Fotos

Dieser Versuch war nicht erfolgreich.

Aufbau

Im zweiten Versuch wollte ich es besser machen. Das Objekt hat sich nicht geändert. Die Buchstütze steht wieder auf dem Couchtisch. Jetzt habe ich aber einen großen Bogen weißes Papier benutzt, um die Aufstandsfläche und den Hintergrund des Objekts zu "verkleiden". Die Fotoleuchten sind wieder positioniert. Meine Kamera habe ich auf ein Stativ montiert und vor dem Objekt aufgebaut. Wieder kommt das Teleobjektiv zum Einsatz. Die Fotos habe ich in zwei Durchgängen gemacht. Im ersten Durchgang habe ich die Kamera in einem steilen Winkel auf das Objekt ausgerichtet. Dann habe ich nach jedem Foto das Objekt ein wenig im Uhrzeigersinn verdreht, bis ich wieder bei der Vorderansicht angekommen bin. Für den zweiten Durchgang habe ich die Höhe der Kamera verkleinert und in einem flacheren Winkel auf das Objekt ausgerichtet. Wieder habe ich durch Drehen des Objekts die Fotos aufgenommen. Beim Drehen des Objekts habe ich keine Hilfsmittel eingesetzt. Es ist beim Drehen bestimmt auch etwas verrutscht.

So sind insgesamt 52 Fotos entstanden. Aber schon bei der Anfertigung der Fotos ist mir aufgefallen, dass sich bei jeder Drehbewegung natürlich auch der Schatten verändert. Die Fotoleuchten haben sich ja nicht bewegt.

Es gibt auch hier aus den gleichen Gründen, wie im ersten Versuch, kein Rekonstruktions-Ergebnis.

Fotos (Galerie)

Der dritte Versuch

Aufbau im dritten Versuch für die Anfertigung der Fotos

Dieser Versuch war erfolgreich.

Aufbau

Nun hatte ich erste schmerzliche Erfahrungen gesammelt. Ich wusste, dass ich rings um das Objekt ausreichend viel Platz brauchte. Die Lichtquellen dürfen sich gegenüber dem Objekt nicht bewegen. Die Fotos müssen scharf sein. Sie müssen so nacheinander fotografiert sein, dass benachbarte Fotos geschmeidig ineinander über gehen.

Ich setzte für den dritten Versuch das Objekt auf das Stativ und positionierte es mitten im Raum, um es von allen Seiten gut fotografieren zu können. Die Höhe konnte ich frei wählen und so dafür sorgen, dass ich auch von schräg oben Fotos machen konnte. Die Fotoleuchten ordnete ich in einem größeren Abstand an, so dass ich mich zwischen ihnen und dem Objekt bewegen konnte. Die Kamera rüstete ich mit dem Normalobjektiv aus, um den Mindestabstand zum Objekt zu verkleinern. Damit das Objekt nach unten einen definierten Abschluss hat, habe ich mit einem schwarzen Deckel einer Schachtel eine Aufstandsfläche erzeugt.

Die 56 Fotos machte ich wieder in zwei Runden im Uhrzeigersinn um das Objekt mit variierendem Blickwinkel.

Fotos (Galerie)

Ergebnis

COLMAP hat ohne vorzeitigen Abbruch die Fotos verarbeiten können und ein dreidimensionales Gitter aus dreieckigen Flächen erstellt.

Um dieses Gitter darzustellen, benutze ich das Programm "MeshLab". Das Gitter habe ich vorher schon etwas bereinigt. Der Hintergrund auf den Fotos wurde in der Rekonstruktion zum Teil berücksichtigt. Zum Beispiel sind die Konturen meiner Couch erkennbar gewesen. Ebenso sind Teile des Stativs unterhalb der Aufstandsfläche erkennbar gewesen. All diese "Verunreinigungen" habe ich in MeshLab schnell löschen können.

Alles in allem bin ich mit dem Ergebnis zufrieden. Was mein Ihr?

Meine Buchstütze in 3D

Fazit

Folgende Thesen habe ich aus den Erfahrungen der ersten drei Versuche und aus Internet-Recherchen abgeleitet:

  1. Das Objekt sollte sich auf einer ebenen und reflexionsarmen Aufstandsfläche befinden.
  2. Das Objekt sollte gleichmäßig beleuchtet sein. Auf allen Fotos sollte(n) die Lichtquelle(n) relativ zum Objekt ihre Position nicht verändern.
  3. Die Oberfläche des Objekts sollte wenig anfällig für störende Reflexionen sein.
  4. Die Reihenfolge der Fotos sollte der Reihenfolge der Aufnahmepositionen entlang dem Bewegungspfad der Kamera um das Objekt entsprechen.
  5. Es sollten zwischen 50 und 100 Fotos eines Objekts aufgenommen werden.
  6. COLMAP braucht die NVIDIA CUDA-Schnittstelle und damit einen eher leistungsfähigen Computer.

Vorschläge für weiterführende Arbeiten

  • Das Objekt filmen und den Film in Einzelbilder konvertieren. Diese Einzelbilder dann in COLMAP verwenden. Zu beachten ist dabei aber, dass die Bildqualität geringer ist und die Bilder keine Metadaten der Kamera besitzen.
  • Bei der Vermeidung von störenden Reflexionen die Wirkung von Polarisationsfiltern prüfen.
  • "Meshroom/AliceVision" ausprobieren

Einzelnachweise