Methodenartikel

Eine auflösungsadaptive Hardware-Architektur für die Sobel-Kantendetektion in Echtzeit zur Erreichung einer sublinearen Ressourcenskalierung

17 Ansichten

DOI:

10.3791/71589

28. August 2026

In diesem Artikel

Zusammenfassung

Diese Arbeit stellt eine FPGA-basierte Implementierung des Sobel-Kantendetektionsalgorithmus auf der heterogenen Plattform Ultra96-V2 vor und bewertet die Ressourcennutzung, Leistungsaufnahme und Geschwindigkeit bei Bildauflösungen von 256 × 256 bis 2560 × 1440. Die vorgeschlagene Architektur zeigt eine sublineare Ressourcenskalierung für Echtzeit-Bildverarbeitungsanwendungen.

Zusammenfassung

Die Kantenerkennung ist ein zentraler Bereich im Bereich des maschinellen Sehens und hat sich zu einem integralen Bestandteil verschiedener Anwendungsbereiche entwickelt. Die Kantenerkennung ermöglicht die Identifizierung von Kanten, die wichtige Merkmale in Bildern darstellen und wesentliche Attribute repräsentieren, die bei der Extraktion entscheidender und unterscheidender Informationen aus den Bildern helfen. Die hardwaremäßige Implementierung der Kantenerkennung muss schnell sein, minimale Ressourcen nutzen, wenig Energie verbrauchen und an unterschiedliche Bildauflösungen anpassbar sein. In dieser Arbeit wird die Sobel-Kantenerkennung für adaptive Bildauflösungen implementiert, die von niedriger Auflösung bis hin zur vollen Hochauflösung reicht, und es wird eine moderne heterogene Field-Programmable-Gate-Array- (FPGA-)Plattform, das Ultra96-V2, verwendet. Die Ergebnisse zeigen, dass nur 5 % der an Bord befindlichen FPGA-Ressourcen, einschließlich der Lookup-Tabellen (LUTs), Flip-Flops (FF), Digital-Signal-Prozessoren (DSP) und Block-Speicher (BRAM), für Bilder mit niedriger Auflösung genutzt werden, während etwa 23 % der an Bord befindlichen Ressourcen für hochauflösende Bilder verbraucht werden. Dies zeigt, dass der Anstieg der Ressourcennutzung beim Übergang von niedriger zu hoher Bildauflösung weniger als 20 % beträgt. Zudem liegt die Leistungsverlustleistung bei etwa 2 W für die höchste Auflösung, und die maximale Betriebsfrequenz beträgt 136 MHz für hochauflösende und 166 MHz für niedrigauflösende Bilder, was einem Rückgang der Frequenz um lediglich 18 % entspricht. Die vorgeschlagene Architektur erreicht eine sublineare Ressourcen-Skalierung mit einem Anstieg der Ressourcennutzung von weniger als 20 % sowie einer Verringerung von Geschwindigkeit und Leistungsaufnahme um weniger als 20 %, wenn ein 56-facher Anstieg der Pixelanzahl verarbeitet wird, wobei die Vorteile der modernen heterogenen FPGA-Architektur genutzt werden. Folglich macht die Kombination aus adaptiver Auflösungsfähigkeit und geringer Ressourcen-Skalierung das vorgeschlagene Design besonders geeignet für Echtzeitanwendungen der Kantenerkennung, die eine hochwertige Bildverarbeitung erfordern.

Einleitung

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.

Protokoll

