ECCV 2022 | SmoothNet:不用重新训练才配叫“即插即用”

论文地址:
https://arxiv.org/pdf/2112.13715v2.pdf

0. 前言

姿态估计模型在实际工程部署中,大家经常会遇见的一个问题是:模型在单张图片上表现得好好的,但到了视频或摄像头上预测结果就会开始出现抖动,这显然不是我们希望看到的。过去我们常用的处理方法一般是对预测结果进行滤波,比如我之前介绍过的指数滑动平均滤波和卡尔曼滤波:
https://zhuanlan.zhihu.com/p/433571477

https://zhuanlan.zhihu.com/p/442177476

之前我看到过这样一种说法,卡尔曼滤波是优秀算法工程师的护城河,足以说明其难度和重要性。但实际上,这些滤波器都需要仔细调校滤波强度,而过强的不可避免地会造成输出结果的滞后,在一些对实时性要求高的场景下不够适用。

1. 简介

对于视频姿态估计任务中的预测抖动,近年来的解决方案大致可以分为两派:learning-based模型和低通滤波器。learning-based方法一般是利用一个时空模型同时优化每帧的预测精度和时间维度上的预测稳定性,比较常见的有TCN和RNN,不过性能一直不能得到很好的保证。低通滤波器方案,如指数滑动平均滤波和卡尔曼滤波,尽管理论和工程实现上都非常成熟了,但由于姿态估计模型的抖动是不均匀的,在一些场景下抖动会非常严重,而其他场景抖动又不太强,所以滤波器的参数很难调节,常常面临艰难的trade-off,而且一旦滤波强度太高还会导致输出结果存在延迟,无法保证实时性。

2. 问题分析

这种抖动由于偏离了ground truth,因此也是一种误差,于是我们可以按照性质把它们分为两部分:

  • 相邻帧之间的抖动误差J
  • ground truth跟平滑后的姿态之间的偏离误差S
  • 用我的话来总结,可以理解为预测得“稳”和预测得“准”两个方面的问题。我们的终极目标实际上是希望这两种误差都降到最小。而根据抖动的程度,我们又可以分为:

  • 轻微抖动:由不可避免的预测小误差和不连续的数据标注导致
  • 剧烈抖动:由低质量图片、罕见姿态或严重遮挡导致
  • 通过误差曲线可以看到,其实在大部分的场景中,当前的模型已经可以取得相对稳定且不错的姿态估计结果了,但在有些场景,误差出现了连续的较大的波动,这通常是姿态比较复杂,训练数据比较少导致的。瞬间抖动往往很容易被低通滤波器消除,但长期抖动由于本身准确性低,实际上是误差J和误差S共同作用的结果。

    3. 方法

    Basic SmoothNet

    Motion-aware SmoothNet

    最终的模型参数量只有0.33M,在CPU上推理速度达到了1.3K FPS,在A100 GPU上为46.8K FPS,这种亚毫秒级的推理速度是完全不逊色于传统低通滤波器的。

    Loss Function

    根据上面的分析,损失函数的设计已经呼之欲出了,同时监督关键点位置误差和加速度误差就行:

    4. 实验

    对比低通滤波器

    由于低通滤波器存在很大的调参空间,本表格上半部分展示了低通滤波器上MPJPEs最低的情况(即,准确度优先),下半部分展示了Accels加速度误差持平的情况(即,稳定性优先),可以看到SmoothNet不论是稳定性还是准确性都是最优的,而且神经 络模型可以很容易地迁移到GPU上运行,获得巨大的推理加速。

    对比时空模型

    跟现有的时空模型对比,SmoothNet在稳定性和准确性上都进行了超越,而且关键是它很轻量。

    与现有模型联合使用

    作为一个即插即用的 络,SmoothNet可以跟任意的2D和3D姿态估计 络进行组合:

    可以看到均可把加速度误差修正到一个非常低的水准,平均提升水平在90%,这意味着非常的稳,对关键点预测的准确性也能产生一定程度的修正,这属于是额外的收获了。更多实验:

    人体 格重建任务上表现也同样优秀:

    对最坏情况的改善

    泛化能力

    跨骨干 络:

    对抗高斯噪声:

    Baisc和Motion-aware模型对比

    对速度和加速度这两个运动相关的物理量进行建模是非常棒的设计,最终取得的提升也很明显:

    滑动窗口尺寸

    5. 结论

    声明:本站部分文章内容及图片转载于互联 、内容不代表本站观点,如有内容涉及侵权,请您立即联系本站处理,非常感谢!

    (0)
    上一篇 2022年7月19日
    下一篇 2022年7月19日

    相关推荐