Aufbau von Echtzeit-Verkehrsanalysen auf Raspberry Pi 5 mit Hailo-8
Führen Sie lokale Verkehrsanalysen auf Raspberry Pi 5 mit Hailo-8 durch. Zählen Sie Fahrzeuge in ausgewählten Bereichen, verfolgen Sie deren Bewegung und messen Sie gerichtete Linienüberschreitungen von einem Browser-Dashboard aus.
Aufbau von Echtzeit-Verkehrsanalysen auf Raspberry Pi 5 mit Hailo-8
Dieses Projekt verwandelt einen Raspberry Pi 5 und Hailo-8 in ein lokales Verkehrsanalysesystem. Es erkennt Fahrzeuge mit YOLOv11 und präsentiert die Ergebnisse im Browser. Sie können ein hochgeladenes Bild oder Video, eine USB-Kamera oder eine RTSP-Kamera verwenden.
1. Was ist Verkehrsanalyse?
Verkehrsanalyse fügt der Fahrzeugerkennung nützliche Regeln hinzu:
| Funktion | Was sie anzeigt |
|---|---|
| Bereichszählung | Anzahl der Fahrzeuge in jedem vom Benutzer gezeichneten Bereich |
| Fahrzeugverfolgung | Eine stabile ID und eine kurze Bewegungsspur für jedes Fahrzeug |
| Linienüberschreitung | Gesamtüberschreitungen und separate Zählungen für A→B und B→A |
Der Browser wird verwendet, um eine Quelle auszuwählen, Bereiche und eine Überschreitungslinie zu zeichnen und die Ergebnisse anzusehen. Die gesamte Verarbeitung verbleibt auf dem Raspberry Pi.
Der Hailo-8 führt die YOLOv11-Inferenz aus. Der Raspberry Pi übernimmt den Videoeingang, die Verfolgung, die Zählung und das Web-Dashboard.
Image, video, USB camera, or RTSP camera
│
▼
FastAPI backend
│
▼
YOLOv11 inference on Hailo-8
│
▼
Area count · Track · Line count
│
▼
Browser dashboardDie Anwendung erkennt Fahrräder, Autos, Motorräder, Busse und Lastwagen. Ein Inferenzergebnis wird von jeder aktivierten Verkehrsfunktion gemeinsam genutzt.

2. Drei Analysefunktionen und ihre gemeinsame Nutzung
Bereichszählung
Zeichnen Sie ein Polygon über die Straße, Einfahrt, Parkzone oder einen anderen Bereich. Ein Fahrzeug wird gezählt, wenn sich der Mittelpunkt seiner Erkennung innerhalb des gespeicherten Polygons befindet.
Sie können mehrere benannte Bereiche erstellen. Jeder Bereich hat seine eigene Gesamtzahl und Aufschlüsselung nach Fahrzeugklassen. Wenn sich Bereiche überlappen, wird ein Fahrzeug in beiden Bereichen jeweils einmal gezählt.

Fahrzeugverfolgung
Die Verfolgung weist jedem Fahrzeug eine ID zu und zeichnet eine kurze Spur dahinter. Dies macht die Richtung und den letzten Pfad jedes Fahrzeugs leicht erkennbar.
Spuren verfallen, wenn ein Fahrzeug zu lange verschwindet. Spuren werden auch nach einem großen Positionssprung gelöscht, um falsche Linien über das Bild zu vermeiden.

Gerichtete Linienüberschreitung
Zeichnen Sie eine Linie mit den Endpunkten A und B. Wenn ein verfolgtes Fahrzeug die Linie überschreitet, aktualisiert das Dashboard:
- Gesamtüberschreitungen
- Überschreitungen A→B
- Überschreitungen B→A
Jede Spur wird nur einmal gezählt. Der Fahrzeugpfad muss das gezeichnete Liniensegment kreuzen, sodass Bewegungen an anderer Stelle im Bild die Zählung nicht verändern.

