使用RK3576 NPU构建一个交通计数器
交通摄像头可生成有用信息,但向云端持续发送视频需要大量带宽,并可能引发隐私问题。
我创建这个项目是为了探索一种更简单的方案:使用 RK3576 NPU 在本地检测并统计车辆。
它做什么
该应用程序使用YOLO11n进行检测:
•汽车
•公交车
•卡车
用户在图像或视频上绘制自定义区域,应用程序随后显示每个区域内当前有多少辆车。
这使得可以通过一台摄像头监控独立的车道、交叉路口、停车场入口或紧急通道区域。
工作原理
该工作流程包含四个步骤:
•浏览器正在加载图片或视频。
•框架被发送到一个 FastAPI 后端。
•YOLO11n 通过 RKNN Toolkit Lite2 在本地运行。
•OpenCV 会检查每个交通区域内的车辆。
•结果以边界框、车辆标签、置信度分数以及每个区域的计数形式显示。
绘制交通区域
浏览器内置了多边形编辑器,用户可以添加、命名、编辑和删除多个区域,而无需修改代码。
区域坐标已进行归一化,因此当预览大小变化时仍能保持正确位置。
一个区域也可以被标记为紧急区域。检测到的车辆将以红色高亮显示。
计数的工作原理
对于每辆检测到的车辆,应用程序会计算其边界框的中心点。如果该点位于交通多边形内,则将该车辆计入该区域的计数中。
当前版本用于测量占用情况——即某一时刻区域内可见的车辆数量。它尚未实现跨帧追踪车辆或计算累计交通流量的功能。
试试看
克隆仓库。
安装依赖项
运行演示
结果
最终项目将RK3576设备和普通摄像头转变为可配置的交通传感器。它在本地进行推理,无需固定的检测区域,并可通过浏览器适应不同的道路布局。
未来可能的改进包括车辆追踪、进出人数统计、速度估算、RTSP摄像头支持以及交通历史仪表盘。
本文编译自hackster.io





