Method Article

Entwurf und Implementierung eines vor Ort programmierbaren Gate-Array-basierten Fußgängererkennungs-Frameworks für autonome Fahranwendungen

DOI:

10.3791/70292

June 12th, 2026

* These authors contributed equally

In This Article

Summary

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Dieser Forschungsartikel demonstriert die Implementierung eines Echtzeit-Fußgängererkennungsalgorithmus auf feldprogrammierbarer Gate-Array-Hardware, hauptsächlich für autonome Fahranwendungen. Der Algorithmus kombiniert das Histogramm der orientierten Gradienten (HoG) mit einem Support Vector Machine (SVM)-Klassifikator, und die Ergebnisse zeigen Effizienz hinsichtlich Geschwindigkeit, Energieverbrauch und Ressourcennutzung.

Abstract

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Autonomes Fahren bietet eine vielversprechende Möglichkeit, die steigende Zahl der Todesfälle durch Verkehrsunfälle zu bewältigen. Ein autonomes Fahrzeug verfügt über viele Funktionen, aber die Fähigkeit, Fußgänger zu erkennen, ist entscheidend, herausfordernd und relevant für verschiedene Echtzeitsituationen wie Überwachung, Personenverfolgung und Überwachung. Die genaue Identifizierung von Fußgängern ist schwierig, da sie in unterschiedlichen Formen, Positionen und Haltungen erscheinen können. Sie können verschiedene Arten von Kleidung tragen und manchmal teilweise verborgen sein oder sich mit nahegelegenen Objekten vermischen. Dieses Papier konzentriert sich auf die Echtzeiterkennung von Fußgängern für selbstfahrende Autos mithilfe einer beliebten Hardware-Plattform: dem Field Programmable Gate Array (FPGA), Ultra 96 v2. Die Studie implementiert eine Methode zur Fußgängererkennung, die auf einem Histogramm der orientierten Gradienten (HOG) kombiniert mit einem Support Vector Machine (SVM)-Klassifikator basiert, um Personen auf dem FPGA-Board zu erkennen und dabei High-Level Synthesis (HLS)-Tools zu nutzen. Die Wirksamkeit des Systems wurde sowohl auf Standbildern als auch auf Live-Videos getestet. Die Ergebnisse zeigen, dass fortschrittliche FPGA-Boards wie das Ultra 96 v2 die Leistungskennzahlen deutlich verbessern. Das System arbeitet mit einer Taktfrequenz von 150 MHz, verbraucht weniger als die Hälfte der verfügbaren Ressourcen und verbraucht etwa 2,5 W Leistung. Außerdem meldet das System eine Fußgängererkennungsgenauigkeit von fast 95 % sowie weitere effiziente Kennzahlen zur Erkennungsbewertung, wie Präzision (78,6 %), Rückruf (88,3 %) und F1-Wert (83,1 %). Zusammenfassend lässt sich sagen, dass das entwickelte System Fußgänger in Echtzeit erkennen kann und das Potenzial hat, die Entwicklung einer intelligenten und sicheren Transportumgebung erheblich zu verbessern.

Introduction

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Stadtentwicklung und das Entstehen von Smart Cities sind weltweit interessante Themen. Alle Nationen arbeiten an der Entwicklung ihrer Städte, die so gebaut werden können, dass sie für die Menschen, die dort leben, sicher und komfortabel sind 1,2. Doch in der aktuellen Situation wurde festgestellt, dass mit wachsender Bevölkerung und zunehmendem Straßenstau die Todesrate durch Verkehrsunfälle durch Fahrlässigkeit und schlechte Sichtprobleme alarmierend ansteigt. Eine vielversprechende Lösung für diese Probleme ist das Aufkommen autonomer Fahrzeuge weltweit, was die Innovation 1,2,3,4 ausgelöst hat, und Forscher bemühen sich, vollautonome Fahrzeuge zu entwickeln, die es den Fahrgästen ermöglichen, sich ohne Sorgen zu entspannen. Der Bedarf an der Entwicklung autonomer Fahrzeuge rührt daher, dass selbst erfahrene Fahrer durch schlechtes Wetter mit Stress, Dilemmata, Müdigkeit oder Schwierigkeiten bei der Wahrnehmung ihrer Umgebung konfrontiert sein können, und all diese Probleme führen zu Verkehrsunfällen. Ein selbstfahrendes Fahrzeug ist darauf ausgelegt, Unfälle während der Fahrt zu vermeiden, den Motorenverbrauch zu optimieren und die Verkehrsregeln einzuhalten, wasden Transport zweifellos verbessern wird. Ein autonomes Fahrzeug ist mit mehreren Funktionen, Sensoren und Funktionen ausgestattet, die es ermöglichen, seine Umgebung sehr präzise zu erfassen und Kollisionen und Unfälle zu vermeiden, weshalb es sich nun als vielversprechende Lösung herauskristallisiert, um den Transport sicher und geschützt zu machen.

