06.01.2014 Aufrufe

Bildverarbeitung - HANSER automotive

Bildverarbeitung - HANSER automotive

Bildverarbeitung - HANSER automotive

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

12lA UTOMOTIVE<br />

3-4.2009l TITEL<br />

© Carl Hanser Verlag GmbH & Co.KG, München, www.hanser-<strong>automotive</strong>.de; Nicht zur Verfügung in Intranet- u.Internet-Angeboten oder elektron. Verteilern<br />

ENTWICKLUNG VON FAHRERASSISTENZSYSTEMEN MIT FPGAS<br />

<strong>Bildverarbeitung</strong><br />

mit Methode<br />

Mit AIDA, dem Advanced Integrated Driver Assistance System von Altera<br />

wird zum einen eine integrierte Systemarchitektur zur kostengünstigen<br />

Umsetzung von Fahrerassistenzsystemen und zum anderen eine neue<br />

Methodik vorgestellt, die eine direkte Schnittstelle von der PC Entwicklun<br />

zur Hardware realisiert.<br />

Moderne Fahrzeuge bieten heute schon Lösungen<br />

basierend auf Radar oder Kamerasystemen,<br />

die den Fahrer in Gefahrensituationen<br />

warnen und unterstützen sollen. Die erste Generation<br />

solcher Systeme sind Spurwechselassistenten (LDW –<br />

Lane Departure Warning), Adaptive Abstandssysteme<br />

(ACC – Adaptive Cruise Control), Rückschaukameras als<br />

Einparkhilfe und Nachtsichthilfen. Die nächste Generation<br />

wird über mehr Sensoren mit noch höherer Auflösung<br />

und über deutlich komplexere Funktionen verfügen.<br />

Systementwickler stehen dabei vor großen Herausforderungen,<br />

da die aufwendigen Algorithmen eine<br />

sehr hohe Verarbeitungsleistung erfordern, im Fahrzeug<br />

aber weder viel Platz noch ausreichende Kühlmöglichkeit<br />

für stromhungrige Prozessoren besteht. Dazu kommen<br />

noch die üblichen Randbedingungen wie minimale<br />

Kosten und maximale Ausfallsicherheit. Eine Reihe von<br />

Halbleiterbausteinen adressiert diese Probleme auf<br />

unterschiedliche Art. Heute werden sowohl spezielle<br />

Bildverabeitungs-Controller, als auch Signalprozessoren<br />

(DSPs), Standard-Prozessoren und Programmierbare<br />

Logik (FPGAs) in neuen Systemkonzepten untersucht.<br />

Beispiel eines Spurwechselassistenten<br />

Das Beispiel in Bild 1 zeigt den prinzipiellen Aufbau von<br />

Fahrerassistenzsystemen. In diesem Fall wird eine nach<br />

vorne schauende Kamera eingesetzt, die eine Auflösung<br />

von mindestens 640x480 Bildpunkten und eine Bildrate<br />

von 15-30 fps (Bilder pro Sekunde) aufweist. Der<br />

LDW-Algorithmus verarbeitet das Kamerasignal in ver-


TITELl AUTOMOTIVE<br />

3-4.2009l13<br />

© Carl Hanser Verlag GmbH & Co.KG, München, www.hanser-<strong>automotive</strong>.de; Nicht zur Verfügung in Intranet- u.Internet-Angeboten oder elektron. Verteilern<br />

Bild 1: Verarbeitungsblöcke und Signalfluss für einen Spurwechsel-Assi-<br />

© <strong>automotive</strong><br />

schiedenen Schritten. Zunächst werden<br />

relevante Messpunkte gesucht und<br />

extrahiert, anhand derer dann Kandidaten<br />

identifiziert werden, die auf einer<br />

Spurgrenze liegen könnten. Mit einer<br />

Reihe von Filterfunktionen und der<br />

Betrachtung vorausgehender Bilder wird<br />

diese Information zur Spurkennzeichnung<br />

verwendet. Schließlich wird die<br />

Lage des Fahrzeugs auf der Spur berechnet.<br />

Je nachdem wie nahe das Fahrzeug<br />

der Spurgrenze kommt wird ein Warnsignal<br />