1. Implementierung der Sobel-Kantenerkennung im HLS-Tool

  1. Öffnen Sie das Vivado HLS 2019.2-Tool und erstellen Sie ein Projekt. Wählen Sie das FPGA-Board als Ultra96-V2 aus.
  2. Schreiben Sie den Code in Hochsprache unter Verwendung der C++-Sprache für die Sobel-Kantenerkennung, wobei der Bildgrößenparameter verallgemeinert und nicht festgelegt ist.
    HINWEIS: Die Bildbreite und -höhe sind nicht festgelegt, sondern im Code als allgemeiner Parameter formuliert, sodass sie leicht geändert werden können, wenn die Bildauflösung variiert wird, ohne an mehreren Stellen Anpassungen vornehmen zu müssen.
  3. Schreiben Sie den Testbench-Code für den Sobel-Kantenerkennungsalgorithmus in C++.
    HINWEIS: Die Testbench wird geschrieben, um Eingabebilder bereitzustellen, mit denen der Code getestet wird.
  4. Klicken Sie auf „C-Simulation ausführen“, um den Code zu simulieren und die funktionale Korrektheit zu überprüfen. Geben Sie ein Eingabebild an die Testbench weiter und prüfen Sie anschließend das generierte Ausgabebild, das die Kanten enthalten sollte.
  5. Klicken Sie auf „C-Synthese ausführen“, um den HLS-Code zu synthetisieren und die IP für die Sobel-Kantenerkennung zu exportieren.
    HINWEIS: Der Synthesevorgang ordnet das codierte Design grundsätzlich Hardware-Komponenten zu und macht das Design kompatibel und bereit für die Hardware-Implementierung.
  6. Überprüfen Sie die vom Tool generierten Berichte zur Laufzeit und Ressourcennutzung und stellen Sie sicher, dass die geschätzte Zeit die Zielzeit nicht überschreitet.
    HINWEIS: Alle diese Ergebnisse der HLS-Plattform sind lediglich Schätzungen; die tatsächlichen Parameter werden erst berechnet, wenn das Design auf einem FPGA implementiert wird.
  7. Klicken Sie auf „IP exportieren“, um die IP des Sobel-Kantenerkennungsverfahrens zu exportieren.
    HINWEIS: Diese IP wird im nächsten Schritt verwendet, wenn das Blockdiagramm für die FPGA-Implementierung im Vivado-Tool entworfen wird.

2. Implementierung der Sobel-Kantenerkennung auf der FPGA-Plattform Ultra96-V2 unter Verwendung extrahierter HLS-IP

  1. Öffnen Sie das Vivado-Design-Tool und erstellen Sie ein neues Projekt. Wählen Sie die Zielplattform als Ultra96-V2 aus und klicken Sie auf „Neues Blockdesign erstellen“.
  2. Importieren Sie das Sobel-Kantenerkennungs-IP, das zuvor aus dem HLS-Tool exportiert wurde. Fügen Sie die weiteren erforderlichen Blöcke hinzu, um die Schnittstelle zwischen dem PS- und dem PL-Teil zu vervollständigen.
    HINWEIS: Das Blockschaltbild verwendet zusätzlich wichtige IP-Blöcke wie das Zynq Ultrascale-IP, den Smart Connect sowie den Prozessor-Reset usw., um die Schnittstelle zwischen PS und PL mithilfe des Advanced eXtensible Interface (AXI)-Protokolls herzustellen.
  3. Klicken Sie auf „Design überprüfen“, um das Blockdesign zu validieren. Stellen Sie sicher, dass das Tool keine Designfehler meldet. Falls Fehler auftreten, befolgen Sie die Anweisungen zur Korrektur und validieren Sie erneut.
    HINWEIS: Dieser Schritt stellt sicher, dass im Blockschaltbild keine Verbindungen fehlen, überprüft jedoch nicht die funktionale Korrektheit des Blockdesigns.
  4. Klicken Sie auf „HDL-Wrapper erstellen“, um einen verallgemeinerten HDL-Code für das Blockdesign zu erhalten.
  5. Klicken Sie auf „Synthese ausführen“, um das Design zu synthetisieren und auf gemeldete Fehler zu prüfen. Wird kein Fehler gefunden, meldet das Tool eine erfolgreiche Synthese. Nach erfolgreicher Synthese überprüfen Sie die Timing-Berichte auf mögliche Timing-Verletzungen.
  6. Um Timing-Verletzungen zu überprüfen, stellen Sie sicher, dass keine Timing-Werte in roter Schrift angezeigt werden, da dies darauf hinweist, dass die genutzte Zeit die zugewiesene Zielzeit überschreitet und somit Verletzungen anzeigt.
  7. Klicken Sie auf „Implementierung ausführen“, um das Design zu implementieren und die Berichte zu Timing, Leistungsaufnahme und Ressourcennutzung zu bewerten.
  8. Generieren Sie die „.bit“-Datei, um die FPGA-Platine zu programmieren.
    HINWEIS: Das Blockschaltbild für die Sobel-Kantenerkennung auf dem Ultra96-V2 ist in Abbildung 3 dargestellt. Wie bereits erwähnt, ist das Blockschaltbild im Wesentlichen erforderlich, um eine Schnittstelle zwischen dem PS- und dem PL-Teil der FPGA-Platine herzustellen.