Unter allen Funktionen, die in ein autonomes Fahrzeug integriert sind, ist eine der wichtigsten die Fußgängererkennung. Ein robustes Fußgängererkennungssystem kann erheblich dazu beitragen, die Todesfälle bei Verkehrsunfällenum 5,6,7,8 zu senken, da die Mehrheit der Opfer dieser Unfälle Fußgänger sind. Die Fußgängererkennung besteht darin, Personen auf der Straße zu identifizieren und Kollisionen mit ihnen zu vermeiden. Diese Funktion ist nicht nur für selbstfahrende Autos von Vorteil, sondern auch für verschiedene andere Anwendungsbereiche wie Menschenmengenüberwachung, Personenidentifikation und Trackingvon 9,10,11. Der Schlüsselaspekt dieses Erkennungsprozesses ist die Geschwindigkeit und Genauigkeit der Erkennung. Es ist entscheidend, Fußgänger genau und schnell zu erkennen, damit die Reaktionszeit minimal ist. Die Fußgängererkennung stellt eine enorme Herausforderung dar. Fußgänger auf der Straße können jede Kleidung, jedes Aussehen oder jede Haltung tragen und aufgrund schlechten Wetters oder Verdeckung unsichtbar sein 10,11,12,13,14. Außerdem ist es durchaus möglich, dass Fußgänger die Regeln selbst nicht befolgen, und man kann die menschliche Natur nicht kontrollieren, daher ist der beste Ansatz, das Fahrzeug mit der Intelligenz auszustatten, um mit Fehlverhalten umzugehen und Todesfälle zu vermeiden. Der vollständige Arbeitsablauf dieser Forschung und die Motivation hinter der Hardware-Implementierung der Fußgängererkennung lassen sich leicht in Abbildung 1 nachvollziehen, die den Bedarf an Fußgängererkennung, deren verschiedene Anwendungsbereiche, die damit verbundenen Herausforderungen und die Implementierung auf einem FPGA zur Nutzung der angebotenen Vorteile erklärt.

Abbildung 1
Abbildung 1: Fußgängererkennung. Der Bedarf an Fußgängererkennung, wichtige Anwendungsbereiche der Fußgängererkennung, die Herausforderungen bei der Fußgängererkennung und der Ablauf der Fußgängererkennung auf einem FPGA-Board. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

Zur Identifizierung von Fußgängern auf der Straße existieren zahlreiche Algorithmen. Diese Gesamtaufgabe lässt sich hauptsächlich in zwei Hauptteilaufgaben unterteilen: Der erste Schritt extrahiert Merkmale aus einem Eingabebild, behält nur diejenigen bei, die relevant sind und relevante Informationen vermitteln, während die redundanten ignoriert werden. Für eine effektive Erkennung von Menschen oder Fußgängern in einem Bild ist es entscheidend, dass diese Merkmale auf das Vorhandensein einer menschlichen Figur in der Szene13,14 hinweisen. Nach dieser Extraktion müssen die Merkmale an einen Klassifikator gesendet werden, der bestimmen kann, ob die identifizierten Merkmale einem Menschen entsprechen. Daher benötigt der Algorithmus eine Phase der Extraktion und Beschreibung von Merkmalen, gefolgt von einem Klassifikationsschritt, um die Präsenz von Fußgängern in der Eingabeszene zu bestimmen. Für diesen Zweck stehen verschiedene Algorithmen zur Verfügung. Die bisher am weitesten verbreitete Methode zur Fußgängererkennung bleibt jedoch die Kombination des Histogramms der orientierten Gradienten (HoG) mit dem Support Vector Machine (SVM)-Klassifikator 12,13,14,15. Es gibt zahlreiche Beispiele für Softwareentwicklungen, aber letztlich ist das Ziel, die Implementierung auf eine kompatible Hardwareplattform zu portieren, die dann in das Anwendungssystem integriert werden kann, um in Echtzeit genutzt zu werden. Daher liegt der aktuelle Schwerpunkt auf der Hardware-Realisierung. Es kann daher festgestellt werden, dass eine geeignete Hardware-Implementierung von Fußgängererkennungssystemen entwickelt werden muss, bei der Kameras mit entsprechender Hardware an Fahrzeugen eingesetzt und Fußgänger auf der Straße identifiziert werden können. Wenn man prüft, welche Hardware für solche Implementierungen geeignet ist, ist eine der am häufigsten genutzten Optionen das feldprogrammierbare Gate-Array (FPGA), da es zahlreiche Vorteile bietet, darunter reduzierte Designzeit, Skalierbarkeit, einfache Modifikationen, Rekonfigurierbarkeit sowie geringeren Energie- und Stromverbrauch 15,16,17,18,19,20,21.22.