generiert.<br />

stenten.<br />

Prinzipiell kann man zwei Arten der Signalverarbeitung<br />

unterscheiden. Die<br />

ersten Berechnungsschritte verarbeiten den Strom der<br />

Bilddaten direkt und müssen daher sehr schnell ablaufen.<br />

Dabei werden im Pixeltakt mehrere Linien gleichzeitig<br />

gefiltert, um z.B. Kanten zu erkennen. Diese sogenannte<br />

Bildvorverarbeitung (Pre-Processing) wird in der<br />

Regel parallel in Hardware implementiert. Der Signalfluss<br />

geht als Strom durch die Blöcke hindurch. Die<br />

Anforderungen an die Hardware sind dabei recht<br />

beachtlich. Ein einfaches 3-Tap-Filter für ein VGA-Signal<br />

mit 30 fps erzeugt einen Rechenaufwand von 30 Millionen<br />

Multiplizier-Akkumulier-Zyklen pro Se-kunde. Die<br />

Ergebnisse der Berechnung werden wieder zu einem<br />

Bild zusammengesetzt und im Speicher abgelegt. Das<br />

ist notwendig, weil die folgenden Verarbeitungsschritte<br />

wahlfrei auf einzelne Bildpunkte zugreifen müssen und<br />

daher nicht direkt im Bildstrom arbeiten können. Diese<br />

Bildnachverarbeitung (Backend-Processing) ist nur mit<br />

hohem Aufwand parallel zu implementieren und wird<br />

daher meist in einer Prozessorarchitektur als Programm<br />

durchlaufen. Dabei ist die Speicherbandbreite des<br />

Systems entsprechend leistungsfähig auszulegen,<br />

denn nur ein einziger wahlfreier Zugriff pro Bildpunkt<br />

erzeugt schon eine Buslast von etwa 150 MByte/s.<br />

Bild 2: Aufbau des AIDA-Prozessors.<br />

Um den oben genannten Anforderungen gerecht zu<br />

werden, bestehen leistungsfähige Fahrerassistenzsysteme<br />

heute aus mindestens zwei Bausteinen, dem Vorverarbeitungsbaustein<br />

an der Kamera und einem oder<br />

mehreren DSPs zur Bildnachverarbeitung. Die Architektur<br />

der Vorverarbeitungseinheit hängt von der Fahrerassistenzfunktion<br />

ab, die realisiert werden soll. Es gibt<br />

zwar eine Reihe von Standardfiltern, die auch in einigen<br />

Spezialbausteinen in Hardware integriert sind - die Qualität<br />

eines Systems wird jedoch entscheidend von der<br />

Bildvorverarbeitung beeinflusst. Damit ist es meist<br />

unerlässlich spezielle Filterfunktionen zu implementieren.<br />

Besonders flexibel geht das mit FPGAs.<br />

AIDA-Controller<br />

Fahrerassistenzsysteme werden aufgrund des hohen<br />

Bauteileaufwands derzeit nur in Oberklasse- und einigen<br />

Mittelklasse-Fahrzeugen als Option angeboten. Ein<br />

breiter Einsatz auch in Volumenbaureihen erfordert eine<br />

grundlegende Optimierung der Systemarchitektur. Eine<br />

deutliche Kostenreduktion ergibt sich durch die Integration<br />

einer flexiblen Bildvorverarbeitung und einer programmierbaren<br />

Bildnachverarbeitung in einen Baustein.<br />

Der AIDA-Prozessor (Bild 2) bietet<br />

sowohl die Flexibilität der programmierbaren<br />

Hardware als auch die<br />

Programmierbarkeit und die Verarbeitungsleistung<br />

eines DSPs.<br />

Die dargestellten Funktionsblöcke<br />

sind Hardware-Module, die entweder<br />

fest vorgegeben oder anwenderspezifisch<br />

konfigurierbar sind.<br />

Dabei implementiert die linke Funktionsblockreihe<br />

die Signalvorverarbeitungsmodule<br />

mit vier unabhängigen<br />

Kameraeingängen, die mittlere<br />

Reihe realisiert das Back-end-Processing<br />

