Vermessung von Holzpoltern auf mobilen Geräten

 

Das Ziel des Teilprojekts 3 ist die Erforschung und Implementierung von Algorithmen der digitalen Bildverarbeitung und der Photogrammetrie zur Segmentierung und Vermessung von Holzpoltern sowie die Speicherung der erfassten Daten in einem Cloud-Service. Die zu erforschenden Algorithmen entstammen den Gebieten der Objekt-Detektion und Structure-from-Motion. Hierbei sollen zusätzlich Georeferenzdaten miteinbezogen werden. Zur Speicherung der Daten im Cloud-Service sollen die Prinzipien der Entwicklung verteilter Anwendungen genutzt werden. Bei ausreichender Genauigkeit und der Erfüllung der Kriterien der Eichfähigkeit, ist eine Anwendung im geschäftlichen Verkehr denkbar.

Die Arbeiten im Teilprojekt erfolgen in zwei Phasen. In der ersten Phase sollen Bildverarbeitungs-Algorithmen auf mobile Geräte portiert warden, die eine dreidimensionale Rekonstruktion und Vermessung eines Holzpolters mit einem Maßband als Skalierungsreferenz ermöglichen. Während der zweiten Phase soll ergründet werden welche alternativen Skalierungsreferenzen statt eines Maßbandes verwendet werden können. Hierbei sollen ein RTK-GPS-Empfänger in Kombination mit Sensor-Fusion-Methoden zum Einsatz kommen.

Wissenschaftliche Mitarbeiter:
Christopher Herbon M.Eng. (Doktorand. Betreuer: Prof. Dr. Bernd Stock und Prof. Dr. Klaus Tönnies)

Benjamin Otte M.Eng.

Wissenschaftliche Hilfskräfte
Dennis Bode B.Eng.

 

Status Fairlog2020 Teilprojekt 3

Fast alle Teile der angestrebten Forschungsaktivitäten des Teilprojektes 3 sind bereits mit großem Erfolg umgesetzt worden. Dies gilt insbesondere für die Entwicklung von Verfahren zur Segmentierung und Vermessung von Holzpoltern aus mehreren Einzelaufnahmen. In dem Teilprojekt 3 wurde, neben zweidimensionalen Ansätzen, ebenfalls eine 3D-Variante entwickelt. Dieser Ansatz erlaubt auch eine dreidimensionale Rekonstruktion der Polter. Das Verfahren stellt jedoch hohe Leistungs-Anforderungen an die Hardware und eignet sich damit weniger für die Polterberechnung auf Smartphones und Tablets.
Um das rechenintensive Verfahren dennoch mit mobilen Geräten nutzen zu können wurde eine Auslagerung des Berechnungsvorganges in die Cloud vorgenommen. Die Entwicklung hat sich dabei an typischen Anforderungen des Cloud Computing wie beispielsweise dem einfachen Zugriff mit Standardtechnologien sowie der Möglichkeit eine Vielzahl von Berechnungen gleichzeitig auszuführen, orientiert. Um diese Anforderungen umzusetzen, wurden aktuelle Technologien aus dem Cloud-Umfeld eingesetzt.
Mit Hilfe der Software Vagrant und dem Systemkonfigurationswerkzeug Puppet erfolgte zunächst die Erstellung eines virtuellen Entwicklungssystems, welches bei Bedarf automatisch reproduziert werden kann und als Grundlage für die Realisierung dient.
Bei der Umsetzung des Cloud Service wurde eine Aufteilung in Komponenten nach dem Microservice Prinzip verfolgt. Die Kapselung des Berechnungsverfahren in Docker Containern und die Nutzung von Clustertechnologien wie Docker Swarm erlaubt das Management einer Vielzahl von Berechnungscontainern und ermöglicht eine flexible Skalierung und Verteilung der Instanzen auf mehrere Systeme. Die zentrale Serverkomponente, welche die Interaktion mit den Clients und das Management des Berechnungsvorganges übernimmt, wurde in Node.js implementiert. Zur Datenhaltung kommt die NoSQL Datenbank MongoDB zum Einsatz.
Clientseitig wurde eine auf Web-Technologien basierende hybrid-App entwickelt um den Cloud Service plattformunabhängig verfügbar zu machen.
Zu Testzwecken wurde der Cloud Service in die Open Stack Cloud der Gesellschaft für wissenschaftliche Datenverarbeitung Göttingen (GWDG) integriert. Hier soll ermittelt werden wie sich das System bei Last verhält.
Nachdem im Vorfeld eine Optimierung des Cloud Service hinsichtlich des praktischen Betriebes durch die Implementation einer redundanten Architektur mit entsprechend ausgelegter Kommunikationsstruktur und Dateiablage vorgenommen wurde, stand in der darauffolgenden Phase der Test beziehungsweise die Vorbereitungen zur Evaluierung des Systems im Fokus.
Da sich im Verlauf der Forschungsarbeit gezeigt hatte, dass ein händischer Test des Systems sehr aufwändig ist und mit zunehmender Anzahl der Berechnungen stark zunimmt, sollte dieser automatisiert aufgebaut werden. Zudem erleichtert diese Möglichkeit die Reproduktion von Ergebnissen enorm. Zur Erstellung der Tests wurde das Python Framework Selenium verwendet, welches eine programmatische Steuerung des Webbrowsers erlaubt. Zunächst wurde dabei die Codebasis des Clients insoweit angepasst, dass eine Verwendung der App im Chrome Browser und damit ein automatisierter Test ermöglicht wird. Innerhalb des Cloud-Systems wurden auf den einzelnen virtuellen Maschinen zudem Systemmonitore mittels Node.js und dem „systeminformation“-Modul eingerichtet um die Auslastung der Infrastruktur zu ermitteln. Außerdem wurden erste umfangreiche Tests geschrieben, die ein automatisiertes Anlegen einer beliebigen Anzahl von Holzpoltern mit verschiedenen Konfigurationsmöglichkeiten (z.B. Auswahl der verwendeten Berechnungsmaschinen) sowie eine parallele Berechnung sowie die anschließende Auswertung erlauben. Für die Visualisierung wurden dabei verschiedene Diagrammtypen erstellt die beispielsweise die CPU-Auslastung während des Berechnungsvorganges in Abhängigkeit der einzelnen Verarbeitungsphasen veranschaulichen oder zeigen, wie sich die Verwendung mehrerer virtueller Maschinen auf die Berechnungszeit auswirken.
Bisher konnte das Testsystem erste Ergebnisse liefern. Die Tests müssen allerdings noch erweitert und verbessert werden um aussagekräftige Resultate zu erhalten.

Schreibe einen Kommentar