Bachelorarbeit: 3D-Rekonstruktion aus Bilderserien
Die Programmpipeline und die theoretischen Grundlagen
Meine Bachelorarbeit habe ich im Jahr 2014 in der AG Aktives Sehen von Professor Paulus an der Universität Koblenz erfolgreich geschrieben. Ihr Thema war die Verwendung einer Bilderserie zur 3D-Rekonstruktion einer Punktwolke und der zugehörigen Kameraposen (Position und Ausrichtung) der Bilder.
Im Rahmen der Arbeit entwickelte ich eine robuste Programmpipeline, die eine beliebige Anzahl von Bildpaaren verarbeitet. Wichtig hierbei: Die Bildpaare mussten in dieser ursprünglichen Version noch manuell vorgegeben werden. Das Ziel war die Rekonstruktion einer möglichst dichten Punktwolke sowie die genaue Bestimmung der relativen Kameraposen.
Dabei befasste ich mich intensiv mit den theoretischen Grundlagen der Photogrammetrie und Computer Vision, darunter:
- Key Point Matching
- Die Epipolargeometrie
- Der 8-Punkte-Algorithmus
- Das Perspective-n-Point (PnP) Problem
- Bündelblockausgleichung
Für die praktische Implementierung kamen leistungsstarke Algorithmen zum Einsatz, etwa SURF und AKAZE für die Feature-Erkennung, FLANN für effizientes Matching und der Levenberg-Marquardt-Algorithmus (implementiert über den Ceres-Solver) für die Bundle-Adjustment und Optimierung. Eine weitere Herausforderung bei der Implementierung war das Verwalten der 3D-Punkte und der dazu gehörigen Key Points in unterschiedlichen Bildern. Hier war extreme Sorgfalt bei der Verwaltung der Datenstrukturen für die 3D-Punkte und Key Points gefragt. Grund hierfür ist, dass Key Points einem 3D-Punkt hinzugefügt und auch wieder entfernt werden können, wenn der Key Point als sogenannter Ausreißer erkannt wurde.
Kontinuierliche Weiterentwicklung und Anwendung in der Praxis
Dieses Grundlagenprojekt dient als Kern meiner heutigen Arbeit. Für die Anwendung im Dachvermessungsprojekt wurde die Pipeline seit dem Abschluss kontinuierlich weiterentwickelt und optimiert.
Ein zentrales Entwicklungsziel war die Automatisierung der Paarauswahl, sodass die manuelle Vorgabe der Bildpaare nicht mehr notwendig ist. Dies stellt einen entscheidenden Schritt in Richtung eines vollautomatisierten Vermessungstools dar.
Zu den weiteren wichtigen Erweiterungen gehören:
- Verbesserte Software-Architektur für Skalierbarkeit.
- Aktualisierung auf einen modernen C++-Standard.
- GPS-Integration zur globalen Verortung der Rekonstruktion.
- Integration von APRIL-Tags zur präziseren Kamerakalibrierung und Skalierung der 3D-Modelle.