mit drei unabhängigen<br />

CPUs für verschiedene Algorithmen<br />

und die rechte Reihe stellt einen<br />

System Kommunikationscontroller<br />

zur Verfügung, um den AIDA-Controller<br />

mit den im Fahrzeug vorhan-<br />

© <strong>automotive</strong><br />

denen Schnittstellen zu verbinden.


14lA UTOMOTIVE<br />

3-4.2009l TITEL<br />

© Carl Hanser Verlag GmbH & Co.KG, München, www.hanser-<strong>automotive</strong>.de; Nicht zur Verfügung in Intranet- u.Internet-Angeboten oder elektron. Verteilern<br />

Bild 3: FPGA-Entwicklungssystem.<br />

Am unteren Rand ist die Speicherverwaltung mit zwei<br />

DDR2-Speichercontrollern und einem Flash-Controller<br />

abgebildet. Zusätzlich zum externen Speicher steht noch<br />

ein internes SRAM zur Verfügung. Der dargestellte Funktionsumfang<br />

stellt den Maximalausbau dar. Je nach Anforderungen<br />

werden alle oder nur ein Teil der Blöcke in den<br />

Controller integriert.<br />

Design-Methodik<br />

Der AIDA-Controller wird auf der Basis von Programmierbarer<br />

Logik entwickelt und steht dem Entwickler als sogenanntes<br />

Design-Template zur Verfügung. Die festen Funktionsmodule<br />

sind dabei bereits im Design vorhanden und<br />

miteinander verbunden. Die konfigurierbaren Blöcke werden<br />

mithilfe von Design Werkzeugen weitgehend automatisch<br />

generiert und in das Design eingebaut. Am Beispiel<br />

des oben genannten Spurwechselassistenten soll<br />

hier der Entwicklungsvorgang näher betrachtet werden.<br />

Der verwendete LDW-Algorithmus stammt dabei von der<br />

Firma Elektrobit Automotive und basiert auf dem PRE-<br />

VENT SAFELANE Projekt der Europäischen Gemeinschaft.<br />

Die Entwicklung eines LDW-Systems erfolgt zunächst am<br />

PC und benutzt eine Reihe von Test-Videos, um die Qualität<br />

des Algorithmus direkt überprüfen zu können. Das Entwicklungssystem<br />

kann dazu Echtzeitvideos von Fahrszenen auf<br />

eine Festplatte aufzeichnen und dem Algorithmus zur Bearbeitung<br />

anschließend wiedergeben. Die Hardware für beide<br />

Entwicklungsphasen ist in einem FPGA integriert. Dabei ist<br />

das FPGA aufgeteilt in einen Video-Streamingblock und in<br />

den eigentlichen AIDA-Block. Beide Blöcke arbeiten dabei<br />

unabhängig voneinander und beeinflussen sich auch bezüglich<br />

der Verarbeitungsleistung nicht gegenseitig. Während<br />

der Entwicklung wird hauptsächlich der Video-Streamingblock<br />

für die Fahrszenenwiedergabe verwendet. Im endgültigen<br />

AIDA-Controller werden dann die Streaming-Eingänge<br />

direkt mit Kameras verbunden.<br />

Der Streamingblock hat ein Anwenderinterface mit Bildschirm<br />

und Touchscreen. Sein Festplatteninterface und die<br />

dazugehörige Software stellt ein Filesystem zur Verfügung,<br />

aus dem bis zu vier VGA-Videokanäle gleichzeitig<br />

auf den AIDA-Block aufgespielt werden<br />

können.<br />

Der AIDA-Teil ist rund um den Nios II-Prozessor<br />

aufgebaut, einen flexiblen 32-bit<br />

RISC Controller mit folgenden zusätzlichen<br />

Basiselementen<br />

■ Performance Counter für das Code<br />

Profiling,<br />

■ Nachrichtenspeicher zur Kommunikation<br />

mit der Streaming-Schnittstelle,<br />

■ Grafikcontroller, um verarbeitete Bildszenen<br />

abspielen zu können.<br />

Auch für die Software des AIDA-Controllers<br />

steht eine Designvorlage zur Verfügung, die<br />

