Datenzusammenführung Sensor-Fusion für Embedded-Vision-Applikationen

Autor / Redakteur: Adam Taylor * / Sebastian Gerstl

Embedded Vision erfordert harte Echtzeit bei Datenzusammenführung und -verarbeitung. All-Programmable-FPGAs und -SoCs ermöglichen es, mehrere Sensortypen parallel zu betreiben und zu synchronisieren.

Anbieter zum Thema

Bild 1: Beispiel für heterogene Sensor-Fusion in einem Fahrer-Assistenzsystem (ADAS).
Bild 1: Beispiel für heterogene Sensor-Fusion in einem Fahrer-Assistenzsystem (ADAS).
(Bild: Xilinx)

Sensoren in vielerlei Gestalt finden rapide Einzug in unsere Lebenswelt. Inzwischen sind sie so weit verbreitet, dass wir kaum mehr darüber nachdenken, wie viele Geräte mit unterschiedlichsten Sensoren wir mit uns führen, etwa in unseren Handys und Smartphones. Mit diesen Sensoren können wir die Änderungen der Umgebungstemperatur, des Luftdrucks, der Beschleunigung oder der Schwerkraft auf einfachste Weise ermitteln, ganz abgesehen von den technologisch weiter fortgeschrittenen Sensoren für GPS-, Radar- oder Lidar-Daten und die Bildverarbeitung.

Sensor-Fusion dient der Extraktion von Daten, die von mehreren verschiedenen Sensortypen stammen. Daraus kann man komplexe Informationen generieren, die mit einem einzigen dieser Sensoren nicht darstellbar sind. Diese lassen sich anschließend im Sinne der vorliegenden Endanwendung weiter verarbeiten und analysieren, um daraus die gegebenen Schlussfolgerungen abzuleiten. Für die Sensor-Fusion gelten zwei grundlegende Klassifizierungen:

  • Echtzeit-Sensor-Fusion – Die Sensordaten werden extrahiert und passend kombiniert, und die daraus abgeleitete Entscheidung basiert auf Echtzeit-Informationen.
  • Offline Sensor-Fusion – Auch bei dieser Vorgehensweise werden die Sensordaten extrahiert und fusioniert, doch die daraus folgenden Entscheidungen werden erst später – off-line - getroffen.

Embedded-Vision-Systeme und Applikationen der Sensor-Fusion sind in meist als Echtzeit-Anwendungen klassifizierbar.

Embedded-Vision- Applikationen im Allgemeinen

Embedded Vision Applikationen verzeichnen derzeit ein signifikantes Wachstum in einem breiten Bereich von Anwendungen, von der Robotik und Fahrerassistenzsystemen (ADAS) bis zur Augmented Reality (AR). Alle diese Embedded Vision Applikationen leiten einen wesentlichen Beitrag zum erfolgreichen Einsatz der jeweiligen Endanwendung. Die Fusion der Informationen des Embedded Vision Systems aus den Daten mehrerer simultan arbeitender, unterschiedlicher Sensoren führt zu einem definitiv besseren Verständnis der Vorgänge in der beobachteten Umwelt. Die Sensor-Fusion erhöht damit die Performance der vorgesehenen Anwendung.

Viele Embedded Vision Applikationen nutzen nur einen einfachen Bildsensor, der in eine Richtung zielt, etwa als Blick nach vorn durch die Frontscheibe eines Autos. Der Einsatz eines solchen Bildsensors bietet in diesem Fall die Möglichkeit, im Fahrweg des Autos auftauchende Objekte zu detektieren, diese zu klassifizieren und in ihren Bewegungen zu verfolgen. Allerdings kann man mit einem einzigen Sensor nicht die Entfernung der Objekte im Bildfeld bestimmen. Man kann also ein anderes Fahrzeug oder einen Fußgänger zwar visuell verfolgen, aber es lässt sich so nicht bestimmen, ob das Risiko einer Kollision besteht.

Dazu braucht es einen weiteren Sensor. In diesem Beispiel könnte das ein Radar- oder Lidar-Sensor mit der Fähigkeit sein, die Distanz zum detektierten Objekt zu messen. Dieser Ansatz nutzt also die Fusion von Informationen aus unterschiedlichen Sensortypen. Deswegen bezeichnet man sie als heterogene Sensor-Fusion. Bild 1 veranschaulicht diese Applikation.

Bild 2: Die Architektur des homogenen Verfahrens.
Bild 2: Die Architektur des homogenen Verfahrens.
(Bild: Xilinx)

