AdaScale: Towards Real-time Video Object Detection Using Adaptive Scaling

AdaScale: Towards Real-time Video Object Detection Using Adaptive Scaling

论文链接:https://arxiv.org/abs/1902.02910?context=cs.LG

motivation

输入图像的大小对检测的速度和质量有很大的影响,目标很大,图像也很大时会让网络过分的关注细节,如下图。
在这里插入图片描述
而如果目标很小图片很大的话,会很容易漏失目标,如下图。
假装这里有图.jpg

而在对视频进行目标检测时,有一个很关键的性质就是时空一致性,具体来说就是相邻帧之间包含的信息在一定时间内是一致的。作者提出了可以利用当前帧预测下一帧的输入大小,确保每一帧的识别都是最佳的输入大小,具体而言(说人话),就是当前帧检测有小目标那么下一帧应该也有小目标,那就让下一帧的输入图像大点。

方法

作者的思路也很简单,让网络在检测的同时,再添加一个分支去回归图像的最佳尺寸。

评价函数
  • 作者首先定义了一个尺寸范围 S S S,例如, S = { 600 , 480 , 360 , 240 } S=\{600,480,360,240\} S={600,480,360,240},训练时将这几个值作为输入分别训练网络,测试时将结果映射到这一区间内。

  • 其次需要给图像的尺寸找一个合适评价函数,作者选用了单张图片的检测损失值作为评价函数。

    L ( p , u , t , t ^ ) = L c l s ( p , u ) + λ [ u ≥ 1 ] L r e g ( t , t ^ ) L(\mathbf{p}, u, \mathbf{t}, \hat{\mathbf{t}})=L_{c l s}(\mathbf{p}, u)+\lambda[u \geq 1] L_{r e g}(\mathbf{t}, \hat{\mathbf{t}}) L(p,u,t,t^)=Lcls(p,u)+λ[u1]Lreg(t,t^)

    但是只有前景框才有边界框回归损失 L r e g L_{r e g} Lreg,背景框的回归损失为0。这就导致目标较少的图片的损失值会更低。这显然不符合我们的预想,我们不希望我们的评价函数受到图片中目标数量的影响,所以作者把评价函数改变为如下形式:

    L i m ^ = ∑ a ∈ A m , i L i , a m \hat{L_{i}^{m}}=\sum_{a \in A_{m, i}} L_{i, a}^{m} Lim^=aAm,iLi,am

    这里第 i {i} i张图片在尺度 m {m} m的评价值 L i m ^ \hat{L_{i}^{m}} Lim^,等于检测到的集合 A m , i A_{m, i} Am,i各个边界框 a {a} a损失值 L i , a m L_{i, a}^{m} Li,am的总和。
    A m , i A_{m, i} Am,i是图片 i {i} i m {m} m m ∈ S m \in S mS)尺寸下的 n m i n , i n_{min,i} nmin,i个边界框的集合。
    n m i n , i n_{min,i} nmin,i取自各个尺度下能检测到的前景框个数的最小值。
    如下图,这里在240这个尺度下,只能检测出2个前景框,所以 n m i n , i n_{min,i} nmin,i为2。
    在这里插入图片描述

  • 根据评价函数可以定义最优的尺度值: m o p t , i = argmin ⁡ m L i m ^ m_{o p t, i}=\operatorname{argmin}_{m} \hat{L_{i}^{m}} mopt,i=argminmLim^

回归函数

有了最优尺度值的定义,就可以让网络回归这个尺度值了。作者在检测网络上添加了一个回归分支,如下图。在这里插入图片描述
在这里作者没有直接回归最优尺度值 m o p t , i m_{o p t, i} mopt,i,而是构建了一个相对最优尺度用于回归:

t ( m i , m o p t , i ) = 2 × m o p t , i / m i − m min ⁡ / m max ⁡ m max ⁡ / m min ⁡ − m min ⁡ / m max ⁡ − 1 t\left(m_{i}, m_{o p t, i}\right)=2 \times \frac{m_{o p t, i} / m_{i}-m_{\min } / m_{\max }}{m_{\max } / m_{\min }-m_{\min } / m_{\max }}-1 t(mi,mopt,i)=2×mmax/mminmmin/mmaxmopt,i/mimmin/mmax1 (3)

定义的损失函数如下:

L scalereg = 1 ∣ D train ∣ ∑ i ∈ D train ( g ( X i ) − t ( m i , m opt , i ) ) 2 L_{\text {scalereg}}=\frac{1}{\left|D_{\text {train}}\right|} \sum_{i \in D_{\text {train}}}\left(g\left(X_{i}\right)-t\left(m_{i}, m_{\text {opt}, i}\right)\right)^{2} Lscalereg=Dtrain1iDtrain(g(Xi)t(mi,mopt,i))2

AdaScale testing

测试期间,流程如下。
在初始时,定义的目标尺度为600,之后每次目标尺度都由计算得出。首先将输入图片resize到目标尺度,之后将图片送入检测,得到相对最优尺度值 t {t} t,根据原始大小base_size以及尺度范围 S {S} S,执行(3)的逆过程得到最优尺度值 m o p t , i m_{o p t, i} mopt,i,再确保 m o p t , i m_{o p t, i} mopt,i是S范围内的整数。
在这里插入图片描述

实验结果

与另外两种输入尺度调整策略的对比。
SS/SS:训练时为单一尺度输入,测试也为单一尺度输入
MS/SS:多尺度训练,单一尺度测试
MS/AdaScale :多尺度训练,测试时自适应选择下一帧的图像大小
在这里插入图片描述
与现有的视频目标检测方法结合,并比较准确率和速度提升。可以发现AdaScale 带给视频目标检测方法准确率和速度的同时提升。
在这里插入图片描述

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值