该项目将货架视觉、库存状态、语音交互和销售对话分析集中到一个浏览器界面中,运行于 reComputer RK3588。系统可以连接 reCamera 与 ReSpeaker XVF3800,并在边缘侧完成 RKNN 视觉推理、语音识别、说话人区分、本地大语言模型处理和语音播报。
完成运行资源准备后,视频、音频、库存数据和生成结果都保留在本地,不需要在演示过程中调用云端 API。

项目亮点
- 使用一个 Vue 前端和一个 FastAPI 服务统一管理三个演示场景。
- 在 RK3588 NPU 上运行 RKNN 目标检测。
- 支持 reCamera 检测画面和实时商品状态输入。
- 支持 ReSpeaker XVF3800 远场音频采集。
- 使用本地 Qwen3-ASR、说话人区分、RKLLM 与 Piper TTS。
- 支持按需切换演示,并显示硬件、模型服务和推理流水线状态。
- 库存问答由确定性业务逻辑计算数量,避免由大模型直接猜测库存。
三个演示场景
1. 单摄像头智能货架与语音助手

reCamera 向 reComputer 提供带检测结果的 RTSP 视频流,以及实时商品状态。工作人员可以询问:
- 货架上还有多少瓶饮料?
- 当前有多少类商品?
- 哪些商品已经缺货?
系统会在页面显示结构化答案,并通过连接到 reComputer 的扬声器进行语音播报。
这里的大语言模型只负责识别用户意图;商品名称和数量由程序根据最新的 reCamera 商品状态计算。当商品状态缺失或过期时,系统会明确提示库存不可用,而不会生成未经验证的库存答案。
2. 四路智能货架监控
四个独立的视频采集与推理进程在 RK3588 上同时运行。浏览器可以显示:
- 四路带检测框的视频;
- 每路采集、推理和显示帧率;
- NPU worker 状态;
- 共享的补货事件时间线;
- 货架库存变化和补货提示。
仓库中包含两个 FP16 RKNN 模型、RKNN Lite 2.3.2 的 arm64 wheel、示例视频以及演示配置。
当前货架区域和事件规则针对仓库内示例视频配置。更换相机位置或货架后,需要重新标定 ROI 和业务规则。
3. 销售对话分析

ReSpeaker XVF3800 采集店员与顾客的对话,系统通过以下本地流水线处理:
- Silero VAD 检测语音片段;
- CAM++ 提取说话人特征并区分说话人;
- Qwen3-ASR 生成实时转录;
- 本地 RKLLM 生成会话摘要、顾客意图和建议的后续行动。
转录和分析结果会持续推送到浏览器。项目不支持重叠语音分离,因此多人同时讲话时准确率可能下降。
系统架构
| 组件 | 默认连接 | 用途 |
|---|---|---|
| 浏览器 → reComputer | http://<RK3588-IP>:8080 | 统一 UI、REST API 和 WebSocket 事件 |
| reCamera → reComputer | RTSP :8554、WebSocket :9002 | 检测视频与商品状态 |
| ReSpeaker → reComputer | USB Audio,ALSA 卡名包含 Array | 远场语音采集 |
| reComputer → 扬声器 | ES8311 3.5 mm 输出 | Piper 语音播报 |
| 本地 ASR / RKLLM | :8621 / :8001 | 语音识别与意图、摘要生成 |
硬件要求
完整体验建议准备:
| 硬件 | 要求 |
|---|---|
| 边缘计算设备 | reComputer RK3588,建议至少 8 GB 内存 |
| 摄像头 | 可通过 USB 网络或以太网访问的 reCamera |
| 麦克风 | ReSpeaker XVF3800 USB 麦克风阵列 |
| 音频输出 | 连接 ES8311 3.5 mm 接口的耳机或有源扬声器 |
| 存储空间 | 安装完整离线语音资源时建议至少预留 12 GB |
| 操作终端 | reComputer 本机浏览器或同一局域网内的其他设备 |
如果只体验四路货架检测,可以暂时不连接 reCamera、ReSpeaker 和语音服务。
软件要求
- Debian 12 arm64;
- 可用的 RKNPU 驱动和 RKNN Runtime;
- Python 3.11 与
python3-venv; - Node.js 18 或更新版本;
curl、alsa-utils;- 用于 ASR 和 RKLLM 服务的 Docker 与 Docker Compose;
- 可选的 go2rtc;未安装时自动使用 MJPEG 预览。
快速开始
1. 获取代码
git clone https://github.com/Seeed-Projects/Lab-Prooject-RK.git
cd Lab-Prooject-RK
cp .env.example .env根据实际连接修改 .env,重点检查 reCamera 地址、ALSA 声卡、音频输出设备和本地模型服务地址。
2. 准备应用环境
./scripts/bootstrap.sh
./scripts/verify.shbootstrap.sh 会创建后端和 RKNN 虚拟环境、安装 RKNN Lite、构建 Vue 前端,并下载经过校验的 Piper 资源。如果依赖没有预先缓存,这一步需要网络连接。
3. 可选:准备语音运行环境
如果只体验多路货架检测,可以跳过本节。库存语音助手和销售对话分析需要额外的 ASR 与 RKLLM 运行资源。
将单独提供的离线资源包放入:
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. 启动演示中心
./scripts/start.sh
./scripts/status.sh在同一局域网的浏览器中打开:
http://<RK3588-IP>:8080停止服务:
./scripts/stop.sh验证与状态检查
仓库提供统一验证脚本:
./scripts/verify.sh常用健康检查:
curl -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 文档位于:
http://<RK3588-IP>:8080/docs已知限制
- 完整语音体验依赖单独准备的 ASR、RKLLM 和模型资源,未全部包含在 Git 仓库中。
bootstrap.sh在依赖未缓存时需要网络连接。- 四路货架演示中的 ROI 和部分事件规则针对示例视频配置,不应直接视为生产级库存系统。
- 单摄像头库存问答依赖新鲜、已初始化的 reCamera 商品状态,只有视频流时不会推断库存数量。
- 说话人区分不支持重叠语音。
- WebSocket 和演示 UI 默认没有公网鉴权,只应运行在可信局域网,或部署在安全反向代理之后。
项目资源
项目集成代码采用 Apache-2.0 许可证。模型、示例媒体、vendor wheel 和上游服务遵循各自的许可条款。