AdaScale: Towards Real-time video object detection using adaptive scaling
motivation:
作者发现对图片进行降采样有时能有助于检测精度的提升。具体来说,图片降采样能带来两方面的提升:
1)减少false positive(fp)的数量,过多地关注图片上不必要的细节会引入false positive。
2)增加true positive(tp)的数量,通过对图片进行缩放将object缩放至目标检测器所能处理的合理的尺寸。
图1表明,在ImageNet VID数据集上用R-FCN检测时,将图片进行下采样之后能得到更好的检测效果。
受此启发,作者提出了AdaScale用于现存的目标检测器上,用于将图片自适应地缩放至一个最佳尺寸,来得到更高的速度和精度。
具体来说,作者使用当前帧来预测下一帧的最佳尺寸。
Adaptive Scaling:
图2是AdaScale方法的概况。其中包含fine-tuning目标检测器,使用所得到的检测器来生成最优尺寸的label,用上一步生成的label训练一个scale regressor,以及将AdaScale部署在视频目标检测框架中。
optical scale:
首先定义一个有限的尺寸集合,本文S={600,480,360,240},这里S指图片最短边的像素数量。并选用目标检测器训练时的损失函数(1)作为度量,以此来衡量最优的scale。
但直接使用损失函数会有这样一个问题,当预测得到的proposal和groundtruth的IoU较低时,会被分类为background,此时的损失函数中的回归损失为0,直接用该指标衡量不同图像尺寸会有问题,
该评价指标会比较喜欢前景框更少的图片尺寸,因为当前景框少时损失函数的值也会更小。
因此作者设计了一个新的评价指标,这个评价指标仅关注不同图片尺寸中的相同number的前景框。下面具体地来介绍这个评价指标:
设置\(L_{i,a}^m,\quad m\in S\)为利用公式(1)计算的图片i在尺度m上预测的bbox a的损失,设\(\hat{L_i^m},\quad m\in S\)为在图片i在尺度m下计算出的新的评价指标。
为了得到\(\hat{L_i^m}\), 首先计算预测的前景bbox的数量,\(n_{m,i}\)为图片i在任意尺度m的值,令\(n_{min,i}=min_{m}(n_{m,i})\). 然后得到我们提出的评价指标:
其中\(A_{m,i}\)是图片i在尺度m是预测得到的前景框集合,且\(|A_{m,i}|=n_{min,i}\).为了得到\(A_{m,i}\),对每一个scale,我们对预测的前景框按\(L_{i,a}^m\)进行排序,然后将第一个\(n_{min,i}\)预测加入集合\(A_{m,i}\。
即根据4个尺寸选择相同数量的预测前景框,然后选择损失最低的尺寸作为最优尺度。
这一过程在图3进行了可视化,得到图片i的最优尺寸公式:
scale regressor:
直觉上,如果目标较大且比较单一,我们应该对图片进行下采样让目标检测器能够专注于明显的目标而不是分散的细节;若目标物体比较小且图片中有很多这样的明显目标,图片应该保持原始尺寸。
自从R-FCN直接用深层卷积网络末尾的特征来回归得到bbox的位置之后,我们认为深层卷积网络特征的通道里面包含了尺寸信息。因此我们用深层卷积特征构建了一个尺度回归器来预测最优尺度,如图3所示。
作者用1x1卷积来从各个不同的feature map中捕捉位置信息。此外,并行地用3x3卷积层来捕获feature map中的复杂信息。经过一个非线性单元之后用全局池化来充当一个投票过程。
最后,将两条流结合在一起输入一个全连接层回归得到输出的尺度。确切地讲,定义深层卷积特征为\(X\in R^{C\times H \times W}\),定义回归器为:\(g:R^{C\times H\times W}\to R\).
注意我们没有回归得到最优尺寸\(m_{opt}\),而是得到一个相对尺寸(0,1),使得模型可以根据输入图片的尺寸应变(上采样,下采样或者保持原样)。对图像i来说,目标回归尺寸定义为:
其中\(m_i\)是图片i的尺寸,\(m_{min}\)是定义的最小尺寸,\(m_{max}\)是定义的最大尺寸。也就是说我们回归出一个归一化的相对尺寸[-1,1].
为了生成回归器的label,利用(2)式对训练数据的最优尺寸\(m_{opt,i}\)进行了计算。这里使用了回归问题中常用的均方误差做为回归器的损失函数:
为了将AdaScale用于视频中,我们做了一个时间一致性假设。更具体的,我们假设两个连续帧的最优尺寸应当是相似的。我们的实验结果基于这个假设成立。
算法1演示了AdaScale如何用于视频目标检测中。
实验结果:
MS/SS:多尺度训练,单尺度测试。训练过程过要对训练数据进行resize。
可以看到AdaScale并不是对所有类别的物体都有提升。