论文&代码
- 论文链接:[arxiv]
- 代码&应用:
- 开源代码:[github code]
- 开源应用:[modelscope]
背景介绍
传统视频目标检测(Video Object Detection, VOD)任务以一段视频作为输入,利用视频的时序信息进行目标检测,并最终输出每一帧视频帧的检测结果。其相比图像目标检测(Image Object Detection, IOD)任务,优势在于能够利用视频的时序信息,对运动模糊、图像失焦、遮挡、物体姿态变化等困难的场景具有更强的鲁棒性。然而,传统的VOD和IOD都是离线(offline)的检测,即仅考虑算法的检测精度,未考虑算法的延时。
为了更加贴近现实场景,ECCV 2020 论文《Towards Streaming Perception》[1](获得Best Paper Honorable Mention)首次提出了流感知(Streaming Perception)任务,该任务作为VOD的一个细分方向,提出了流平均精度(Streaming Average Precision, sAP)指标,衡量算法的在线(online)检测能力,即同时衡量算法的精度和延时。具体地,如下图所示,离线目标检测算法对 T T T时刻的视频帧进行检测,得到轿车检测结果,即橙色的矩形框,而因为算法处理存在一定的延时,此时现实环境已经处于 T + L a t e n c y T+Latency T+Latency时刻,轿车的实际位置也已经发生变化,即红色的矩形框。由此可见,实际应用中,算法进行目标检测时,应同时考虑环境变化,这正是在线检测(如Streaming Perception任务)考虑的事情,这一类的算法在 T T T时刻的检测结果,橙色的矩形框,与 T + L a t e n c y T+Latency T+Latency时刻的实际环境,红色的矩形框,能有较好的吻合。
技术难点
早期的方法如Streamer[1]和Adaptive Streamer[2]尝试通过提出一些策略,来进行精度和延时之间的平衡,但是这些方法精度较低。CVPR 2022 oral工作StreamYOLO[3]通过引入强大的实时目标检测器YOLOX[4],将Streaming Perception任务简化为一个预测任务。
为了更好地理解为什么引入实时目标检测器能够简化Streaming Perception任务,需要先介绍一下此任务的评价指标。流平均精度(Streaming Average Precision, sAP)可以分为两个部分理解,其中"Average Precision"和通用检测一致,而"Streaming"表示,某个时刻的预测结果,会与算法处理完成后下一时刻的真实值(Ground True, GT)匹配,并计算对应的"Average Precision"。具体地,如下图所示,对于非实时的算法, I t I_{t} It时刻的预测结果在下一时刻 I t + 1 I_{t+1} It+1到来之后才能得到,如下图左半部分绿色箭头所示,因此与该预测结果配对的是 I t + 2 I_{t+2} It+2时刻的GT,而 I t + 1 I_{t+1} It+1时刻的GT,会默认使用前一次预测结果进行配对,这样一来,算法一方面“错过”了 I t + 1 I_{t+1} It+1时刻的GT,另一方面需要预测更“远”的 I t + 2 I_{t+2} It+2时刻的真实环境,因此对算法的挑战更大。相对地,对于实时的算法, I t I_{t} It时刻的预测结果在下一时刻 I t + 1 I_{t+1} It+1到来之前可以得到,如下图右半部分绿色箭头所示,因此与该预测结果配对的是 I t + 1 I_{t+1} It+1时刻的GT,该情况下,算法一方面不会“错过”任何时刻的GT,另一方面仅需要预测下一时刻的真实环境。因此说,引入实时算法能够简化Streaming Perception任务为一个对下一帧真实环境的预测任务。
虽然StreamYOLO简化了Streaming Perception任务,但是它仅使用当前帧和前一帧两帧的短时序信息作为输入,难以表征一些复杂的运动状态。如下图(a)所示,在实际自动驾驶环境中,经常会出现以下的,除了匀速直线运动以外的运动状态以及情况:1)非匀速运动(比如加速超车);2)非直线运动(比如转弯);3)遮挡以及小目标。
因此,本文的研究专注于探索如何在Streaming Perception任务中引入长时序信息,以及如何进行时序信息融合,并最终提出了LongShortNet,如下图(b)所示,本文提出的LongShortNet在一些困难场景下,能够达到比StreamYOLO更高的精度。
方法介绍
LongShortNet的整体结构如下图所示,该方法具有如下的特点:
- 提出一种双支路的网络结构,在Streaming Perception领域首次引入了长时序信息。包括短支路(Short Path)和长支路(Long Path),其中短支路用于提取当前视频帧的空间信息,而长支路以历史帧作为输入,用于提取时序信息。其中, N N N和 δ t \delta t δt是两个可调节的参数, N N N用于控制历史帧的数量, δ t \delta t δt用于控制历史帧的间隔步长。
- 探索不同的时序融合方式。本文提出了长短融合模块(Long Short Fusion Module, LSFM),探索了1)早融合(early fusion)和晚融合(late fusion);2)时序上不同的重要性分配。具体有如上图(b)所示的四种模块。同时,本文与已有的一些注意力模块也进行了对比。
- 提出多帧buffer机制。本文对StreamYOLO方法的buffer机制进行了改进,使其适用于多帧的情况,确保算法保持实时性,简化Streaming Perception任务为时序预测任务。
实验结果
本文基于Streaming Perception任务的公开数据集,Argoverse-HD[1],进行算法实验,并与StreamYOLO等工作保持相同的训练/验证集划分。本文同样使用YOLOX作为基础网络结构,并同样使用small/middle/large三种尺寸的网络,分别对应LongShortNet-S/LongShortNet-M/LongShortNet-L。
SOTA对比
首先,与目前SOTA方法的对比如下表所示,LongShortNet在常规分辨率((600, 960))下,取得了37.1%的sAP,而在高分辨率((1200, 1920))下,取得了42.7%的sAP,均超过了目前的SOTA精度。
消融实验
本文对 N N N和 δ t \delta t δt的取值进行了消融实验,结果如下表所示,在 N = 3 N=3 N=3和 δ t = 1 \delta t=1 δt=1时,S/M/L模型均能取得比较好的结果。其中,(1, 1)等价于StreamYOLO,由此可见,引入长时序信息有助于算法对复杂运动的预测,从而提升最终的精度。
本文同时对四种不同的LSFM模块进行了对比实验,如下表所示,LSFM-Lf-Dil取得了最高的精度,说明晚融合和对当前帧保持更大的通道权重,更有利于时空信息的融合。
当然,当前帧的通道权重也并非越大越好,如下表所示,通道膨胀权重(dilation channel ratio)取0.5时取得最优结果,更大的权重精度反而下降了。
另外,本文还将LSFM与现有的注意力方法进行了对比,在LSFM的基础上,加入不同的注意力模块。如下表所示,原始的LSFM取得了最优的结果,且在速度上更有优势。本文并不否认注意力机制的作用,只是其作用可能需要在具备更大规模的数据集和更长时序输入的条件下,才能得到更好的体现。
最后,本文对LongShortNet的效率进行了分析,如下表所示,LongShortNet相比StreamYOLO,增加的推理耗时和运算量几乎可以忽略。
模型传送门
流感知模型:
- 流感知模型LongShortNet:https://modelscope.cn/models/damo/cv_cspnet_video-object-detection_longshortnet/summary
- 流感知模型StreamYOLO:https://modelscope.cn/models/damo/cv_cspnet_video-object-detection_streamyolo/summary
检测相关模型:
- 实时目标检测模型YOLOX:https://modelscope.cn/models/damo/cv_cspnet_image-object-detection_yolox/summary
- 高精度目标检测模型DINO:https://modelscope.cn/models/damo/cv_swinl_image-object-detection_dino/summary
- 实时目标检测模型DAMO-YOLO:https://modelscope.cn/models/damo/cv_tinynas_object-detection_damoyolo/summary
- 垂直行业目标检测模型:https://modelscope.cn/models?page=1&tasks=vision-detection-tracking%3Adomain-specific-object-detection&type=cv
关键点相关模型:
- 2D人体关键点检测模型-HRNet: https://modelscope.cn/models/damo/cv_hrnetv2w32_body-2d-keypoints_image/summary
- 2D人脸关键点检测模型-MobileNet:https://modelscope.cn/models/damo/cv_mobilenet_face-2d-keypoints_alignment/summary
- 2D手部关键点检测模型-HRNet:https://modelscope.cn/models/damo/cv_hrnetw18_hand-pose-keypoints_coco-wholebody/summary
- 3D人体关键点检测模型-HDFormer:https://modelscope.cn/models/damo/cv_hdformer_body-3d-keypoints_video/summary
- 3D人体关键点检测模型-TPNet:https://modelscope.cn/models/damo/cv_canonical_body-3d-keypoints_video/summary
智能通行模型:
- https://modelscope.cn/models/damo/cv_ddsar_face-detection_iclr23-damofd/summary
- https://modelscope.cn/models/damo/cv_resnet50_face-detection_retinaface/summary
- https://modelscope.cn/models/damo/cv_resnet101_face-detection_cvpr22papermogface/summary
- https://modelscope.cn/models/damo/cv_manual_face-detection_tinymog/summary
- https://modelscope.cn/models/damo/cv_manual_face-detection_ulfd/summary
- https://modelscope.cn/models/damo/cv_manual_face-detection_mtcnn/summary
- https://modelscope.cn/models/damo/cv_resnet_face-recognition_facemask/summary
- https://modelscope.cn/models/damo/cv_ir50_face-recognition_arcface/summary
- https://modelscope.cn/models/damo/cv_manual_face-liveness_flir/summary
- https://modelscope.cn/models/damo/cv_manual_face-liveness_flrgb/summary
- https://modelscope.cn/models/damo/cv_manual_facial-landmark-confidence_flcm/summary
- https://modelscope.cn/models/damo/cv_vgg19_facial-expression-recognition_fer/summary
- https://modelscope.cn/models/damo/cv_resnet34_face-attribute-recognition_fairface/summary
更多模型详见 ModelScope 主页。
检测套件开发工具
ModelScope社区视觉检测开发套件AdaDet。
参考文献
- [1] M. Li and D. Ramanan, “Towards streaming perception,” in ECCV, 2020, vol. 12347, pp. 473–488.
- [2] A. Ghosh, A. Nambi, A. Singh, and et al., “Adaptive streaming perception using deep reinforcement learning,” CoRR, vol. abs/2106.05665, 2021.
- [3] J. Yang, S. Liu, Z. Li, and et al., “Real-time object detection for streaming perception,” in CVPR, 2022, pp. 5385–5395.
- [4] Z. Ge, S. Liu, F. Wang, and et al., “YOLOX: exceeding YOLO series in 2021,” CoRR, vol. abs/2107.08430, 2021.