Training-Time-Friendly Network for Real-Time Object Detection
摘要
现在的目标检测器很少能同时达到训练时间短、推理速度快并且精度较高。为了在这些目标之间取得平衡,本文提出 Training-Time-Friendly Network (TTFNet) 模型。TTFNet使用轻量化head、single-stage和anchor-free的设计,从而获得较快的推理速度。之后,本文关注于缩短训练时长。本文注意到当 batch size 增加时会从标注框中解码更多地训练样本,这有助于增大学习率从而加速训练过程,(也就是说:增大batch-size可以加快训练过程)。于是,本文提出了一种新方法使用 Gaussian kernels 来编码训练样本。除此之外,为了更好地利用信息,本文设计了初始的样本权重系数。MS-COCO上的实验显示本文的TTFNet模型在平衡训练时间、推理速度和精度方面具有很大的优势。相较于之前的实时检测器,TTFNet可以将训练时长减少7倍以上,同时保持SOTA的性能。此外,本文super-fast版本的TTFNet-18和TTFNet-53能以十分之一的训练时间,超越SSD300和YOLOv3。代码开源在https://github.com/ZJULearning/ttfnet。
引言
目标检测器的精度、推理速度和训练时长受到了广泛关注并被不断改进。然而,很少有工作可以在它们之间取得较好的平衡。直观上看,推理速度更快的检测器应该有更短的训练时间。然而,事实上,大多数实时检测器比非实时检测器需要更长的训练时间。高精度的检测器可以大概分为两类——一类受限于推理速度慢,还有一类需要大量的训练时间。
第一种类型的网络(Ren_2015_FasterRCNN; Lin et al. 2017b, Focal Loss; Tian_2019_FCOS)通常需要heavy的检测头或复杂的后处理。尽管这些设计对提升精度和加快收敛是有益的,但也会显著地减慢推理速度。因此,这类网络通常不太适合实时应用的场景。
为了加快推理,研究者们致力于对检测头和后处理进行简化同时保持模型精度(Liu et al. 2016, SSD; Redmon and Farhadi 2018, YOLOv3)。最近的CenterNet论文(Zhou, Wang, and Kr¨ahenb¨uhl 2019, CenterNet)进一步缩短了推理时间——几乎与其主干网络消耗的时间相同。然而,这些网络不可避免地需要长时间地训练。这是因为它们训练起来较为困难,其原因是对模型结构进行了简化,使其十分依赖于数据增广和长时间的训练周期。例如,CenterNet对于公开的 MS COCO 数据集(Lin et al. 2014, COCO)需要140个epochs。相比之下,上文描述的第一种类型的网络通常需要12个epochs。
本文关注于缩短模型的训练时间同时保持SOTA的实时检测性能。之前的研究(Goyal et al. 2017, Train_ImageNet_1Hour)表明当 batch size 变大时可以使用更高的学习率,于是在多数情况下两者之间存在一种线性关系。本文发现从标注框中编码更多的训练样本与提高 batch size 时类似的。因为相对于特征提取,目标值编码和损失计算的时间是可以忽略不计的,于是可以在几乎没有额外开销的情况下,使模型获得更快的收敛。相比之下,CenterNet只关注于目标中心的尺寸回归,而失去了利用中心附近信息的可能性。本文将用实验证明这种设计是导致收敛缓慢的主要原因。
为了缩短训练时间,本文提出使用 Gaussian kernels 的新方法来编码定位和回归的训练样本。它可以让网络更好地利用标注框来产生更多监督信号,为更快的收敛提供了先决条件。具体而言,通过高斯核建立了目标中心的 sub-area ,并从中产生了密集的训练样本。此外,高斯概率被作为回归的权重来强调目标中心周围的样本。并且本文还使用了合适的归一化,在更好地利用大目标信息的同时,保持小目标的信息。在没有使用其它模块的情况下,本文的方法可以减少具有歧义或低质量的样本,例如:Feature Pyramid Network (FPN)(Lin et al. 2017a, FPN)。此外,本文的方法也不需要预测offset来辅助表示结果框,这是有效的、统一的和直观的。
结合轻量head、single-stage和anchor-free的设计,本文提出了首个在训练时长、推理速度和精度上具有良好均衡性的检测模型。本文的TTFNet模型相较于CenterNet等实时检测器减少了超过7倍以上的训练时间,同时保持了SOTA的性能。此外,在 8*GTX-1080Ti 上,超快版本 TTFNet-18 训练1.8小时能达到25.9AP/112FPS,以及 TTFNet-53 训练3.1小时能达到32.9AP/55FPS,就本文所知,是 MS COCO 上达到如此性能的训练时长最短的模型。此外,在 training from scratch 的条件下,TTFNet-18 训练19小时可达到30.3AP/113FPS,以及 TTFNet-53 训练32小时可达到36.2AP/55FPS。并且长时间训练版本(使用预训练)的TTFNet-53在训练31小时后可达到39.3AP/57FPS。这些性能相较于其它SOTA模型也是十分具有竞争力的。
本文的贡献归纳如下:
- 本文讨论和验证了 batch size 和标注框产生的编码样本数之间的相似作用。此外,本文用实验证明了先进的实时检测器CenterNet收敛缓慢的原因。
- 本文提出了一种新颖且统一的方法,在anchor-free检测器中使用高斯核来生成中心定位和尺寸回归的训练样本。此方法相较于其它设计有很大的优势。
- 在没有使用其它技巧的情况下,本文的检测器与之前的SOTA实时检测器相比,训练时长减少了7倍以上,同时保持了SOTA的实时检测性能。除此之外,scratch-training 和 long-training 版本的表现也十分优秀。
- 本文的检测器对于研究者也十分友好,尤其是计算资源有限的研究者们。此外,TTFNet也适合训练需求高的任务,例如:Neural Architecture Search(NAS)。
相关工作
单阶段检测器:YOLO(Redmon_2016_YOLOv1)和SSD(Liu_2016_SSD)取得了令人满意的性能,是的单阶段网络受到关注。自从 Focal Loss (Lin_2017b_FocalLoss)被提出用来解决正负样本中的不均衡问题,单阶段检测器被认为有望实现跟两阶段模型相当的精度。然而,自那以后,单阶段检测器的精度长期停滞不前,直到CornerNet(Law_Deng_2018_CornerNet)出现。CornerNet是基于keypoint的单阶段检测器,在精度上超过了一系列二阶段检测模型。其设计给目标检测任务打开了一扇新的大门。
Anchor Free设计:DenseBox(Huang_2015_DenseBox)是首个 anchor-free 的检测器,之后UnitBox(Yu_2016_UnitBox)改进了DenseBox从而获得了更好的性能。YOLOv1是首个成功的通用的anchor-free检测器。然而,anchor-based的方法(Ren_2015_FasterRCNN; Liu_2016_SSD)可以获得更高的召回率,为性能提升提供了更大的潜力。因此,YOLOv2(Redmon_Farhadi_2017_YOLOv2)摒弃了之前 anchor-free 设计并且也采用了 anchor-based 架构。不过,CornerNet让 anchor-free 设计重新成为关注的焦点。最近提出的 CenterNet-Triple(Duan_2019_CenterNetTriple)减少了CornerNet中的 false detection,从而进一步提升了准确率。除了 corner-based anchor-free 的设计,许多anchor-free检测器基于FPN来进行创新,例如:FCOS(Tian_2019_FCOS)和FoveaBox(Kong_2019_FoveaBox)。GARPN(Wang_2019a_GARPN)和FSAF(Zhu_He_Savvides_2019_FSAF)也在方法中采用了 anchor-free 的设计。相对而言,CenterNet(Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet)没有使用复杂的解码策略或者heavy的head设计,却能优于常见的实时检测器(Liu_2016_SSD; Redmon_Farhadi_2018_YOLOv3)同时具有更快的推理速度。
研究动机
本文注意到编码更多的训练样本跟提高 batch size 效果类似,并且它们都可以为每次迭代提供更多的监督信号。训练样本指的是标注框编码生成的特征。回顾SGD的公式,可知权重更新的表达式如下所示:
其中,
w
w
w是网络的权重参数,
B
B
B是从训练集中采样的一个 mini-batch,
n
=
∣
B
∣
n=|B|
n=∣B∣是 mini-batch size,
η
\eta
η是学习率以及
l
(
x
,
w
)
l(x,w)
l(x,w)是从标注图像
x
x
x经过计算获得损失。
对于目标检测,图像
x
x
x可能会包含多个标注框,这些框会被编码成训练样本
s
∈
S
x
s \in S_x
s∈Sx。
m
x
=
∣
S
x
∣
m_x=|S_x|
mx=∣Sx∣表示图像
x
x
x生成的样本数量。因此(1)是可以转化为:
为简化起见,假设对于 mini-batch
B
B
B 中的每张图像,
m
x
m_x
mx是相同的。对于单个训练样本
s
s
s,(2)式可以写为:
Linear Scaling Rule 是(Goyal_2017_TrainImagenet1Hour)通过实验发现的。此方法说到,当 batch size 乘以
k
k
k时,学习率也应该乘上
k
k
k,除非网络快速变化或者是使用了很大的 batch size 。即,以 small mini-batches
B
j
B_j
Bj和学习率
η
\eta
η进行
k
k
k次迭代基本上等价于,以 large mini-batches
∪
j
∈
[
0
,
k
)
B
j
\cup_{j \in[0, k)} B_{j}
∪j∈[0,k)Bj和学习率
k
η
k\eta
kη,当且仅当我们假设对于
j
<
k
j<k
j<k,有
∇
l
(
x
,
w
t
)
≈
∇
l
(
x
,
w
t
+
j
)
\nabla l\left(x, w_{t}\right) \approx \nabla l\left(x, w_{t+j}\right)
∇l(x,wt)≈∇l(x,wt+j)。此条件通常在大规模真实数据上是满足的。
除了像(Goyal_2017_TrainImagenet1Hour)一样关注于标注图像
x
x
x,本文还关注了这里的训练样本
s
s
s。根据(3)式 mini-batche size 可看做是
∣
B
∣
=
n
m
|B| = nm
∣B∣=nm。尽管一个batch内的样本
s
∈
S
x
s \in S_x
s∈Sx具有强关联,但它们在信息贡献上仍然有差异。本文则qualitatively地得出相似的结论:当每个 mini-batch 内编码的训练样本数增大
k
k
k倍时,将学习率乘以
l
l
l,其中
1
≤
l
≤
k
1\leq l \leq k
1≤l≤k。
CenterNet(Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet)在推理方面比大多数检测器快几倍,但训练时间长。它在训练中使用了复杂的数据增广。尽管增广操作可以使模型拥有稳定的精度提升,但它们也会引起收敛缓慢。为了排除它们对收敛速度的影响,本文提高了学习率,并移除了某些增广操作(仅使用了RandomFlip)。如图1所示,更大的学习率无法帮助CenterNet更快地收敛,而且去除增广操作后会导致较差的精度。
综上所示,本文认为这是因为CenterNet在训练时对目标中心仅编码了单个回归样本。这种设计使CenterNet十分依赖于数据增广和长时间的训练流程,导致了其训练时间不太友好。
为了降低网络对于数据增广的依赖,同时减少训练时间,本文认为需要一种更好的编码样本。在这个动机的引导下,本文会在下一章节提出改进的方法。更多理解性的消融实验会进一步验证本文方法的优越性。
本文方法
背景
CenterNet认为目标检测有两部分组成——中心定位和尺寸回归。对于定位,它使用了CornerNet中的高斯核来产生热点图,这是的网络会在目标中心附近产生更高的激活值。对于回归,它将目标中心处像素点定义为一个训练样本并直接预测该目标的宽和高。它还预测了偏移量来恢复由于 output stride 引起的离散化误差。因为网络在推理是会在目标中心附近产生更高的激活值,于是可以使用开销可忽略不计的其它组件来替代耗时的NMS操作。
为了避免使用NMS,本文在中心定位上使用了类似的策略。具体来说,本文在高斯核中进一步考虑了目标框的长宽比,因为CenterNet忽视了此因素的策略明显不是最优的。
对于尺寸回归,主流的方法将整个目标框中的像素(Tian_2019_FCOS)或者目标框中的子矩形区域(Kong_2019_FoveaBox)作为训练样本。本文提出将 Gaussian-area 中的所有像素作为训练样本。此外,由目标尺寸计算的权重和高斯概率会被用于这些样本,以更好地利用信息。值得注意的是,本文的方法不需要其它预测来辅助校正误差项(对比CenterNet中的offset预测项),如图2所示,于是此方法会更加简洁有效。
用于训练的高斯核
给定一张图像,本文的网络会分别预测特征 H ^ ∈ R N × C × H r × W r \hat{H} \in R^{N\times C \times \frac{H}{r} \times \frac{W}{r}} H^∈RN×C×rH×rW和 S ^ ∈ R N × 4 × H r × W r \hat{S} \in R^{N\times 4 \times \frac{H}{r} \times \frac{W} {r}} S^∈RN×4×rH×rW。前者用于预测目标中心可能存在的位置,后者用于获得关于目标尺寸的信息。 N , C , H , W , r N, C, H, W, r N,C,H,W,r分别是 batch size、类别数量、输入图像的宽和高以及输出步长。本文在实验中设置 C = 80 , r = 4 C=80, r = 4 C=80,r=4,为了简化后文中省略了 N N N。在本文方法中 Gaussian kernels 会同时用于定位和回归,并且定义 α \alpha α和 β \beta β来分别控制核的大小。
目标定位:已知第
m
m
m个标注框属于第
c
m
c_m
cm个类别,首先将它线性映射到特征图尺度上。之后,2D高斯核
K
m
(
x
,
y
)
=
exp
(
−
(
x
−
x
0
)
2
2
σ
x
2
−
(
y
−
y
0
)
2
2
σ
y
2
)
K_m(x,y) = \text{exp}(- \frac{(x-x_0)^2}{2\sigma_x^2} - \frac{(y - y_0)^2}{2\sigma_y^2})
Km(x,y)=exp(−2σx2(x−x0)2−2σy2(y−y0)2)用于产生热度图
H
m
∈
R
1
×
H
r
×
W
r
H_m \in R^{1 \times \frac{H}{r}\times \frac{W}{r}}
Hm∈R1×rH×rW,其中
σ
x
=
α
w
6
,
σ
y
=
α
h
6
\sigma_x = \frac{\alpha w}{6}, \sigma_y = \frac{\alpha h}{6}
σx=6αw,σy=6αh。最后,本文使用逐元素最大值操作更新热度图
H
m
H_m
Hm的第
c
m
c_m
cm个通道。生成的
H
m
H_m
Hm由参数
α
\alpha
α、中心位置
(
x
0
,
y
0
)
m
(x_0,y_0)_m
(x0,y0)m以及目标框尺寸
(
h
,
w
)
m
(h,w)_m
(h,w)m来决定。本文使用
(
⌊
x
r
,
y
r
⌋
)
(\left\lfloor \frac{x}{r}, \frac{y}{r} \right \rfloor)
(⌊rx,ry⌋)来将中心点强制转换至整数像素点上,此操作与CenterNet一致。本文网络中
α
=
0.54
\alpha = 0.54
α=0.54,此参数没有经过精细调参。
高斯分布的峰值点,也是定位框的中心点,会被当作正样本,而其它像素点则会当作负样本。本文使用改进的 Focal Loss ,与(Law_Deng_2018_CornerNet; Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet)保持一致。
给定预测值
H
^
\hat{H}
H^和定位目标值
H
H
H,则有
L
l
o
c
=
1
M
∑
x
y
c
{
(
1
−
H
^
i
j
c
)
α
f
log
(
H
^
i
j
c
)
if
H
i
j
c
=
1
(
1
−
H
i
j
c
)
β
f
H
^
i
j
c
α
f
log
(
1
−
H
^
i
j
c
)
else
L_{loc} = \frac{1}{M}\sum_{xyc}\left\{\begin{matrix} (1-\hat{H}_{ijc})^{\alpha_f}\log(\hat{H}_{ijc}) & \text{if}~H_{ijc}=1 \\ (1-H_{ijc})^{\beta_f}\hat{H}_{ijc}^{\alpha_f} \log(1 - \hat{H}_{ijc}) & \text{else} \end{matrix}\right.
Lloc=M1xyc∑{(1−H^ijc)αflog(H^ijc)(1−Hijc)βfH^ijcαflog(1−H^ijc)if Hijc=1else
其中,
α
f
\alpha_f
αf和
β
f
\beta_f
βf分别表示 Focal Loss(Lin_2017b_FocalLoss)和改进版(Law_Deng_2018_CornerNet; Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet)函数中的超参数。
M
M
M代表标注框的数量。本文设置
α
f
=
2
,
β
f
=
4
\alpha_f=2, \beta_f=4
αf=2,βf=4。
大小回归:一致特征图尺度上的第
m
m
m个标注框,使用特定的高斯核来产生
S
m
∈
R
1
×
H
r
×
W
r
S_m \in R^{1 \times \frac{H}{r} \times \frac{W}{r}}
Sm∈R1×rH×rW。核大小由上文所述的
β
\beta
β控制。值得注意的是,本文会在
α
\alpha
α和
β
\beta
β相同时使用的高斯核分布来节省计算量。
S
m
S_m
Sm中的非零部分即称为高斯区域
A
m
A_m
Am,如图3所示。
可知
A
m
A_m
Am总是会在
m
−
box
m-\text{box}
m−box 之内,于是本文之后也将其称为 sub-area。
sub-area 中的每个点都会视作回归的样本点。给定区域
A
m
A_m
Am内的点
(
i
,
j
)
(i,j)
(i,j)以及 output stride
r
r
r,定义回归目标为
(
i
r
,
j
r
)
(ir,jr)
(ir,jr)到第
m
m
m个框四条边的距离,表示为 4-dim 向量
(
w
l
,
h
t
,
w
r
,
h
b
)
i
j
m
(w_l, h_t, w_r, h_b)_{ij}^m
(wl,ht,wr,hb)ijm。位于
(
i
,
j
)
(i,j)
(i,j)点的预测框可以表示为:
其中
s
s
s是固定标量,用来增大预测结果从而更利于优化。本文的实验中设置
s
=
16
s = 16
s=16。值得注意的是,预测框
(
x
1
^
,
y
1
^
,
x
2
^
,
y
2
^
)
(\hat{x_1}, \hat{y_1}, \hat{x_2}, \hat{y_2})
(x1^,y1^,x2^,y2^)是基于原图的尺寸而不是特征图的尺寸。
如果像素不包含在任何 sub-area 中,则在训练中会被忽略。如果像素点包含在多个 sub-areas 中——则是一个具有多义性的样本,其训练目标会被设置成具有最小区域面积的目标。
已知预测
S
^
\hat{S}
S^和回归目标
S
S
S,本文会从
S
S
S中gather训练目标
S
′
∈
R
N
r
e
g
×
4
S' \in R^{N_{reg} \times4}
S′∈RNreg×4,以及从
S
^
\hat{S}
S^获得预测结果
S
^
′
∈
R
N
r
e
g
×
4
{\hat{S}}' \in R^{N_{reg} \times4}
S^′∈RNreg×4,其中
N
r
e
g
N_{reg}
Nreg表示回归样本的数量。对于这些样本,本文使用(5)是来解码获得预测框和样本中相应的标注框,使用GIoU(Rezatofighi_2019_GIoU)来计算损失。
L
r
e
g
=
1
N
r
e
g
∑
(
i
,
j
)
∈
A
m
GIoU
(
B
^
i
j
,
B
m
)
×
W
i
j
L_{reg} = \frac{1}{N_{reg}}\sum_{(i,j) \in A_m} \text{GIoU}(\hat{B}_{ij},B_m) \times W_{ij}
Lreg=Nreg1(i,j)∈Am∑GIoU(B^ij,Bm)×Wij
其中,
B
^
i
j
\hat{B}_{ij}
B^ij表示解码框
(
x
1
^
,
y
1
^
,
x
2
^
,
y
2
^
)
i
j
(\hat{x_1}, \hat{y_1}, \hat{x_2}, \hat{y_2})_{ij}
(x1^,y1^,x2^,y2^)ij,以及
B
m
=
(
x
1
,
y
1
,
x
2
,
y
2
)
,
B_m = (x_1,y_1,x_2,y_2)_,
Bm=(x1,y1,x2,y2),值原图尺度上相应第
m
m
m个标注框。
W
i
j
W_{ij}
Wij指样本权重,用来平衡每个样本贡献的损失。
由于目标尺度的方差较大(目标大小分布不均衡),大物体可能会产生上千个样本点,然而小物体可能只产生几个样本点。在对所有样本贡献损失归一化后,小目标贡献的损失甚至小到可以忽略不计了,这会损害对小物体的检测性能。因此,样本权重
W
i
j
W_{ij}
Wij起到平衡损失的作用。设
(
i
,
j
)
(i,j)
(i,j)在第
m
m
m个标注框的子区域
A
m
A_m
Am之内,则有:
W
i
j
=
{
log
(
a
m
)
×
G
m
(
i
,
j
)
∑
(
x
,
y
)
∈
A
m
G
m
(
x
,
y
)
(
i
,
j
)
∈
A
m
0
(
i
,
j
)
∉
A
W_{ij} = \begin{cases} \log(a_m) \times \frac{\mathrm{G}_m(i,j)}{\sum_{(x, y) \in A_{m}}\mathrm{G}_m(x,y)}& (i,j) \in A_m \\ 0 & (i,j) \notin A \end{cases}
Wij={log(am)×∑(x,y)∈AmGm(x,y)Gm(i,j)0(i,j)∈Am(i,j)∈/A
其中
G
m
(
i
,
j
)
\mathrm{G}_m(i,j)
Gm(i,j)指
(
i
,
j
)
(i,j)
(i,j)点的高斯概率,
a
m
a_m
am指第
m
m
m个框的面积。该方案可以很好地利用大物体中包含的更多标注信息,并保留小物体的标注信息。它还可以强调靠近目标中心的这些样本,减少多义性和低质量样本的影响,这些将会在消融实验中讨论。
总损失:总损失
L
L
L由定位损失
L
l
o
c
L_{loc}
Lloc和回归损失
L
r
e
g
L_{reg}
Lreg经过两个标量加权求和产生。具体来说,
L
=
w
l
o
c
L
l
o
c
+
w
r
e
g
L
r
e
g
L= w_{loc}L_{loc}+w_{reg}L_{reg}
L=wlocLloc+wregLreg,本文设置
w
l
o
c
=
1.0
,
w
r
e
g
=
5.0
w_{loc}=1.0, w_{reg}=5.0
wloc=1.0,wreg=5.0。
整体设计
TTFNet的结构如图2所示。
本文使用ResNet和DarkNet(Redmon_Farhadi_2018_YOLOv3)作为我们实验的主干网络。主干提取的特征会被上采样到原图的1/4分辨率,此操作使用 Modulated Deformable
Convolution(MDCN)(Zhu_2019_DCNv2)和上采样层实现。MDCN(DCNv2)随后是BN(Ioffe_Szegedy_2015_BN)和ReLU。
然后,上采样特征会分别进入两个针对不同目标的检测head。定位head会在目标中心附近点产生高激活值,同时回归head则直接预测这些点到定位框四边的距离。已知目标中心对应于特征图的 local maximum ,本文可以在 2D-max-pooling 的帮助下抑制非局部最大值,(来获得目标中心位置),同文献(Law_Deng_2018_CornerNet; Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet)。之后本文使用局部最大值的位置来gather回归结果。最后就可以获得检测结果了。
本文方法有效地利用了在大中尺寸目标中包含的标注信息,但是对于包含信息较少的小目标的提示是有限的。为了在较短的训练时长内提升小目标的检测性能,本文加入 shortcut connections 引入高分辨率但low-level的特征。短连接引入了主干网络stage2、3和4的特征,且每个connection由多个
3
×
3
3\times3
3×3卷积层构成。对应stage2、3和4的卷积层数量分别设为3,2和1,且每个后面都会跟随ReLU,除了最后一个Conv层。
实验
实验设置
数据集:本文实验是基于富有挑战性的 MS COCO 2017 基准。本文使用Train数据(115K张图像)进行训练,并描述了在Val数据(5K张图像)上的性能表现。
训练细节:本文在实验中使用了ResNet和DarkNet作为主干网络。本文将图像resize到
512
×
512
512\times512
512×512大小,且没有保持其长宽比。,在训练中仅使用了 Random Flip 作为数据增广操作,除了进行10x长训练配置外。在使用预训练模型时,本文使用了 unfrozen BN 但冻结了主干网络中stem和stage1的参数。对于ResNet,初始的学习率为0.016,mini-batch size为128。对于DarkNet,初始学习率为0.015,mini-batch size为96。学习率会在 epoch 18和 22时进行10倍衰减。本文的网络使用SGD训练了24个epoch。对于 super-fast 版本,训练周期会减半。对于长训练版本,训练周期会增加五倍(也就是总共训练120个epochs)。Weight-decay 和 momentum 分别设为
0.0004
0.0004
0.0004和
0.9
0.9
0.9。对于网络中的bias参数,其 weight-decay 设为0,并且它们的学习率加倍。在前500次迭代中使用了 Warm-Up策略。本文使用ImageNet(Deng_2009_ImageNet)上的预训练权重来初始化主干网络,除非特别指定。本文的实验室基于开源检测工具箱MMDetection(Chen_2019_MMDet),使用8张 GTX 1080Ti显卡。
消融实验
本文在消融实验中使用的是 super-fast 的 TTFNet-53模型。AP分数是在 COCO 5K-val上获得的,推理速度使用转换后的模型在1个1080Ti上测试的。
回归权重
W
i
j
W_{ij}
Wij:每个标注框在训练是都会产生多个训练样本点,所以如何平滑样本点产生的损失就成了一个问题。同等对待所有样本点可能会导致较差的准确率,如表1所示。
其结果较差的原因是大物体产生的样本点数量是小物体的几百倍,使小物体贡献的损失基本上被忽略掉了。
另一种直接的方法是对每个标注框产生的损失进行归一化。也就是,所有这些样本有相同的权重
1
n
m
\frac{1}{n_m}
nm1,当第
m
m
m个标注框产生了
n
m
n_m
nm个样本时。仍然,这样会导致次优的结果,因为它失去了利用大目标内更多信息的可能性。
为了解决这个问题,本文使用了框面积的对数联合归一化的高斯概率作为样本权重。其结果列在表1中,它显示出本文的策略可以很好地解决上述问题。值得注意的是,在权重中引入高斯概率会带来其它的增益,接下来将进行讨论。
回归中使用高斯分布的增益:本文在回归权重中引入了高斯概率,可以有效且优雅的减少模糊样本和低质量样本的影响。模糊样本是指位于重叠区域的样本,而低质量样本指距离目标中心较远的样本。
具体来说,多个目标有时会在空间上重叠,因此对于 anchor-free检测器确定重叠区域的回归目标,这被称为ambiguity(模糊性)。为了缓解这种情况,之前的工作要么使用FPN(Lin et al. 2017a, FPN; Kong_2019_FoveaBox)将不同尺度目标放在不同层级,要么使用标注框只生成一个训练样本(Zhou_Wang_Kr¨ahenb¨uhl_2019_CenterNet),如图3所示。
之前的工作(Tian_2019_FCOS)也注意到了低质量样本的影响,于是通过引入“center-ness”预测来抑制低质量样本。然而,这些方案仅能减少模糊样本或者减少低质量样本。此外,他们也有一些 side effects,例如导致收敛速度慢或者推理速度慢。
本文的高斯设计能同时减少这两种样本且没有边际效应。高斯设计可以在框内产生一个子区域,子区域的相对大小受到超参数
β
\beta
β影响。较大的
β
\beta
β会利用更多的标注信息但也会带来更多的模糊样本和低质量样本。
首先,我们使用了一种更普通的形式,即:将矩形框作为子区域来分析精度和
β
\beta
β之间的关系。特别是,
β
=
0
\beta = 0
β=0在CenterNet中表示只有框中心作为回归样本,而
β
=
1
\beta=1
β=1表示矩形框内所有像素点都作为回归样本。本文使用从
0.01
0.01
0.01至
0.9
0.9
0.9的不同
β
\beta
β训练了一系列网络。如表2所示,随着
β
\beta
β增大,AP分数先上升后下降。
上升表明目标中心附近的标注信息也是很重要的——
β
=
0.3
\beta=0.3
β=0.3时的AP分数要大大高于
β
=
0.01
\beta=0.01
β=0.01时的分数。因此,CenterNet仅考虑目标中心的策略是次优的。下降的原因是模糊样本和低质量样本增加了。为了找出其中的主要因素,本文进行了 class-aware regression 的实验。结果表明,即使类感知回归减少了歧义的影响,该策略仍然会遇到明显的精度下降。它说明下降的主要原因是那些低质量样本引起的。
于是,本文提出了使用高斯核来产生训练样本的子区域。本文方法不仅强调了目标中心附近的样本,而且减轻了歧义性。如表3所示,相较于使用矩形子区域,使用高斯子区域实现了更好的结果。
在高斯核中考虑目标框的长宽比:CenterNet使用了与CornerNet相同的策略来产生 heat-map,即没有考虑框的长宽比。由实验可知,考虑长宽比也会提升准确率,如表3所示。
短连接(Shortcut Connection):本文引入了短连接来获得更高的准确率。表4列出了使用不同设置的结果。
对stage2、3和4,本文选择3、2和1的组合,此参数并没有经过仔细挑选。(注:此参数会影响ShortcutConv2d
中卷积核的大小,从而会对FPS有影响)
样本数量对学习率选择的影响:为了验证 batch size 与标注框编码样本点数之间的相似性,本文通过改变
β
\beta
β和学习率来进行实验。
如表5所示,本文观察到越大的
β
\beta
β允许更大的学习率并且效果更好。此外,当
β
\beta
β较小时这种趋势会更加明显,因为这时模糊样本和低质量样本会少一些。换句话说,拥有更多样本就像扩大了 batch size,有助于进一步提高学习率。(类似学习率的线性自适应策略)
从头训练:从头训练通常需要更长的训练周期。本文中设置训练周期为120个epochs。如表6所示,相对于有预训练主干的那些模型,from scratch-training 的模型也能获得同等精度。
此外,使用长时间的训练周期可以获得更加优秀的精度,不过这会消耗更长的训练时间。
与SOTA检测器的对比实验
本文的TTFNet使用 ResNet-18/34 和 DarkNet-53 作为主干网络,它们分别记为 TTFNet-18/34/53。如表7所示,本文的网络在训练时间上比其它实时检测器快七倍,同时以实时推理速度实现了SOTA的结果。
与SSD300相比,本文的 super-fast TTFNet-18 的准确率会更高一点,而本文模型的训练时间减少了10倍,并且推理速度快两倍以上。对比YOLOv3,本文TTFNet-53以十分之一的训练时长获得升高2点的准确率,而且在推理上比YOLOv3几乎快两倍。 Super-fast TTFNet-18 能以二十分之一的训练时长获得与YOLOv3同等的准确率。
对于最近提出的 anchor-free 检测器,本文的TTFNet同样具有优势。FCOS不需要很长的训练时间能够较高的准确率,但它较慢的推理速度会限制其在移动场景的应用。本文列出了各模型使用较轻量主干的性能,例如:先进的RetinaNet和FCOS使用ResNet18/34。遗憾地是,由于复杂的head设计,它们无法获得同样的性能。实时检测器CenterNet具有很快的推理速度和优秀的准确率,但它需要较长的训练时间。相较于CenterNet,本文的TTFNet只需要七分之一的训练时间,从而在训练时长、推理速度和精度的平衡性上是十分优秀的。
结论
本文通过实验展示了更多的训练样本有助于采取更大的学习率,并提出基于高斯核训练的新方法。在训练时长、推理速度和检测精度的均衡性上,TTFNet是一种简洁有效的解决方案,可以为 training-time-sensitive 的任务提供提供更多潜力和可能性(Zoph_Le_2017_NASWithRL; Zoph_2018_TransferableArchitecturesImageRecognition; Ghiasi_Lin_Le_2019_NAS-FPN; Wang_2019b_NAS-FCOS;
Gao_2019_NDDR-CNN)。
致谢
此工作一部分得到了中国国家重点研发计划(批准号:2018AAA0101400)的支持,一部分得到了中国国家自然科学基金(批准号:61936006、61973271)的支持。