CV / DeepLab v3
DeepLabV3 RKNN
DeepLabV3 semantic segmentation 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 -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-deeplabv3:latest \
python3 web_service.py --platform rk3576 --model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 --camera_id -1 --host 0.0.0.0 --port 8000REST API
Gebruik de REST API om inferentie uit te voeren. Kopieer de onderstaande commando's.
curl http://localhost:8080/v1/chat/completions -d '{
"model": "deeplab-v3-rknn",
"messages": [{"role": "user", "content": "Hello"}]
}'import requests
resp = requests.post(
"http://localhost:8080/v1/chat/completions",
json={"model": "deeplab-v3-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 pagina beschrijft de semantische-segmentatieservice DeepLabV3 uit reComputer-RK-CV. De service ondersteunt stilstaande beelden, camera’s, lokale video in een lus, analyse van geüploade MP4-bestanden en een MJPEG-voorbeeld met overlay.
Modelinformatie
| Eigenschap | Waarde |
|---|---|
| Model | /app/model/deeplabv3.rknn |
| Invoer | 513 x 513 RGB |
| Uitvoer | PASCAL VOC-logits met 21 klassen |
| Rendering | Argmax-masker met instelbare dekking van de kleuroverlay |
De service valideert zowel NCHW- als NHWC-uitvoerindelingen en herstelt het masker naar de bronresolutie.
Stap A: Images ophalen
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-deeplabv3:latest
sudo docker pull ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-deeplabv3:latestStap B: Met één klik uitvoeren
Voor RK3576:
sudo docker run --rm --privileged -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3576-deeplabv3:latest \
python3 web_service.py --platform rk3576 \
--model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 \
--camera_id -1 --host 0.0.0.0 --port 8000Voor RK3588:
sudo docker run --rm --privileged -p 8000:8000 \
-v /dev/dri/renderD129:/dev/dri/renderD129 \
-v /proc/device-tree/compatible:/proc/device-tree/compatible:ro \
ghcr.io/seeed-projects/recomputer-rk-cv/rk3588-deeplabv3:latest \
python3 web_service.py --platform rk3588 \
--model_path /app/model/deeplabv3.rknn \
--sample_path /app/model/test.jpg --overlay_alpha 0.5 \
--camera_id -1 --host 0.0.0.0 --port 8000Open http://<BOARD_IP>:8000 of /docs. Koppel voor een USB-camera het knooppunt /dev/videoN en stel --camera_id N in. Gebruik voor een gekoppelde lokale video --video /data/input.mp4; lokale video heeft voorrang op de camera.
🔌 API-documentatie
1. Segmentatie-interface (Predict)
Endpoint: POST /api/models/deeplabv3/predict
Aanvraagparameters (Multipart/Form-Data):
Upload file en pas de uitvoer aan met optionele modelspecifieke parameters.
Gebruiksvoorbeelden:
curl -X POST "http://<BOARD_IP>:8000/api/models/deeplabv3/predict" \
-F "file=@test.jpg" -F "overlay_alpha=0.65"Het antwoord vermeldt afbeeldingsgrootte, inferentietijd, dekking en alle aanwezige PASCAL VOC-klassen met hun aantal pixels. De nieuwste gerenderde overlay is beschikbaar via GET /api/video_feed.
Antwoordformaat (JSON):
{
"success": true,
"model": "deeplabv3",
"inference_time": 0.052,
"result": {
"classes": [{"id": 15, "class": "person", "pixels": 18234}],
"width": 1280,
"height": 720,
"overlay_alpha": 0.65
}
}2. Interface voor systeemconfiguratie (Config)
GET/POST /api/config beheert de globale overlaydekking. Er zijn ook endpoints voor status, MP4-upload, analysestatus, lijst en download. Modellen met een ander aantal klassen vereisen overeenkomstige wijzigingen in labels en uitvoerverwerking.
3. Opdrachtregelargumenten
| Argument | Standaard | Beschrijving |
|---|---|---|
--platform | Vereist | rk3576 of rk3588. |
--model_path | model/deeplabv3.rknn | DeepLabV3 RKNN-bestand. |
--sample_path | model/test.jpg | Afbeelding voor opwarming en eerste voorbeeld. |
--overlay_alpha | 0.5 | Begindekking van het masker, van 0 tot 1. |
--camera_id | -1 | Camera N, of -1 voor alleen uploads. |
--video, --video_path | Geen | Lokale video in een lus; overschrijft de camera. |
--host / --port | 0.0.0.0 / 8000 | Serviceadres en containerpoort. |
Wijzig bij gebruik van -p alleen de hostzijde als poort 8000 bezet is. De containerservice moet voor de statuscontrole op poort 8000 blijven.
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)
Verwerkingsdetails
De invoer wordt geschaald naar 513 x 513 en van BGR naar RGB omgezet. De runtime accepteert NCHW- of NHWC-logits, controleert 21 kanalen, herstelt de logits naar de bronresolutie, past argmax toe en legt de PASCAL VOC-kleurenkaart eroverheen. POST /api/video/analyze accepteert een geüploade filename; status- en resultaatbestanden zijn beschikbaar via /api/video/*.
Lokaal bouwen
docker build -f docker/rk3576/deeplabv3.dockerfile \
-t rk3576-deeplabv3:local src/rk3576_deeplabv3
docker build -f docker/rk3588/deeplabv3.dockerfile \
-t rk3588-deeplabv3:local src/rk3588_deeplabv3Invoer en uitvoer
Input: image, video frame, or camera frame. Output: PASCAL VOC semantic mask, class pixel counts, and overlay.