Der wesentliche Unterschied zwischen den beiden Visualisierungsformaten Augmented Reality (AR) und Virtual Reality (VR) besteht darin, dass AR die Wahrnehmung der natürlichen Welt mit zusätzlichen Informationen durch virtuelle Objekte wie Text oder Bilder erweitert und ergänzt, wodurch wir sicherer und effizienter mit unserer natürlichen Umgebung interagieren können. VR hingegen lässt uns in eine synthetisch erzeugte Umwelt eintauchen. Die Kombination von Augmented Reality und Virtual Reality wird oft als Mixed Reality (MR), also die Präsentation einer aus beiden Formaten gemischten Umgebung bezeichnet (Bild 1).

Augmented Reality

Bild 1: Virtual, Augmented und Mixed Reality. Xilinx

Viele von uns haben AR-Anwendungen bereits im täglichen Leben benutzt, ohne sich dessen bewusst zu sein, etwa beim Gebrauch von mobilen Datengeräten als Navigationshilfen auf der Straße oder beim Spielen von AR-Games wie Pokémon Go.

Eines der bekanntesten Beispiele für Augmented Reality und deren Anwendungen ist das Head-up-Display (HUD). Es zählt zu den einfacheren AR-Applikationen. HUDs finden sich heute in der Luftfahrt und in automotiven Umgebungen, um relevante Informationen zu präsentieren – ohne den vom Verkehrsgeschehen ablenkenden Blick auf einen Instrumenten-Cluster. AR-Applikationen mit fortgeschrittenen Fähigkeiten, einschließlich der Wearable-Technologien (oft als Smart Augmented Reality Systeme bezeichnet), sollen einer Schätzung von Tractica zufolge bis 2020 weltweit ein Marktvolumen von 2,3 Milliarden Dollar erreichen.

Augmented Reality erweitert unsere Lebenswelt

Augmented Reality findet bereits zahlreiche Anwendungen in industriellen, militärischen, medizinischen und kommerziellen Feldern, und ergänzt dabei die Wahrnehmung unserer täglichen Arbeitsumgebung (Bild 2). In den sozialen Medien wird AR gern eingesetzt, um biografische Informationen der Kommunikationspartner einzublenden oder auch um Personen zu erkennen.

Augmented Reality

Bild 2: Beispiel für den Einsatz von Smart Glasses in einer industriellen Umgebung. Xilinx

Viele AR-Applikationen basieren auf dem Einsatz von Smart Glasses, die von den Nutzern in ihrer Arbeitsumgebung getragen werden. Derartige Brillen mit Datenerfassungsfunktionen bewirken effizienteres Arbeiten in Fertigungsbetrieben, indem sie gedruckte Manuals ersetzen oder visuell erläutern, wie bestimmte Komponenten zu montieren sind. In der Medizin haben Smart Glasses das Potenzial, Patientendaten und Aufzeichnungen über Verletzungen oder Behandlungsvorschriften zu teilen, und damit vor Ort Notfallhilfe zu leisten. Außerdem können die Informationen auf diesem Wege für die Notaufnahme bereitgehalten werden.

Ein großer amerikanischer Paketzustelldienst stattet seine Mitarbeiter bereits mit AR-fähigen Smart Glasses zum Lesen der Barcodes auf den Versandetiketten aus. Nach dem Scannen des Barcode kommuniziert die Datenbrille über die lokal vorhandene Wi-Fi-Infrastruktur mit den Servern des Zustelldienstes, um die endgültige Zustelladresse der Sendung zu ermitteln. Mit dieser Information kann die Datenbrille dem Zusteller anzeigen, wo das Paket zur weiteren Beförderung zwischengelagert werden soll.

Neben der Ausrichtung auf die jeweils vorliegende Endanwendung involvieren AR-Lösungen eine Reihe von generellen Anforderungen wie Performance, Sicherheit, Leistungsaufnahme und Zukunftsfestigkeit. Einige dieser Anforderungen stehen dabei eventuell auch im Konflikt. Deshalb müssen die Entwickler alle zu erwartenden Forderungen abwägen, um eine optimale AR-Systemlösung zu realisieren.

Erfolgreiche System-Auslegung

Augmented Reality

Bild 3: Die funktionale Struktur eines Augmented-Reality-Systems. Xilinx

Komplexe AR-Systeme erfordern die Fähigkeit zum Anschluss mehrerer Kamera-Sensoren und die gleichzeitige Verarbeitung der von ihnen gelieferten Daten, um ein vollständiges Bild ihrer Umgebung zu erfassen. Die Kameras und ihre Sensoren können auch in unterschiedlichen Bereichen des elektromagnetischen (EM) Spektrums arbeiten, etwa im Infrarot oder nahen Infrarot. Auch können die Sensoren Informationen liefern, die nicht aus dem EM-Spektrum stammen, sondern zur Detektion von Bewegung und Rotation dienen. Dazu zählen etwa MEMS-Accelerometer und Gyroskope. Auch die geo-lokale Standortbestimmung mit Daten vom Global Navigation Satellite System (GNSS) gehört in dieses Ressort. Embedded Vision Systeme, die Daten aus mehreren dieser unterschiedlichen Sensortypen zusammenfügen oder fusionieren, werden in diesem Zusammenhang meist als heterogene Sensorfusion-Systeme bezeichnet.