FPGA-Platinen haben sich kontinuierlich weiterentwickelt und werden heute weit verbreitet für komplexe, fortschrittliche Computer-Vision-Anwendungen verwendet, die von grundlegender Bildverarbeitung über Objekterkennung, Augmented Reality bis hin zu Deep Learningreichen. Derzeit bieten mehrere leistungsstarke FPGA-Karten außergewöhnliche architektonische Fähigkeiten, um die umfangreiche Verarbeitung für diese komplexen Anwendungen zu bewältigen. Wenn die fortschrittlichen Funktionen autonomer Fahrzeuge, wie Fußgängererkennung, auf solchen Hardwareplattformen implementiert sind, können diese Plattformen für die schnelle Prototypenentwicklung zur Leistungsanalyse sehr nützlich sein, und nach der Optimierung kann der implementierte Algorithmus auf tatsächliche integrierte Schaltkreise übertragen werden, um in das System integriert zu werden.

Seit über einem Jahrzehnt gibt es bedeutende Veröffentlichungen zur Implementierung der Fußgängererkennung mit der HoG- und SVM-Methode auf verschiedenen FPGA-Plattformen. Tabelle 1 fasst die Artikel in diesem Bereich im Zeitraum von 2015 bis 2025 zusammen: 15,16,17,18,19,20,21,22,22,23,24 und konzentriert sich dabei auf die wichtigsten Faktoren wie Bildauflösung, Durchsatz oder Bildrate pro Sekunde (FPS), den Typ des Klassifikators und die wichtigsten Hervorhebungen oder Beiträge der Papier.

ReferenzFPGA-PlattformBildauflösungKlassifikatorWichtige Höhepunkte / Beiträge
15Xilinx Zynq640×480AdaBoostEchtzeit-FPGA-Implementierung; ressourceneffizient; verwendet binarisierung zur Optimierung; Gute Erkennungsgenauigkeit.
16Terasics DE1-SOC-Board640×480SVMHochleistungs-HOG-Extraktor; integriert SVM; Einzel-Skalen-Erkennung; Pipeline mit niedriger Latenz.
17Altera DE2-115640×480AdaBoostBewertet die Leistung aus mehreren Blickwinkeln; FPGA-Implementierung von HOG+AdaBoost; Echtzeit-Fußgängererkennung.
18Intel Stratix V640×480SVMMehrfache Fußgängererkennung; FPGA-freundliche HOG+SVM-Pipeline; hebt Kompromisse zwischen Genauigkeit und Hardwareeffizienz hervor.
19Zynq UltraScale+ MPSoC3840×2160SVMEchtzeit-UHD-Verarbeitung; pipelined HOG+SVM; SoC-FPGA-Implementierung; Fixpunktoptimierung; skalierbare Architektur.
20Nicht spezifiziertNicht spezifiziertSVMErreicht >95 % Erkennungsgenauigkeit; Echtzeit-FPGA-Implementierung; nutzt Parallelität; detailliertes HOG+SVM FPGA-Design zur Fußgängererkennung.
21Zync 7000 FPGA1920×1080SVMHochdurchsatz-Stream-Architektur für HOG+SVM; unterstützt HD-Auflösung; effiziente Pipeline für FPGA-Beschleunigung.
22Ultra96 (rev1)240×320SVMFPGA-Implementierung mit HLS; erkennt rote Ampeln; berechnet Wahrscheinlichkeiten in 891 Regionen; Die Latenz liegt zwischen 153.838 und 19 Zyklen.
23Xilinx Zynq-7000 FPGA640 × 480HOG + SVMFußgängererkennung mit HOG-SVM auf FPGA implementiert, wodurch Echtzeitleistung mit reduziertem Stromverbrauch im Vergleich zur CPU-Verarbeitung erreicht wurde. Demonstrierte optimierte Feature-Extraction-Pipeline, die für Embedded Vision-Anwendungen geeignet ist.
24Xilinx Virtex-6 FPGA640 × 480Fixpunktobjektdetektor (Haar-ähnliche Merkmale)Vorgeschlagene Hochdurchsatz-FPGA-Beschleunigung der Objekterkennung mittels Festpunktarithmetik, um die Rechenkosten zu senken und gleichzeitig die Genauigkeit zu erhalten. Zeigte eine Beschleunigung von 15 × gegenüber CPU-Implementierungen bei effizienter Hardware-Ressourcenauslastung.

Tabelle 1: Literaturübersicht zu Forschungsergebnissen zur Fußgängererkennung bei FPGA (2015–2025).

