刘晓雷 张维忠 张宏峰
(1.青岛大学计算机科学技术学院,山东 青岛 266071;2.青岛大学威海创新研究院,山东 威海 264200;3.青岛点之云智能科技有限公司,山东 青岛 266071)
精确的公交客流量数据对智能交通具有重要意义,可以更好地了解每个时间段、每路公交车及每个车站的人流量,帮助公交调度人员更及时准确地调度,帮助公交线网规划人员更科学合理的线网规划,使公共资源得到更充分的利用,提高用户乘车体验,为城市综合交通体系规划与评价提供基础数据。近年来,许多学者对该领域进行深入研究,但实际应用中存在一定局限性。A.J.KOTZ等人[1]使用光电开关获取公效客流信息,但无法判断两人并排上车的情况:丁高峰[2]利用压力传感器统计公交车客流量,但压力传感器容易损坏,且维护成本高。以上2种方法在拥挤情况下表现较差,现已基本被淘汰。张国林等人[3-5]通过乘客携带电子设备的无线通信技术、蓝牙或媒体存取控制(media access control address,MAC)地址等信息,定位乘客大致位置,获取上下车人数,但这些技术目前也存在着诸多挑战,如有些乘客不携带或携带多个电子设备,易受公交车外电子设备的干扰,许多设备提供虚假的动态MAC地址等。陈天宇等人[6-7]用深度图像去噪算法研究,但结构光相机和飞行时间相机成本较高,双目相机图像易受纹理影响,无法保证稳定性;Y.W.HSU 等人[8-9]使用彩色图像,利用传统的数字图像处理方法,但由于场景复杂,该方法通常不能获得较高的准确率。近年来,深度学习发展较快,目标检测模型准确率不断提高,同时也提出了许多部署在移动端的网络,为采用彩色图像获取较高准确率的客流数据提供可能。彩色图像成本低,且不需要昂贵的深度相机,甚至可以使用公交车已有的监控视频,光照不敏感,通过训练可以实现在强光或光线不足的情况下正确统计客流量等优点。N.WOJKE等人[10-11]提出Tracking-by-detection的多目标跟踪方法;WANG Z 等人[12-15]提出基于检测和跟踪联合的多目标跟踪方法;SUN P等人[16-17]提出基于注意力机制的多目标跟踪方法,这些方法可得到较高精确率但实时性较差,基本无法在移动端运行。基于此,本文使用青岛公交车内的视频监控,以实时多目标跟踪算法SORT 为基础,结合目标检测网络YOLOX,并根据检测公交客流的场景进行改进,实验表明,改进的YOLOX-SORT 满足实际应用的需求。
本文从4个方面对YOLOX-SORT 算法进行改进。第一种改进方法是调整SORT 算法的结构,使SORT 算法的预测结果可被目标检测网络使用;第二种改进方法是将YOLOX[18]中Focus结构更换为普通的卷积层,使算法更容易部署在移动端;第三种改进方法是将Sigmoid-BCELoss损失函数更换为Focal Loss损失函数[19],缓解正负样本不均匀,同时有利于学习复杂样本;第四种改进方法是针对公交客流的场景调整了数据增强策略。
在一次运动模型目标预测方面,基于SORT 算法具有较好的准确性,本文将SORT 算法的预测信息与当前图像送入目标检测网络,提高目标检测网络的精确率。改进的SORT 算法流程图如图1所示。
图1 改进的SORT算法流程图
在视频流中,卡尔曼滤波器利用第k-1帧图像的相关参数预测第k(k≠1)帧图像中目标的位置信息,将预测结果生成目标位置掩膜(蒙版),与第k帧图像按不同权重叠加,将叠加后的图像送入YOLOX 进行目标检测,Kuhn-Munkres算法将卡尔曼滤波器的预测结果与YOLOX 的检测结果进行匹配,并根据情况为YOLOX检测结果中的目标框分配ID,最后利用Kuhn-Munkres算法匹配后的结果更新卡尔曼滤波器的相关参数,为预测第k+1帧中目标位置做准备,同时利用目标轨迹判断乘客上下车行为。预测信息与当前帧融合过程如图2所示。图2a为卡尔曼滤波器根据k-1帧中目标的信息,预测目标在第k帧中的位置,以红色半透明区域(蒙版)体现目标的位置和大小;图2b为第k帧图像;图2c为图2a和图2b按3∶7权重叠加结果。
图2 预测信息与当前帧融合过程
图像在进入YOLOX主干网络之前会经过Focus结构,Focus结构如图3所示。将图片的行和列进行间隔像素采样,形成新图片,在不损失信息量的情况下,将通道扩充4倍,相当于下采样功能。由于Focus非常规运算的结构不利于网络在移动端部署,因此将Focus结构替换为卷积核大小为2,步距为2的普通卷积层。
图3 Focus结构
自建数据集中,59%的图像中目标数未超过3人,导致计算目标损失时出现正负样本之比小于1/4的情况,为缓解正负样本和难易样本不均衡问题,本文将原来的Sigmoid-BCELoss更换为Focal Loss,更换后准确率上升了0.9%。实验参数r为1.5,α为0.25时,效果最优。Focal Loss的计算公式为
式中,y′为预测值,取值为0~1;α和r为超参数,r与均衡正负样本相关,α与加强对难样本的学习相关。
使用卡尔曼滤波器预测的结果作为蒙版,如图2a所示,将蒙版叠加在原图作为训练的数据集如图2c所示,由于公交车内摄像机安装高度有限,不会出现目标过大或者过小的情况,因此修改Mosaic数据增强过程中原图的随机缩放比例。同时,为提高目标被遮挡情况下的准确率,在Mosaic数据增强过程中对原图进行随机裁剪再拼接,最终将训练图像尺寸调整为416×416。通过随机增强和降低亮度来模拟强光和光线不足的情况,解决在特定场景下数据集缺乏问题,提高网络的鲁棒性。数据增强后效果如图4所示,图4a为模拟现实中阳光较强的场景,如夏季正午,图4b为模拟现实中光照不足的场景,如傍晚或夜间。
图4 数据增强后效果
本文网络训练硬件环境为Intel Xeon Gold 5118、64 GB内存、Tesla V100-PCIE 显存16 GB;软件环境为在Ubuntu 18.04.3 LTS操作系统下,使用Py Torch深度学习框架;程序运行的硬件环境为双Cortex-A72大核、四Cortex-A53小核处理器、ARM Mali-T860 MP4四核图形处理器(graphics processing unit,GPU)、神经网络处理器(neural-network processing unit,NPU)算力3TPOS、LPDDR3 6 GB 内存(NPU 2 GB +CPU 4 GB)。
自建数据集来自青岛公交公司监控视频,公交车监控图像如图5所示。视频包括夏季和冬季、客流高峰期与低谷期、一天中的多个时段,与实际情况相符。视频选取3 237人次上下车,其中2 580人次作为训练集,657人次作为验证集,图中均为俯视视角,目的是减少遮挡带来的ID 交换问题,同时,选取人头作为识别目标,进一步缓解遮挡问题。
图5 公交车监控图像
使用余弦退火衰减策略动态调整学习率,设置最小学习率为0.05,将训练好的PTH 格式的模型转化为开放神经网络交换(open neural network exchange,ONNX)格式,再使用RKNN Toolkit,将ONNX 格式的模型转化成可以在NPU 上加速的RKNN 格式的模型,最后在移动端使用RKNN 库中的相关接口,加载和使用RKNN 格式的模型,最终实现利用NPU 加速推理的过程。
本文对YOLOX-SORT 进行了3 种改进(下文将经过3 次改进的 YOLOX-SORT 称为“改进的YOLOX-SORT”),最终在自建数据集上实验验证,改进的YOLOX-SORT 比原YOLOX-SORT 精确率提高了4.8%,召回率提高5.5%。不同方法的精确率与召回率实验结果如表1所示,其中方法1是在YOLOXSORT 的基础上,使用调整后的Mosaic数据增强;方法2在方法1的基础上将Sigmoid-BCELoss替换为Focal Loss;方法3在方法2的基础上改进SORT 算法。
表1 不同方法的精确率与召回率实验结果
在150轮的训练过程中,精确率与召回率变化过程如图6所示。由图6可以看出,精确率大约都在75轮时收敛,召回率大约都在70轮时收敛。
图6 精确率与召回率变化过程
原YOLOX-SORT 算法与改进的YOLOX-SORT 算法的多目标跟踪[20](multiple object tracking,MOT)指标对比如表2所示,当目标正确匹配轨迹次数大于轨迹长度的80%时,认为该轨迹被正确检测;当目标正确匹配轨迹次数小于轨迹长度的20%时,认为该轨迹被错误检测。其中MT(mostly tracked)指检测正确的轨迹数量占总轨迹数量的比值,值越高越好;ML(mostly lost)指检测错误的轨迹数量占总轨迹数量的比值,值越小越好;FP(false positive)指真实情况中不存在目标,跟踪算法误检出目标存在;FN(false negative)指真实情况中存在目标,跟踪算法漏检;IDsw(ID switch)指目标ID切换次数;多目标跟踪准确率(multiple object tracking accuracy,MOTA),即AMOT,可以较好地反映跟踪准确度。其计算公式为
表2 原YOLOX-SORT算法与改进的YOLOX-SORT算法的MOT指标对比
式中,GT(ground truth)为真实目标框数量;t表示视频流中的第t帧。
本文对比了不同方法在移动端部署YOLOX-SORT 算法的检测帧率,实验1将算法直接部署在移动端,利用CPU 进行推理,检测帧率为4帧/s;实验2将算法转化为ONNX格式,利用NPU 进行加速推理,检测帧率为19帧/s;实验3在实验2的基础上将Focus替换为普通卷积层,检测帧率为20 帧/s。实验表明,使用NPU 进行加速推理可使推理速度提升近5倍,将Focus替换为普通卷积层也能将推理速度提升1帧/s。
算法检测效果如图7所示。图中黄色半透明区域为识别区,当目标轨迹从下至上穿过识别区,则认为乘客发生下车行为,反之则认为是上车行为。划定识别区域时应选择乘客发生遮挡次数少的区域以减少遮挡引起的ID 交换,靠近车门以避免拥挤时乘客在识别区长期停留导致的错误计数。红色半透明区域为卡尔曼滤波器预测结果,蓝色框为改进的YOLOXSORT 算法检测结果。
图7 算法检测效果
改进的YOLOS-SORT 算法与其他客流检测算法比较如表3所示。精确率P和召回率R分别为
表3 改进的YOLOX-SORT算法与其他客流检测算法比较
其中,TP为被正确检测的正例,即真实情况中乘客发生上车或下车行为,检测值也对应为上车或下车行为;TN为被正确检测的反例,即真实情况中乘客没有发生上车或下车行为,检测值也对应为没有上车或下车行为;FP为被错误检测的正例,即真实情况中乘客发生上车或下车行为,但被检测为没有发生上车或下车行为;FN为被错误检测的反例,即真实情况中没有乘客发生上车或下车行为,但被检测为乘客发生上车或下车行为。
由表3可以看出,改进的YOLOX-SORT 的各项指标均优于原YOLOX-SORT,在精确率、召回率与YOLOX-DEEPSORT、Center Track相差不大的情况下检测帧率高于YOLOX-DEEPSORT 和Center Track约2倍。
本文从公交客流统计的实际问题出发,分析了目前各种获取公交客流数据技术的优缺点,提出一种利用彩色图像进行实时客流检测方法。该方法将卡尔曼滤波器预测信息作为目标检测的依据之一,在特定情况下实现了不增加运算量的情况下提高目标检测的精确度。实验结果表明,该方法精确度和速度较为均衡,均能满足实际需要,此外,该系统也可应用于商圈、景区等,也可推广至其他多目标在线跟踪、计数领域,如车流量检测。下一步的研究重点前门上车乘客与后门下车乘客重识别问题,以获取每位乘客何时何地上下车及乘车时间、距离等乘车信息,提供更加丰富的客流数据。