Alle drei zusammen verwenden
Bereichszählung, Verfolgung und Linienüberschreitung können zusammen ausgeführt werden. Sie verwenden dieselben YOLOv11-Erkennungen, sodass das Modell bei Aktivierung aller drei Funktionen nicht dreimal ausgeführt wird.
So zeigen Sie alle Funktionen an:
- Wählen Sie eine Bild-, Video-, USB-Kamera- oder RTSP-Quelle aus.
- Aktivieren Sie Bereichszählung, Fahrzeugverfolgung und Linienzählung.
- Zeichnen und speichern Sie mindestens einen Zählbereich.
- Zeichnen Sie die Zwei-Punkt-Überschreitungslinie.
- Wählen Sie Bild analysieren oder Analyse starten.
Das Dashboard zeigt dann die aktuelle Bereichsbelegung, Fahrzeugpfade und die gerichteten Überschreitungsgesamtwerte über denselben Verkehrsfeed an.

3. Ausführung auf Raspberry Pi 5 mit Hailo-8
Anforderungen
- Raspberry Pi 5 oder reComputer R20 mit 64-Bit Raspberry Pi OS Bookworm
- Hailo-8-Beschleuniger
- Internetzugang während der Installation
- Ein Bild, Video, eine USB-Kamera oder eine RTSP-Kamera
HailoRT installieren und überprüfen
sudo apt update
sudo apt install hailo-all
sudo rebootÜberprüfen Sie nach dem Neustart das System:
uname -m
hailortcli fw-control identify
ls /dev/hailo0Die Architektur muss aarch64 sein, und das Hailo-Gerät muss sichtbar sein.
Projekt klonen
git clone https://github.com/Hanzo-Huang/pi-ai-demos.git
cd pi-ai-demosMiniforge und Python 3.12 installieren
Das enthaltene HailoRT-Wheel erfordert CPython 3.12, Linux ARM64 und HailoRT 4.23. Miniforge stellt Python 3.12 bereit, ohne das System-Python zu verändern.
sudo apt install curl
curl -L -O https://github.com/conda-forge/miniforge/releases/latest/download/Miniforge3-Linux-aarch64.sh
bash Miniforge3-Linux-aarch64.shErlauben Sie dem Installer, die Shell zu initialisieren, schließen und öffnen Sie dann das Terminal erneut. Erstellen Sie die Projektumgebung:
conda config --set auto_activate_base false
conda create --name pi-hailo python=3.12 pip -y
conda activate pi-hailo
python --version
python -m pip install -r requirements.txt
python -m pip install runtime/wheels/hailort-4.23.0-cp312-cp312-linux_aarch64.whlPython muss Version 3.12.x melden. Wenn der installierte HailoRT-Treiber nicht 4.23 ist, installieren Sie ein HailoRT-Python-Wheel, das zum Treiber passt.
Überprüfen Sie die Python-Pakete:
python -c "import cv2, fastapi, hailo_platform, numpy; print('Python dependencies: OK')"Verkehrsanalyse starten
Starten ohne USB-Kamera:
python examples/cv/traffic-analytics/run.py --camera-id -1Öffnen Sie das Dashboard unter:
http://PI_IP_ADDRESS:8000Um die erste USB-Kamera zu verwenden, starten Sie mit:
python examples/cv/traffic-analytics/run.py --camera-id 0Für eine RTSP-Kamera starten Sie mit Kamera-ID -1, öffnen das Dashboard, geben die vollständige rtsp://- oder rtsps://-URL ein und wählen Verbinden.
Anwendung prüfen
Führen Sie in einem anderen Terminal aus:
curl http://127.0.0.1:8000/api/healthDie Antwort sollte model_exists als true und hailo_platform_importable als true melden. Wenn einer der Werte false ist, überprüfen Sie, ob models/yolov11n.hef existiert und ob das HailoRT-Wheel zum Treiber, zur Python-Version und zur ARM64-Architektur passt.
Die Verkehrsanalyse ist nun bereit. Wählen Sie eine Quelle, zeichnen Sie die von den aktivierten Funktionen benötigten Hilfslinien und starten Sie die Analyse.