Eine alternative Methode wäre hier der Einsatz eines zweiten Bildsensors, was eine stereoskopische Darstellung ermöglicht. Dieses Verfahren nutzt zwei Bildsensoren, die in dieselbe Richtung blicken, aber mit gewissem Abstand nebeneinander angeordnet sind. Dieser entspricht in etwa dem menschlichen Augenabstand. Damit lässt sich die Tiefendimension des Objektbereichs im Blickfeld über die Parallaxe ermitteln. Setzt man dazu mehrere Sensoren desselben Typs ein, spricht man von homogener Sensor-Fusion.

Natürlich bestimmt die jeweils vorliegende Applikation die Anforderungen an die Architektur des Systems und die Wahl der eingesetzten Sensortypen. Dazu zählen vor allem das Sichtfeld, in dem die Tiefenwahrnehmung erforderlich ist, weiterhin die notwendige Genauigkeit der Messung, die vorliegenden Licht- und Wetterbedingungen, die Kosten der Implementierung sowie deren Komplexität.

Embedded Vision Applikationen im Auto werden aber nicht nur zur Objekterkennung und Kollisionsvermeidung eingesetzt. Sie können auch Teil eines Navigationssystems sein, in dem das Embedded Vision System zur Erkennung von Verkehrszeichen dient. Die Fusion mehrerer unterschiedlicher Bilder, etwa auf der Grundlage von Röntgen-, MRI- und CT-Sensoren, etwa in der medizinischen Diagnostik, oder von Sensoren im visuellen und infraroten Bereich für Beobachtungsaufgaben und Sicherheitsanwendungen, sind Beispiele für die weiteren Anwendungsmöglichkeiten der Sensor-Fusion.

Anforderungen an die Bild- und Datenverarbeitung

Oft betrachtet man Embedded Vision Applikationen nur unter dem Aspekt des visuell wahrnehmbaren elektromagnetischen Spektrums. Doch gibt es zahlreiche Embedded Vision Applikationen, die auch Daten in diese Fusion einbeziehen, die außerhalb des sichtbaren elektromagnetischen Spektralbereichs liegen.

Die Bildverarbeitung erfordert auch ohne die Ausführung der Sensor-Fusion bereits beträchtliche Rechenleistungen. Denn solche Systeme müssen eine Reihe von Funktionen zur Vorverarbeitung der Bildsignale bereitstellen. Dazu zählen beim Einsatz eines Farbbildsensors eine Farbfilter-Interpolation und die geeignete Umsetzung des Farbraums, nebst Resampling und Bildkorrektur. Zusätzlich zu diesen Anforderungen muss man auch den Algorithmus für die Sensor-Fusion implementieren. Im Fall des genannten Beispiels zur Objekterkennung und Kollisionsvermeidung muss das System auch die Subtraktion des visuellen Hintergrundes ausführen, sowie eine praktikable Schwellenbildung der Wahrnehmung mit Konturdetektion, um die erkannten Objekte sicher zu lokalisieren. Das gilt für das einfachste Verfahren. Sind die Anforderungen höher, ist der Einsatz eines HoG-/SVM-Klassifikators zur intensiveren Bildbearbeitung ratsam.

Mit wachsender Bildrate und Bildgröße steigt auch die erforderliche Verarbeitungsleistung zur Vorverarbeitung des Bildes und zur Extraktion der gewünschten Information. Doch das ist nur eine Seite der Geschichte. Denn die erforderliche Information lässt sich zwar ohne weiteres aus einem einzigen Bild extrahieren. Doch beim Einsatz der heterogenen Fusion muss auch der Signalhaushalt des zweiten Sensors konfiguriert, verstärkt, weitergeleitet und extrahiert werden. Bei homogenen Systemen muss die Bildbearbeitungskette für den zweiten Sensor exakt in derselben Weise implementiert werden wie für den ersten Sensor. Dabei entstehen zwei Datensätze, die geeignet verarbeitet werden müssen, um die wirkliche Distanz des detektierten Objekts in der vorliegenden Sensor-Fusion-Applikation zu messen.

Einsatz eines All Programmable SoC oder FPGA

Bild 3: Die Architektur des Radar-Verfahrens gliedert sich in Signalerzeugung und Signalempfang.
Bild 3: Die Architektur des Radar-Verfahrens gliedert sich in Signalerzeugung und Signalempfang.
(Bild: Xilinx)

