CV / YOLOv6
YOLOv6
YOLOv6 COCO object detection accelerated by RKNN on reComputer RK3576 and RK3588.
Kies het apparaat dat je gebruikt. De installatiehandleiding en documentatie worden dienovereenkomstig bijgewerkt.
Aan de slag
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
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
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())Modeldetails
Snel aan de slag
1. Docker installeren
Voer de volgende opdrachten op het ontwikkelbord uit om Docker te installeren:
# 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. Het project uitvoeren (één opdracht, voorbeeld in twee modi)
Deze implementatie is gebaseerd op de YOLOv6-modules in reComputer-RK-CV. Ze voert COCO-detectie uit met RKNN-Toolkit-Lite2 en biedt browservoorbeeld, REST-inferentie en offline videoverwerking.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Taak | COCO-objectdetectie met 80 klassen |
| Invoer | 640 x 640, letterboxed en van BGR naar RGB omgezet |
| Varianten | yolov6n.rknn, yolov6s.rknn, yolov6m.rknn |
| Standaard | model/yolov6n.rknn |
| Uitvoer | Klassen, betrouwbaarheidsscores en vakken in de bronafbeelding |
Stap A: Images ophalen
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:latestStap B: Met één klik uitvoeren
Selecteer de modelgrootte door --model_path te wijzigen.
Voor 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.mp4Voor 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.mp4Gebruik model/yolov6s.rknn of model/yolov6m.rknn voor de andere varianten. Vervang --video_path video/test.mp4 door --camera_id -1 voor alleen uploads. Open http://<BOARD_IP>:8000 of /docs.
🔌 API-documentatie
1. Interface voor modelinferentie (Predict)
Endpoint: POST /api/models/yolov6/predict
Aanvraagparameters (Multipart/Form-Data):
Beschikbaar zijn file, video, timestamp, realtime, conf en iou; de standaarddrempels zijn 0.25 en 0.45.
Gebruiksvoorbeelden:
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"Antwoordformaat (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 voor systeemconfiguratie (Config)
GET /api/config geeft obj_thresh en nms_thresh terug. Werk ze bij met POST /api/config; verzoekvelden conf en iou overschrijven globale waarden.
De service biedt ook GET /api/health, GET /api/video_feed, POST /api/video/upload, POST /api/video/analyze en endpoints voor videostatus, lijst en download. Bestanden staan onder workspace/ tenzij RK_CV_WORKSPACE is ingesteld. Vervangende modellen moeten de invoergrootte en YOLOv6-tensorindeling behouden die web_detection.py verwacht.
3. Opdrachtregelargumenten
| Argument | Standaard | Beschrijving |
|---|---|---|
--platform | Vereist | rk3576 of rk3588; moet met de image overeenkomen. |
--model_path | Vereist | Een van de meegeleverde YOLOv6-RKNN-bestanden. |
--camera_id | 1 | Camera-index; -1 schakelt alleen uploads in. |
--video_path | Geen | Lokale MP4 in een lus; overschrijft de camera. |
--class_path | COCO-labels | Optionele vervangende klassenlijst. |
--host / --port | 0.0.0.0 / 8000 | FastAPI-luisteradres en -poort. |
Realtime videostream (Video Feed)
Haal de nieuwste geannoteerde MJPEG-stream op voor de browserweergave:
- Endpoint:
GET /api/video_feed - Voorbeeldgebruik:
<img src="http://<BOARD_IP>:8000/api/video_feed">
🛠️ Ontwikkelaarshandleiding (aanbevelingen voor productie)
Lokaal bouwen
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_yolov6Invoer en uitvoer
Input: image, video frame, or camera frame. Output: COCO classes, confidence scores, and boxes.