基于深度学习的公交客流统计解决方案简介
客流统计系统是用机器代替人工,对公交车每个站点和每条线路的上、下车辆的人数进行实时的自动统计,同时将数据发送到后端的系统管理平台进行存储,分析数据并形成数据报表。由此,监控中心能即时了解到每辆车的载客状况、各站点的拥挤程度等数据。利用这些数据可以优化公交线路、分析与预测公交客流的实时动态、决策和调控公交的调度,在使城市交通更加智能化的同时也为城市建设规划更加人性化、民众出行更便利做出贡献。
1 平台总体框架
如图 1 所示,客流统计平台由四个部分组成,包括升级管理平台、客流统计数据平台、终端升级管理程序及客流统计程序。下面简要介绍数据汇总平台及升级管理平台,最后重点介绍客流统计终端相关技术及实现方案。
2 客流统计数据平台
客流统计数据平台接收终端客流统计程序的计数结果,并对数据进行汇总及分析,并通过 WEB 的方式展示给客户。为了满足客流计数算法的快速学习迭代,平台支持调取终端视频,将调取的视频进行作为数据样本,对模型进行迭代优化,保证模型的适应能力,提高计数精度。
3 升级管理平台
为保证终端程序的正常运行,并进行无值守升级,平台配套了升级管理平台,升级管理平台由两部分组成,包括升级管理后台及终端升级管理程序,升级管理后台负责设置并查看终端的运行情况,终端升级管理程序负责终端程序版本管理,配置管理,客流统计程序监控,重要事件报送等相关功能,满足了终端程序升级及监控的需求,保障了终端程序的正常运行,满足程序及模型快速变更的需求。
4 客流统计终端
终端模块以 IMX6Q 的 CPU 为计算核心,采用 VPU,IPU 作为辅助,结合多级流水,多线程并行等优化方法,同时对算法进行了深度优化,对目标检测模型进行深度裁剪,最终在以 IMX6Q 为核心的设备上实现了基于深度学习的客流计数算法。
4.1 硬件平台环境
终端设备使用 IMX6Q 为核心,搭配基础组件组成核心构件。此外,还包括多路视频采集、GPIO 控制输入、外部存储、4G 无线网络、Wifi 无线网络及 CAN 总线输出等扩展设备。
4.2 技术要点及方案简介
4.2.1 硬件加速要点
- IPU 图像处理加速;
- VPU 视频编码解码加速;
- NEON 加速,提高并行度;
- 循环展开,充分利用寄存器,合理安排数据存取;
- 数据 Cache 优化,提高 Cache 命中,降低 Cache 冲突;
4.2.2 工程方法加速要点
4.2.2.1 多线程并行加速
客流计数程序不使用任何的临时线程,避免了线程的反复创建及销毁带来的性能损失。设计中主要包括如下三类线程:
- 计算线程池,完成核心计算,自主设计线程池,借鉴了 GPU 线程组的思想进行数据缓存划分,有效地降低了 Cache 冲突;
- 工作线程,工作线程属于数据驱动类线程,无数据休眠,有数据则工作,极大地降低了 CPU 的耗费;
- 任务线程,任务线程靠定时器进行驱动,用于定时处理等任务。使用操作系统提供的定时机制,此处采用 Linux timerfd + epoll 事件驱动模型进行实现,具有极高的性能。
4.2.2.2 多级流水高度并行
整体流程划分为视频采集、图像预处理、目标检测、目标跟踪及结果输出(包括统计结果及视频输出)等阶段,各阶段使用典型的生产者消费者模式进行并行处理,巧妙地设计数据交互方式,满足数据交互需求。 使用多级流水,可以减低 IO 操作的等待时间,将同步操作转换为异步操作,充分利用 CPU 资源,使用多级流水操作几乎可以消除 IO 带来的延迟影响,实现数据采集及结果保存零消耗,极大地提高了单位时间内数据处理的吞吐量。
4.2.3 算法实现优化要点
参考并集中测试并分析了开源的神经网络库加速方案,如 OpenBlas、NNPACK 及 NCNN, 使用 NEON、多线程并行、数据 CACHE 优化等方法重构如下操作:
- Depthwise Convolution 优化;
- Pooling Operation 优化;
- Batch Normalization 优化;
- 1x1 Convolution 优化;
- 网络输入优化;
- 网络输出优化;
- 目标追踪优化。
通过优化后的算法相比普通的实现方式性能提高 15 到 20 倍,除使用上述的并行优化外,还有大量的计算过程优化,如合并操作,将 batch norm 和 conv 进行合并,也使用了参数优化,计算展开,空间换时间,中间参数缓存等优化方法。
4.2.4 模型优化加速要点
4.2.4.1 模型重构
- 按需设计网络输入及输出宽度;
- 按需设计网络深度;
- 使用 Depthwise Convolution 卷积优化卷积;
- 剔除池化层,使用 s2 卷积进行替换。
4.2.4.2 模型训练及调整
- 根据训练结果调整目标损失参数及正则化参数,优化模型训练;
- 对训练后的模型进行量化或压缩。
- 最终模型整体复杂度降低了 30 倍,目标检测 AP 达到 0.87;
4.3 技术特点及重要指标
- 检测性能,单路视频每秒 16 帧,双路视频每路 8 帧;
- 计数精度,单路视频实测平均精度可达 95%;双路视频可达 90%;
- 支持多路视频并行检测,目前从性能上考虑,支持两路;
- 支持无值守升级及运行监控;
- 支持视频调取,可以快速迭代优化模型;
- 支持多种结果输出方式,包括平台汇总报送,CAN 总线输出;
- 成本低廉,使用传统摄像头,如果需要支持夜晚,需摄像头支持夜晚成像功能才可,目前模型已经覆盖夜晚场景;
- 适应度高,满足不同天气,不同气候,不同季节,不同地域的场景需求;