CV / YOLOv7
YOLOv7
reComputer RK3588
Détection d’objets COCO avec YOLOv7 accélérée par RKNN sur reComputer RK3576 et RK3588, et via HailoRT sur reComputer R Series avec Hailo-10H.
Choisissez l'appareil que vous utilisez. Le guide de configuration et la documentation seront mis à jour en conséquence.
Pour commencer
Armbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.
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-yolov7:latest \
python3 web_detection.py --platform rk3588 --model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.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": "yolov7-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolov7-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Détails du modèle
reComputer RKArmbian 26.8.7 Gnome ou version ultérieure avec OTA overlayroot : Configurez le stockage de Docker avant de lancer des conteneurs pour éviter les erreurs de montage overlay.
Dé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 documente le service YOLOv7 RKNN de reComputer-RK-CV. Il prend en charge la détection COCO, l’aperçu navigateur, l’inférence REST, la caméra et le traitement MP4 hors ligne.
Informations sur le modèle
| Propriété | Valeur |
|---|---|
| Tâche | Détection d’objets COCO à 80 classes |
| Entrée | 640 x 640, letterboxé et converti de BGR en RGB |
| Variantes | yolov7-tiny.rknn, yolov7.rknn |
| Valeur par défaut | model/yolov7-tiny.rknn |
| Ancres | model/anchors_yolov7.txt |
Étape A : télécharger les images
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov7:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov7: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-yolov7:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.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-yolov7:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --video_path video/test.mp4Pour utiliser YOLOv7 complet, changez uniquement le chemin du modèle en model/yolov7.rknn. Conservez l’argument des ancres. Utilisez --camera_id -1 pour le mode téléversement uniquement.
🔌 Documentation de l’API
1. Interface d’inférence du modèle (Predict)
Endpoint : POST /api/models/yolov7/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/yolov7/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.92,
"box": {"x1": 100, "y1": 120, "x2": 520, "y2": 430}
}
],
"image": {"width": 640, "height": 480}
}2. Interface de configuration système (Config)
L’interface multipart accepte les requêtes d’image, d’image MP4 et de source en direct. GET/POST /api/config contrôle les seuils de confiance et de NMS par défaut. Les endpoints d’état, MJPEG, téléversement, analyse, progression, liste et téléchargement suivent la structure standard. Les fichiers utilisent workspace/ par défaut. Les modèles de remplacement nécessitent un fichier d’ancres, une taille d’entrée, une configuration de classes et une disposition de sortie compatibles.
3. Arguments de ligne de commande
| Argument | Valeur par défaut | Description |
|---|---|---|
--platform | Obligatoire | rk3576 ou rk3588. |
--model_path | Obligatoire | Fichier RKNN YOLOv7 Tiny ou complet. |
--anchors | Obligatoire | Fichier d’ancres correspondant au modèle converti. |
--camera_id | 1 | Indice de caméra ; utilisez -1 pour les téléversements uniquement. |
--video_path | Aucun | MP4 local en boucle ; remplace la caméra. |
--class_path | Labels COCO | Liste facultative de classes de remplacement. |
--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/yolov7.dockerfile \
-t rk3576-yolov7:local src/rk3576_yolov7
docker build -f docker/rk3588/yolov7.dockerfile \
-t rk3588-yolov7:local src/rk3588_yolov7Entrées et sorties
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.