3. Programmierung der FPGA-Platine

  1. Um die SD-Karte vorzubereiten, laden Sie die PYNQ-Image-Datei (.img) für das Ultra96-V2-Board16 herunter und installieren Sie die heruntergeladene Datei auf der SD-Karte.
  2. Schalten Sie das Board im SD-Karten-Boot-Modus ein, indem Sie die Schalterpositionen gemäß dem Ultra96-V2-Referenzhandbuch16 wählen.
  3. Rufen Sie die URL http://192.168.3.1 auf und geben Sie bei Aufforderung den Benutzernamen und das Passwort ein, jeweils als „xilinx“.
    HINWEIS: Es wird empfohlen, den Google Chrome-Browser zu verwenden, um technische Unverträglichkeiten zu vermeiden.
  4. Rufen Sie die Jupyter-Plattform auf und schreiben Sie Python-Code für den PS-Teil, um Eingabebilder oder -videos zu lesen und das gelesene Bild an den PL-Teil zur Verarbeitung zu senden.
  5. Schreiben Sie Code für die Aufgabe, die verarbeiteten Bilder vom PL-Teil zurück zum PS-Teil zu schreiben und das Ergebnis anzuzeigen.
    HINWEIS: Um die Ergebnisse auf dem Ultra96-V2 anzuzeigen, wird die PYNQ-Plattform verwendet, wodurch die Ausgabebilder einfach mittels Python-Codes und OpenCV-Bibliotheken angezeigt werden können.
    Abbildung 4 zeigt die Schritte für den Ultra96-V2-Ansatz, wie in diesem Abschnitt dargestellt, sowie die erhaltenen Ausgaben.

Ergebnisse

Dieser Abschnitt behandelt die Ergebnisse, die bei der Entwicklung der Sobel-Kantenerkennung auf dem Ultra96-V2 erzielt wurden. Abbildung 5 unten zeigt die Eingabe- und Ausgabebilder, die durch HLS-Simulation gewonnen wurden. Verwendet wurden Standardbilder mit einer Größe von 512 × 512. Diese Ergebnisse verdeutlichen, dass der für die Sobel-Kantenerkennung verfasste HLS-Code funktional korrekt ist. Die Kanten müssen in den resultierenden Bildern deutlich sichtbar sein.

Tabelle 3 zeigt die Syntheseberichte und die generierten Parameter zur Zeitsteuerung und Ressourcennutzung auf dem Ultra96-V2 mit dem FPGA-Teil xczu3eg-sbva484-1-e. Der Bericht enthält informationen zur Zeitsteuerung, die anzeigen, ob die Schaltung die vom Benutzer festgelegten zeitlichen Anforderungen erfüllt. Gemäß der Zeitzusammenfassung liegt die geschätzte Zeit von 8,544 ns unter der Zielzeit von 10 ns, was eindeutig darauf hindeutet, dass die Schaltung die Benutzeranforderungen erfüllt.

HLS-Werkzeuge generieren außerdem eine geschätzte Ressourcennutzung, die dem Entwickler eine Abschätzung der möglichen Nutzung der integrierten Ressourcen liefert. Die tatsächlichen Nutzungsparameter können erst nach der tatsächlichen Hardware-Realisierung ermittelt werden. Obwohl es auf einem FPGA zahlreiche und unterschiedliche Kategorien von Ressourcen gibt, werden am häufigsten LUTs (Look-up-Tabellen), FFs (Flip-Flops), DSP-Slices (Digital-Signalverarbeitungs-Slices) und Speicher verwendet.

Tabelle 3 zeigt ebenfalls die tatsächliche Laufzeit und Ressourcennutzung, wenn die Sobel-Kantenerkennung auf dem Ultra96-V2 für hochauflösende Bilder entwickelt wird. Die Zeitanalyse zeigt, dass die worst negative slack 3,102 ns beträgt, was darauf hinweist, dass ausreichend Zeit für die Verarbeitung vorhanden ist und somit eine Taktfrequenz von 144 MHz erreicht wird. Die erreichte Betriebsfrequenz von 144 MHz bei einer Auflösung von 1920 × 1080 entspricht einer Durchsatzleistung von etwa 299 MP/s, was den für die Echtzeitverarbeitung von Full-HD-Videos mit 30 fps erforderlichen Wert von 62 MP/s übertrifft. Um das Ressourcen-Scaling und die Auswirkungen auf die Parameter beim Übergang von niedrigen zu hohen Bildauflösungen zu verstehen, werden die Tabellenergebnisse anhand experimenteller Daten dargestellt, bei denen dieselben Schritte für verschiedene Auflösungen wiederholt wurden.

