Die Kantenerkennung ist heute ein entscheidender Bestandteil nahezu aller Techniken der Computer Vision, die in zahlreichen Anwendungsgebieten eingesetzt werden1. Die Kantenerkennung stellt eine Merkmalsextraktionsstufe dar und ist dafür verantwortlich, aussagekräftige und charakteristische Details aus Bildern zu gewinnen, die in einer Vielzahl von Szenarien Anwendung finden können2. Kanten in einem Bild markieren Bereiche, in denen eine abrupte Änderung der Helligkeitsintensität vorliegt; sie liefern daher wichtige und unterscheidende Informationen über das jeweilige Bild. Dieser Prozess ermöglicht die Beseitigung überflüssiger und irrelevanter Details und bewahrt lediglich die wesentlichen und einzigartigen Elemente, die für die jeweilige Anwendung weiterverarbeitet werden können.
Die Bedeutung der Kantenerkennung ergibt sich aus ihrer Anwendung in zahlreichen Aufgaben wie der Bildsegmentierung, Objekterkennung und -identifizierung, Merkmalsextraktion, Bildverbesserung, medizinischen Bildgebung, Überwachung, industriellen Automatisierung, autonomem Fahren, Augmented Reality und Robotik2,3,4,5,6, wie in Abbildung 1 dargestellt.
Es existieren mehrere Methoden zur Kantenerkennung, darunter Sobel, Prewitt, Roberts, Canny und andere. Unter diesen Verfahren zeichnet sich die Sobel-Kantenerkennung durch ihre einfache Anwendung, geringe Implementierungskomplexität und hohe Genauigkeit bei der Kantenfindung aus3,4,5,6. Die Gradienten des Bildes werden vom Sobel-Edge-Algorithmus sowohl in horizontaler als auch in vertikaler Richtung mithilfe der jeweiligen Kerne Gx und Gy bestimmt, wie unten dargestellt2,4.
Gx hebt die Kanten in x-Richtung hervor, und Gy hebt Kanten in y-Richtung hervor12,13. Zusammen kombiniert definieren sie vollständig alle Kanten in einem Bild6. Die Faltung mit dem Kernprozess und dem verschiebbaren Fenster wird verwendet, um die Sobel-Kantenerkennung auf ein Bild anzuwenden. Nacheinander wird ein Fenster, beispielsweise 3 × 3 Pixel groß, aus dem Bild ausgeschnitten, und dieses Fenster wird mit der Filtermatrix gefaltet, um den neuen Wert des mittleren Pixels zu erhalten. Das gesamte Bild wird auf diese Weise erneut verarbeitet. Bei der Sobel-Kantenerkennung werden zwei solcher Kerne verwendet: einer zum Extrahieren von Kanten in x-Richtung und ein weiterer für die y-Richtung. Um alle Kanten zu erhalten, werden diese beiden Ergebnisse anschließend kombiniert. Die Sobel-Kantenerkennung liefert genaue und zuverlässige Ergebnisse, die durch eine Vorverarbeitung weiter verbessert werden können4,5,15. Die vollständige Sobel-Kantenerkennung ist in Abbildung 2 dargestellt.
Obwohl alle publizierten Arbeiten wesentliche Beiträge auf dem Gebiet der Kantenerkennung leisten, beschränken sich die meisten bisherigen Untersuchungen auf niedrige Bildauflösungen, während die in dieser Arbeit vorgestellte Methode mit unterschiedlichen Bildauflösungen arbeitet, die von niedrigen Auflösungen (256 × 256) bis hin zur vollen hochauflösenden (HD) Bildauflösung (2560 × 1440) reichen. Daher ist die Untersuchung der Hardware-Implementierung des Sobel-Kantendetektionsalgorithmus für verschiedene Bildauflösungen entscheidend, um die Effizienz der Implementierung unter Echtzeitanforderungen mit wechselnden Bildauflösungen zu verstehen. Das Feldprogrammierbare Gate-Array (FPGA) gilt aufgrund seiner Eignung für die schnelle Prototypenentwicklung sowie aufgrund von Vorteilen wie der Rekonfigurierbarkeit, die einfache Designänderungen ohne Austausch der gesamten Hardwarekonfiguration ermöglicht, als geeignete Plattform für Hardware-Implementierungen6,7,8,9,10,11,12,13. Darüber hinaus bieten FPGAs das Potenzial für parallele Verarbeitung und Pipelining; sobald die Leistungskennzahlen optimiert und die Plattform validiert sind, kann das Design in Richtung der tatsächlichen Herstellung von anwendungsspezifischen integrierten Schaltungen (ASICs) weiterentwickelt werden14,15. Ein weiteres wichtiges Merkmal von FPGAs ist ihre Rekonfigurierbarkeit, die es Entwicklern ermöglicht, jederzeit Änderungen am Produktdesign vorzunehmen, ohne Hardware ersetzen zu müssen. Es genügt, den Chip neu zu programmieren, was bei Kenntnis hardwarebeschreibender Sprachen wie VHDL/Verilog nur wenig Zeit und Aufwand erfordert4,6,13,16,17. Für die Analyse der FPGA-Implementierung werden die wichtigsten Parameter Geschwindigkeit (maximale Frequenz), Ressourcenauslastung und Energieeffizienz betrachtet. Tabelle 1 zeigt die zunehmende Menge an Fachliteratur im Bereich FPGA und verdeutlicht, wie sich FPGA-Publikationen im Zeitraum von 2006 bis 2024 entwickelt haben. Sie macht deutlich, dass sich der Forschungsbereich FPGA mittlerweile auf Echtzeitanwendungen, erweiterte Realität (Augmented Reality), Edge Computing und andere anspruchsvolle Anwendungen verlagert hat13,14,15,16,17,18,19,20,21,22,23.
Tabelle 2 verdeutlicht die in der bestehenden Literatur seit 2020–2025 geleistete Arbeit im Zusammenhang mit der Implementierung der Sobel-Kantendetektion auf FPGA. Tabelle 2 nennt das verwendete FPGA-Board, die implementierten Algorithmen, die Entwurfsmethodik, die Ergebnisse, Metriken, Anwendungsgebiete sowie die Herausforderungen der jeweils referenzierten Artikel.
Die Autoren4 haben empfohlen, die 8-Richtungs-Sobel-Kantenmethode zu verwenden, um die Genauigkeit der Kantenerkennung zu erhöhen; sie berichteten jedoch über einen höheren Ressourcenverbrauch bei der vorgeschlagenen Methodik. Navinkumar et al. nutzen eine Technik, um die komplexen mathematischen Operationen – Multiplikation und Quadratwurzel –, die bei der traditionellen Sobel-Kantenerkennung auftreten, zu reduzieren, wodurch die Bordressourcen geschont und die Geschwindigkeit verbessert wird9. Die Autoren17 dokumentierten die Verwendung des Sobel-Kantenerkennungsalgorithmus zur Erkennung von Fahrspuren in fortschrittlichen Fahrerassistenzsystemen. Ihr Ziel bestand darin, die Erkennung zu beschleunigen und gleichzeitig die Verarbeitungszeit zu verkürzen. Insgesamt wurde die Verwendung der Kantenerkennung als zuverlässige Methode zur Extraktion des interessierenden Bereichs (Region of Interest) für die Zukunft vorgeschlagen, was in einer Vielzahl von Anwendungen sehr hilfreich sein könnte, bei denen der benötigte Bildbereich extrahiert werden muss, während alle anderen unwesentlichen Informationen ignoriert werden. Zu den gemeinsam berichteten Herausforderungen zählten höherer Ressourcen- und Speicherverbrauch, Empfindlichkeit gegenüber Rauschen, hohe Rechenkosten sowie begrenzte Skalierbarkeit für Bilder mit höherer Auflösung4,5,6,11,12,13,21,22,23.
In dieser Arbeit wird die traditionelle Implementierung des Sobel-Kantendetektionsalgorithmus auf dem Ultra96-V2-FPGA-Board für verschiedene Bildauflösungen durchgeführt, die von der niedrigen Auflösung von 256 × 256 bis hin zur vollen hochauflösenden Auflösung von 2560 × 1440 reichen. Ultra96-V2 ist eine Platine, die die programmierbaren FPGA-Fähigkeiten mit der leistungsstarken Arm-Prozessortechnologie (Cortex-A53/R5) für Hochleistungsanwendungen kombiniert. Diese Platine wurde erstmals 2018 veröffentlicht und nutzt die 16 nm FinFET-Technologie18.
Um die Reproduzierbarkeit sicherzustellen, wurde die gesamte Implementierung mithilfe einer standardisierten Toolkette durchgeführt, bestehend aus Vivado HLS 2019.2 für die Synthese auf hoher Ebene (HLS) und Vivado 2019.2 für Platzierung und Routing sowie dem von Ultra96-V2 bereitgestellten PYNQ-Image. Der HLS-Code wurde verwendet, um den IP-Kern (Intellectual Property) für die Sobel-Kantenerkennung abzuleiten, der anschließend exportiert und in die Vivado-Design-Suite integriert wurde. Der IP-Kern wurde im PL-Bereich (Programmierbare Logik) implementiert, während der PS-Teil (Verarbeitungssystem) der FPGA für den Datentransfer und die Steuerungsmechanismen zuständig war. Die Schnittstelle zwischen PS und PL wurde über das AXI-Protokoll realisiert. Alle angegebenen Metriken – Frequenz, Ressourcenverbrauch und Leistung – stammen aus Berichten nach der Implementierung und nicht aus HLS-Schätzungen. Die Implementierungseinstellungen blieben unverändert, und lediglich die Bildauflösungen wurden im Verlauf der Experimente variiert.
Zu den bedeutenden Leistungen dieser Arbeit gehören geringer Stromverbrauch, geringe Ressourcennutzung und hohe Geschwindigkeit. Die Ergebnisse zeigen eine Inanspruchnahme von weniger als 20 % der Onboard-Ressourcen (18 % Lookup-Tabellen (LUTs), 11 % Flip-Flops (FF), 3 % Speicher und 10 % DSP) bei hochauflösenden Bildern, was auf eine große verfügbare Kapazität für die Integration weiterer Bildverarbeitungsschritte hinweist – eine Eigenschaft, die in jedem Computersichtsystem zu erwarten ist, da die Kantenerkennung lediglich ein Zwischenschritt darstellt. Zudem beträgt die Leistungsaufnahme etwa 2 W, und die maximale Taktfrequenz liegt bei 144 MHz. Die Ergebnisse zeigen, dass eine Skalierung der Bildgrößen um etwa das 56-Fache die Ressourcennutzung lediglich um etwa 20 % erhöht. Auch Geschwindigkeit und Leistungsaufnahme verschlechtern sich jeweils nur um etwa 20 %. Diese Analyse untersucht den Algorithmus aus einer bisher in der Literatur nicht berichteten Perspektive und zeigt damit, dass die Implementierung besonders gut für Echtzeitanwendungen geeignet ist, ohne dass die Bilder auf kleine Größen oder geringere Auflösung beschränkt werden müssen – eine Einschränkung, die definitiv die Informationsmenge verringert, die in nachfolgenden Schritten nach der Kantenerkennung benötigt wird.
Die Neuheit dieser Arbeit liegt nicht im Algorithmus selbst, sondern in der Bewertung der Leistung des traditionellen Sobel-Kantendetektionsalgorithmus bei verschiedenen Bildauflösungen auf modernen heterogenen FPGA-Architekturen, wobei die Vorteile HLS-basierter Implementierungstechniken genutzt werden. Die wesentlichen Beiträge dieser Arbeit liegen vor allem in der Anwendung einer hybriden Methodik, die auf einem FPGA implementiert ist und die Arbeitslast effektiv zwischen die PS- und PL-Bereiche der Architektur verteilt, sodass die Konstruktion sich mühelos an unterschiedliche Auflösungen anpassen kann. Ein weiterer Beitrag besteht darin, experimentell zu untersuchen, wie die Skalierung des Ressourcenbedarfs mit Änderungen der Bildauflösungen variiert, was zum Verständnis der Leistung bei verschiedenen Konfigurationen und für vielfältige Anwendungen beiträgt.