Tabelle 1 fasst zusammen, dass es umfangreiche Literatur im Bereich der Fußgängererkennung gibt und die Implementierung von Hardware für Forscher von Interesse ist. Es ist auch offensichtlich, dass es fortschrittliche Deep-Learning- und Machine-Learning-Techniken gibt, wie Detektoren auf Basis von Faltungsneuralen Netzen (CNNs) wie YOLO, transformatorbasierte Architekturen usw. für die Aufgabe der Fußgängererkennung. Sie übertreffen sogar den traditionellen HoG-Algorithmus in Bezug auf die Genauigkeit, aber wenn man die Hardware-Implementierung betrachtet, führen die fortschrittlichen Algorithmen zu einer enormen Ressourcenauslastung23,24 aufgrund der Komplexität des Algorithmus, die auch andere Leistungsparameter beeinflussen können, und es wurde auch beobachtet, dass aufgrund der zusätzlichen Komplexität die Geschwindigkeit im Fall des traditionellen HoG-Algorithmus24 etwas besser ist. 25. Es wurde außerdem beobachtet, dass die fortschrittlichen Techniken mehr Energie verbrauchen, wenn sie auf Hardware24,26 implementiert werden. Das Ziel der in diesem Artikel umgesetzten Arbeit ist es daher, Fußgängererkennung mit dem traditionellen HoG- und SVM-Framework auf FPGA-Hardware durchzuführen und einen günstigen Kompromiss zwischen Genauigkeit, Geschwindigkeit, Ressourcen und Leistung für Echtzeit-Einbettung zu erzielen. Aus Tabelle 1 geht ganz klar hervor, dass bei der Analyse der HoG- und SVM-basierten Arbeiten nur begrenzte Veröffentlichungen das kürzlich eingeführte Zynq UltraScale+ MPSoC (Multi-Processor System On Chip) basierte FPGA-Entwicklungsboard27 genutzt haben, um die Fähigkeiten dieser Boards zu erforschen, da sich diese Boards aus architektonischer Sicht weiterentwickelt haben. und bieten großes Potenzial für die Implementierung hochwertiger Echtzeit-Computer-Vision-Anwendungen. Es gibt nur wenige Publikationen, die das gesamte Fußgängererkennungssystem in Echtzeit auf den FPGA-Boards realisiert haben. Sie haben sich jedoch auf die effiziente Umsetzung oder Verbesserung der Zwischenaufgaben konzentriert. Außerdem basieren die meisten dieser Implementierungen darauf, das gesamte System auf einer FPGA-Platine mittels Hardware-Beschreibungssprachen zu realisieren. Nur wenige haben die Vorteile von High Level Synthesis (HLS)-Tools genutzt, um den Designzyklus zu beschleunigen. Dieses Papier demonstriert das Design und die Implementierung der Echtzeit-Fußgängererkennung auf einem FPGA-Board, das für autonome Fahranwendungen gedeidet ist. Das Papier nutzt das HoG- und SVM-Framework für die Fußgängererkennung auf Standbildern, Videos oder echten Kameraeingängen. Die verwendete Hardware ist eine hochmoderne und kürzlich veröffentlichte FPGA-Platine, die Ultra96 v2, eine fortschrittliche FPGA-Architektur, die eine leistungsstarke Plattform für Computer Vision, Bildverarbeitung, maschinelles Lernen, Edge Computing usw. darstellt. Die Ultra96 v2 ist eine Entwicklungsplatte, die eine Arm-basierte AMD Xilinx Zynq UltraScale+ MPSoC27 enthält. Diese Platine umfasst das Verarbeitungssystem (PS)-Segment, das aus ARM-basierten CPU-Kerne besteht, die die Softwareaspekte des Projekts verwalten, sowie das Segment Programmable Logic (PL), das eine anpassbare Hardwarebeschleunigungermöglicht. Zusammen erweitern diese Komponenten die Funktionalität eines hybriden Systems, bei dem der PS-Teil die Steuerung und Interaktion mit externen Elementen verwaltet, während der PL-Teil die eigentliche Verarbeitungslogik übernimmt.

Access restricted. Please log in or start a trial to view this content.

Protocol

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Das in dieser Forschung verwendete Implementierungsverfahren, das auf Fußgängererkennung mit HoG + SVM auf einer FPGA-Platine basiert und die Vorteile der Hochstufensynthese nutzt, ist in Abbildung 2 unten dargestellt.

Abbildung 2
Abbildung 2: Entwurfsverfahren zur Implementierung der Fußgängererkennung auf der FPGA-Platine. Phase 1: Fußgängererkennungsalgorithmus mit HoG+SVM auf dem HLS-Tool und Erzeugung eines IP-Blocks. Phase 2: Fußgängererkennungsalgorithmus mit HoG+SVM für die tatsächliche FPGA-Implementierung und Erzeugung der Bitdatei. Phase 3: Programmierung der Platine mit der generierten Bitdatei. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