Tabelle 4 nennt die Bildgröße und damit die Gesamtanzahl der Pixel sowie die Betriebsfrequenz, die Leistungsaufnahme und die Ressourcennutzung in Form von LUTs, FFs, BRAM und DSP. Es ist deutlich erkennbar, dass beim Übergang von der kleinsten betrachteten Auflösung von 256 × 256 zur höchsten von 2560 × 1440, was einer nahezu 56-fachen Erhöhung der Pixelanzahl entspricht, die Parameter lediglich um 20 % ansteigen. Dies zeigt eindeutig eine unterlineare Skalierung der Ressourcen, bei der die zu verarbeitenden Daten um Vielfaches zunehmen, die Verschlechterung der Leistungskennzahlen jedoch sehr gering ausfällt, was die Eignung für den Einsatz in Echtzeit unterstreicht.

Die in Tabelle 4 dargestellten Ergebnisse zeigen eindeutig, dass die Anwendung der Sobel-Kantenerkennung auf dem Ultra96-V2 erhebliche Vorteile für Aufgaben mit anpassbaren Auflösungen bietet, da die Leistungskennzahlen optimiert bleiben und bei einer Erhöhung der Bildgröße von niedriger zu hoher Auflösung keine beträchtlichen Veränderungen auftreten. Dieser Erfolg ist dem hybriden Implementierungsansatz zuzuschreiben, der verhindert, dass die FPGA-Logik mit Bilddaten überlastet wird, wodurch der Prozessor der Platine in der Lage ist, die umfangreiche Bildverarbeitungsarbeit zu bewältigen. Der Prozessor leitet lediglich die Bilddaten an die FPGA-Logikkomponente weiter, wobei eine Zunahme des Ressourcenverbrauchs oder eine Verringerung der maximalen Taktfrequenz ausschließlich auf das große Datenvolumen zurückzuführen ist, das mehr Aufwand erfordert. Daher kann festgestellt werden, dass der in dieser Arbeit verfolgte Ansatz eine sublineare Skalierung der Ressourcen erreicht, obwohl die Anzahl der Bildpixel sich um fast das 56-Fache erhöht.

Die implementierte Arbeit wird außerdem mit bestehenden Designs verglichen, um den Vergleich hinsichtlich der Leistungskenngrößen wie Bildauflösung, Taktfrequenz, Leistungsverbrauch und Ressourcennutzung zu verstehen. Tabelle 5 zeigt den Vergleich mit der neuesten Literatur.

Wie deutlich in Tabelle 5 veranschaulicht, weist die in dieser Arbeit implementierte Lösung angemessene Leistungskennzahlen auf, doch die bereits vorhandenen Lösungen früherer Implementierungen9,10 weisen bessere Parameter auf. Bei einer Gesamtbewertung fällt jedoch auf, dass beide früheren Arbeiten9,10 mit niedriger Bildauflösung und auf veralteten FPGA-Plattformen arbeiteten, während die in dieser Arbeit dargestellten Ergebnisse auf adaptiven Bildauflösungen basieren, wobei die betrachtete Bildgröße von der niedrigsten Auflösung von 256 × 256 bis hin zur hochauflösenden Auflösung von bis zu 2560 × 1440 reicht. Die Ergebnisse zeigen, dass der implementierte Ansatz zur Sobel-Kantenerkennung, der die Fähigkeiten sowohl des Prozessors als auch des logischen Teils der heterogenen FPGA-Platine Ultra96-V2 nutzt, sich als nützlich erweist, um eine sublineare Ressourcen-Skalierung zu erreichen: Während die Anzahl der Pixel sich nahezu um das 56-Fache erhöht, steigt die Ressourcennutzung lediglich um 20 %, und die Abnahme von Leistung und Geschwindigkeit liegt ebenfalls unter 20 %. Bei der niedrigsten Auflösung werden nur 5 % der Ressourcen genutzt, und die maximale Auslastung beträgt lediglich 23 %, sodass noch erhebliche Kapazitäten für weitere Verarbeitungsschritte verfügbar bleiben. Daher lässt sich klar feststellen, dass aufgrund der Unterschiede in den Bildauflösungen ein direkter Vergleich schwierig ist. Wird jedoch das in dieser Arbeit implementierte Design betrachtet, so liegt die Taktfrequenz bei 136 MHz, der Stromverbrauch bei 2 W und die Ressourcennutzung unter 23 % der gesamten On-Board-Ressourcen. Es ist wichtig anzumerken, dass die in früheren Arbeiten9,10 beschriebenen Implementierungen überlegenere Einzelleistungskennzahlen aufweisen. Allerdings ist zu beachten, dass beide Arbeiten ihre Designs jeweils bei einer einzigen, festen Bildauflösung evaluieren, während die vorgeschlagene Arbeit über einen weiten Bereich von Auflösungen von 256 × 256 bis 2560 × 1440 evaluiert wird. Die Designziele unterscheiden sich daher grundlegend: Während die Arbeiten9,10 die Spitzenleistung bei einer einzigen Auflösung optimieren, priorisiert die vorgeschlagene Architektur Anpassungsfähigkeit und sublineare Ressourcen-Skalierung über mehrere Auflösungen hinweg. Dadurch eignet sich das implementierte Design besonders für Anwendungen, die Kantenerkennung erfordern.

