CV / YOLOX
YOLOX
YOLOX COCO object detection on reComputer RK3576, RK3588, and CM5 with Hailo-8 or Hailo-10H.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
sudo docker run --rm --privileged --net=host --device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolox:latest \
python3 web_detection.py --platform rk3576 --model_path model/yolox_s.rknn \
--class_path model/coco_80_labels_list.txt --video_path video/test.mp4API REST
Utilisez l'API REST pour exécuter l'inférence. Copiez les commandes ci-dessous.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "yolox-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolox-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Détails du modèle
reComputer RKDémarrage rapide
1. Installer Docker
Exécutez les commandes suivantes sur la carte de développement pour installer Docker :
# Docker
curl -fsSL https://get.docker.com -o get-docker.sh
# Aliyun
sudo sh get-docker.sh --mirror Aliyun
# systemd
sudo systemctl enable docker
sudo systemctl start docker2. Exécuter le projet (une commande, aperçu double mode)
Cette page repose sur les services YOLOX de reComputer-RK-CV. Le runtime effectue l’inférence RKNN, le décodage des branches YOLOX, la fusion des scores d’objectivité/classe et la NMS par classe.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Tâche | Détection d’objets COCO à 80 classes |
| Entrée | RGB letterbox 640 x 640 |
| Variantes | yolox_s.rknn, yolox_m.rknn |
| Valeur par défaut | model/yolox_s.rknn |
| Étiquettes | model/coco_80_labels_list.txt |
Étape A : télécharger les images
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolox:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolox:latestÉtape B : exécuter en un clic
Pour RK3576:
sudo docker run --rm --privileged --net=host \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolox:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolox_s.rknn \
--class_path model/coco_80_labels_list.txt --video_path video/test.mp4Pour RK3588:
sudo docker run --rm --privileged --net=host \
--device /dev/dri/renderD128:/dev/dri/renderD128 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolox:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolox_s.rknn \
--class_path model/coco_80_labels_list.txt --video_path video/test.mp4Utilisez model/yolox_m.rknn pour la variante moyenne. Conservez l’argument du chemin des classes lors du changement de modèle. Ouvrez http://<BOARD_IP>:8000 ou /docs.
🔌 Documentation de l’API
1. Interface d’inférence du modèle (Predict)
Endpoint : POST /api/models/yolox/predict
Paramètres de requête (Multipart/Form-Data) :
Vous pouvez fournir file, video, timestamp, realtime, conf et iou ; les seuils par défaut sont 0.25 et 0.45.
Exemples d’utilisation :
curl -X POST "http://<BOARD_IP>:8000/api/models/yolox/predict" \
-F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"Format de réponse (JSON) :
{
"success": true,
"source": "uploaded image",
"predictions": [
{
"class": "bus",
"confidence": 0.91,
"box": {"x1": 100, "y1": 120, "x2": 520, "y2": 430}
}
],
"image": {"width": 640, "height": 480}
}2. Interface de configuration système (Config)
Le service accepte les requêtes d’image, d’image vidéo téléversée et de source courante. GET/POST /api/config contrôle obj_thresh et nms_thresh ; les valeurs conf et iou de la requête les remplacent. Les endpoints d’état, MJPEG, téléversement, analyse asynchrone, état, liste et téléchargement sont également disponibles.
L’entrée est letterboxée, convertie en RGB, décodée par branche puis traitée par fusion objectivité/classe et NMS par classe. Les modèles de remplacement doivent correspondre au décodeur YOLOX et à la configuration des classes fournis.
3. Arguments de ligne de commande
| Argument | Valeur par défaut | Description |
|---|---|---|
--platform | Obligatoire | rk3576 ou rk3588. |
--model_path | Obligatoire | Fichier RKNN YOLOX-S ou YOLOX-M. |
--class_path | Obligatoire dans la commande fournie | Fichier des noms de classes COCO. |
--camera_id | 1 | Indice de caméra ; -1 active uniquement les téléversements. |
--video_path | Aucun | MP4 local en boucle ; remplace la caméra. |
--host / --port | 0.0.0.0 / 8000 | Adresse et port du service. |
Interface de flux vidéo en temps réel (Video Feed)
Obtenez le dernier flux MJPEG annoté pour l’aperçu dans le navigateur :
- Endpoint:
GET /api/video_feed - Exemple d’utilisation:
<img src="http://<BOARD_IP>:8000/api/video_feed">
🛠️ Guide du développeur (recommandations de production)
Compiler localement
docker build -f docker/rk3576/yolox.dockerfile \
-t rk3576-yolox:local src/rk3576_yolox
docker build -f docker/rk3588/yolox.dockerfile \
-t rk3588-yolox:local src/rk3588_yoloxEntrées et sorties
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.