1. Fußgängererkennung mit HoG und SVM im HLS-Tool

  1. Laden Sie die Python Integrated Development Environment (IDE) herunter, abhängig von den Systemeigenschaften, auf denen der Download durchgeführt wird.
    HINWEIS: In diesem Werk wird die Version Python 3.10 verwendet.
  2. Führe ein Python-Skript aus, um ein Trainingsmodell mit dem HoG-Algorithmus und dem SVM-Klassifikator auszuführen. Beginnen Sie das Skript damit, die positiven und negativen Proben aus dem Datensatz zu laden.
    HINWEIS: Verwenden Sie den INRIA-Datensatz11.
  3. Entnehmen Sie die HoG-Merkmale für eine Fenstergröße von 64 x 128.
  4. Teile die Trainings- und Testdaten aus dem INRIA-Datensatz auf ein Verhältnis von 80/20 auf, mit zufälligem Mischen zur Reproduzierbarkeit.
    HINWEIS: Der Datensatz wird zufällig mit der Python-Funktion gemischt, bevor die Daten aufgeteilt werden. Um die Reproduzierbarkeit sicherzustellen, sodass jedes Mal, wenn ein Seed-Wert im Code fixiert wird, die gleiche Aufteilung erfolgt.
  5. Trainieren Sie mit der C-Support Vector Classification (SVC) SVM mit einem linearen Kernel.
  6. Extrahieren Sie die Gewichtsvektoren und die Verspannungen.
  7. Speichere die SVM-Gewichte und die Verzerrung im Fixpunkt-Q8.8-Format für die FPGA-Implementierung.
    HINWEIS: Die Umrechnung erfolgt, indem die Originalität jedes Gleitkommawerts um den Faktor 256 (2,8) skaliert und das Ergebnis in eine ganze Zahl umgesetzt wird.
  8. Teste das trainierte Modell mit einem anderen Python-Skript und passe den Regularisierungsparameter C an, bis die Genauigkeit auf mehr als 95 % berechnet wird.
    HINWEIS: Optimierter Regularisierungsparameter erhalten: C = 0,05.
  9. Öffne das HLS-Tool und erstelle ein neues Projekt mit der Teilenummer xczu3eg-sbva484-1-e.
  10. Schreibe einen Fußgängererkennungscode auf dem hochstufigen Synthesetool mit hochstufigen Sprachen wie C++.
  11. Im Code schreiben Sie drei verschiedene C++-Skripte: eines für den HoG-Feature-Deskriptor und den SVM-Klassifikator, eines für den Testbench, um Eingaben für die Testbilder bereitzustellen und die Ausgabebilder zu speichern, und das dritte für eine Headerdatei, die die im Code verwendeten Parameter angibt.
  12. Im Code für die HoG-Feature-Berechnung wird das Bild auf 640 x 480 vergrößert und eine Schiebefenster-Architektur mit einer Fenstergröße von 64 x 128 angewendet. Für jedes Fenster berechnen Sie die Gradientenstärke und -orientierung für jeden überlappenden 8 x 8 Block.
    HINWEIS: Es ist wichtig, das gesamte Bild durch das Schiebefenster-Konzept zu scannen, sodass jeder Bereich des Bildes abgedeckt ist und Fußgänger aller möglichen Größen identifiziert werden.
  13. Im anderen Teil desselben Codes für den HoG-Merkmalsbeschreiber werden die berechneten Gradienten an den SVM-Klassifikator weitergegeben. Schreibe den Code, um die Merkmale mit den Gewichten des Klassifikators abzugleichen und sie mit der Schwelle zu vergleichen, um das erkannte Merkmal als das eines Menschen zu klassifizieren oder nicht.
  14. Klicken Sie im HLS-Tool auf Run C Simulation , um den Code mit Hilfe einer Testbank zu simulieren und die Funktionalitätskorrektheit des Codes zu überprüfen.
  15. Stellen Sie verschiedene Eingabebilder für den Code bereit und überprüfen Sie die Ausgabebilder mit den erkannten Fußgängern.
  16. Klicken Sie auf Run C Synthese, um den Code zu synthetisieren, den Code mit Hardwaresprachen durch das Tool abzubilden und die Berichte über Timing und Nutzung zu generieren.
    HINWEIS: Das Tool öffnet automatisch die HLS-Syntheseberichte. Dieser Bericht zeigt die Schätzung der erforderlichen Taktfrequenz für die Implementierung der codierten Aufgabe auf der ausgewählten FPGA-Plattform und liefert außerdem eine Schätzung der genutzten Ressourcen. Diese gemeldeten Werte sind lediglich Schätzungen, und die tatsächlichen Parameter werden erst nach der Implementierung auf der FPGA-Platine berechnet.
  17. Klicken Sie auf RTL exportieren , um den Intellectual Property (IP)-Block für den HoG-Algorithmus zur Fußgängererkennung zu exportieren.
    HINWEIS: Diese IP soll in späteren Phasen der Implementierung verwendet werden.