Es kann daher festgestellt werden, dass in dieser Arbeit eine sublineare Ressourcen-Skalierung als der Zustand definiert ist, bei dem der prozentuale Anstieg der Ressourcennutzung deutlich geringer ist als der prozentuale Anstieg der Pixelanzahl. Wenn sich die Auflösung von 256 × 256 auf 2560 × 1440 erhöht, steigt die Pixelanzahl um etwa 5600 %, während die On-Board-Ressourcennutzung um weniger als 20 % ansteigt. Diese unverhältnismäßig geringe Wachstumsrate der Ressourcen, die direkt aus der heterogenen PS-PL-Partitionierungsstrategie resultiert, bestätigt das sublineare Skalierungsverhalten der vorgeschlagenen Architektur. Obwohl die vorgeschlagene Implementierung über den getesteten Auflösungsbereich hinweg eine sublineare Ressourcen-Skalierung aufweist, sollten bestimmte Einschränkungen zur korrekten Interpretation der Ergebnisse beachtet werden. Die Betriebsfrequenz sinkt von niedriger zu hoher Auflösung um 18 %, und eine Extrapolation jenseits von 2560 × 1440 könnte architektonische Anpassungen erfordern, um die Einhaltung der Timing-Anforderungen aufrechtzuerhalten. Zudem, da die Übertragung der Bilddaten durch den ARM-Prozessor verwaltet wird, wächst der Übertragungsaufwand auf der PS-Seite linear mit der Pixelanzahl und könnte den Durchsatz bei kontinuierlichen Anwendungen mit hochauflösendem Videostreaming begrenzen, über das hinaus, was die Metriken allein auf der PL-Seite nahelegen.

