inteintegrity2026-10-19

Bouw met Codex een app voor pose-estimatie op reComputer AI R2140

Bouw, implementeer en test met Codex een Hailo-8-WebUI voor pose-estimatie op reComputer AI R2140, van SSH-inspectie tot het afspelen en downloaden van MP4.

CodexCVPose EstimationGitHub

Beschrijf een applicatie in gewone taal, maak verbinding met een edge-apparaat en werk met Codex totdat de volledige applicatie op echte hardware draait. Dit project laat die aanpak zien met reComputer AI R2140, Hailo-8 en een YOLOv8m-Pose-video-WebUI.

Jij bepaalt de gebruikerservaring en de hardwarebeperkingen. Codex inspecteert het bord via SSH, hergebruikt de geïnstalleerde HailoRT-omgeving, bouwt de applicatie op basis van officiële Hailo-voorbeelden, implementeert deze en verhelpt fouten die bij tests op het fysieke apparaat aan het licht komen.

Het resultaat is Pose Studio: upload een MP4 vanaf je pc, voer menselijke pose-estimatie uit op Hailo-8 en bekijk of download een video met kaders rond personen, 17 COCO-lichaamskeypoints, skeletverbindingen en gemeten inferentie-FPS.

Bouw een applicatie met Codex op reComputer AI R2140

Projectbroncode: codex-recomputer-r2140-pose

Wat je leert

  • Het applicatiedoel, de implementatiegrenzen en de acceptatiecriteria aan Codex uitleggen.
  • Een apparaat op afstand inspecteren voordat je de omgeving wijzigt.
  • Bestaande afhankelijkheden, officiële inferentievoorbeelden en een compatibel vooraf gecompileerd model hergebruiken.
  • Uploaden, voortgang, videoweergave en downloaden toevoegen aan hardware-inferentie.
  • De volledige applicatie testen en waargenomen fouten gebruiken om gerichte correcties uit te voeren.

Codex ondersteunt de ontwikkeling vanaf je pc. De geïmplementeerde applicatie en de modelinferentie draaien lokaal op de R2140; de video wordt niet naar een inferentiedienst in de cloud gestuurd.

De applicatie

Pose Studio biedt een Engelse interface met MP4-upload, instelbare betrouwbaarheidsdrempels voor personen en keypoints, verwerkingsvoortgang, weergave van geannoteerde video's, MP4-download en recente analyses. De inferentie-FPS en de FPS van de volledige verwerking worden afzonderlijk getoond. Als de invoer audio bevat, blijft die als AAC behouden in de uitvoer.

Bekijk de WebUI-screenshot, het resultaat van pose-estimatie en de voorbeeldvideo's voor invoer en uitvoer in de repository.

Hardware en software

OnderdeelGeverifieerde omgeving
ApparaatreComputer AI R2140, ARM64-platform op basis van Raspberry Pi 5
VersnellerHailo-8
BesturingssysteemDebian 13.6
HailoRT / stuurprogramma / firmware4.23.0
Python3.13.5
NumPy / OpenCV2.2.4 / 4.10.0
WeblaagFlask 3.1.3 en Waitress 3.0.2 in een virtuele applicatieomgeving
VideohulpmiddelenFFmpeg en ffprobe
ModelOfficieel vooraf gecompileerd YOLOv8m-Pose-HEF voor Hailo-8, RGB-invoer van 640 × 640

Gebruik een ontwikkel-pc met Codex, een SSH-verbinding met het bord en een MP4 om te testen. Dit project gaat uit van een bestaande, werkende Hailo-omgeving; modeltraining of modelconversie is niet nodig.

Stap 1. Maak verbinding en inspecteer vóór wijzigingen

Open een lokale projectmap in Codex en geef de SSH-verbindingsgegevens van je apparaat door in de lokale sessie. Vraag eerst om een controle die niets wijzigt. De onderstaande prompts blijven in het Engels en kunnen rechtstreeks worden gekopieerd.

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.

Bij deze implementatie werkten de versneller en HailoRT al. NumPy en OpenCV waren beschikbaar, maar de volledige TAPPAS/Python-GStreamer-omgeving ontbrak. Daarom gebruikte de implementatie de zelfstandige Python-inferentie en posedecoder van Hailo, zonder het stuurprogramma opnieuw te installeren.

Stap 2. Geef Codex de applicatievereisten