2. Programmierung der FPGA-Platine

  1. Öffne das Tool für FPGA-Programmierung und erstelle ein neues Projekt. Wählen Sie die Teilenummer als xczu3eg-sbva484-1-e aus und erstellen Sie ein neues Blockdesign.
    HINWEIS: Dieses Blockdiagramm wird erstellt, um die Integration zwischen dem PS- und dem PL-Teil der FPGA-Platine herzustellen. Das verwendete Kommunikationsprotokoll ist das Advanced eXtensible Interface (AXI)-Protokoll.
  2. Suche im Tool nach dem IP-Katalog und öffne ihn, sobald du ihn findest.
  3. Erstelle ein Benutzerrepository, indem du den Pfad der exportierten RTL-IP in Schritt 1.17 hinzufügst.
  4. Im neuen Blockdesignfenster klickt man jetzt mit der rechten Maustaste und wählt IP hinzufügen. Alle IPs werden sichtbar sein, einschließlich derjenigen, die vom Tool bereitgestellt werden, sowie der vom Nutzer hinzugefügten Repositories.
  5. Füge den Zync Ultrascale PS-Block aus dem Repository hinzu.
    HINWEIS: Dieser Block spiegelt den PS-Teil des Systems wider, der für die Erzeugung der erforderlichen Taktfrequenzen verantwortlich ist, und verfügt außerdem über Master- und Slave-Ports für die Verbindung zur importierten HoG-IP über den AXI-Interconnect-Block, der auf den AXI-Protokoll-Fundamenten basiert.
  6. Fügen Sie 8 HoG-IPs hinzu, da das System 8 Fenster gleichzeitig verarbeitet, um den Vorteil der Parallelität durch die FPGA-Platine zu nutzen.
  7. Fügen Sie einen Reset-Block für das Prozessorsystem hinzu, der ebenfalls die Takt- und Reset-Versorgung für jeden einzelnen Block im Diagramm steuert.
  8. Füge zwei axi_smart Connect-Blöcke hinzu, um die HoG-IPs mit dem Zync PS-Block zu verbinden. Das gesamte Blockdiagramm mit den vollständigen Verbindungen ist in Abbildung 3 dargestellt.
    HINWEIS: Wie in Abbildung 3 dargestellt, wurden alle Blöcke, die zum Design hinzugefügt werden müssen, deutlich dargestellt. Abbildung 3 ist vom Werkzeug erfasst und zeigt die internen Ports jedes Blocks sowie die Verbindungen zwischen den Ports verschiedener Blöcke. Dieser Block ist das Hauptdesign, da er für die Einrichtung der Schnittstelle zwischen dem PS- und dem PL-Teil der FPGA-Platine verantwortlich ist.
  9. Nachdem Sie die Verbindungen gemäß Abbildung 3 abgeschlossen haben, klicken Sie auf Validate Design.
    HINWEIS: Die Validierung prüft im Grunde die fehlenden oder unterbrochenen Verbindungen, was in späteren Phasen zu Problemen führen kann.
  10. Klicken Sie auf Synthese und dann Implement Design im tool , nachdem die Validierung des Blockdiagramms erfolgreich ist.
    HINWEIS: Synthesis kartiert das entworfene Blockdiagramm und legt es auf die FPGA-Platine. Dieser Schritt meldet alle Verstöße, die darauf hindeuten könnten, dass das Design nicht auf Hardware implementiert werden kann.
  11. Das Tool erstellt außerdem Berichte zu Zeit, Ressourcenverbrauch und Stromverbrauch. Prüfen Sie die Berichte sorgfältig, um auf Zeitverstöße zu achten, und analysieren Sie die Leistung des entworfenen Systems.
  12. Klicken Sie auf Generate the Bitstream File , was die .bit-Datei erzeugt, die zur Programmierung der FPGA-Platine benötigt wird.

Abbildung 3
Abbildung 3: Blockdiagramm zur Fußgängererkennung mit HoG + SVM importierter IP. Bitte klicken Sie hier, um eine größere Version dieser Abbildung anzusehen.

3. Endgültige Implementierung auf der FPGA-Platine

  1. Nimm die FPGA-Platine und setze die SD-Karte mit der passenden Bilddatei in den Steckplatz der Platine.
  2. Schließen Sie das Board auch mit dem Computer an.
  3. Starte die FPGA-Platine im SD-Kartenmodus, um Python-Programmierung darauf zu aktivieren21,22.
  4. Greifen Sie auf die Jupyter-Plattform auf dem Board zu, nachdem Sie sie mit dem WLAN verbunden haben.
  5. Verbinden Sie eine Webcam mit der Platine.
  6. Schreibe einen Python-Code, um die generierte Bitdatei zu importieren und die Aufgabe zu übernehmen, auf die Kamerabilder zuzugreifen.
  7. Im Code wird das Skript so geschrieben, dass das Bild über den PS-Teil im Speicher der FPGA-Platine geschrieben und zur Verarbeitung an das PL-Teil weitergeleitet wird.
    HINWEIS: Der PL-Teil der Platine, der den HoG-IPs entspricht, greift über diese Speicherpositionen auf die Bildpixel zu, verarbeitet sie und liefert die Ergebnisse als Ausgabe.
  8. Schreibe geeigneten Code im selben Python-Skript, um die verarbeiteten Bilder zu lesen und auf dem Computerbildschirm anzuzeigen.
    HINWEIS: Damit ist das gesamte Design abgeschlossen und das System ist nun bereit für den Einsatz in realen Anwendungen. Alle in dieser Studie verwendeten Codes werden als ergänzende Codierungsdateien hochgeladen (Supplementary File 1 [Script_1_train_test.py], Supplementary File 2 [Script_2_HLS_hog.cpp], Supplementary File 3 [Script_3_HLS_test_bench.cpp], Supplementary File 4 [Script_4_HLS_consts.h], Supplementary File 5 [Script_5_jupyter_code.txt]).

