Förderjahr 2020 / Project Call #15 / ProjektID: 5121 / Projekt: CognitiveAR
In den Räumen der TU Wien haben wir ein kleines Labor eingerichtet, wo wir uns nun mit großen Schritten der ersten Version unseres Systems nähern. In diesem Eintrag geht es um unseren aktuellen Fortschritt und die Projektverlängerung bis Dezember
Das CognitiveAR Labor
Seit unserer Publikation auf der IEEE VR im März sind wir damit beschäftigt diese ersten Proof-of-Concept Implementierungen im Detail auszuarbeiten, und auch unsere Videoanalyseplattform "CogStream" mit der Microsoft HoloLens zu verbinden. Dazu haben wir ein kleines Labor eingerichtet, in dem sich unser Team zusammenfindet um gemeinsam an unserem Framework, Softwarebibliotheken, und Hardwareintegration zu arbeiten. Impressionen aus dem Labor findet ihr ganz unten im Beitrag.
Wir möchten euch hier den aktuellen Fortschritt seit April bis jetzt präsentieren.
3D Objekterkennung und -Positionierung
Ein wesentlicher Bestandteil unserer Plattform ist das erkennen und positionieren von Objekten im Raum anhand von Kamerabildern. Dazu haben wir begonnen Machine Learning Modelle für Tiefenerkennung mit echten Tiefenkameras wie der Intel RealSense zu vergleichen. Hier ist ein Video das Christian aufgenommen hat, das die Tiefenwerte aus dem Bild visualisiert. Oben links sieht man das RGB Bild, oben mitting sieht man die Werte der Tiefenkamera. Die restlichen Bilder sind durch verschiedene Machine Learning Modelle berechnet die auf dem RGB Bild operieren.
Diese Tiefenwerte können nun in Kombination mit Objekterkennung dazu verwendet werden Objekte im 3D Raum zu positionieren, und die Distanz zur Kamera zu schätzen. Im Video sieht man die von YOLOv5 erkannten Objekte, und die von unserem Algorithmus mit Hilfe der Tiefenwerte errechneten 3D Koordinaten.
CogStream Video Analytics
Unsere System für KI-basierte Echtzeit-Videoanalyse "CogStream", ist ein wesentliche Bestandteil der Plattform, um den Kamerafeed von Augmented Reality Headsets zu analysieren. CogStream implementiert eine Plugin Architektur, mit der sog. Engines verwaltet werden können. Engines kapseln die Funktionalität eines oder mehrere KI Modelle um die Bilder der Kamera zu analysieren. Im folgenden Bild sieht man Beispielsweise eine Engine die Gesichts- und Emotionserkennung macht. Diese läuft in Echzeit auf einer GPU mit etwa 20 Frames pro Sekunde.
Wir können bereits den Kamerafeed von der HoloLens zu einer CogStream Engine die auf einem NVIDIA Jetson Xavier NX im selben Netzwerk läuft über das Netzwerk senden. Im nächsten Schritt werden wir die Resultate in der HoloLens in einer AR Anwendung visualisieren.
Technische Herausforderungen im Edge Computing
Unsere Plattform CognitiveAR ist für Edge Computing Szenarien konzipiert, und soll auch auf Hardware die für solche Szenarien charakteristisch ist lauffähig sein. Auf Edge Computing Hardware mit KI-Beschleunigern, wie etwa die NVIDIA Jetson Platform, Programme ausführbar zu machen ist jedoch oft eine Herausforderung. Durch die kompakte Bauform dieser Plattformen (ein NVIDIA Jetson Xavier NX passt in die Hand), sind diese häufig mit ARM System-on-Chip Architekturen gebaut, die etwa den Kompilierungsvorgang vieler Machine Learning Bibliotheken immens erschwert. Die Neuartigkeit der Geräte führt auch oft dazu, dass Produkte schlecht dokumentiert sind.
Wir haben unsere Erfahrungen hierzu in zwei Tech-Blog Einträgen (auf Englisch) auf unserer Website festgehalten, und Tutorials geschrieben um den Vorgang zu dokumentieren.
- "Installing PyTorch and YOLOv5 on an NVIDIA Jetson Xavier NX": Dieser Artikel wurde von Thomas Rausch geschrieben, und beschäftigt sich mit dem Aufsetzen des Machine Learning Frameworks PyTorch, auf der NVIDIA Jetson Xavier NX Plattform, und einer Beispielanwendung mit dem Objekterkennungssystem YOLOv5
- "Setting up an Intel® RealSense™ Camera on an NVIDIA Jetson Xavier NX": Dieser Artikel wurde von Christian Stippel und Silvio Vasiljevic geschrieben, und behandelt den komplizierten Kompilierungsvorgang der Treiber für die Intel RealSense Tiefenkamera auf der NVIDIA Jetson Xavier NX Plattform.
Projektverlängerung
Der Projektzeitraum war von Jänner bis September 2021 geplant. Viele unserer Projektmitarbeiter befinden sich noch mitten im Informatikstudium, oder arbeiten im universitären Umfeld, das uns insbesondere von April bis Juni immer wieder viel abverlangt. Übungsabgaben, Prüfungen, Deadlines, und das alles unter den Herausforderungen der COVID-19 Pandemie, haben zu einer wesentlichen Projektverzögerung geführt. In Absprache mit der Netidee haben wir unser Projekt bis Dezember verlängern können, um den abgesteckten Projektumfang auch erfüllen zu können.
Wir planen eine weitere Publikation der Ergebnisse unseres 3D Objektpositionierungssystems, und arbeiten weiter an der Integration zwischen der HoloLens und CogStream. Für Ende September ist die Präsentation der ersten Demo App geplant.
Impressionen aus dem Labor