RV1106智能识别客户端
基于 Rockchip RKNN 的智能识别客户端:集视频采集、目标检测、TCP 通信与云台控制于一体,适配 RK 平台嵌入式设备

目录
项目概述 🧭
Intelligent_Recognition_Client 是一款专为 Rockchip 平台打造的边缘侧智能识别客户端,基于 RKNN Runtime 部署 YOLOv5 目标检测模型,实现实时视频分析与智能决策。项目采用模块化解耦架构,通过 Control 模块统一调度 Video(视频采集与推理)、TcpClient(网络通信)与 Servo(云台控制)模块,支持检测结果聚合与频率控制,完美适配 RV1106 等 Rockchip 开发板,可与上位机或服务端协同完成智能监控、目标跟踪等场景需求。
核心功能 🚀
-
🎯 实时目标检测
- 集成 YOLOv5 轻量化模型(RKNN 格式),支持 640×640 输入尺寸,可实时检测 COCO 数据集 80 类目标。
- 基于 Rockchip 硬件加速,在 RV1106 等平台实现低延迟推理。
-
📦 结果聚合与限频发送
Control模块聚合同一帧内的多目标检测结果,生成结构化数据(目标类别、坐标、置信度等)。- 支持自定义发送频率(默认 1 次/秒),避免网络拥塞,适配带宽有限的嵌入式场景。
-
🌐 TCP 客户端通信
- 独立线程维护 TCP 连接,支持断线自动重连,确保通信稳定性。
- 发送 JSON 格式检测摘要,便于上位机或服务端解析,支持自定义通信协议扩展。
-
🎛️ 云台联动控制(可选)
- 预留
Servo接口,可根据检测结果实现目标跟踪、视角调整等功能,适配安防监控等场景。
- 预留
-
🛡️ 稳健性与可维护性
- 支持
SIGTERM信号安全退出,避免资源泄漏。 - 模块职责清晰,通过接口隔离硬件依赖,便于跨平台移植与功能扩展。
- 支持
使用教程 📘
1) 安装依赖环境
参考官方文档搭建开发环境:https://wiki.luckfox.com/zh/Luckfox-Pico/Luckfox-Pico-SDK
sudo apt update && \
sudo apt-get install -y \
git ssh make gcc gcc-multilib g++-multilib module-assistant expect g++ gawk texinfo \
libssl-dev bison flex fakeroot cmake unzip gperf autoconf device-tree-compiler \
libncurses5-dev pkg-config bc python-is-python3 passwd openssl openssh-server \
openssh-client vim file cpio rsync curl
2) 获取官方 SDK
git clone https://gitee.com/LuckfoxTECH/luckfox-pico.git
3) 拉取项目代码
git clone https://github.com/RaidKaeil01/RV1106_Client.git
4) 配置项目参数
-
修改 CMake 配置:编辑
code/CMakeLists.txt,设置 SDK 路径为第 2 步获取的luckfox-pico目录:set(SDK_PATH "/home/your_username/luckfox-pico") # 替换为实际路径 -
修改 TCP 连接参数:编辑
code/src/main.cc,设置服务器 IP 地址(虚拟机 IP):TcpClient* g_tcp = new TcpClient("192.168.1.156", 8890); # 替换为实际 IP 和端口 -
修改部署脚本:编辑
run.sh,设置开发板 IP 地址:scp -r install/ root@192.168.1.130:/root # 替换为开发板 IP⚠️ 注意:确保虚拟机与开发板在同一局域网内。
5) 编译与运行
-
执行脚本编译并部署到开发板:
./run.sh -
在开发板终端启动程序(需提前打开上位机客户端):
cd /root/install ./Intelligent_Recognition_Client
关键设计说明
-
线程模型:
- 主线程:负责模块初始化、生命周期管理与信号处理。
- Video 线程:独立处理视频采集、模型推理与后处理,生成检测结果并上报。
- TCP 线程:维护网络连接,异步发送检测数据,支持断线重连机制。
-
模块通信机制:
Video模块通过setControl()绑定Control实例,触发检测结果上报。Control模块通过时间戳实现发送频率控制(默认 1000ms 间隔),可通过setSendInterval(ms)动态调整。TcpClient模块通过回调函数与Control模块解耦,支持数据发送状态通知。
-
硬件加速优化:
- 利用 Rockchip RGA(图像渲染加速器)进行预处理与后处理,减少 CPU 负载。
- RKNN Runtime 直接调用 NPU 硬件资源,提升模型推理效率。
关键模块职责
-
Video模块:
负责摄像头采集、图像预处理(Resize、归一化)、RKNN 模型推理、后处理(NMS 非极大值抑制),并将检测结果封装为DetectionResult结构上报给Control模块。 -
Control模块:
维护检测结果队列,按时间窗口聚合多帧数据,实现发送频率控制,并协调TcpClient与Servo模块的联动逻辑。 -
TcpClient模块:
封装 TCP 连接管理(连接建立、心跳检测、断线重连),将Control模块的检测摘要序列化为 JSON 格式并发送,支持自定义通信协议扩展。
支持的硬件平台
- Rockchip RV1106/RV1126
- Luckfox Pico 等基于 Rockchip 的开发板
功能扩展方向
- 模型升级:支持 YOLOv6/YOLOv7 等新型号模型转换与部署,提升检测精度或速度。
- 多摄像头支持:扩展
Video模块,支持多路视频流同步采集与推理。 - 边缘计算优化:集成模型量化工具,进一步压缩模型体积,降低内存占用。
- AI 功能扩展:添加目标跟踪、行为识别等高级功能,构建完整智能视觉方案。
通过该项目,开发者可快速在 Rockchip 平台实现端侧智能识别能力,适用于智慧安防、工业检测、智能家居等多种场景。
代码获取:https://github.com/RaidKaeil01/RV1106_Client.git
openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。
更多推荐



所有评论(0)