Diagramm der Anwendungen der Kantenerkennung: Robotik, Bildgebung, erweiterte Realität, Automatisierung, Überwachung.
Abbildung 1: Verschiedene Anwendungsgebiete der Kantenerkennung. Darstellung repräsentativer Anwendungsbereiche, in denen die Kantenerkennung häufig eingesetzt wird, einschließlich Computer Vision, medizinische Bildgebung, Überwachung, Robotik und industrielle Automatisierung. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Bildverarbeitung: Diagramm zur Kantenerkennung mit dem Sobel-Operator und Faltungskernen auf einem Eingabebild.
Abbildung 2: Beschreibung der Schritte im Sobel-Kantenerkennungsalgorithmus. Arbeitsablauf zur Veranschaulichung des Sobel-Kantenerkennungsprozesses, einschließlich der Extraktion eines 3 × 3-Bildfensters, der Faltung mit horizontalen und vertikalen Sobel-Kernen sowie der Erzeugung des kantenerkannten Ausgabebildes. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Blockdiagramm von Zynq UltraScale+, Systemarchitektur mit Datenfluss und AXI-Interconnect-Komponenten.
Abbildung 3: Implementiertes Blockdiagramm für die Sobel-Kantenerkennung auf dem Ultra96-V2-FPGA-Board unter Verwendung der Schnittstelle zwischen dem PS (Verarbeitungssystem) und dem PL (programmierbare Logik). Blockdiagramm, das die Hardwarearchitektur sowie die Vernetzung des Verarbeitungssystems (PS), der programmierbaren Logik (PL) und der unterstützenden IP-Kerne für die FPGA-Implementierung zeigt. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Ablauf zum Brennen des PYNQ-Images und Vivado-Design-Workflow; SD-Karten-Setup, Validierung, Bitdatei-Generierung.
Abbildung 4: Schritte zum Programmieren des Ultra96-V2-Boards für die Sobel-Kantenerkennung mithilfe der PYNQ-Plattform sowie das Ergebnis der Sobel-Kantenerkennung für ein Eingabebild. Workflow zur Darstellung des Programmierverfahrens für das Ultra96-V2-Board unter Verwendung der PYNQ-Plattform und ein repräsentatives Ausgabebild nach der FPGA-Implementierung. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Farb- und Kantenerkennung in der Bildverarbeitung; Vergleichsraster von Original- und kantenverstärkten Bildern.
Abbildung 5: Simulationsergebnisse der Sobel-Kantenerkennung an verschiedenen Standardbildern mittels Vivado HLS (2019.2). Stellvertretende Eingabebilder und die entsprechenden Ausgaben mit erkannten Kanten aus der funktionellen Simulation des Sobel-Kantenerkennungsalgorithmus mit Vivado HLS 2019.2. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Tabelle 1: Entwicklung der FPGA-Anwendungen in der Computer-Vision-Forschung (2006–2024). Zusammenfassung repräsentativer, auf FPGAs basierender Anwendungen in der Computer Vision, die zwischen 2006 und 2024 veröffentlicht wurden. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Tabelle 2: Verwandte Literatur zur Implementierung von Kantenerkennungsalgorithmen auf FPGA (2020–2025). Vergleich aktueller, auf FPGA basierender Implementierungen der Kantenerkennung, einschließlich Plattform, Methodik und berichteter Leistungsmetriken. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Tabelle 3: Implementierung der Sobel-Kantenerkennung auf FPGA: geschätzte und tatsächliche Parameter. Geschätzte HLS-Syntheseergebnisse sowie entsprechende Timing- und Ressourcennutzungsdaten nach der Implementierung für die FPGA-Implementierung. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Tabelle 4: Ressourcennutzung und Leistungskennzahlen des implementierten Sobel-Kantendetektionsalgorithmus bei unterschiedlichen Bildauflösungen. Leistungskennzahlen, Betriebsfrequenz, Stromverbrauch und FPGA-Ressourcennutzung der vorgeschlagenen Implementierung bei verschiedenen Bildauflösungen. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Tabelle 5: Vergleich der implementierten und bestehenden Sobel-Kantenerkennung auf FPGA. Vergleich der vorgeschlagenen FPGA-Implementierung mit zuvor beschriebenen Implementierungen der Sobel-Kantenerkennung anhand repräsentativer Leistungskennzahlen. Bitte klicken Sie hier, um diese Tabelle herunterzuladen.

Diskussion

Dieser Artikel konzentriert sich auf die Ausführung des Sobel-Kantendetektionsalgorithmus, der eine wesentliche Komponente in verschiedenen Anwendungen aus mehreren Bereichen der Computer Vision und Bildverarbeitung darstellt2,3,4,5,6. Die Implementierung der Sobel-Kantendetektion erfolgt mithilfe des Vivado-HLS-Tools, wodurch die Programmierung in höheren Programmiersprachen möglich ist, anstatt auf Hardware-Beschreibungssprachen angewiesen zu sein. Der Vivado-HLS-Code wird auf dem Ultra96-V2-Board ausgeführt. Die Ergebnisse nach der Implementierung zeigen, dass das realisierte Design hochauflösende Bilder unterstützt und mit einer Frequenz von 136 MHz bei einem Leistungsverbrauch von 2 W und weniger als 20 % der gesamten On-Board-Ressourcen arbeitet. Zudem verdeutlichen die Ergebnisse, dass der Ansatz für die adaptive Auflösung von Bildern geeignet ist, da verschiedene Anwendungen den Einsatz unterschiedlicher Bildgrößen erfordern können und die Kantendetektion gewöhnlich ein Zwischenschritt2,3,4,5,6 darstellt, der in komplexen Design-Pipelines sehr häufig durchgeführt wird. Daher kann festgestellt werden, dass das entwickelte System in Echtzeitanwendungen eingesetzt werden kann, die Kantendetektion erfordern. Die große Verfügbarkeit an Ressourcen legt nahe, dass weitere Verarbeitungsschritte in das entwickelte System integriert werden können6,7,8,9,10,11,12,13,14,15.