aus vordefinierten Elementen besteht und<br />

© <strong>automotive</strong> nur um den Anwendercode erweitert werden<br />

muss. Eine Profiling-Phase dient zur<br />

Identifikation von Softwareteilen, die eine<br />

Hardwarebeschleunigung erforderlich machen. Dabei gibt es<br />

zwei verschiedene Fälle zu berücksichtigen:<br />

■ Verarbeitet der Algorithmusteil die Pixeldaten des Videosignals<br />

nacheinander, dann wird dieser Teil zu einem Vorverarbeitungsblock<br />

im Systemgenerator, dem sogenannten<br />

SOPC-Builder. Der Eingang eines solchen Blockes ist die<br />

Video-Streamingschnittstelle. Die verarbeiteten Daten werden<br />

in einem Bildspeicher abgelegt. Dieser Teil des Algorithmus<br />

wird oft in Tools wie MATLAB/SIMULINK entwickelt.<br />

■ Benötigt der Algorithmusteil den wahlfreien Zugriff auf<br />

die Punkte in einem Bildspeicher mit einem weiteren Bildspeicher<br />

für die Ergebnisse, dann handelt es sich um eine<br />

Backend-Verarbeitung. Dieser Teil des Algorithmus ist in der<br />

Regel C/C++ Softwarecode.<br />

Diese beiden Fälle treten in realen Fahrerassistenzalgorithmen<br />

in der Regel gleichzeitig und teilweise auch mehrfach<br />

auf. Zur Hardware-Beschleunigung von Signalvorverarbeitung<br />

und der Backend-Verarbeitung werden zwei<br />

unterschiedliche Methoden eingesetzt.<br />

Die Signalvorverarbeitung berechnet Operationen direkt auf<br />

dem Videostream und ist daher sehr rechenintensiv. Eine<br />

Hardwarebeschleunigung ist meist unumgänglich, da sehr<br />

viele arithmetische Operationen durchzuführen sind. Wird<br />

zum Beispiel eine einzige MAC-Instruktion mit Multiplikation<br />

und Aufsummierung für jeden der 307.200 Pixel eines VGA-<br />

Bildes verlangt, so benötigt ein Standard-DSP mit einer Verarbeitungseinheit<br />

genau 307.200 Zyklen zu deren Berechnung.<br />

Ein Signalvorverarbeitungsblock in Hardware kann<br />

jedoch viele dieser Operationen parallel ausführen und benötigt<br />

deswegen wesentlich weniger Zeit für die Verarbeitung<br />

eines kompletten Bildes. Die Algorithmen der Signalvorverarbeitung<br />

werden oft in MATLAB/SIMULINK entwickelt,<br />

bevor sie in C++ übersetzt werden. Das Tool DSP Builder<br />

arbeitet direkt mit MATLAB/SIMULINK zusammen und kann<br />

aus der grafischen Darstellung des Algorithmus automatisch<br />

einen Hardwarebeschleunigungs-Block generieren. Im Beispiel<br />

der LDW-Funktion benötigt der Signalvorverarbeitungsblock<br />

etwa 70 % der gesamten Rechenzeit. Eine Implementierung<br />

in Hardware mithilfe des automatischen Design<br />

Flows benötigt nur noch ca. 1% der Rechenzeit und ver-


TITELl AUTOMOTIVE<br />

3-4.2009l15<br />

© Carl Hanser Verlag GmbH & Co.KG, München, www.hanser-<strong>automotive</strong>.de; Nicht zur Verfügung in Intranet- u.Internet-Angeboten oder elektron. Verteilern<br />

braucht 2500 Logikelemente, das sind etwa<br />

3% der zur Verfügung stehenden Ressourcen<br />

eines AIDA-Controllers.<br />

Im Unterschied zur Signalvorverarbeitung arbeitet<br />

das Backend-Processing mit wahlfreiem<br />

Zugriff auf die einzelnen Pixel eines Videobildes.<br />

Ein Beispiel dafür ist die Korrektur des Bildes<br />

von einer Weitwinkellinse, wie sie oft in Rükkschaukameras<br />

zum Einsatz kommt. Dieser<br />

Algorithmus ordnet die Pixel des Eingangsbildes<br />

