inteintegrity2026-10-19

Eine Pose-Estimation-App mit Codex auf reComputer AI R2140 entwickeln

Mit Codex eine Hailo-8-WebUI zur Posenschätzung auf reComputer AI R2140 entwickeln, bereitstellen und testen – von der SSH-Prüfung bis zur MP4-Wiedergabe.

CodexCVPose EstimationGitHub

Beschreiben Sie eine Anwendung in natürlicher Sprache, verbinden Sie sich mit einem Edge-Gerät und arbeiten Sie mit Codex, bis die gesamte Anwendung auf realer Hardware läuft. Dieses Projekt zeigt den Ablauf mit reComputer AI R2140, Hailo-8 und einer YOLOv8m-Pose-Video-WebUI.

Sie legen die Benutzererfahrung und die Hardwarevorgaben fest. Codex untersucht das Board per SSH, nutzt die installierte HailoRT-Umgebung weiter, erstellt die Anwendung anhand offizieller Hailo-Beispiele, stellt sie bereit und behebt Fehler, die bei Tests auf dem physischen Gerät auftreten.

Das Ergebnis ist Pose Studio: Laden Sie eine MP4-Datei vom PC hoch, führen Sie die Schätzung menschlicher Körperposen auf Hailo-8 aus und betrachten oder laden Sie ein Video mit Personenrahmen, 17 COCO-Körperschlüsselpunkten, Skelettverbindungen und gemessenen Inferenz-FPS herunter.

Mit Codex eine Anwendung auf reComputer AI R2140 entwickeln

Projektquellcode: codex-recomputer-r2140-pose

Was Sie lernen

  • Codex das Anwendungsziel, die Grenzen der Implementierung und die Abnahmekriterien erläutern.
  • Ein entferntes Gerät prüfen, bevor seine Umgebung verändert wird.
  • Vorhandene Abhängigkeiten, offizielle Inferenzbeispiele und ein kompatibles vorkompiliertes Modell wiederverwenden.
  • Upload, Fortschrittsanzeige, Videowiedergabe und Download um die Hardwareinferenz ergänzen.
  • Die vollständige Anwendung testen und beobachtete Fehler gezielt beheben.

Codex unterstützt die Entwicklung auf Ihrem PC. Die bereitgestellte Anwendung und die Modellinferenz laufen lokal auf dem R2140; das Video wird nicht an einen Cloud-Inferenzdienst gesendet.

Die Anwendung

Pose Studio bietet eine englische Oberfläche mit MP4-Upload, einstellbaren Konfidenzschwellen für Personen und Schlüsselpunkte, Verarbeitungsfortschritt, Wiedergabe annotierter Videos, MP4-Download und zuletzt erstellten Analysen. Inferenz-FPS und die FPS der gesamten Verarbeitung werden getrennt angezeigt. Falls die Eingabe eine Tonspur enthält, wird diese als AAC in der Ausgabe erhalten.

Im Repository finden Sie den WebUI-Screenshot, das Ergebnis der Posenschätzung und die Beispielvideos für Ein- und Ausgabe.

Hardware und Software

KomponenteVerifizierte Umgebung
GerätreComputer AI R2140, ARM64-Plattform auf Basis von Raspberry Pi 5
BeschleunigerHailo-8
BetriebssystemDebian 13.6
HailoRT / Treiber / Firmware4.23.0
Python3.13.5
NumPy / OpenCV2.2.4 / 4.10.0
Web-SchichtFlask 3.1.3 und Waitress 3.0.2 in einer virtuellen Anwendungsumgebung
VideowerkzeugeFFmpeg und ffprobe
ModellOffizielles vorkompiliertes YOLOv8m-Pose-HEF für Hailo-8, RGB-Eingabe mit 640 × 640

Sie benötigen einen Entwicklungs-PC mit Codex, eine SSH-Verbindung zum Board und eine MP4-Datei zum Testen. Das Projekt setzt eine bereits funktionierende Hailo-Umgebung voraus; Modelltraining und Modellkonvertierung sind nicht erforderlich.

Schritt 1. Vor Änderungen verbinden und prüfen

