返回

文章详情

展示HN:在RK3588S上使用NPU以42 FPS进行双重YOLOv8n无人机检测

Hacker News2026年6月14日 14:37

实时YOLOv8n无人机检测在传感器的46 FPS上限下,使用约140 MB的RAM。用于Rockchip RK3588S SoC的高通量、低占用计算机视觉管道:它捕获实时1080p MIPI帧,并在所有3个NPU核心上并行运行YOLOv8n(将吞吐量从约31提升至46 FPS——现在相机而不是管道才是限制因素),并将注释结果流式传输到HDMI或RTSP。捕获、色彩转换/调整大小和推断完全在专用功能硅(ISP,RGA,NPU)上运行,因此CPU保持空闲,内存在每个流大约保持平坦的140 MB——足够小以在甚至是最便宜的2 GB RK3588S板上运行,而不仅仅是在高端开发套件上。针对任何RK3588S板;在Khadas Edge2上构建和测试。然后更进一步:当跟踪的无人机离开场景时,一个在设备上的LLM(Qwen2.5-0.5B,在同一个NPU上)会写一个自然语言评估,说明刚刚发生了什么。整个流程是通过Unix域套接字连接的一系列小的独立进程——检测流向下游的多目标跟踪,时间特征提取,存在有限状态机,以及按需的LLM摘要。亮点:饱和传感器:3线程NPU推断将吞吐量从约31 FPS提升至46 FPS的相机上限——管道不再是瓶颈。完全硬件加速:捕获(ISP),色彩转换/调整大小(RGA)和推断(NPU)从不触及CPU,保持每个流约140 MB的RSS。可以在任何RK3588S板上运行:由于占用如此之小(一个流~140 MB,两个流~290 MB),它完全适合市场上最便宜的RK3588S板——即使是售价仅约90欧元的2 GB型号——不仅限于高端开发套件。支持同时使用两台相机:独立的每设备套接字让两个流可以并行控制。可组合的管道:检测→ByteTrack→时间特征→存在有限状态机→按需LLM摘要,每个都是一个单独的进程。LLM的NPU接力:黑屏/恢复控制平面释放整个NPU,使LLM以全速运行,然后再交还给相机。目标硬件:任何基于RK3588S的板,aarch64 Linux,配备OS08A10 MIPI相机。在Khadas Edge2上开发和测试。从x86-64/WSL进行交叉编译或在板上本地构建。有关完整的软件架构(内部管道和多进程拓扑的Mermaid图)请参见docs/architecture.md;有关启动命令请参见docs/usage.md。相关库:RKNN_TRAIN_YOLO — 用于训练、转换和导出YOLO模型到Rockchip NPU .rknn格式的整个管道。RKLLM_LLAMA_QWEN - 在RK3588S上运行优化的LLM模型的整个管道,可以在NPU(RKLLM)或CPU(llama)上运行。性能:一个3线程推断池在每个NPU核心上运行一个RKNN上下文(rknn_dup_context + rknn_set_core_mask),实现捕获、推断和显示在所有三个核心上流水线化。在1080p下使用YOLOv8n 640×640将吞吐量从约31.2 FPS(幼稚的单线程循环)提升到46 FPS OS08A10相机的上限——管道不再是瓶颈,传感器才是。每个模型的FPS、延迟以及CPU/NPU/RAM数字详见docs/benchmarks.md。完全硬件加速→微小的RAM占用:每个帧的重型操作都在RK3588S的专用功能块(相机ISP,RGA,NPU)上运行,从不在CPU上运行——因此CPU端没有大型中间帧缓冲区或临时张量。预分配缓冲区的固定池(N_BUF,见src/main.cc中的BufPool)被回收,而不是逐帧分配,因此内存保持平坦和有界:单个1080p流约137–152 MB RSS,两个流约276–304 MB(并且这双重计算了共享的librknnrt.so / librga.so页面)。由于NPU,ISP和RGA在整个RK3588S范围内都是相同的,因此相同的二进制文件在最便宜的2 GB板(约90欧元)上以全速运行——不需要8/16 GB开发套件。有关每帧卸载表和管道图的详细信息,请参见docs/architecture.md。构建与部署:本地(在板上):cd yolov8n_cap_multithread bash build.sh 交叉编译(WSL / x86-64 Linux):# 一次性设置 sudo apt-get install gcc-aarch64-linux-gnu g++-aarch64-linux-gnu bash setup_sdk.sh # 获取librga v1.10.5_[8] + librknnrt v2.3.2 cd yolov8n_cap_multithread bash build.sh # 使用toolchain-aarch64.cmake(aarch64-linux-gnu-g++) scp -r install/yolov8n_cap_multithread/ khadas@ < board-ip > : ~/programs/ 运行:./yolov8n_cap_multithread <rknn模型> <设备编号> <rtsp端口 | hdmi> 有关启动命令,请参见docs/usage.md,有关IPC控制/数据平面,下游跟踪/时间/LLM阶段以及RTSP流设置,请参见docs/usage_advanced.md。库结构 yolov8n_cap_multithread/ ├── CMakeLists.txt # 构建主管道+所有辅助进程 ├── build.sh # CMake的便利封装 ├── toolchain-aarch64.cmake # 交叉编译工具链(WSL / x86 → aarch64) ├── data/ │ ├── coco_1_labels_list.txt │ └── model/ # .rknn模型文件 │ ├── include/ # YOLO管道头文件

赞助内容

NordVPN Next-gen Antivirus

本站免费、广告极少。如果觉得有帮助,可以请我们喝杯咖啡 —— 任何金额都对持续运营有实际帮助。

请我喝杯咖啡