Implementierung und Evaluierung einer FPGA-basierten heterogenen ASIP-Architektur für die Extraktion von SIFT-Merkmalen
Student/in: | Felix Sönke Nikolaus |
Jahr: | 2014 |
Datum: | 20-11-14 |
Laufzeit: | 20.05.2014-20.11.2014 |
Ist abgeschlossen: | ja |
Im Rahmen des Forschungsvorhabens „DESERVE – Development Platform for Safe and Efficient Drive“ werden am Fachgebiet „Architekturen und Systeme“ programmierbare Architekturen mit Hardware-Beschleunigern für rechenintensive Bildverarbeitungsalgorithmen von Advanced Driver Assistance Systems (ADAS) untersucht. Zu den zukünftigen Aufgaben solcher ADAS gehört u.a. die merkmalsbasierte Online-Kalibrierung von Stereokamerasystemen.
Die merkmalsbasierte Online-Kamerakalibrierung basiert auf dem Vergleich eindeutiger Merkmale, die sowohl in einem Stereobildpaar als auch über konsekutive Bilder einer Kamera extrahiert werden. Die eindeutigen Merkmale werden durch den vorgegebenen SIFT-Algorithmus (Scale-Invariant Feature Transform) extrahiert. Der SIFT-Algorithmus liefert qualitativ hochwertige Merkmale bei gleichzeitig hoher Laufzeitkomplexität. Die Randbedingungen der SIFT-Merkmalsextraktion im Automobilbereich erfordern zusätzlich eine Low-Power-Implementierung. Eine Beschleunigung des SIFT-Algorithmus muss daher die geforderte Performance und eine begrenzte Leistungsaufnahme erfüllen. Ausreichende Performance soll durch dedizierte Hardwarebeschleuniger garantiert werden, wobei die resultierende Architektur möglichst flexibel sein soll. Der Aspekt des Datendurchsatzes ist mit der Flexibilität abzuwägen, wobei der Datendurchsatz im Vordergrund steht. Eine Beschleunigung des SIFT-Algorithmus durch eine heterogene Architektur, bestehend aus einem ASIP und dedizierten Hardware-Beschleunigern erfüllt die geforderten Anforderungen, wobei zuerst eine Partitionierung des SIFT-Algorithmus vorgenommen werden muss.
Herr Nikolaus erhält die Aufgabe, eine angepasste, Performance-kritische Implementierung des SIFT-Algorithmus für eine heterogene FPGA-basierte ASIP-Architektur zu erarbeiten. Dazu ist zunächst ein für diese Architektur geeignetes Parallelisierungskonzept des SIFT-Algorithmus zu entwickeln. Die Umsetzung dieses Konzepts soll unter dem Gesichtspunkt der maximalen Durchsatzrate erfolgen. Stehen für die Teilaufgaben mehrere Ansätze zur Verfügung, so sind diese jeweils einzeln zu evaluieren. Anschließend ist ein Benchmarking der Implementierung bezüglich des Datendurchsatzes und des FPGA-Ressourcenbedarfs durchzuführen. Die Funktionsfähigkeit der Implementierung ist anhand von Referenzdatensätzen nachzuweisen.