Beschrijf wat de gebruiker moet kunnen doen, benoem de vereiste versneller en leg vast hoe je controleert of het werk klaar is:

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.

Het project hergebruikt de officiële inferentiewrapper en de nabewerking voor poses uit Hailo Apps. Het gekozen HEF uit Model Zoo v2.18.0 is bedoeld voor Hailo-8 en de geverifieerde HailoRT-4.23.x-omgeving. De model-URL en de SHA-256-controlesom zijn vastgelegd in de repository.

Stap 3. Implementeer en lever op in controleerbare stappen

Vraag Codex om het inferentiepad te controleren voordat de volledige interface wordt toegevoegd:

  1. Bevestig het geïnstalleerde HailoRT-Python-pakket en de toegang tot Hailo-8.
  2. Download het compatibele HEF en controleer de controlesom.
  3. Verwerk een videoframe op Hailo-8 en decodeer de werkelijke pose-uitvoer.
  4. Implementeer videodecodering, RGB-letterboxing, inferentie, de officiële posedecodering en overlays.
  5. Voeg uploaden, taakstatus, afspelen, zoeken in de tijdlijn, downloaden en beheer van recente resultaten toe.
  6. Implementeer de applicatie en geef de start- en stopcommando's en de LAN-URL.
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.

Het resulterende verwerkingspad is:

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

Stap 4. Test de volledige gebruikersworkflow

Gebruik een echte testvideo en controleer de uitvoer, niet alleen de paginareactie of de initialisatie van het model:

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.

Tijdens de ontwikkeling zijn twee problemen gevonden en opgelost: HailoRT gaf een benoemd argument door aan de callback dat aanvankelijk niet overeenkwam met de functiesignatuur van de applicatie, en de FFmpeg-optie -shortest kapte videoframes af als de audio eerder eindigde. De gecorrigeerde applicatie is opnieuw getest, waaronder met een audioclip waarbij alle 52 verwerkte videoframes behouden bleven.

Validatie van het volledige voorbeeldResultaat
Resolutie / afspeel-FPS1920 × 1080 / 25 FPS
Aantal invoer- en uitvoerframes233 / 233
Videoduur9.32 seconden
Gemeten inferentie-FPS32.2–32.4
FPS van de volledige verwerking13.3–13.4
Afspelen, zoeken en downloadenGeverifieerd op de geteste implementatie

Inferentie-FPS meten voltooide HailoRT-aanroepen, inclusief het voorbereiden van bufferbindingen, overdracht, planning en het ophalen van de uitvoer. De FPS van de volledige verwerking omvatten ook video- en beeldverwerking op de CPU. Geen van beide waarden is de afspeel-FPS van de video of een benchmark van alleen de chip. De testomstandigheden staan in het validatierapport.

Stap 5. Reproduceer de applicatie vanuit GitHub

Voer dit uit op een R2140 waarop de vereiste HailoRT-4.23.0-omgeving, Python-afhankelijkheden en FFmpeg al zijn geïnstalleerd:

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

Open http://<DEVICE_IP>:8080/ vanaf een pc op hetzelfde netwerk. Selecteer het meegeleverde video/test.mp4, start de pose-estimatie, bekijk het resultaat en download de MP4.

Het installatiescript controleert de vereisten, maakt een virtuele omgeving die systeempakketten hergebruikt, installeert de webafhankelijkheden en downloadt en verifieert het model. Het installeert geen stuurprogramma's en verandert geen systeemconfiguratie. Stop de applicatie met sh stop.sh; voer na een herstart opnieuw sh start.sh uit. Controleer op een nieuw bord de installatie en afhankelijkheden in je eigen omgeving voordat je op de resultaten van de eerdere implementatie vertrouwt.

Blijf verder ontwikkelen met Codex

Zodra de applicatie werkt, kun je Codex vragen de interface te verbeteren, een functie met duidelijke acceptatiecriteria toe te voegen of het project voor anderen te verpakken. Houd inloggegevens, video's van gebruikers en lokale uitvoeringsgegevens buiten de broncoderepository. Bewaar de modelherkomst en de licentievermeldingen van derden.

De projectrepository bevat broncode, testvideo's, screenshots, herbruikbare prompts en implementatie-instructies. De oorspronkelijke applicatiecode en documentatie vallen onder de MIT-licentie. Hergebruikte Hailo-code behoudt de oorspronkelijke vermelding; de voorwaarden voor het model en de runtime blijven afzonderlijk van toepassing.