KinKon - Ein flexibles, skalierbares, kameraunabhängiges und echtzeitfähiges 3D-Konstrukionsystems
KinKon
In den letzten Jahren ist die Entwicklung und Verwendung von 3D-Scan-Verfahren stark gestiegen. Dies liegt zum einen an mittlerweile weitestgehend ausgereifter und leistungsstarker Hardware und Software, aber auch am allgemeinen Trend zur Arbeit mit dreidimensionalen Daten in den unterschiedlichsten Bereichen. Die Anwendungsfälle für die Verwendung von 3D-Scans sind – nicht zuletzt im Kontext der Industrie 4.0 – breit gefächert. Je nach Szenario stehen dabei verschiedene Aspekte im Vordergrund. In den Bereichen Qualitätskontrolle oder Simulation ist eine hohe Genauigkeit der Geometriedaten essentiell, für Visualisierungszwecke (z.B. in Virtueller Realität) ist häufig eine geringere Genauigkeit ausreichend. Weitere Anwendungsfälle sind beispielweise Reverse Engineering, Kollisionserkennung oder Planung im Bereich Produktion und Logistik. In vielen Fällen ist ein direktes Feedback für den Anwender nötig, was nur möglich ist, wenn das entsprechende System echtzeitfähig ist. 3D-Rekonstruktions-Systeme verwenden verschiedene Arten von Sensoren, im Folgenden werden wir nur die softwareseitige Verarbeitung und Zusammenführung solcher Sensordaten betrachten.
Traditionelle 3D-Scan-Systeme repräsentieren Geometriedaten intern in Form von Punktwolken. Mit jeder neuen Aufnahme wird das bestehende Modell um neue Daten ergänzt indem die Transformation zwischen Weltkoordinaten und Kameradaten berechnet wird und die neue Punktwolke hinzugefügt wird. So entsteht nach und nach ein Gesamtmodell, das anschließend beispielsweise als Dreiecksnetz zur weiteren Verwendung exportiert werden kann. Aktuelle Ansätze unterteilen den gegebenen Raum in Voxel auf und speichern in den Voxeln jeweils die Distanz zum nächstgelegenen Punkt der erfassten Oberfläche. Dies hat zwei wesentlich Vorteile: Zum einen kann so bereits erfasste Geometrie verfeinert und somit Messrauschen reduziert werden und zum Anderen lässt sich diese Struktur wesentlich effizienter für verteilte Berechnungen auf modernen Manycore-Prozessoren (z.B. Graphikprozessoren) verwenden. Ein großer Nachteil von regulären Voxel-Gittern ist die feste Größe und der verhältnismäßig hohe Verbrauch stark begrenztem Graphikspeicher. Dies führt zu räumlich beschränkten Bereichen in denen die Erfassung durchgeführt werden kann und/oder zu einer verringerten räumlichen Auflösung.
Das am IMI entwickelte 3D-Rekonstruktionssystem folgt ebenfalls einem voxelbasiertem Ansatz und verwendet als unterliegende Datenstruktur einen nicht-blockierenden, threadsicheren Octree über den auf die Voxeldaten - die wiederum in übergeordnete Blöcke gruppiert werden - zugegriffen werden kann. Es wird also kein regelmäßiges Voxelgitter von fester Größe verwendet, sondern die Daten werden dynamisch und nach Bedarf in den Haupt- oder Graphikspeicher geladen (siehe Bild 1).
Dieser Ansatz führt dazu, dass das System in zweierlei Hinsicht skalierbar ist: Einerseits können theoretisch beliebig große Szenen erfasst werden, da nicht benötigte Daten dynamisch vom begrenzten Graphik- auf Arbeits- und ggf. Festplattenspeicher transferiert werden. Des Weiteren bietet die Datenstruktur die Möglichkeit der verteilten Berechnung, was z.B. die Verarbeitung auf Graphikclustern oder Supercomputern ermöglicht.
Das System kann prinzipiell mit jeder Art von Tiefenkamera betrieben werden, sofern sie Tiefenbilder liefert und Kalibrierungsdaten zur Verfügung stehen. So können einerseits kostengünstige, ungenaue Modelle aus dem Unterhaltungsbereich aber auch robuste und akkurate Industriesensoren verwendet werden. Die 3D-Modelle können in gängigen Dateiformaten für Dreiecksnetze oder Punkwolken exportiert werden (z.B. ply oder stl, siehe Bild 2).
Neben der speicherunabhängigen Weitläufigkeit besteht ein wesentlicher Vorteil unseres Scanning-Systems in der hohen Performance im Vergleich zum Stand der Technik. Dies wird durch eine drastische Reduktion der zu verarbeitenden irrelevanten Voxel erreicht. Des Weiteren machen wir Gebrauch von modernen Softwaretechniken (wie nicht-blockierende Programmierung oder Datenorientiertes Design) um den Berechnungs- und Speicherdurchsatz zu erhöhen. Bei einer räumlichen Auflösung von 3.9 mm erreichen wir so eine Framerate von über 30 Hz.
In der Zukunft werden wir die Forschung im Bereich der echtzeitfähigen Interpretation und Verarbeitung von 3D Oberflächen fortführen. Derzeit arbeiten wir an der Extraktion von geometrischen Basistypen unter Verwendung eines probabilistischen Ansatzes. Großes Potential sehen wir auch in der automatischen Vervollständigung von Oberflächen (Hole-Filling) um beispielsweise volumetrische CAD-Modelle zu erzeugen. Die Möglichkeit der verteilten Verarbeitung der Daten legt auch einen cloudbasierten Ansatz nahe, durch den eine mobile Verwendung des Scanning-Systems vereinfacht würde.
Siehe auch:
- Anwendungsbeispiel im Projekt: 3DConFu
- Workshop "Einsatz und Nutzen von 3D Scans"