19.05.2021
Matthias Nickel: Implementierung und Optimierung des AKAZE Feature Detection Algorithmus für die HiFlipVX Bibliothek mittels High-Level Synthese (Masterarbeit)
20.05.2021, 14:30 Uhr
Einladung zur Abschlusspräsentation von Herrn Matthias Nickel
Thema: Implementierung und Optimierung des AKAZE Feature Detection
Algorithmus für die HiFlipVX Bibliothek mittels High-Level Synthese
Projekt: Masterarbeit
Betreuer: Lester Kalms
Abstract:
Die Menge der zu verarbeitenden Bilddaten ist in den letzten Jahrzehnten immer weiter gestiegen. Eine wichtige Aufgabe bei der automatischen Bildverarbeitung ist das erkennen von Mustern in und zwischen Bildern. Die Algorithmen zur Durchführung von Bilderkennung können sehr komplex sein und hohe Anforderungen an die Rechenleistung und damit den Stromverbrauch stellen. Ein effizienter Mustererkennungsalgorithmus ist der beschleunigte KAZE (A-KAZE). FPGAs sind geeignet, um die von vielen Anwendungen geforderten Echtzeitbedingungen zu erfüllen. Das Problem ist, dass effizientes Programmieren auf FPGAs ein umfangreiches Wissen auf dem Gebiet der Optimierung erfordert, was die Implementierungsdauer stark verlängert - selbst bei Verwendung von High-Level-Synthese (HLS)-Tools. HiFlipVX ist eine HLS-Bibliothek, die auf den OpenVX-Standard aufbaut und es ermöglicht, Bildverarbeitungsaufgaben auf FPGAs zu implementieren, ohne oder mit nur geringen Kenntnissen über FPGAs oder High-Level-Synthese. Diese Masterarbeit beinhaltet eine Implementierung des A-KAZE-Algorithmus für HiFlipVX und auch neue bzw. überarbeitete Funktionen zur Erweiterung der HiFlipVX Bibliothek. Die hier vorgeschlagenen Funktionen sind so feingranular und generisch wie möglich gehalten, damit sie in anderen Algorithmen wiederverwendet werden können.
Die Tests der neuen HiFlipVX- AKAZE Implementierung ergaben eine hohe Reproduzierbarkeit der Ergebnisse. Ohne Subpixel-Refinement wurde im Durchschnitt eine Wiederholbarkeit von 88,4098% erreicht. Dies ist nur etwa 3 % weniger als bei einer reinen Fließkommazahlen-basierten Softwarelösung mit 91,3775%. Das zeigt, dass gute Ergebnisse bei der Merkmalserkennung auch mit Integer-Datentypen zur Darstellung von Nachkommastellen erzielt werden können.
Wenn lediglich das Subixel-Refinement hochpräzise für den FPGA umgesetzt wird, werden sogar 90.7339% erreicht, jedoch steigt dann der Ressourcenverbrauch deutlich.
Diese Implementierung ist durch Stream-Processing, Nutzung von Linebuffers und Sliding Windows und einer erreichten Schleifeniterationslatenz von 1 bei jeder implementierten Funktion - hocheffizient für FPGA Nutzung.