Access restricted. Please log in or start a trial to view this content.

Results

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Implementierung der Fußgängererkennung auf HLS
Abbildung 4 zeigt die Simulationsergebnisse auf dem HLS-Tool zur Fußgängererkennung mit HoG + SVM. Ein Eingabebild mit einem Fußgänger wird als Testeingabe für den Code eingespeist, und die Ausgabe mit den erkannten Fußgängern wird angezeigt. Im Bild gibt es zwei Abschnitte. Die erste Erkennung hat immer wieder viele Begrenzungsboxen um denselben Fußgänger, und im zweiten Bild werden die überlappenden Boxen entfernt und unte...

Access restricted. Please log in or start a trial to view this content.

Discussion

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Diese Studie implementiert effektiv ein Echtzeit-Fußgängererkennungssystem, das den HoG + SVM-Algorithmus auf fortschrittlicher FPGA-Hardware auf Basis des Zynq UltraScale+ MPSoC Entwicklungsboards24 verwendet. Die Ergebnisse zeigen, dass der traditionelle HoG-Algorithmus der menschlichen Erkennung11 eine Genauigkeit von nahe 95 % erreicht und nur die Hälfte der bordeigenen FPGA-Ressourcen (LUTs, FFs, BRAM, DSPs) nutzt, was eine enorme Kapa...

Access restricted. Please log in or start a trial to view this content.

Disclosures

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,

Die Autoren erklären, dass sie keinen Interessenkonflikt haben.

Materials

List of materials used in this article
NameCompanyCatalog NumberComments
PythonPythonVersion 3.10
Ultra 96 V2 FPGA Board Xilinx Eingeführt 2018Hardware-Implementierungsplattform, die für die Implementierung des Fußgängererkennungsalgorithmus verwendet wird
Vivado AMD2019.2FPGA-Programmiertool, das zum Programmieren des Ultra 96 v2 FPGA-Boards mit dem Fußgängererkennungsalgorithmus verwendet wird 
Vivado HLS AMD2019.2High-Level-Synthese-Tool, das für die Hochebenenprogrammierung des Fußgängererkennungscodes im Paper zur Exportierung des geistigen Eigentums (IP) verwendet wird

References

