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 Multi-core-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.«