AR-Systeme erfordern zudem hohe Frameraten und die Fähigkeit zur Ausführung von Echtzeitanalysen auf Frame-by-Frame-Basis, um die in jedem Frame enthaltene Information zu extrahieren und verarbeiten. Die Ausrüstung der Systeme mit der nötigen Verarbeitungskapazität für diese Anforderungen wird dabei zum Kriterium für die Auswahl der passenden Komponenten.

Um die Prozessorkerne ihrer AR-Systeme optimal auszulegen, können die Entwickler vorteilhaft die All Programmable Zynq-7000 SoCs oder die Zynq UltraScale+ MPSoCs einsetzen. Diese SoCs sind selbst heterogene Verarbeitungssysteme, die ARM-Prozessoren mit sehr leistungsfähiger programmierbarer Logik kombinieren. Das Zynq UltraScale+ MPSoC ist die nächste Generation des Zynq-7000 SoCs. Es bietet zusätzlich eine ARM Mali-400 GPU. Andere Typen der Serie enthalten auch einen robusten (hardened) Video-Codierer, der H.265 und den HEVC High-Efficiency Video-Standard unterstützt.

Diese komplex aufgebauten Bausteine ermöglichen dem Entwickler, seine Systemarchitektur geeignet zu segmentieren, die Prozessoren optimal für die Echtzeit-Analytik zu nutzen und traditionelle Prozessoraufgaben in das Ökosystem auszulagern. Die programmierbare Logik lässt sich auch für Sensor-Schnittstellen und Verarbeitungsfunktionen heranziehen. Dies bietet mehrere entscheidende Vorteile:

  • Parallele Implementierung von n Bildbearbeitungs-Pipelines, wie von der Applikation benötigt.
  • Any-to-Any-Konnektivität, also die Fähigkeit zur Definition und zum Interfacing mit beliebigen Sensortypen, Kommunikationsprotokollen und Display-Standards. Das erlaubt Flexibilität und Pfade für zukünftige Aktualisierungen.

Embedded Vision und Machine Learning

Zum Implementieren einer Bildbearbeitungs-Pipeline und von Algorithmen für Sensorfusion nutzen die Entwickler vorteilhaft den Acceleration Stack Revision (Eigenschreibweise reVISION). Er unterstützt sowohl Embedded-Vision-, als auch Machine-Learning-Applikationen. Vorzugsweise für den Einsatz in einer Software-definierten SoC- oder SDSoC-Toolset-Umgebung konzipiert, ermöglicht Revision den Einsatz von Industrie-Standard Frameworks und OpenVX zur Cross-Platform-Beschleunigung der Video-Verarbeitung, sowie der OpenCV Computer-Vision-Bibliothek und des Caffe Flow zur Ansteuerung des Prozessorsystems und der programmierbaren Logik. Somit kann Revision eine Vielzahl von OpenCV-Funktionen (einschließlich der OpenVX Kernfunktionen) in die programmierbare Logik verlagern und beschleunigen.

Augmented Reality

Bild 4: Aufbau und Funktionen des Revision Stack. Xilinx

Außerdem unterstützt Revision die Implementierung der Machine-Learning-Inferenzmaschine in der programmierbaren Logik, und zwar direkt aus der Caffe-prototxt-Datei. Diese Fähigkeit zum Einsatz von Industrie-Standard Frameworks reduziert die Entwicklungszeit, denn es minimiert die Diskrepanz zwischen dem High-Level-Systemmodell und der Umsetzung des Designs. Damit ergibt sich eine reaktionsschnelle, leistungseffiziente (Pixel pro Watt) und flexible Lösung dank der Kombination von Prozessorssystem und programmierbarer Logik (Bild 4).

Der Entwickler muss natürlich auch die spezifisch funktionalen Aspekte von Augmented-Reality-Systemen in Betracht ziehen. Diese müssen nicht nur die Informationen der an sie angeschlossenen Kameras und Sensoren zur Beobachtung der Umgebung verarbeiten und dabei die von der Applikation und der Einsatzsituation geforderten Algorithmen ausführen. Sie müssen auch in der Lage sein, die Blickrichtung des Nutzers zu verfolgen und zu erkennen, worauf dieser gerade sein Augenmerk richtet.

Dieses Tracking geschieht normalerweise über zusätzliche Kameras, die auf das Gesicht des Nutzers gerichtet sind. Die Implementierung eines Blickverfolgungs- oder Eye-Tracking-Algorithmus ermöglicht es dem AR-System, die jeweilige Blickrichtung des Nutzers zu erkennen und den aktuell an das AR-System zu liefernden Bildinhalt zu bestimmen. Das sorgt für den effizienten Einsatz der Bandbreiten- und Verarbeitungs-Ressourcen. Die Ausführung der Detektions- und Tracking-Funktionen ist unter Umständen eine sehr rechenintensive Aufgabe, die sich mit dem Revision Stack beschleunigen lässt.

