Fraunhofer-Institut für Optronik, Systemtechnik und Bildauswertung IOSB

Eingebettete Systeme schneller entwickeln

Entwicklungsplattform für Bildverarbeitungskomponenten

Karlsruhe, 2.9.2019

Sei es fürs Auto oder die Drohne: Bildverarbeitungssoftware für eingebettete Systeme zu entwickeln nimmt viel Zeit in Anspruch und ist daher teuer. Die Plattform Tulipp erlaubt es nun, energieeffiziente Embedded-Bildverarbeitungssysteme schnell und kostengünstig zu entwickeln – und damit die Zeit bis zur Markteinführung drastisch zu verkürzen. Ein EU-Konsortium, dem das Fraunhofer-Institut für Optronik, Systemtechnik und Bildauswertung IOSB angehört, hat den Prozess vereinfacht.
 
 
Auf den ersten Blick haben Drohnen, Fahrerassistenzsysteme und mobile medizinische Diagnosegeräte nicht allzu viel gemeinsam. Doch: Sie benutzen vermehrt Bildverarbeitungskomponenten, etwa für die Hinderniserkennung oder Fußgängerdetektion. Im Falle mobiler Röntgengeräte kann man mit Hilfe der Bildverarbeitung auch bei reduzierter Strahlung ausreichende Bildqualität gewährleisten und somit die Strahlenbelastung erheblich reduzieren.

Im Gegensatz zu einem Arbeitsplatzrechner, wo die Abmessungen und Energieverbrauch nicht wirklich kritisch sind, sind für solche Anwendungen kleine, leichte, energieeffiziente und trotzdem echtzeitfähige Bildverarbeitungskomponenten gefragt. Gängige Computerarchitekturen mit Prozessoren sind für diese Anforderungen keine geeignete Hardwareplattform. Oft kommen deshalb eingebettete Systeme auf Basis sogenannter Field Programmable Gate Arrays (FPGAs) zum Einsatz. Das sind Logikbausteine, deren Schaltungsstruktur sich über eine spezielle Art der Programmierung frei konfigurieren lässt.

Dafür wird in der Regel die hardwarenahe Sprache VHDL verwendet. Das Problem dabei: Die meisten Bildverarbeitungsanwendungen liegen in höheren Programmiersprachen wie C/C++ vor, und ihre Übertragung auf die eingebetteten Systeme ist sehr mühselig. Nicht nur, dass VHDL sich stark von anderen Programmiersprachen unterscheidet – zusätzlich muss noch eine Anpassung auf die jeweilige Hardware erfolgen. So sind selbst bereits vorhandene VHDL-Programme nicht auf andere Hardware übertragbar. Die Software-Entwickler müssen also bei jedem neuen System wieder nahezu bei null anfangen.
 
 

Starter-Kit für schnelle Umsetzung besonders energieeffizienter, eingebetteter Systeme

Ein Konsortium, dem acht Partner aus sechs Ländern angehörten – darunter auch das Fraunhofer-Institut für Optronik, Systemtechnik und Bildauswertung IOSB in Karlsruhe – hat dieses Prozedere im Rahmen des Tulipp-Projekts nun erheblich vereinfacht. »Dabei entstand eine Entwicklungsplattform bestehend aus Design-Guidelines, einer konfigurierbaren Hardware-Plattform, einem echtzeitfähigen Betriebssystem, welches Multicore-Prozessoren unterstützt, sowie einer Programmierwerkzeugkette«, fasst Dr.-Ing. Igor Tchouchenkov, Gruppenleiter am Fraunhofer IOSB, zusammen. »Darüber hinaus hilft ein Starter-Kit, das von einem unserer Partner im Rahmen von Tulipp auf den Markt gebracht wurde. Mit ihm lassen sich solche Anwendungen viel schneller und einfacher entwickeln. Portierungen von C++-Programmen auf FPGA, an denen ein Entwickler oft mehrere Monate gearbeitet hat, sind mit dem Tulipp-Starterkit innerhalb von wenigen Wochen zu stemmen.«

Für den Entwickler heißt das: Ausgehend von der in C++ programmierten Software überlegt er zunächst, welche Code-Bestandteile man auf welche Hardware-Komponenten aufteilt und welche Programmschritte sich optimieren bzw. parallelisieren lassen. Dabei helfen ihm die erarbeiteten Design-Guidelines. Anschließend kommt das Starter-Kit ins Spiel. Es enthält die konfigurierbare Hardware, an die sich die benötigten Sensoren und Ausgabegeräte anschließen lassen, das multiprozessorfähige Echtzeit-Betriebssystem sowie die sogenannte STHEM-Toolchain. Die darin enthaltenen Anwendungen erlauben es, das C++-Programm so zu optimieren, dass es möglichst einfach und schnell auf die FPGA portiert werden kann. »Ein besonderer Schwerpunkt der Toolchain liegt auf der Energieoptimierung: Schließlich sollen die Bildverarbeitungssysteme möglichst mit einem kleinen Akku auskommen«, sagt Tchouchenkov. »In der Toolchain lässt sich der Energieverbrauch daher für jede Code-Funktion einzeln anzeigen und optimieren.«


Hundertmal schneller als der High-End-PC

Um die Tulipp-Plattform zu entwickeln und zu testen, hat das Konsortium drei konkrete Anwendungsfälle bearbeitet: Das Forscherteam am Fraunhofer IOSB hat sich den Verfahren zur Hinderniserkennung einer Drohne mit Stereokameras gewidmet, weitere Projektpartner befassten sich mit der Fußgängerdetektion im Umfeld eines Autos sowie der Strahlenreduktion bei Röntgenuntersuchungen während einer Operation. Im Rahmen von Tulipp haben sie entsprechende Bildverarbeitungsverfahren von C++ auf FPGA portiert.

Das Ergebnis kann sich sehen lassen: Die Verfahren, die ursprünglich auf einem High-End-PC mehrere Sekunden für die Analyse eines einzigen Bildes gebraucht haben, laufen nun auf der Drohne in Echtzeit, d.h. es werden nun ca. 30 Bilder pro Sekunde analysiert. Auch die Fußgängerdetektion konnte in punkto Schnelligkeit um einen Faktor von hundert gesteigert werden: Statt einem Bild pro sieben Sekunden schafft das System nun 14 Bilder pro Sekunde. Und die Strahlung bei Röntgenuntersuchungen konnte aufgrund vorgeschalteter Filter und besserer Bildauswertung auf ein Viertel reduziert werden. Gleichzeitig konnte der Energieverbrauch aller drei Anwendungen um ein Vielfaches verringert werden.
 

Weitere Informationen:
http://tulipp.eu/
 
 
Abb. 1 Drohne mit Stereokamera. In dem weißen Kästchen sitzt das eingebettete System, das die leicht versetzten Bilder der beiden Kameras in Echtzeit auswertet und Hindernisse erkennt.

© Fraunhofer IOSB
 
 
 
 
 
 
 
 
 
 
 
 Abb. 2 Die Stereokamera und das eingebettete System aus der Drohne.

© Fraunhofer IOSB
 
 
 
 
 
 
 
 
 
 
 
 
Abb. 3 Videobild einer der beiden Kameras der Drohne.

© Fraunhofer IOSB
 
 
 
 
 
 
 
 
 
 
 
Abb. 4 Dasselbe Bild mit der überlagerten Tiefeninformation aus der Stereobildauswertung, rot markiert Hindernisse in der Nähe. Der Pfeil deutet die darauf basierende Ausweichempfehlung an.

© Fraunhofer IOSB