
Comment transformer une idée d’application en un programme qui fonctionne sur une carte d’IA en périphérie ? Ce projet présente une session de développement concrète avec Codex : connexion à un reComputer RK3576, inspection de son environnement, description de l’application, déploiement par SSH et vérification sur l’appareil réel.
L’exemple est une WebUI de détection vidéo avec YOLOv8. Depuis le navigateur du PC, vous pouvez téléverser un MP4, exécuter la détection sur le NPU du RK3576, puis lire ou télécharger une vidéo avec les cadres de détection, les classes et les FPS. Le code source, la vidéo de test et les mesures sont disponibles dans le dépôt GitHub.
L’objectif est de présenter une méthode réutilisable de développement assisté par IA : fournir le contexte de l’appareil, définir les contraintes, demander l’implémentation et vérifier le résultat selon des critères d’acceptation précis.
Organisation du flux de travail
Codex s’exécute sur le PC de développement et utilise SSH pour travailler avec la carte. L’application terminée s’exécute sur reComputer RK3576 et l’inférence du réseau neuronal est réalisée par son NPU. La détection d’objets n’utilise pas d’API OpenAI.
Requirements → Codex on the PC → SSH → reComputer RK3576
↓
PC browser ← upload / playback / download ← YOLOv8n on the NPU| Étape | Informations à fournir | Points à vérifier |
|---|---|---|
| Inspection | Adresse de la carte, compte et périmètre en lecture seule | SSH fonctionne et l’environnement NPU est accessible |
| Création | Comportement de l’application et contraintes de l’appareil | Modèle correct, inférence matérielle et interface utilisable |
| Déploiement | Répertoire de l’application et conditions de lancement | Le serveur démarre et le PC peut accéder à son URL |
| Validation | Vidéo de test et critères d’acceptation | Tout le parcours fonctionne, du téléversement au téléchargement |
Avant de commencer
- Un reComputer RK3576 Dev Kit sous Linux, avec un pilote NPU fonctionnel et RKNN Runtime.
- Un PC équipé de Codex, d’un dossier de projet local et d’outils SSH utilisables depuis son shell.
- Une connexion réseau entre le PC et la carte, et l’autorisation pour Codex d’utiliser les outils locaux et la connexion SSH nécessaires.
- Une vidéo de test MP4. Le dépôt de ce projet contient
video/test.mp4.
Cet exemple réutilise un environnement Python, RKNNLite, OpenCV et NumPy déjà installé. Il ne couvre pas l’écriture d’un système d’exploitation ni l’installation du pilote NPU. S’il manque des dépendances sur votre carte, demandez à Codex de les identifier avant de les installer.
Étape 1 : laisser Codex inspecter la carte
Ouvrez un dossier de projet local dans Codex sur votre PC. Commencez par une demande en lecture seule afin de baser l’implémentation sur l’environnement réel de la carte.
Connect to my reComputer RK3576 via SSH.
Host: <DEVICE_IP>
Username: <DEVICE_USER>
Use my SSH key, or ask for the credentials needed to connect.
Check the OS, architecture, memory, available storage, RKNN Runtime, Python
environments, NPU driver and device access, and existing YOLO models.
Verify that remote commands can execute successfully.
Do not install packages or modify the system yet. Report the environment and
any issues that could block deployment.Remplacez les paramètres fictifs par les informations de votre appareil. Ne placez pas les identifiants de connexion dans les fichiers du projet ou les commits.
Lors de la session d’origine, l’inspection a identifié Debian 12 ARM64, un périphérique RKNPU accessible, RKNNLite et OpenCV déjà installés, ainsi qu’un espace limité sur le stockage racine. Ces constats ont conduit à réutiliser l’environnement existant et à ajouter des limites de téléversement et des contrôles de stockage dans l’application.
Étape 2 : décrire l’application souhaitée
Donnez à Codex le parcours utilisateur complet, les exigences matérielles et les critères définissant la fin de la tâche. Le prompt suivant est adapté de la demande utilisée pour ce développement :
Build and deploy a YOLOv8 object detection WebUI on my reComputer RK3576 via SSH.
Download a precompiled RK3576-compatible YOLOv8n .rknn model from Rockchip's
official resources or a verified source. Record its source and verify its
published checksum. Do not train or convert models.
Use the RK3576 NPU for inference. Create a modern English WebUI where I can
upload an MP4 from my PC, run detection, and play or download the processed
video with bounding boxes, class labels, confidence scores, and FPS.
Reuse existing RKNN dependencies and official examples where possible.
Keep application files in a dedicated directory. Do not reinstall drivers
or modify system configurations without permission.
Test the complete workflow on the actual board, fix errors, and provide the
working WebUI URL, measured performance, and remaining limitations.Ainsi, le choix du modèle, l’interface, le déploiement et les tests visent le même résultat. Les prompts constituent un point de départ et ne garantissent pas une implémentation ou des performances identiques sur toutes les cartes.
Étape 3 : vérifier le modèle et le chemin d’inférence NPU
Avant de traiter une vidéo complète, vérifiez le chemin d’inférence avec une image connue. Demandez à Codex de présenter les éléments suivants :
- Source de téléchargement du modèle, révision figée, somme de contrôle et cible RK3576.
- Chargement du modèle et initialisation du NPU réussis avec RKNNLite.
- Détection des objets attendus dans une image de test connue.
- Avertissements d’exécution et versions concernées.
Pour ce projet, Codex a téléchargé un modèle YOLOv8n INT8 précompilé depuis RKNNAI/RK3576-CNN-yolov8n et vérifié le SHA-256 publié. Il a réutilisé RKNNLite et adapté l’exemple officiel de post-traitement YOLOv8 de Rockchip, avec NumPy pour DFL plutôt que l’ajout de Torch. Le test sur une image connue a détecté des personnes et un bus.
Le Runtime installé était en version 2.3.0, alors que le modèle indiquait une version de compilateur 2.4.2. RKNN a émis un avertissement de différence de versions. Les tests d’image et de vidéo complète ont réussi sur cette carte sans mise à jour du Runtime ; ce résultat ne démontre pas une compatibilité générale avec d’autres modèles ou environnements.
Étape 4 : déployer et ouvrir la WebUI
Codex a déployé l’application dans /home/seeed/codex-yolov8-webui et lancé un serveur en arrière-plan sur le port 8080. Sur votre propre carte, ouvrez :
http://<DEVICE_IP>:8080L’interface obtenue comprend le téléversement de MP4, le réglage de la confiance et de l’IoU, des aperçus de la progression, un lecteur vidéo annoté, des téléchargements et un historique local des exécutions. Le traitement et les fichiers téléversés restent intégralement sur la carte.
Si vous déployez le dépôt existant au lieu de reconstruire l’application, demandez à Codex de lire ses instructions de déploiement, d’inspecter votre carte, de transférer les fichiers, d’adapter les chemins à votre environnement Python, d’exécuter le test NPU et de lancer le serveur. Les scripts fournis référencent les chemins de l’environnement d’origine et ne sont pas des installateurs universels.
Sur l’appareil d’origine, les commandes sont les suivantes :
cd /home/seeed/codex-yolov8-webui
/home/seeed/venvs/rknn-lite2-test/bin/python -B probe.py
sh start.shAucun service de démarrage automatique n’a été installé. Après un redémarrage de la carte, exécutez à nouveau sh start.sh.
Étape 5 : tester du téléversement au téléchargement
Utilisez le navigateur du PC pour téléverser video/test.mp4 et lancer la détection. Vérifiez vous-même le résultat visible, puis demandez à Codex de valider le parcours complet :
Test the deployed WebUI end to end with video/test.mp4.
Verify upload, NPU inference, progress updates, bounding boxes and labels,
browser playback, seeking, and downloading the result back to the PC.
Confirm that every frame of the downloaded video decodes successfully.
Check invalid uploads, busy-device handling, cancellation, and cleanup with
disposable test runs. Fix errors and rerun the affected checks.
Report NPU inference FPS separately from full processing FPS. Save the test
results and document limitations and compatibility warnings.Le test d’origine du 15 octobre 2026 a produit les résultats suivants :
| Mesure | Résultat |
|---|---|
| Vidéo source | 3840 × 2160, 29.97 FPS, 394 images |
| Sortie annotée | H.264 MP4, 1280 × 720, 13.146 secondes |
| Images traitées et décodées après téléchargement | 394 / 394 |
| Débit d’inférence NPU | 37.63 FPS |
| Débit du traitement complet | 7.89 FPS |
| Temps de traitement | 49.92 secondes, hors téléversement et démarrage du modèle |
| Classes observées | car, bus, truck, traffic light |
Les FPS du NPU mesurent le temps passé dans l’inférence. Les FPS de traitement incluent le décodage vidéo, le prétraitement, l’inférence, le post-traitement, le dessin et l’encodage. Ces nombres sont les mesures de cette exécution, pas une garantie de performances ni la fréquence de lecture de la vidéo. Les rapports sont disponibles dans le répertoire verification/ du dépôt.
Étape 6 : organiser le résultat en projet réutilisable
Une fois l’application opérationnelle, demandez à Codex d’organiser le code source, les instructions de déploiement, les captures d’écran, la provenance du modèle, les licences et les rapports de test. Incluez uniquement les médias dont vous avez autorisé le téléversement, en excluant les identifiants, les fichiers téléversés pendant l’exécution et les journaux.
Pour votre prochaine application, réutilisez la même séquence : inspecter la carte, décrire le parcours utilisateur, définir les contraintes matérielles et système, déployer, puis vérifier avec des entrées réelles. Adaptez les exigences et les tests d’acceptation à la nouvelle tâche.
Périmètre et ressources
- L’exemple est conçu pour un LAN de confiance, sans authentification ni TLS configurés.
- Les téléversements sont limités à 500 MiB. Les entrées jusqu’à 4K sont prises en charge ; la sortie tient dans 1280 × 720 tout en conservant le rapport d’aspect et la temporisation de la source. La sortie est sans audio.
- Le code original de l’application est sous licence MIT. Le modèle fourni conserve AGPL-3.0 ; l’exemple de Rockchip et le post-traitement dérivé conservent Apache-2.0.
- Sources du projet, instructions de déploiement et rapports de test
- Exemple officiel YOLOv8 de Rockchip
- Bonnes pratiques OpenAI Codex