基于 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 模块
    维护检测结果队列,按时间窗口聚合多帧数据,实现发送频率控制,并协调 TcpClientServo 模块的联动逻辑。

  • TcpClient 模块
    封装 TCP 连接管理(连接建立、心跳检测、断线重连),将 Control 模块的检测摘要序列化为 JSON 格式并发送,支持自定义通信协议扩展。

支持的硬件平台

  • Rockchip RV1106/RV1126
  • Luckfox Pico 等基于 Rockchip 的开发板

功能扩展方向

  1. 模型升级:支持 YOLOv6/YOLOv7 等新型号模型转换与部署,提升检测精度或速度。
  2. 多摄像头支持:扩展 Video 模块,支持多路视频流同步采集与推理。
  3. 边缘计算优化:集成模型量化工具,进一步压缩模型体积,降低内存占用。
  4. AI 功能扩展:添加目标跟踪、行为识别等高级功能,构建完整智能视觉方案。

通过该项目,开发者可快速在 Rockchip 平台实现端侧智能识别能力,适用于智慧安防、工业检测、智能家居等多种场景。

代码获取:https://github.com/RaidKaeil01/RV1106_Client.git

Logo

openvela 操作系统专为 AIoT 领域量身定制,以轻量化、标准兼容、安全性和高度可扩展性为核心特点。openvela 以其卓越的技术优势,已成为众多物联网设备和 AI 硬件的技术首选,涵盖了智能手表、运动手环、智能音箱、耳机、智能家居设备以及机器人等多个领域。

更多推荐