neu an und führt eine Interpolationsfunktion<br />

aus. Die Pixelzuordnung selbst ist ideal für<br />

eine sequentielle Abarbeitung in einem RISC<br />

Prozessor geeignet. Da die Interpolation einige<br />

Rechenzeit benötigt, wird hier direkt aus dem<br />

C-Code mithilfe des Tools C2H automatisch<br />

Hardware zur Beschleunigung generiert. Dieser Block wird<br />

dabei mit einem DMA-Mechanismus an das Prozessorsystem<br />

angeschlossen und die Funktion im C-Code ist dann nur<br />

noch ein Kommunikationsaufruf zur Hardware.<br />

Entwicklungsplattform<br />

Bei Fahrerassistenzsystemen ist es besonders wichtig, möglichst<br />

früh einen Prototyp auf der Zielhardware zu testen, um<br />

damit die voraussichtlichen Kosten und den Systemumfang<br />

abschätzen zu können. Der AIDA-Controller wurde für die<br />

PARIS-Infotainment Plattform (Bild 4) entwickelt, die zum<br />

Aufbau von Prototypen für Head-Units und Fahrerassistenzsysteme<br />

eingesetzt werden kann. Dazu stehen zwei LCD-<br />

Bildschirme, das Mainboard mit den Systemschnittstellen<br />

und dem Prozessormodul mit dem FPGA sowie eine Festplatte<br />

zur Verfügung. Das Mainboard hat eine ganze Reihe von<br />

Anschlüssen für alle gebräuchlichen Infotainment Schnittstellen,<br />

die in dem FPGA integriert werden können.<br />

National Instruments Germany GmbH<br />

Konrad-Celtis-Str. 79 • 81369 München<br />

Tel.: 089 7413130 • Fax: 089 7146035<br />

ni.com/germany • info.germany@ni.com<br />

Bild 4: PARIS Entwicklungsplattform für Fahrerassistenzsystem Prototypen.<br />

Zusammenfassung<br />

Die FPGAs und HardCopy-ASICs von Altera stellen eine<br />

attraktive Lösung für Fahrerassistenzsysteme dar. Mit paralleler<br />

Signalverarbeitung in Hardware sowie prozessorbasierter<br />

Verarbeitung wird im Vergleich zu konventionellen<br />

Systemarchitekturen eine weitaus höhere Systemleistung<br />

zu signifikant niedrigeren Kosten erreicht. Die vorgestellte<br />

Design-Methodik ermöglicht darüber hinaus einen direkten<br />

und automatischen Übergang von C++ Code oder MAT-<br />

LAB/SIMULINK Modellen in die Hardware, ohne dass eine<br />

Hardware-Beschreibungssprache verwendet werden muss.<br />

(oe)<br />

Simulation - Prüftechnik - Versuchsauswertung<br />

Dr. Axel Zimmermann ist Market Development<br />

Manager Europe Automotive bei<br />

Altera.<br />

Altera<br />

@ www.altera.com<br />

7. Technologietag “Prüfstandskonzepte in der Automobilindustrie”<br />

Am 26. Mai 2009 im CongressPark Wolfsburg<br />

Agenda und kostenfreie Anmeldung: ni.com/germany/<strong>automotive</strong>tag<br />

© <strong>automotive</strong><br />

Der NI-Technologietag bietet Ihnen:<br />

• ein hochkarätiges Vortragsprogramm<br />

• zwei begleitende Workshops<br />

• eine umfangreiche Fachausstellung<br />

Diskutieren Sie mit NI-Experten sowie zahlreichen Ausstellern und Fachkollegen und holen Sie sich neue Impulse für Ihre<br />

Aufgabenstellungen! Die Teilnahme an der ganztägigen Veranstaltung ist kostenfrei.<br />

© 2009 National Instruments Corporation. Alle Rechte vorbehalten. National Instruments, NI und ni.com sind Warenzeichen von National Instruments. Andere erwähnte Produkt- und Firmennamen sind Warenzeichen oder Handelsbezeichnungen der jeweiligen Unternehmen. Druckfehler, Irrtümer und Änderunge vorbehalten.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!