CV / YOLOv6
YOLOv6
YOLOv6 COCO object detection accelerated by RKNN on reComputer RK3576 and RK3588.
Wähle das Gerät, das du verwendest. Die Einrichtungsanleitung und Dokumentation werden entsprechend aktualisiert.
Erste Schritte
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-yolov6:latest \
python3 web_detection.py --platform rk3576 --model_path model/yolov6n.rknn --video_path video/test.mp4REST API
Verwende die REST API für die Inferenz. Kopiere die folgenden Befehle.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "yolov6-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "yolov6-rknn", "messages": [{"role": "user", "content": "Hello"}]},
)
print(resp.json())Modelldetails
Schnellstart
1. Docker installieren
Führen Sie auf dem Entwicklungsboard die folgenden Befehle aus, um Docker zu installieren:
# 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. Projekt ausführen (ein Befehl, Vorschau in zwei Modi)
Diese Bereitstellung basiert auf den YOLOv6-Modulen in reComputer-RK-CV. Sie führt COCO-Erkennung mit RKNN-Toolkit-Lite2 aus und bietet Browservorschau, REST-Inferenz und Offlinevideoverarbeitung.
Modellinformationen
| Eigenschaft | Wert |
|---|---|
| Aufgabe | COCO-Objekterkennung mit 80 Klassen |
| Eingabe | 640 x 640, letterboxed und von BGR nach RGB konvertiert |
| Varianten | yolov6n.rknn, yolov6s.rknn, yolov6m.rknn |
| Standard | model/yolov6n.rknn |
| Ausgabe | Klassen, Konfidenzwerte und Boxen im Quellbild |
Schritt A: Images abrufen
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-yolov6:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-yolov6:latestSchritt B: Mit einem Klick ausführen
Wählen Sie die Modellgröße durch Änderung von --model_path.
Für 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-yolov6:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolov6n.rknn --video_path video/test.mp4Für 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-yolov6:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolov6n.rknn --video_path video/test.mp4Verwenden Sie model/yolov6s.rknn oder model/yolov6m.rknn für die anderen Varianten. Ersetzen Sie --video_path video/test.mp4 durch --camera_id -1 für reinen Uploadbetrieb. Öffnen Sie http://<BOARD_IP>:8000 oder /docs.
🔌 API-Dokumentation
1. Modellinferenz-Schnittstelle (Predict)
Endpunkt: POST /api/models/yolov6/predict
Anfrageparameter (Multipart/Form-Data):
Verfügbar sind file, video, timestamp, realtime, conf und iou; die Standardschwellen sind 0.25 und 0.45.
Anwendungsbeispiele:
curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
-F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"curl -X POST "http://<BOARD_IP>:8000/api/models/yolov6/predict" \
-F "video=@test.mp4" -F "timestamp=5.5"Antwortformat (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. Schnittstelle zur Systemkonfiguration (Config)
GET /api/config liefert obj_thresh und nms_thresh. Aktualisieren Sie sie mit POST /api/config; Anfragefelder conf und iou überschreiben globale Werte.
Der Dienst bietet außerdem GET /api/health, GET /api/video_feed, POST /api/video/upload, POST /api/video/analyze sowie Video-Status-, Listen- und Download-Endpunkte. Dateien liegen unter workspace/, sofern RK_CV_WORKSPACE nicht gesetzt ist. Ersatzmodelle müssen Eingabegröße und YOLOv6-Tensorlayout von web_detection.py beibehalten.
3. Befehlszeilenargumente
| Argument | Standard | Beschreibung |
|---|---|---|
--platform | Erforderlich | rk3576 oder rk3588; muss zum Image passen. |
--model_path | Erforderlich | Eine der enthaltenen YOLOv6-RKNN-Dateien. |
--camera_id | 1 | Kameraindex; -1 aktiviert reinen Uploadbetrieb. |
--video_path | Kein Wert | Lokale MP4-Schleife; überschreibt die Kamera. |
--class_path | COCO-Labels | Optionale Ersatzklassenliste. |
--host / --port | 0.0.0.0 / 8000 | FastAPI-Listenadresse und Port. |
Echtzeit-Videostream (Video Feed)
Rufen Sie den neuesten annotierten MJPEG-Stream für die Browservorschau ab:
- Endpunkt:
GET /api/video_feed - Beispiel:
<img src="http://<BOARD_IP>:8000/api/video_feed">
🛠️ Entwicklerleitfaden (Empfehlungen für den Produktionseinsatz)
Lokal bauen
docker build -f docker/rk3576/yolov6.dockerfile \
-t rk3576-yolov6:local src/rk3576_yolov6
docker build -f docker/rk3588/yolov6.dockerfile \
-t rk3588-yolov6:local src/rk3588_yolov6Eingaben und Ausgaben
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.