In Embedded Vision Systemen ist es üblich, All Programmable FPGAs oder All Programmable SoCs zum Implementieren der Bildbearbeitungs-Pipeline zu verwenden. Wenn diese Bausteine in traditionellen Embedded Vision Applikationen sinnvoll sind, dann können sie sich in Embedded Vision Applikationen mit Sensor-Fusion besonders gut bewähren.

Unabhängig von der Wahl zwischen FPGA und SoC nutzt eine Embedded-Vision-Applikation ohnehin einen Prozessor zur Überwachung, Steuerung und Kommunikation. Wenn man sich für ein All Programmable SoC entscheidet, sollte es daher ein Hardcore-Typ mit der Unterstützung vieler Peripheriesysteme und Schnittstellen-Standards sein. Wählt man andererseits ein All Programmable FPGA, empfiehlt sich ein Softcore-Typ wie beispielsweise MicroBlaze, mit mehr kundenspezifischer Peripherie und Schnitt- stellenunterstützung.

Bei näherer Betrachtung einer vorliegenden Embedded Vision Applikation mit Sensor-Fusion zeigt sich, dass man den Prozessor dazu verwenden kann, eine einfache Schnittstelle für viele der dabei eingesetzten Sensoren bereit zu stellen. So sind Accelerometer, Magnometer, Gyroskope und sogar GPS-Sensoren verfügbar, die SPI-Schnittstellen (Serial Peripheral Interface) und i2C-Interfaces (Inter Integrated Circuit) bieten. Sie werden von den Softcore-Prozessoren in den All Programmable Zynq-7000- und den MicroBlaze-Bausteinen unterstützt. Das ermöglicht die schnelle und einfache Übernahme der erforderlichen Information per Software von einer breiten Vielzahl von unterschiedlichen Sensortypen unter Einsatz einer skalierbaren Architektur.

Die erforderliche Bildbearbeitungs-Pipeline zur Extraktion der Daten aus dem Bildsensor lässt sich recht einfach innerhalb der programmierbaren Logik implementieren. Doch die programmierbare Logik kann auch zur Implementierung der Bearbeitungs-Pipeline für andere heterogene Sensortypen wie Radar and Lidar herangezogen werden, oder auch für mehrfache Instanzen des Sensoreinsatzes im Falle eines homogenen Systems.

Die enge Kopplung zwischen dem Speicher des Prozessors und der programmierbaren Logik erlaubt beim Einsatz des All Programmable Zynq-7000 oder des All Programmable UltraScale+ MPSoC der Applikations-Software den einfachen Zugriff auf die resultierenden Datensätze zur weiteren Bearbeitung und Entscheidungsfindung. Da die getrennten Sensorketten in der Logik implementiert sind, arbeiten sie parallel. Das ist von entscheidendem Vorteil, wenn eine Synchronisierung erforderlich ist, etwa in stereoskopischen Vision-Systemen.

Um die Entwicklung und Auslieferung einer in programmierbarer Logik implementierten Fusion-Applikation zu beschleunigen, kann man High-Level Synthese (HLS) Tools einsetzen, um die Algorithmen direkt zur Implementierung in der programmierbaren Logik zu entwickeln.

Zwei unterschiedliche Architekturbeispiele

Die Entwicklung des oben erwähnten Algorithmus zur Objekterkennung und Entfernungsmessung kann für ein homogenes oder heterogenes System mit All Programmable SoC ausgeführt werden. Während die Sensortypen für beide Applikationen unterschiedlich sind, verfolgen beide Architekturen das Ziel, zwei Datensätze im DDR-Speicher des Prozessorsystems zu platzieren und die mit der programmierbaren Logik verfügbare Performance zu maximieren.

Die Implementierung des homogenen Systems zur Objekterkennung erfordert den Einsatz identischer Sensortypen. In diesem Fall ist das ein CMOS-Bildsensor. Das hat den Vorteil, dass man nur eine Bildbearbeitungskette entwickeln muss, die in der programmierbaren Logik zweifach, für beide Bildsensoren, eingerichtet wird.

Einer der Vorteile und Kriterien beim Einsatz stereoskopischer Vision-Systeme ist die homogene Architektur. Allerdings erfordert sie die Synchronisierung beider Bildsensoren. Die parallele Implementierung beider Bildbearbeitungsketten innerhalb der programmierbaren Logik und die Nützung desselben Takts innerhalb der programmierbaren Logik (mit den passenden Constraints) helfen bei der Erfüllung dieser nicht zu unterschätzenden Anforderung.

Die Berechnung der Parallaxe involviert eine intensive Verarbeitung. Doch die Möglichkeit der zweifachen Implementierung derselben Bildbearbeitungskette resultiert insgesamt in einer signifikanten Einsparung von Entwicklungskosten.