Öffnen Sie einen lokalen Projektordner in Codex und geben Sie die SSH-Verbindungsdaten Ihres Geräts in der lokalen Sitzung an. Fordern Sie zunächst eine ausschließlich lesende Prüfung an. Die folgenden Prompts bleiben auf Englisch und können unverändert kopiert werden.

text
Connect to my reComputer AI R2140 via SSH.
Host: <DEVICE_IP>
Username: <DEVICE_USER>
Use the SSH authentication details provided in this local session.

Check the OS, CPU architecture, memory, disk space, Hailo-8 device,
driver, HailoRT version, Python dependencies, and existing pose models.
Verify that remote commands execute successfully.

Do not modify the system yet. Report the environment and any blockers.

Bei dieser Umsetzung funktionierten Beschleuniger und HailoRT bereits. NumPy und OpenCV waren verfügbar, die vollständige TAPPAS/Python-GStreamer-Umgebung jedoch nicht. Daher wurde die eigenständige Python-Inferenz samt Pose-Decoder von Hailo verwendet, ohne den Treiber neu zu installieren.

Schritt 2. Codex die Anforderungen erläutern

Beschreiben Sie die vorgesehenen Benutzeraktionen, benennen Sie den erforderlichen Beschleuniger und legen Sie fest, wie die Fertigstellung geprüft wird:

text
Build and deploy a YOLOv8 Pose Estimation WebUI on my reComputer AI R2140.
Use Hailo-8 for inference. Download a compatible official precompiled
YOLOv8m-Pose .hef model. Do not train or convert models.
Reference: https://github.com/hailo-ai/hailo-apps

Create a modern English UI for uploading an MP4 from my PC, running pose
estimation, and viewing/downloading the processed video. Draw human boxes,
17 COCO body keypoints, and skeleton connections.
Show measured inference FPS separately from overall processing FPS.

Reuse the installed HailoRT and official examples. Keep new dependencies
in an app virtual environment. Do not reinstall drivers or modify system
configuration without permission.

Test the complete workflow on the physical R2140, fix errors, and provide
the working WebUI URL and actual validation results.

Das Projekt verwendet den offiziellen Inferenz-Wrapper und die Pose-Nachverarbeitung aus Hailo Apps. Das ausgewählte HEF aus Model Zoo v2.18.0 ist für Hailo-8 und die verifizierte HailoRT-4.23.x-Umgebung vorgesehen. Modell-URL und SHA-256-Prüfsumme sind im Repository dokumentiert.

Schritt 3. In überprüfbaren Etappen umsetzen und bereitstellen

Bitten Sie Codex, vor der vollständigen Oberfläche zunächst den Inferenzpfad zu prüfen:

  1. Das installierte HailoRT-Python-Paket und den Zugriff auf Hailo-8 bestätigen.
  2. Das kompatible HEF herunterladen und seine Prüfsumme kontrollieren.
  3. Ein Videobild auf Hailo-8 verarbeiten und die tatsächlichen Pose-Ausgaben dekodieren.
  4. Videodekodierung, RGB-Letterboxing, Inferenz, offizielle Pose-Dekodierung und Einblendungen implementieren.
  5. Upload, Auftragsstatus, Wiedergabe, Zeitsuche, Download und Verwaltung letzter Ergebnisse ergänzen.
  6. Die Anwendung bereitstellen sowie Start- und Stoppbefehle und ihre LAN-URL angeben.
text
Use the environment found during inspection and verify a real frame on
Hailo-8 before processing a full video. Keep the app in a dedicated directory.
Record model provenance, dependencies, and performance measurement definitions.
Deploy the WebUI and document how to start and stop the app without changing
system services or the existing driver configuration.

Der resultierende Verarbeitungspfad sieht wie folgt aus:

text
PC browser: upload MP4
    → R2140: video decoding and RGB letterboxing
    → HailoRT: YOLOv8m-Pose inference on Hailo-8
    → official pose decoding and NMS
    → bounding boxes, keypoints, skeletons, and FPS overlay
    → FFmpeg: H.264 MP4 with optional AAC audio
    → PC browser: preview and download

Schritt 4. Den vollständigen Benutzerablauf testen