Die erfolgreiche Implementierung des Sobel-Kantendetektors auf dem Ultra96-V2-Board erfordert eine sorgfältige Beachtung mehrerer praktischer Aspekte. Das PYNQ-Framework vereinfacht die PS–PL-Kommunikation erheblich, indem es die Hardwaresteuerung über Python-Bibliotheken ermöglicht und dadurch den Softwareentwicklungsaufwand reduziert. Es muss jedoch das korrekte PYNQ-Image von der offiziellen Quelle heruntergeladen und die SD-Karte vor der Bereitstellung ordnungsgemäß konfiguriert werden. Die funktionale Verifizierung des HLS-Designs mithilfe umfassender Testumgebungen ist vor dem IP-Export unerlässlich, da eine frühzeitige Validierung dabei hilft, algorithmische und Schnittstellenfehler bereits vor der Hardwareimplementierung zu erkennen. Während der FPGA-Implementierung erfordert auch das Blockdiagramm-Design große Sorgfalt des Entwicklers, da es ratsam ist, die Architektur der betrachteten FPGA-Hardware genau zu verstehen, um anschließend die geeigneten Blöcke auszuwählen und korrekt zu verbinden. Es wird nicht empfohlen, die Verbindungen vollständig zu automatisieren, da dies zu fehlenden oder für das Design ungeeigneten Verbindungen führen könnte. In dieser Phase der PS–PL-Schnittstelle können Fehler wie falsche AXI-Adresszuordnung, Clock-Domain-Mismatches oder falsch konfigurierte DMA-Übertragungen eine erfolgreiche Kommunikation zwischen Prozessor und programmierbarer Logik verhindern. Solche Probleme können mithilfe der Design-Validierungswerkzeuge von Vivado erkannt und durch Überprüfung der Adresszuweisungen, Clock-Konfigurationen, Interrupt-Verbindungen und DMA-Einstellungen vor der Bitstream-Generierung behoben werden. Während der FPGA-Implementierung können Timing-Verletzungen aufgrund langer kombinatorischer Pfade oder unzureichender Pipelining auftreten. Eine Erhöhung der Pipeline-Stufen, die Optimierung von Schleifenstrukturen oder die gezielte Lockerung von Timing-Beschränkungen kann dabei helfen, den Timing-Closure zu erreichen.

Obwohl diese Arbeit die vorgeschlagene PS-PL-Partitionierungsarchitektur speziell für die Sobel-Kantenerkennung validiert, ist der architektonische Ansatz grundsätzlich verallgemeinerbar. Jeder Algorithmus, der als Faltung mit verschiebendem Fenster ausgedrückt werden kann – einschließlich Prewitt, Roberts, Laplacian of Gaussian oder Canny-Gradientenstufe – lässt sich mit einem ähnlichen Ansatz implementieren, wobei sich die Änderungen im HLS-Design hauptsächlich3,4,5,6 beschränken. Die vorgeschlagene Arbeit weist bestimmte Einschränkungen auf. Eine dieser Einschränkungen ist die Verzögerung aufgrund des Datentransfers zwischen dem PS- und dem PL-Teil des FPGA, was die gesamte Ausführungszeit des Algorithmus beeinträchtigt. Außerdem ist die Beobachtung der sublinearen Skalierung spezifisch für die heterogene Architektur Ultra96-V216 und könnte nicht direkt auf homogene FPGA-Plattformen übertragbar sein, die über keinen dedizierten Prozessorkern verfügen.

Der zukünftige Anwendungsbereich beinhaltet eine weitere Verbesserung des Designs mit bestimmten Optimierungen, die möglicherweise die Geschwindigkeit erhöhen und den Energieverbrauch weiter senken. Außerdem ist die Anpassung der Implementierung an Echtzeitszenarien ein weiterer potenzieller Aspekt, der zukünftig in Betracht gezogen werden könnte.

Offenlegungen

Die Autoren erklären, dass kein Interessenkonflikt besteht. Bei der Erstellung dieses Manuskripts wurden keine Künstliche-Intelligenz- (KI-) Werkzeuge verwendet.

Danksagungen

Die Autoren haben keine Danksagungen zu machen. Diese Forschung erhielt keine externe Finanzierung.

Materialien

Liste der in diesem Artikel verwendeten Materialien
NameUnternehmenKatalognummerKommentare
Ultra96-V2 FPGA-Board Xilinx Eingeführt im Jahr 2018Hardware-Implementierungsplattform zur Realisierung des Fußgängererkennungsalgorithmus
Vivado HLS AMD2019.2Werkzeug zur Hochsprach-Synthese (High Level Synthesis), verwendet für die hochgradige Programmierung des Fußgängererkennungscodes in der Arbeit, um das Intellectual Property (IP) zu exportieren
Vivado AMD2019.2FPGA-Programmierwerkzeug zur Programmierung des Ultra96 v2 FPGA-Boards mit dem Sobel-Kantendetektionsalgorithmus 

