CV / YOLOv7
YOLOv7
YOLOv7 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-yolov7:latest \
python3 web_detection.py --platform rk3576 --model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --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": "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())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 Seite beschreibt den YOLOv7-RKNN-Dienst aus reComputer-RK-CV. Er unterstützt COCO-Erkennung, Browservorschau, REST-Inferenz, Kameraeingabe und Offline-MP4-Verarbeitung.
Modellinformationen
| Eigenschaft | Wert |
|---|---|
| Aufgabe | COCO-Objekterkennung mit 80 Klassen |
| Eingabe | 640 x 640, letterboxed und von BGR nach RGB konvertiert |
| Varianten | yolov7-tiny.rknn, yolov7.rknn |
| Standard | model/yolov7-tiny.rknn |
| Anker | model/anchors_yolov7.txt |
Schritt A: Images abrufen
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:latestSchritt B: Mit einem Klick ausführen
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-yolov7:latest \
python3 web_detection.py --platform rk3576 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --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-yolov7:latest \
python3 web_detection.py --platform rk3588 \
--model_path model/yolov7-tiny.rknn \
--anchors model/anchors_yolov7.txt --video_path video/test.mp4Ändern Sie für vollständiges YOLOv7 nur den Modellpfad auf model/yolov7.rknn. Behalten Sie das Ankerargument. Verwenden Sie --camera_id -1 für reinen Uploadbetrieb.
🔌 API-Dokumentation
1. Modellinferenz-Schnittstelle (Predict)
Endpunkt: POST /api/models/yolov7/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/yolov7/predict" \
-F "file=@bus.jpg" -F "conf=0.25" -F "iou=0.45"Antwortformat (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. Schnittstelle zur Systemkonfiguration (Config)
Die Multipart-Schnittstelle akzeptiert Bild-, MP4-Frame- und Livequellenanfragen. GET/POST /api/config steuert Standard-Konfidenz- und NMS-Schwellen. Zustands-, MJPEG-, Upload-, Analyse-, Fortschritts-, Listen- und Download-Endpunkte folgen der Standardstruktur. Dateien verwenden standardmäßig workspace/. Ersatzmodelle benötigen passende Ankerdatei, Eingabegröße, Klassenkonfiguration und Ausgabelayout.
3. Befehlszeilenargumente
| Argument | Standard | Beschreibung |
|---|---|---|
--platform | Erforderlich | rk3576 oder rk3588. |
--model_path | Erforderlich | Tiny- oder vollständige YOLOv7-RKNN-Datei. |
--anchors | Erforderlich | Ankerdatei passend zum konvertierten Modell. |
--camera_id | 1 | Kameraindex; -1 nur für Uploads. |
--video_path | Kein Wert | Lokale MP4-Schleife; überschreibt die Kamera. |
--class_path | COCO-Labels | Optionale Ersatzklassenliste. |
--host / --port | 0.0.0.0 / 8000 | Dienstadresse 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/yolov7.dockerfile \
-t rk3576-yolov7:local src/rk3576_yolov7
docker build -f docker/rk3588/yolov7.dockerfile \
-t rk3588-yolov7:local src/rk3588_yolov7Eingaben und Ausgaben
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.