Priorität für die Versorgung von Portables

Die meisten AR-Systeme sind portabel ausgelegt, ohne Kabelverbindungen, und oft auch in Form von Wearables mit Smart Glasses. Dies bringt als besondere Herausforderung die Implementierung der Bildbearbeitung in einer Schaltungsumgebung, deren Leistungsbedarf sehr niedrig gehalten werden muss.

ECK-DATEN

AR-Systeme bürgern sich in kommerziellen, industriellen und militärischen Bereichen immer weiter ein. Diese Systeme bringen jedoch oft Herausforderungen, die sich gegenseitig ausschließen können, wie hohe Performance, Sicherheit auf der Systemebene und Effizienz im Leistungsverbrauch. Die Entwickler können diese Herausforderungen meistern, indem sie das Zynq-7000 SoC oder das Zynq UltraScale+ MPSoC als zentrales Element des Prozessorsystems einsetzen, in Verbindung mit dem Acceleration Stack Revision zur Unterstützung von Embedded-Vision- und Machine-Learning Applikationen.

Dazu bieten die beiden Bausteinfamilien – Zynq-7000 SoC und Zynq UltraScale+ MPSoC – eine gute Performance pro Watt. Ihr Leistungsbedarf lässt sich noch weiter reduzieren, wenn man ihre diversen Optionen nutzt: vom Standby-Modus der Prozessoren, mit Aufwecken durch eine oder mehrere Signalquellen, bis zum Power-down der programmierbaren Logik für die Hälfte des Bausteins. Mit entsprechender Detektion ihres Ruhezustands kann man die Batterielaufzeit von AR-Systemen erheblich ausdehnen.

Beim Betrieb des Augmented-Reality-Systems lässt sich außerdem für bestimmte Prozessor-Elemente, die zeitweise nicht benötigt werden, per Clock-Gating der Leistungsverbrauch reduzieren. Damit ermöglicht die programmierbare Logik eine sehr effiziente Lösung der Leistungsaufnahme durch das Befolgen einfacher Designregeln wie effizienter Einsatz von Hard-Macros, sorgfältige Auslegung der Steuersignale und intelligentes Clock Gating für aktuell nicht benötigte Regionen des Bausteins.

Alles das schafft im Vergleich zu einem CPU- oder GPU-basierten Ansatz eine wesentlich leistungseffizientere und reaktionsschnellere Single-Chip-Lösung. So erzielt eine Single-Chip-Lösung mit Zynq-7000 SoC oder Zynq UltraScale+ MPSoC und Revision Stack zur Beschleunigung der Machine-Learning- und Bildbearbeitungsfunktionen eine sechs- (Machine Learning) bis 42-fache (Bildbearbeitung) Beschleunigung gemessen in Frames pro Sekunde pro Watt. Außerdem erzielt sie ein Fünftel der Latenz gegenüber einer vergleichbaren GPU-basierten Lösung.

Erfüllung hoher Sicherheitsansprüche

AR-Applikationen wie die Weiterleitung von Patientendaten im medizinischen Umfeld oder von Fertigungsdaten in der Produktion verlangen einen hohen Grad an Sicherheit, sowohl in Bezug auf die Information Assurance (IA), als auch beim Schutz gegen äußere Bedrohungen (threat protection, TP). Dies gilt insbesondere, wenn die AR-Systeme mobil eingesetzt werden und verloren gehen können. Information Assurance bedeutet, dass man den im System gespeicherten Informationen ebenso vertrauen kann wie empfangenen und weitergeleiteten Informationen.

Zur umfassenden Berücksichtigung der Information Assurance sollten die Entwickler die sicheren Boot-Fähigkeiten der Zynq-Bausteine nutzen, die den Einsatz von Verschlüsselung ermöglichen. Außerdem sollte man immer eine Verifizierung per AES (advanced encryption standard), HMAC (hash message authentication code) und RSA Public-Key Kryptographie durchführen. Nachdem der Baustein korrekt konfiguriert ist und arbeitet, kann man die ARM-Trustzone und die Hypervisor-Technik einsetzen, um eine orthogonale Datenstruktur mit voneinander unabhängigen Bereichen zu implementieren, in der eine Domäne sicher ist und nicht von der anderen angegriffen werden kann.

Als Schutz gegen äußere Bedrohungen kann man auch den im System enthaltenen Xilinx-ADC (XADC) -Makro nutzen, um Versorgungsspannungen, Ströme und Temperaturen zu überwachen, und damit etwaige Versuche einer unautorisierten Beeinflussung des AR-Systems zu erkennen. Falls eine solche Bedrohung vorliegt, verfügt der Zynq-Baustein über Schutz-Optionen, die vom Loggen des verdächtigen Ereignisses bis zum Löschen sicherer Daten und dem erzwungenen Abtrennen des Systems von seiner Infrastruktur reichen.