Referenzen

  1. Rani N. Image processing techniques: a review. J Today Ideas Tomorrow Technol. 2017;5(1):40-9.
  2. Gonzalez RC. Digital image processing. Pearson Education; India; 2009.
  3. Jena KK, Mishra S, Mishra S. An edge detection approach for fractal image processing. In: Examining Fractal Image Processing and Analysis. IGI Global; 2020. p. 1-22.
  4. Gayathri AG, Remya AS. VLSI implementation of improved Sobel edge detection algorithm [conference presentation]. Presented at: 2021 International Conference on Communication, Control and Information Sciences (ICCISc); 2021 Jun 16. Available from: https://ieeexplore.ieee.org/
  5. Obaid MT. Efficient Implementation of Sobel Edge Detection with ZYNQ-7000 [Master's thesis]. Purdue University.
  6. Asharani P, et al. A inventive method for door detection on FPGA using Sobel edge algorithm [conference presentation]. Presented at: 2022 2nd International Conference on Intelligent Technologies (CONIT); 2022 Jun 24. Available from: https://ieeexplore.ieee.org/
  7. Shylashree N, Anil Naik M, Sridhar V. Design and implementation of image edge detection algorithm on FPGA. Int J Circuits Syst Signal Process. 2022;16:628-36.
  8. Zhou G, Guo S, Chen Z. FPGA-based improved Sobel operator edge detection. Front Comput Intell Syst. 2023;5(2):6-11.
  9. Navinkumar K, Logesh R, VishnuBabu P, Ananthalakshmi AV. FPGA implementation of Sobel edge detection algorithm. EAI Endorsed Trans Internet Things. 2024;10.
  10. Ravichandran S, et al. Parallel processing of Sobel edge detection on FPGA: enhancing real-time image analysis. Sensors. 2025;25(12):3649.
  11. Baloch A, et al. Hardware synthesize and performance analysis of intelligent transportation using Canny edge detection algorithm. Int J Eng Manuf. 2021;11(4):22-32.
  12. Patel CS, Solanki N, Tailor N. Analysis of edge detection using Zynq based SoC FPGA. Turk Online J Qual Inq. 2021;12(7).
  13. Kashyap S, Bhandari AK, Giri P. Low resource FPGA implementation based efficient image edge detector architecture. Multimed Tools Appl. 2024;83(9):25595-615.
  14. Dakshayani V, et al. Design of a Gabor filter-based image denoising hardware model. Electronics. 2022;11(7):1063.
  15. Belmessaoud NM, Bentoutou Y, El-Mezouar MC. FPGA implementation of feature detection and matching using ORB. Microprocess Microsyst. 2022;94:104666.
  16. Castells-Rufas D, et al. A survey of FPGA-based vision systems for autonomous cars. IEEE Access. 2022;10:132525-63.
  17. Vedavyas Y, Vasavi S, Harsha SS, Subhash MS. An FPGA-based adaptive real-time quality enhancement system for drone imagery. SN Comput Sci. 2022;4(1):84.
  18. Avnet. Ultra96-V2 Single Board Computer Hardware User's Guide. Revision 1.0. Avnet; 2020 May.
  19. Singh G, et al. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security [conference presentation]. Presented at: 2024 5th International Conference for Emerging Technology (INCET); 2024 May 24. Available from: https://ieeexplore.ieee.org/
  20. Kaur A. A survey on FPGA implementations in embedded augmented reality applications [conference presentation]. Presented at: 6th Edition of International Conference on Wireless Networks and Embedded Systems (WECON); 2018 Nov 16. Available from: https://ieeexplore.ieee.org/
  21. Kalaiselvi A, Sajina S, Nithish S, Sowmiya M. Implementation of Sobel edge detection. Int Res J Mod Eng Technol Sci. 2023;5(3):701-11.
  22. Narasimhamurthy CG, Kulkarni S. Fast architecture for low level vision and image enhancement for reconfigurable platform [conference presentation]. Presented at: 2021 International Conference on Advances in Electrical, Computing, Communication and Sustainable Technologies (ICAECT); 2021 Feb 19. Available from: https://ieeexplore.ieee.org/
  23. Pujare A, Sawant P, Sharma H, Pichhode K. Hardware implementation of Sobel edge detection algorithm [conference presentation]. Presented at: ITM Web of Conferences; 2020. Available from: https://www.itm-conferences.org/

Nachdrucke und Genehmigungen

Schlagwörter

EngineeringComputer VisionField Programmable Gate ArrayImage ProcessingImage ResolutionSobel Edge Detection