Verwenden Sie ein echtes Testvideo und kontrollieren Sie die Ausgabe, nicht nur die Seitenantwort oder Modellinitialisierung:

text
Upload video/test.mp4 through the app and process all frames on the R2140.
Check human boxes, keypoint alignment, skeletons, and the FPS overlay.
Verify browser playback, seeking, MP4 download, output frame count, and
successful decoding of every output frame.

Test optional audio, invalid uploads, busy-device handling, and a second
inference run. Fix errors and repeat the affected checks.
Report inference FPS and complete processing FPS separately.

Während der Umsetzung wurden zwei Probleme gefunden und behoben: HailoRT übergab dem Callback ein benanntes Argument, das zunächst nicht zur Funktionssignatur der Anwendung passte. Außerdem schnitt die FFmpeg-Option -shortest Videobilder ab, wenn die Tonspur früher endete. Die korrigierte Anwendung wurde erneut geprüft; bei einem Clip mit Audio blieben alle 52 verarbeiteten Videobilder erhalten.

Prüfung des vollständigen BeispielsErgebnis
Auflösung / Wiedergabe-FPS1920 × 1080 / 25 FPS
Anzahl der Eingabe- und Ausgabebilder233 / 233
Videodauer9.32 Sekunden
Gemessene Inferenz-FPS32.2–32.4
FPS der gesamten Verarbeitung13.3–13.4
Wiedergabe, Zeitsuche und DownloadIn der getesteten Bereitstellung verifiziert

Inferenz-FPS messen abgeschlossene HailoRT-Aufrufe einschließlich der Vorbereitung von Pufferbindungen, Transfers, Scheduling und Ausgabeabruf. Die FPS der gesamten Verarbeitung berücksichtigen zusätzlich die CPU-seitige Video- und Bildverarbeitung. Keiner der Werte entspricht der Wiedergabebildrate oder einem reinen Chip-Benchmark. Die Testbedingungen stehen im Validierungsbericht.

Schritt 5. Die Anwendung aus GitHub reproduzieren

Führen Sie die folgenden Befehle auf einem R2140 aus, auf dem die benötigte HailoRT-4.23.0-Umgebung, die Python-Abhängigkeiten und FFmpeg bereits vorhanden sind:

sh
git clone https://github.com/inteintegrity/codex-recomputer-r2140-pose.git
cd codex-recomputer-r2140-pose
sh setup.sh
sh start.sh

Öffnen Sie http://<DEVICE_IP>:8080/ auf einem PC im selben Netzwerk. Wählen Sie die enthaltene Datei video/test.mp4, starten Sie die Posenschätzung, prüfen Sie das Ergebnis und laden Sie die MP4-Datei herunter.

Das Einrichtungsskript prüft Voraussetzungen, erstellt eine virtuelle Umgebung mit Zugriff auf Systempakete, installiert Web-Abhängigkeiten und lädt und verifiziert das Modell. Es installiert keine Treiber und ändert keine Systemkonfiguration. Mit sh stop.sh beenden Sie die Anwendung; nach einem Neustart führen Sie sh start.sh erneut aus. Prüfen Sie Einrichtung und Abhängigkeiten auf einem neuen Board in Ihrer eigenen Umgebung, bevor Sie sich auf die Ergebnisse der früheren Bereitstellung stützen.

Mit Codex weiterentwickeln

Sobald die Anwendung funktioniert, können Sie Codex die Oberfläche verbessern, eine Funktion mit klaren Abnahmekriterien hinzufügen oder das Projekt für andere Entwickler aufbereiten lassen. Zugangsdaten, hochgeladene Benutzervideos und lokale Laufzeitdaten gehören nicht in das Quellcode-Repository. Bewahren Sie Modellherkunft und Lizenzhinweise Dritter auf.

Das Projekt-Repository enthält Quellcode, Testvideos, Screenshots, wiederverwendbare Prompts und Bereitstellungshinweise. Der ursprüngliche Anwendungscode und die Dokumentation stehen unter der MIT-Lizenz. Wiederverwendeter Hailo-Code behält seinen ursprünglichen Hinweis; für Modell und Runtime gelten gesonderte Bedingungen.