Die Architektur des in Bild 2 dargestellten homogenen Ansatzes zeigt die beiden Bildbearbeitungsketten, die überwiegend auf verfügbaren IP-Blöcken basieren. Die Bilddaten werden über den bereits besprochenen IP-Modul für die Sensor-Schnittstelle erfasst und vom Parallelformat in einen AXI-Stream konvertiert. Das erlaubt die Realisierung einer einfach erweiterbaren Bildbearbeitungskette. Außerdem kann man die Ergebnisse der Bildbearbeitung in den DDR des Prozessors transferieren. Dazu verwendet man den High-Performance AXI Interconnect in Kombination mit dem Video-DMA.

Bei genauerer Betrachtung des heterogenen Beispiels mit seinen unterschiedlichen Sensortypen könnte man die Architektur der Objekterkennung wie oben beschrieben auch mit der Distanzmessung per Radar kombinieren. Zur Implementierung des Radar-Systems gibt es zwei Optionen: mit gepulstem (Doppler-) Verfahren oder Dauerstrich. Die Entscheidung, welches Verfahren man wählt, hängt von den Anforderungen der Endanwendung ab. Doch beide verfolgen eine ähnliche Strategie.

Die Architektur des Ansatzes mit Radar-Sensoren (Bild 3) lässt sich in zwei Bereiche aufspalten: Signalerzeugung und Signalempfang. Die Signalerzeugung generiert das kontinuierliche Signal oder den Impuls zur weiteren Verarbeitung. Beide Verfahren erfordern, dass der IP-Modul zur Signalerzeugung eine Schnittstelle für einen High-Speed Digital-Analog-Wandler bereitstellt.

Auch der Signalempfang erfordert den Einsatz eines High-Speed Wandlers - in diesem Fall A-D - um das empfangene, kontinuierliche oder gepulste Signal zu erfassen. Zur Signalverarbeitung verwenden beide Verfahren eine FFT-basierte Analyse, die in der programmierbaren Logik implementiert ist. Auch hier kann man die resultierenden Daten per DMA in den DDR des Prozessors übertragen.

Unabhängig davon, welche Architektur man zur Implementierung wählt, wird der Fusionsalgorithmus beider Datensätze im Prozessor per Software ausgeführt. Fusionsalgorithmen können sehr intensiv hinsichtlich der erforderlichen Prozessor-Bandbreite sein. Eine praktikable Option für höhere Performance ist der Einsatz der verfügbaren Tool-Sets, insbesondere der SDSoC Entwicklungsumgebung.

Mit dem Einsatz des SDSoC hat man die Möglichkeit des nahtlosen Transfers von Software-Funktionen zwischen dem Prozessor und der programmierbaren Logik eines SoC. Dies geschieht mit Hilfe von Vivado HLS und einem Konnektivitäts-Framework. Beide sind für den Software-Entwickler transparent.

Natürlich wird man bevorzugt die High-Level Synthese zur Entwicklung der Funktionalität der Bearbeitungsketten beider Implementierungen, homogen wie heterogen, verwenden. Wir können dieses Vorgehen aber noch einen Schritt weiter treiben und eine kundenspezifische SDSoC-Plattform für die gewählte Implementierung erstellen. Anschließend nutzt man die Leistungsfähigkeit des SDSoC zum Einsatz der freien Logik-Ressourcen zur weiteren Erhöhung der Performance des gesamten Embedded Vision Systems.

Die Sensor-Fusion ist inzwischen in zahlreichen Embedded-Applikationen fest etabliert. Embedded-Vision-Systeme verzeichnen ein signifikantes Wachstum, und auch die Sensoren entwickeln sich in ihren Fähigkeiten rapide weiter. Die von den All Programmable FPGAs und SoCs bereitgestellte Funktionalität ermöglicht es, mehrere Sensortypen parallel zu betreiben und wie erforderlich zu synchronisieren. Die Fusion der Daten und Entscheidungsvorgänge erfolgt entweder im Prozessorsystem des SoC oder in einem Softcore-Prozessor. System- und High-Level Synthese-Tools wie SDSoC und Vivado HLS bieten also zahlreiche Vorteile bei der Entwicklung der Applikation. Dazu zählt vor allem die sichere Einhaltung der geforderten Zeitvorgaben.

* Adam Taylor ist selbständiger Embedded Systems Consultant und Autor der MicroZed Chronicles zur Benutzung der Zynq-Reihe von Xilinx.

(ID:44912682)