![4d2f4211dc0db23a5eee4a28d017447a.gif](https://i-blog.csdnimg.cn/blog_migrate/1e76c9facebccc7efd6e33cdff0152d9.gif)
作者 | 赛文
编辑 | 陈彩娴
AI科技评论今天解读的论文的是不久前获得ECCV 2020 最佳论文提名奖的《Towards Streaming Perception》。
在这篇论文中,来自CMU和UIUC的研究者针对实时在线感知问题,分析了现有算法对延迟优化的忽略,提出了一种流感知的概念,并将算法准确率和延迟结合在一起提出了一种新的评估标准,作者认为这才符合实时在线感知的实际应用场景。
![4ae7217ee86b85f4722fe00fd4439f1a.png](https://i-blog.csdnimg.cn/blog_migrate/a00bc2f14a826319ebf798b5738bd71b.jpeg)
论文链接:https://arxiv.org/abs/2005.10420
代码链接:https://github.com/mtli/sAP
1 动机
自动驾驶以及虚拟现实等应用都需要低延迟的算法来支撑,为了保证安全和提供给用户足够的视觉沉浸感,算法的延迟标准应该和人类对场景改变的反应时间保持一致,通常是200毫秒。近来的计算机视觉算法也开始考虑延迟(Latency)对算法性能的影响,但也仅仅是在离线环境下考虑如何提高算法的准确率(Accuracy),并在二者之间寻找一个平衡点。
以这种评估方法优化得到的算法还无法应用在实时在线的感知场景中,因为当算法完成对某一帧图像的处理时,比如200ms后,周围的环境就已经发生了变化。如下面的视频所示,算法在得到第一帧中车辆的分割结果后,车辆就已经运动到另一个位置了,那此时所得到的分割结果的意义就很小了。
![86ab92f0df951b0baeea1794f60456ac.gif](https://i-blog.csdnimg.cn/blog_migrate/23a1a4ab40f244b08da0cfc3f929bd0f.gif)
本文提出了一种方法可以将延迟和准确率结合起来应用在实时的算法评估中,作者称之为“流准确率”,并在此度量的基础上,提出了流感知的元基准,可以将任何单帧任务转换为流感知任务。
2 元基准
元基准可以系统地将任何图像理解任务转换为流式图像理解任务。流感知评估的目标不再是单个函数,而是评估一段连续时间内的程序操作:首先将一段时间内的图像帧集合输入到模型中,模型会将每个输入帧的估计值附上时间戳存储到缓冲区,该缓冲区代表了当前世界的最新状态(例如,场景中目标物体的bounding box列表)。
![0090d4cbfec9d1bce41ee5a98d747615.png](https://i-blog.csdnimg.cn/blog_migrate/df075116ae6d5b27a7d84bccb87e8f4b.jpeg)
元基准需要遵循的一个约束是,流式感知需要随时了解世界的状态,当一个新的图像帧到达时,流式算法必须报告世界的状态,即便算法还没有完成对上一帧的处理,该约束迫使算法在计算时必须考虑丢弃一些冗余的图像帧。
1、预测值与Ground Truth
为了定义评估函数,我们首先要建立预测值和Ground Truth(GT)的数据对,其中GT直接使用离线评估中的GT标签,相应的预测值为
![51a7f45d63c58a22852f4675acd5fc01.png](https://i-blog.csdnimg.cn/blog_migrate/ce8cc34dc00cd70a15bb0da67684c969.jpeg)
,标准离线任务的评估是针对(, )进行计算,而进行流式评估时,评估的对象会变为(,
![2eed804ce2aa978372d5a7b60f1caf88.png](https://i-blog.csdnimg.cn/blog_migrate/e80150789b8db28121940ed19ab8e380.jpeg)
)。
![bf99436a88e634f34b10f97d6567c829.png](https://i-blog.csdnimg.cn/blog_migrate/203ba9c615d26e82eeb5e9be7579133e.jpeg)
如上图所示,给定时间,算法会对之前缓冲区中的预测值进行选择,这些预测值都与一个时间戳
![68717db8b1da3d5e44bb9ec4bd1e6a19.png](https://i-blog.csdnimg.cn/blog_migrate/6fc8ab3985fa67b26e1b6cbd704e6731.jpeg)
进行配对,这也正是流感知评估与离线评估不同的地方,离线评估中的预测值是与输入帧的顺序(索引)配对。由于流式感知在计算过程中会对冗余帧进行删除,作者选择了与t时刻最接近的预测值与GT进行计算,其中
![1a25ccb7007fc9411dfa42304188178c.png](https://i-blog.csdnimg.cn/blog_migrate/5b43bf271434eec82939a982eecc4f9f.jpeg)
为:
![fa181def66e173e42091d816b20600a5.png](https://i-blog.csdnimg.cn/blog_migrate/1131c915927cf01c310eca20bfc213ab.jpeg)
在获得了预测值和Ground Truth(GT)的数据对后,就可以定义评估函数:
![0e3397ac3ef588a334b50833b9754497.png](https://i-blog.csdnimg.cn/blog_migrate/bd5ce8333b56ec18a8f2faf785b2badc.jpeg)
前面提到元基准可以将任何单帧图像理解任务转换为流式理解任务,所以这里
![cfa64a1dfa62daee1e9c85cd112861e1.png](https://i-blog.csdnimg.cn/blog_migrate/e49c5744f5f9ccd9a3975d0019a3d1d0.jpeg)
可以是图像分类任务中的Acc,目标检测任务中的AP,或者是实例分割任务中的mIoU。
2、流式感知处理实时算法
本文提出的流感知处理实时算法与传统方法有着较大的差异,传统方法限制算法在下一帧到来之前就要完成对前一帧的处理,这就需要算法在传感器(摄像头)的采集帧率内运行,例如30FPS,作者认为这种方式有很大的局限性,不应该在任何情况下都认为30FPS等同于实时运行。反而可以将传感器的采集帧率看作是一个可调整的参数,同时结合算力和应用场景对下游任务进行优化。
流感知绕过了这个限制,在算法报告每一帧的状态时,无需完成上一帧的运算。在对算法进行评估时,也要实现“即时”评估,即在时刻就要查询的状态,乍一看这样并不合理,因为任何一个高效的算法都需要时间
![322284b0470e9d9f70ebe9c23b23b8b4.png](https://i-blog.csdnimg.cn/blog_migrate/63832a29209fe03901a90e69168910b5.jpeg)
来执行运算,它只能使用时间
![76d8f6328bf8bbd89483c5f0e054e003.png](https://i-blog.csdnimg.cn/blog_migrate/b702a3d7044a66720cef54fe7e757788.jpeg)
之前的数据。作者认为这才是实时算法应该考虑的实际评估环境。
对人类而言,想要即时的对世界做出反应,离不开大脑对世界状态的预测,例如棒球运动员在面对飞向他的球时,也不是在球到他手中的那一刻才进行反应,而是需要大脑提前对棒球的位置进行预测,所以流式感知在处理实时任务时也要考虑加入预测的算法。
3 实验
根据上面定义的流式感知元基准以及评估函数,作者重点选择了目标检测作为视频理解任务进行了实验,并在相同条件下与离线感知进行了对比。
1、数据集准备
作者选择了Argoverse1.1[1]数据集,该数据集是自动驾驶领域中常用的数据集,包含了许多传感器数据,作者重点选取了其中的RGB图像数据,对其做了额外的密集标注构成了Argoverse-HD(High-frame-rate-Detection ),新数据集中每个场景的视频的帧率为30FPS,同时标注密度与该帧率保持一致。
2、流式感知与离线感知对比
这里分别使用了几个SOTA的目标检测器进行了实验,其中Hybrid Task Cascade(HTC)[2]作为baseline模型,RetinaNet[3]作为一个快速检测器,并在Mask R-CNN[4]上进行了优化。
![318923523596d9309b5ab4d75c5e08bc.png](https://i-blog.csdnimg.cn/blog_migrate/7a86850c3ae55907c32d715ef0e7af4e.jpeg)
下面视频展示了HTC检测器离线感知的效果,对应到上面表格中的第1行,AP值是38.0,检测效果近乎完美,但是需要清楚的是,离线感知评估时,是将整个视频输入到检测器中,检测器对每一帧的预测都可以利用全局的信息,这种方式在实时的应用中是无法实现的。
![ebe158815390e956c6775a25864c7f1b.gif](https://i-blog.csdnimg.cn/blog_migrate/fbc6ae4760e5417298bdafb4774a7414.gif)
作者同样使用HTC检测器,以相同的帧率进行了流式感知测试,对应到上面表格中的第2行,效果如下:
很明显,不加任何额外处理的流式感知方式,检测性能会直线下降,AP值只有6.2。作者认为现有的网络仅仅针对吞吐量进行优化,而很少考虑延迟,社区可能一味的追求较高的离线分数,而忽略了真正影响算法落地的延迟因素。例如,图像预处理(缩放和归一化等操作)通常是在CPU上完成的,然后调度到GPU中进行推理,这中间就会带来很高的延迟。
为了提高流式感知的检测性能,作者提出了几种方法,第一种是通过绘制检测器的延迟-准确率帕累托曲线,然后权衡二者来寻找到一个最优点,如下图所示,这也是目前最为直接的方法。
![4fd0633c7728f3ddcd68bc880e996bf6.png](https://i-blog.csdnimg.cn/blog_migrate/f217954cb82db1e88245f14ad709f500.jpeg)
这种方法的检测效果如下,AP为12.0,对应到上面表格中的第6行
![d724fbdaa4a9169283244ebb339d2285.gif](https://i-blog.csdnimg.cn/blog_migrate/397ae51d3ae53ddd77490c9ccea37df1.gif)
可以看到效果已有不少的提升,但是仍然无法与离线感知相比,这也反映出目前急需对实时流式算法的研究。
作者还提出使用动态调度的方法,即帮助算法丢弃一些无用冗余的帧,来提高检测精度。在算法处理完前一帧之后,需要对下一帧进行一个简单的判断,判断该帧是否需要丢弃,判断方法如下:
![879b04464114d1c69987616702a3a7f8.png](https://i-blog.csdnimg.cn/blog_migrate/4960d142c1e864fc0c8d65c6fd83a4a2.jpeg)
上一帧结束时间为
![b84dd46f2f2a6fd3597cdad9d164fd88.png](https://i-blog.csdnimg.cn/blog_migrate/f965cc1de784e3ee49c28c180106572e.jpeg)
,算法处理单帧的运行时间为
![dc0aa8d05bc2451170102428e21c9319.png](https://i-blog.csdnimg.cn/blog_migrate/0ce6965e34fe3b9e9b366d667c55ae9d.jpeg)
,首先定义尾部函数
![85aac2e4fe0bff1c784b824e5c81fdb1.png](https://i-blog.csdnimg.cn/blog_migrate/6bead92f40b52bb81adc778ffa030d79.jpeg)
来计算给定时刻的算法处理结束时间,
![b3657c1f3f1e6d98172e7d21fc323264.png](https://i-blog.csdnimg.cn/blog_migrate/68a025d0ca00c738f4d4936f3f546576.jpeg)
表示下一帧的算法处理结束时间,
![13d12cdfdcc3797c5f5cd90aeee2a619.png](https://i-blog.csdnimg.cn/blog_migrate/58c00cba8c0f5fd1353ab5c84ad48fa6.jpeg)
表示上一帧的算法处理结束时间,然后使用艾弗森括号(Iverson bracket)判断两个尾部时间的关系进而决定当前帧是否需要丢弃。
在数学中,以Kenneth E. Iverson命名的“艾佛森括号”,是一种用方括号记号,如果方括号内的条件满足则为1,不满足则为0.
如下图所示,先使用艾弗森括号比较两个尾部时间
![c1318acc9006fa1574fdc62d4c7ef521.png](https://i-blog.csdnimg.cn/blog_migrate/cea1fe5966cddcc55bca5e244112d482.jpeg)
和
![27b102ec038bd4a334a2dd7c947034d4.png](https://i-blog.csdnimg.cn/blog_migrate/12179a528965ab61913aaa85c6bfe421.jpeg)
,可以判断出第2帧为冗余帧,算法直接空闲等待一会(Sit idle and wait!),直接处理第3帧。这种动态调度的方式可以将流感知的检测精度提升到13.0,与上面表格第7行对应。
![3c1c04a71eebfa643290ccadcec49d7c.png](https://i-blog.csdnimg.cn/blog_migrate/02c176bf47b413a5c60b88998e30dfbe.jpeg)
4 结论
本文引入了一个元基准,可以将现有的图像或者视频理解任务转换为流式感知任务,以便应用到自动驾驶等实时性的任务中,同时结合准确率和延迟提出了一个整体的流感知评估函数,并对现有的一些SOTA检测算法进行了实验,发现了实时在线感知与离线感知的差距,虽然作者也提出了一些改进的方法,但仍存在很大的提升空间,作者希望通过该工作来启发更多高效的流感知方法。
引用文献:
[1] Chang, Ming-Fang, et al. "Argoverse: 3d tracking and forecasting with rich maps." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2019.
[2] Chen, Kai, et al. "Hybrid task cascade for instance segmentation." Proceedings of the IEEE conference on computer vision and pattern recognition. 2019.
[3] Lin, Tsung-Yi, et al. "Focal loss for dense object detection." Proceedings of the IEEE international conference on computer vision. 2017.
[4] He, Kaiming, et al. "Mask r-cnn." Proceedings of the IEEE international conference on computer vision. 2017.
[赠书福利]
在AI科技评论今天推文第三条“《柏拉图与技术呆子》:探讨人类与技术的创造性伙伴关系”留言区留言,谈一谈你对本书的相关看法、期待等。
AI 科技评论将会在留言区选出5名读者,每人送出《柏拉图与技术呆子》一本。
活动规则:
1. 在留言区留言,留言点赞最高且留言质量较高的前 5 位读者将获得赠书。获得赠书的读者请联系 AI 科技评论客服(aitechreview)。
2. 留言内容和留言质量会有筛选,例如“选我上去”等内容将不会被筛选,亦不会中奖。
3. 本活动时间为2020年9月11日 - 2020年9月18日(23:00),活动推送内仅允许中奖一次。