Dieses Projekt vereint Regalerkennung, Bestandsstatus, Sprachinteraktion und Verkaufsgesprächsanalyse in einer Browseroberfläche auf dem reComputer RK3588. Mit reCamera und ReSpeaker XVF3800 laufen RKNN-Bildinferenz, Spracherkennung, Sprechertrennung, lokale LLM-Verarbeitung und Sprachausgabe direkt auf dem Edge-Gerät.
Nach der Vorbereitung der Laufzeitressourcen bleiben Video, Audio, Bestandsdaten und Ergebnisse lokal; während der Demonstration ist keine Cloud-API erforderlich.
Quellcode: Seeed-Projects/Lab-Prooject-RK

Highlights
- Eine Vue-Oberfläche und ein FastAPI-Dienst für drei Demonstrationen.
- RKNN-Objekterkennung auf der RK3588-NPU.
- Erkanntes Video und Produktstatus von reCamera.
- Fernfeld-Audioaufnahme mit ReSpeaker XVF3800.
- Lokales Qwen3-ASR, Sprechertrennung, RKLLM und Piper TTS.
- Sichtbarer Hardware-, Dienst- und Pipeline-Status beim Demo-Wechsel.
- Deterministische Bestandsberechnung statt vom LLM geschätzter Mengen.
Drei Demonstrationen
1. Smart Shelf mit einer Kamera und Sprachassistent

Die reCamera liefert einen RTSP-Stream mit Erkennungen und den aktuellen Produktstatus. Mitarbeitende können beispielsweise fragen:
- Wie viele Flaschen stehen noch im Regal?
- Wie viele Produkttypen sind vorhanden?
- Welche Produkte fehlen?
Die strukturierte Antwort erscheint im Browser und wird über einen angeschlossenen Lautsprecher ausgegeben.
Das LLM bestimmt nur die Absicht. Produktnamen und Mengen werden aus einem aktuellen reCamera-Status berechnet. Fehlt dieser oder ist er veraltet, meldet das System den Bestand als nicht verfügbar.
2. Überwachung mit vier Streams
Vier unabhängige Aufnahme- und Inferenzprozesse laufen gleichzeitig auf dem RK3588. Das Dashboard zeigt:
- vier annotierte Videostreams;
- Aufnahme-, Inferenz- und Anzeige-FPS je Stream;
- den Status der NPU-Worker;
- eine gemeinsame Nachfüll-Ereignisleiste;
- Bestandsänderungen und Nachfüllwarnungen.
Das Repository enthält zwei FP16-RKNN-Modelle, das arm64-Wheel RKNN Lite 2.3.2, ein Beispielvideo und die Demo-Konfiguration.
Regionen und Ereignisregeln sind auf das mitgelieferte Video abgestimmt. Bei anderer Kamera- oder Regalposition müssen ROI und Geschäftslogik neu kalibriert werden.
3. Analyse von Verkaufsgesprächen