Loading...
$$\rightleftharpoonup{xx}$$ $$\longleftharp{xx}$$, $$\longrightharp{xx}$$,
  1. Nkuzo, L., Sibiya, M., Markus, E. Computer vision-based applications in modern cars for safety purposes: A systematic literature review. 2023 Conference on Information Communications Technology and Society (ICTAS), Durban, South Africa, , (2023).
  2. Nidamanuri, J., Nibhanupudi, C., Assfalg, R., Venkataraman, H. A progressive review - Emerging technologies for ADAS driven solutions. IEEE Trans Intell Veh. 7 (2), 326-341 (2021).
  3. Bathla, G., et al. Autonomous vehicles and intelligent automation: Applications, challenges, and opportunities. Mob Inf Syst. 2022, 7632892(2022).
  4. Yamamoto, R., Izumi, Y., Aono, R., Nagahara, T., Tanaka, T., Liao, W., Mitsuyama, Y. Development of autonomous driving system based on image recognition using programmable SoCs. 2021 International Conference on Field-Programmable Technology (ICFPT), Auckland, New Zealand, , (2021).
  5. Kasem, A., Reda, A., Vásárhelyi, J., Bouzid, A. A survey about intelligent solutions for autonomous vehicles based on FPGA. Carpathian J Electr Comput Eng. , (2021).
  6. Nane, R., et al. A survey and evaluation of FPGA high-level synthesis tools. IEEE Transactions on Computer-Aided Design of Integrated Circuits and Systems. 35 (10), 1591-1604 (2015).
  7. Cao, J., et al. Pedestrian detection algorithm for intelligent vehicles in complex scenarios. Sensors. 20 (13), 3646(2020).
  8. Chen, W., Zhu, Y., Tian, Z., Zhang, F., Yao, M. Occlusion and multi-scale pedestrian detection: a review. Array. 19, 100318(2023).
  9. Galvao, L. G., Abbod, M., Kalganova, T., Palade, V., Huda, M. N. Pedestrian and vehicle detection in autonomous vehicle perception systems—A review. Sensors. 21 (21), 7267(2021).
  10. Akshayaa, S., Nithin, S. Comparative study of pedestrian detection techniques for driver assistance system. 2021 Second International Conference on Electronics and Sustainable Communication Systems (ICESC), Coimbatore, India, , (2021).
  11. Dalal, N., Triggs, B. Histograms of oriented gradients for human detection. Proceedings of the 2005 IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), San Diego, CA, USA, , (2005).
  12. Singh, G., Kaur, A., Bhardwaj, V., Shrivastava, S. Optimizing IoT capabilities: leveraging FPGA for superior performance, efficiency and security. 2024 5th International Conference for Emerging Technology (INCET), Belgaum, India, , (2024).
  13. Shrivastava, S., Kumar, B. V., Gupta, R., Sharma, V. Advancements in real-time image processing using Kintex and Virtex FPGAs: enhancing speed, efficiency, and versatility. 2025 IEEE International Conference on Interdisciplinary Approaches in Technology and Management for Social Innovation (IATMSI), Gwalior, India, , (2025).
  14. Rettkowski, J., Boutros, A., Göhringer, D. Real-time pedestrian detection on a Xilinx Zynq using the HOG algorithm. 2015 International Conference on Reconfigurable Computing and FPGAs (ReConFig), Riviera Maya, Mexico, , (2015).
  15. Ngo, V., Casadevall, A., Codina, M., Castells-Rufas, D., Carrabina, J. A high-performance HOG extractor on FPGA. arXiv. , 1802.02187(2018).
  16. Adiono, T., Prakoso, K. S., Putratama, C. D., Yuwono, B., Fuada, S. HOG-AdaBoost implementation for human detection employing FPGA ALTERA DE2-115. Int J Adv Comput Sci Appl. 9 (10), 353-358 (2018).
  17. Dürre, J., Paradzik, D., Blume, H. A HOG-based real-time and multi-scale pedestrian detector demonstration system on FPGA. Proceedings of the 2018 ACM/SIGDA International Symposium on Field-Programmable Gate Arrays, Monterey, California, USA, , (2018).
  18. Wasala, M., Kryjak, T. Real-time HOG+SVM based object detection using SoC FPGA for a UHD video stream. 2022 11th Mediterranean Conference on Embedded Computing (MECO), Budva, Montenegro, , (2022).
  19. Lin, Y. Research on HOG-SVM pedestrian detection method based on FPGA. Appl Computat Eng. 9, 272-281 (2023).
  20. Ranawaka, P., et al. Application specific architecture for hardware accelerating HOG-SVM to achieve high throughput on HD frames. 2019 IEEE 30th International Conference on Application-Specific Systems, Architectures and Processors (ASAP), New York, NY, USA, 2160, 131-134 (2019).
  21. Luo, J. H., Lin, C. H. Pure FPGA implementation of an HOG based real-time pedestrian detection system. Sensors. 18 (4), 1174(2018).
  22. Ma, X., Najjar, W. A., Roy-Chowdhury, A. K. Evaluation and acceleration of high-throughput fixed-point object detection on FPGAs. IEEE Transactions on Circuits and Systems for Video Technology. 25 (6), 1051-1062 (2015).
  23. Weng, G. Real-time pedestrian recognition on low computational resources. arXiv. , 2309.01353(2023).
  24. Nguyen, T. A., Tran-Thi, T. Q., Bui, D. H., Tran, X. T. FPGA-based human detection system using HOG-SVM algorithm. 2023 International Conference on Advanced Technologies for Communications (ATC), Da Nang, Vietnam, , (2023).
  25. Tarchoun, B., Khalifa, A. B., Dhifallah, S., Jegham, I., Mahjoub, M. A. Hand-crafted features vs deep learning for pedestrian detection in moving camera. Traitement du Signal. 37 (2), 209-216 (2020).
  26. Suleiman, A., Chen, Y. H., Emer, J., Sze, V. Towards closing the energy gap between HOG and CNN features for embedded vision. 2017 IEEE International Symposium on Circuits and Systems (ISCAS), Baltimore, MD, USA, , (2017).
  27. Ultra96-V2 Single Board Computer Hardware User’s Guide. , Avnet. Available from: https://www.avnet.com (2025).

Access restricted. Please log in or start a trial to view this content.

Reprints and Permissions

Request permission to reuse the text or figures of this JoVE article

Request Permission

Tags

Pedestrian DetectionAutonomous DrivingField Programmable Gate ArrayFPGA ImplementationReal Time DetectionHistogram Of Oriented GradientsSupport Vector MachineHigh Level SynthesisUltra 96 V2Smart Transportation

Related Articles