易百纳玄武S3部署multistream_detect多路交通分析示例
硬件平台:易百纳玄武S3

简介
本文主要介绍multistream_detect示例(多路交通分析)的交叉编译、板端部署与运行验证方法。该示例面向RK1820/RK1828,程序通过GStreamer接入摄像头或本地视频,使用 RKNN3完成目标检测、目标跟踪、车牌识别和视觉语言模型(VLM)分析,并通过 Web 页面展示实时画面、检测结果、事件和运行状态。
示例功能:
- 支持USB摄像头和本地MP4文件,多路输入分别使用独立队列;
- 使用YOLOv5n检测车辆和行人,默认每路检测上限为20FPS;
- 默认使用CPU IoU跟踪,也提供OSNet ReID特征Pipeline;
- 对车辆执行车牌检测和PP-OCRv4车牌字符识别;
- 使用Qwen3-VL描述人员状态、骑车、行李和危险物品等信息;
- 使用Qwen3-VL描述车辆类型和颜色;
- 每次采集连续四帧场景画面,通过Qwen3-VL判断是否发生交通事故;
- C++后端提供JPEG、对象、运行统计和SSE事件接口,默认监听
18081; - FastAPI Web门户默认监听
18080,支持单画面和最多四画面展示; - 支持叠加检测框后录像,以及RTMP、UDP、SRT等媒体输出;默认配置中这些输出关闭。
整体流程分为三步:
- 在x86编译服务器上交叉编译生成ZIP部署包;
- 将程序包、模型、测试视频推送到板端并完成环境准备;
- 启动服务并访问Web页面验证。
环境准备
| 项目 | 说明 |
|---|---|
| 编译环境 | x86_64 Linux 编译服务器 |
| SDK | RK182X SDK(网盘资料:【易百纳】玄武S3边缘计算AI终端_V2.0中的rk182x_ai_release.tar.gz) |
| 交叉编译工具链 | aarch64-none-linux-gnu-(--sysroot:rockchip_linux6.12_release/~/aarch64-buildroot-linux-gnu/sysroot,--cross-compile: xuanwu_s3/toolchain 仓库 |
| 目标板 | 玄武S3边缘计算AI终端(Debian 13,RK3588+RK182X) |
| 模型与视频 | models、test_videos两个目录(从<【易百纳】RK182X_模型文件>网盘资料获取) |
编译构建
编译步骤
进入SDK中示例源码目录 RK182X SDK/applications/multistream_detect,在SDK根目录执行:
SYS=/<rockchip_linux6.12_release所在文件路径>/rockchip_linux6.12_release/buildroot/output/rockchip_rk3588_ebaina/rockchip_rk3588/host/aarch64-buildroot-linux-gnu/sysroot
export CXXFLAGS="-I$SYS/usr/lib/glib-2.0/include"
./build.sh clean
./build.sh \
--cross-compile /<toolchain所在文件路径>/toolchain/aarch64-none-linux-gnu/bin/aarch64-none-linux-gnu- \
--sysroot $SYS说明:
--cross-compile指定编译器前缀,本例用toolchain;--sysroot指向SDK buildroot输出的目标板sysroot,本例用RK3588的SDK的sysrootrockchip_linux6.12_release(RK3588的SDK可以从资料网盘<【易百纳】RK182X_模型文件>下载)。
编译输出
编译成功时输出如下:

ZIP package路径:/RK182X SDK/applications/multistream_detect/install/multistream_detect.zip
编译生成文件
build.release/multistream_detect
install/
├── multistream_detect/
│ ├── app/traffic/configs/
│ ├── app/traffic/web/
│ ├── bin/multistream_detect
│ └── scripts/
│ ├── start.sh
│ └── stop.sh
└── multistream_detect.zip构建过程:从SDK同步RKNN3 API头文件和tokenizer到third_party;使用指定的交叉编译器和sysroot配置CMake;编译ARM64multistream_detect;复制程序、配置、Web文件和启停脚本到安装目录;生成ZIP部署包。
部署到开发板
准备运行资源
在板端创建示例目录,并将test_videos(测试视频)和models(模型文件)两个目录拷贝到板端/userdata/multistream_detect目录:
adb push <测试视频和模型文件路径> /userdata/multistream_detect说明:
模型文件与测试视频可以从资料网盘下载。
推送并解压程序包
在Windows终端将编译产物推送到板端:
adb push ~\RK182X SDK\applications\multistream_detect\install\multistream_detect.zip /userdata进入板端解压程序包:
cd userdata
unzip -o multistream_detect.zip //解压程序包核对目录结构
板端最终目录结构应如下:
sudo apt update
sudo apt install -y tree
tree -L 3 /userdata/multistream_detect
安装 Web 依赖
apt-get update
apt-get install -y python3-venv
python3 -m venv /userdata/multistream_detect/venv
/userdata/multistream_detect/venv/bin/python -m pip install -r \
/userdata/multistream_detect/app/traffic/web/requirements.txt
/userdata/multistream_detect/venv/bin/python -c \
'import fastapi, uvicorn; print("FastAPI/Uvicorn ready")'板端需要Python 3、FastAPI和Uvicorn。Debian/Ubuntu的系统Python通常启用了PEP668,不能直接使用系统级pip install。
检查配置和资源
APP_ROOT=/userdata/multistream_detect
"$APP_ROOT/bin/multistream_detect" \
--check-config "$APP_ROOT/app/traffic/configs/app.yaml"
"$APP_ROOT/bin/multistream_detect" \
--check-resources "$APP_ROOT/app/traffic/configs/app.yaml"--check-config 输出 multistream_detect config ok 及各输入队列的绑定关系即为通过。

启动与效果验证
启动服务
/userdata/multistream_detect/scripts/start.sh启动成功输出如下:

Started multistream_detect (PID 47756, log /userdata/multistream_detect/logs/multistream_detect.log).
Started traffic web (PID 47774, log /userdata/multistream_detect/logs/web.log).效果验证
服务启动后,在浏览器中访问:
http://<开发板IP>:18080/本例为:http://192.168.1.168:18080/(请替换为你板端的实际IP地址)。
打开后即可看到智慧交通监管平台(Traffic Intelligence Supervision Console)页面:
- 左侧为实时监控画面,支持单画面与四画面切换,画面上叠加检测框与VLM分析结果;
- 右侧为Pipeline运行程(数据流图)与实时动态事件流;
- 下方为实时目标态势(车辆、行人等目标的统计与列表)。
单画面模式:

四画面模式(多路视频同时分析):

停止服务
/userdata/multistream_detect/scripts/stop.shstop.sh先停止Web,再停止推理程序。默认等待10秒,进程仍未退出时发送 SIGKILL。
常用配置(可选)
切换输入
默认只启用file0(对应/userdata/multistream_detect/test_videos/video0.mp4)。修改app/traffic/configs/app.yaml中对应输入的enable字段可开启更多视频或摄像头:
inputs:
- id: cam0
module: gst_camera
device: /dev/video0
width: 1920
height: 1080
fps: 25
output_queue: detection_queue
enable: true每个输入必须使用唯一id。运行时会为每路输入展开独立检测队列(如 detection_queue@file0),不同视频流不共用检测缓存和限速状态。
启用录像或推流
app.yaml的outputs中提供record、rtmp、udp等输出示例。启用前应确认板端具有相应GStreamer编码器和协议插件RTMP配置只负责推流,还需单独部署MediaMTX等RTMP服务端。
常见问题
- 启动后立即退出:查看
/userdata/multistream_detect/logs/multistream_detect.log和logs/web.log,优先检查模型文件、测试视频、RKNN3 Runtime、GStreamer插件以及18080/18081端口是否被占用。 - Web 页面能打开但没有画面:检查启用的输入文件或
/dev/video0是否存在,并确认C++后端健康接口正常(curl -fsS http://127.0.0.1:18081/api/health)。FastAPI门户依赖18081后端,后端未运行时页面可能仍能加载,但无法取得视频和事件。 交叉编译报 stdlib.h: No such file or directory:编译器和sysroot不配套,或未clean导致CMake沿用旧编译器缓存。执行./build.sh clean后使用配套的编译器与sysroot重新编译。- 权限不足无法执行:确认使用
start.sh/stop.sh启停,脚本会自动处理执行权限;若手动运行bin/multistream_detect,需先chmod +x。
- 分享
- 举报
暂无数据-
浏览量:474次2026-08-26 10:08:48
-
浏览量:125次2026-10-09 17:05:20
-
浏览量:136次2026-10-10 11:27:49
-
浏览量:53次2026-10-16 17:05:39
-
浏览量:700次2026-07-14 11:37:26
-
浏览量:339次2026-09-23 09:43:49
-
浏览量:190次2026-10-08 16:44:18
-
浏览量:308次2026-09-21 10:28:50
-
2026-09-29 10:33:22
-
浏览量:755次2026-07-22 13:14:46
-
浏览量:858次2026-07-23 16:21:53
-
浏览量:245次2026-09-28 13:32:48
-
浏览量:86次2026-10-15 13:53:12
-
浏览量:750次2026-07-09 16:37:13
-
浏览量:735次2026-07-15 09:43:54
-
2026-10-13 09:56:34
-
浏览量:602次2026-07-10 10:20:16
-
浏览量:700次2026-07-10 15:45:49
-
2026-09-18 17:51:07
-
广告/SPAM
-
恶意灌水
-
违规内容
-
文不对题
-
重复发帖
易百纳技术社区
微信支付举报类型
- 内容涉黄/赌/毒
- 内容侵权/抄袭
- 政治相关
- 涉嫌广告
- 侮辱谩骂
- 其他
详细说明

微信扫码分享
QQ好友