Das ReSpeaker XVF3800 nimmt das Gespräch auf. Die lokale Pipeline führt anschließend aus:
- Silero VAD erkennt Sprachsegmente.
- CAM++ extrahiert Sprechermerkmale und trennt Sprecher.
- Qwen3-ASR erstellt die Live-Transkription.
- RKLLM erzeugt Zusammenfassung, Kundenabsicht und empfohlene nächste Aktion.
Die Ergebnisse werden laufend an den Browser übertragen. Überlappende Sprache wird nicht getrennt und kann die Genauigkeit reduzieren.
Systemarchitektur
| Komponente | Standardverbindung | Zweck |
|---|---|---|
| Browser → reComputer | http://<RK3588-IP>:8080 | UI, REST API und WebSocket-Ereignisse |
| reCamera → reComputer | RTSP :8554, WebSocket :9002 | Erkanntes Video und Produktstatus |
| ReSpeaker → reComputer | USB Audio, ALSA-Karte mit Array | Fernfeld-Audioaufnahme |
| reComputer → Lautsprecher | ES8311 3,5-mm-Ausgang | Piper-Sprachausgabe |
| Lokales ASR / RKLLM | :8621 / :8001 | Erkennung, Absicht und Zusammenfassung |
Hardwareanforderungen
| Hardware | Anforderung |
|---|---|
| Edge-Computer | reComputer RK3588, mindestens 8 GB empfohlen |
| Kamera | reCamera über USB-Netzwerk oder Ethernet |
| Mikrofon | ReSpeaker XVF3800 USB-Mikrofonarray |
| Audio | Kopfhörer oder aktiver Lautsprecher am ES8311-Ausgang |
| Speicher | Mindestens 12 GB für das Offline-Sprachpaket |
| Anzeige | Lokaler Browser oder Gerät im selben LAN |
Für die reine Vier-Stream-Demo können reCamera, ReSpeaker und Sprachdienste entfallen.
Softwareanforderungen
- Debian 12 arm64
- Funktionsfähiger RKNPU-Treiber und RKNN Runtime
- Python 3.11 und
python3-venv - Node.js 18 oder neuer
curlundalsa-utils- Docker und Docker Compose für ASR und RKLLM
- Optional go2rtc; MJPEG dient als Fallback
Schnellstart
1. Code abrufen
git clone https://github.com/Seeed-Projects/Lab-Prooject-RK.git
cd Lab-Prooject-RK
cp .env.example .envPassen Sie .env an, insbesondere reCamera-Adresse, ALSA-Karte, Audioausgang und lokale Endpoints.
2. Anwendung vorbereiten
./scripts/bootstrap.sh
./scripts/verify.shbootstrap.sh erstellt die Backend- und RKNN-Umgebungen, installiert RKNN Lite, baut das Vue-Frontend und lädt geprüfte Piper-Ressourcen. Ohne Cache ist eine Internetverbindung erforderlich.
3. Optional: Sprachlaufzeit vorbereiten
Für die Mehrkanal-Demo kann dieser Schritt entfallen. Bestandsassistent und Gesprächsanalyse benötigen zusätzliche ASR- und RKLLM-Ressourcen.
Legen Sie das Offline-Bundle hier ab:
services/voice-pipeline/deploy/bundle/cd services/voice-pipeline
./deploy/restore.sh ./deploy/bundle
docker compose -f deploy/docker-compose.asr-realtime.yml up -d
docker compose -f deploy/docker-compose.llm-summary.yml up -d
./bootstrap.sh
cd ../..4. Democenter starten
./scripts/start.sh
./scripts/status.shÖffnen Sie http://<RK3588-IP>:8080 in einem Browser desselben Netzwerks. Zum Stoppen:
./scripts/stop.shValidierung und Status
./scripts/verify.shcurl -fsS http://127.0.0.1:8080/api/v1/health
curl -fsS http://127.0.0.1:8080/api/v1/hardware/status
curl -fsS http://127.0.0.1:8080/api/v1/showcase/status
curl -fsS http://127.0.0.1:8621/health
curl -fsS http://127.0.0.1:8001/healthAPI-Dokumentation: http://<RK3588-IP>:8080/docs
Bekannte Einschränkungen
- Die vollständige Sprachdemo benötigt ASR-, RKLLM- und Modellressourcen außerhalb von Git.
bootstrap.shbenötigt Netzwerkzugriff, wenn Abhängigkeiten nicht im Cache liegen.- ROI und einige Ereignisregeln der Vier-Stream-Demo sind auf das Beispielvideo abgestimmt.
- Bestandsantworten benötigen einen aktuellen reCamera-Produktstatus und schätzen keine Mengen nur aus dem Video.
- Überlappende Sprache wird nicht unterstützt.
- UI und WebSocket besitzen keine öffentliche Authentifizierung; nur in einem vertrauenswürdigen LAN oder hinter einem sicheren Reverse Proxy betreiben.
Ressourcen
Der Integrationscode steht unter Apache-2.0. Modelle, Medien, Hersteller-Wheels und Upstream-Dienste behalten ihre jeweiligen Lizenzen.