作者 | 张凯
编辑 | CV君
报道 | 我爱计算机视觉(微信id:aicvml)

本文介绍 CVPR 2021 接管的指标检测论文 You Only Look One-level Feature。

原论文作者来自:中科院自动化所、中科院大学人工智能学院、中国科学院脑科学与智能技术卓越翻新核心、旷视科技。

0 动机

在高性能的指标检测网络中,特色金字塔网络(Feature Pyramid Network,FPN)是一个不可或缺的组成部分。作者认为FPN次要有2个作用:

其一是多尺度特色交融,进步了特色的丰盛水平;

其二是应用分治法(divide-and-conquer),将指标检测工作依照指标尺寸不同,分成若干个检测子工作。

为了摸索FPN的上述2个作用对检测器性能的奉献水平,作者做了一个试验,作者将检测器形象成如下图所示个3个组成部分

编码器(Encoder)解决Backbone提取的特色,将处理结果传输给解码器(Decoder)用于分类和回归。

FPN能够看作一个MiMo(Multiple-in-Multiple-out)编码器,作者还设计了SiMo(Single-in-Multiple-out)、MiSo(Multiple-in-Single-out)、SiSo(Single-in-Single-out)编码器,这4种编码器的构造如下图所示:

上图中图(a)就是RetinaNet中的FPN,方框左侧的C3、C4、C5代表Backbone输入的特色,方框右侧的P3~P7代表传入Decoder的特色。

别离应用图(b)、(c)、(d)中的构造代替RetinaNet中的FPN,应用ResNet-50作为RetinaNet中的Backbone,别离训练4个网络并在COCO验证集上测试,后果如下图所示:

从上图中能够看出,应用MiMo和SiMo作为编码器,性能相近;应用MiSo和SiSo作为编码器,性能较差。这种景象阐明了如下问题:

  • 相比于MiMo,SiMo只应用Backbone输入的C5特色作为输出,应用SiMo作为编码器构建的网络性能根本与MiMo相当,阐明Backbone输入的C5曾经蕴含了足够的信息用于构建高性能检测器;

  • 相比于MiMo和SiMo,应用繁多输入的MiSo和SiSo作为编码器构建的网络性能较差,阐明应用“分治法”将指标检测问题以指标尺寸为根据合成为多个子问题,对于构建高性能网络的奉献很大。

通过上述试验可知,应用Backbone输入的繁多特色和分治法,即上图中图(b)的构造,就能够构建一个很好的检测网络。然而应用图(b)的构造会使得模型变宏大和简单,因为编码器要输入多个特色。

基于上述发现,作者提出了YOLOF(You Only Look One-level Feature)网络,在YOLOF中,编码器只用到了Backbone输入的C5特色,同时防止应用上图中图(b)的SiMo简单构造,而是应用了图(d)的SiSo构造以缩小计算量。

应用MiMo(即FPN)的RetinaNet、应用SiSo的RetinaNet和应用SiSo的YOLOF的计算量、帧率和在COCO数据集上的精度如下图所示:

Decoder和Encoder是有强耦合关系的,因而Decoder的构造受Encoder输入特色的影响,所以作者将Decoder和Encoder的计算量叠加在一起显示。

上图中的4个模型均应用ResNet-50作为Backbone,FLOPs是在COCO验证集上前100张图片中将图片短边尺寸resize成800个像素计算失去,FPS是在2080Ti GPU上测量,设置batch size为1,应用Detectron2外面的测量工具,C示意Encoder和Decoder应用的通道数量。

从上图能够看出,应用SiSo的RetinaNet在运行速度上优于应用MiMo的RetinaNet,然而精度比拟低;而作者提出的YOLOF网络同样应用了SiSo的Encoder,在放弃高帧率的同时领有高精度。

1 应用Dilated Encoder模块代替FPN

依前文所述,应用SiSo代替MiMo会引起较大的性能损失,作者认为,SiSo Encoder只应用了Backbone中的C5特色作为输出,而C5特色的感触野所对应的指标尺寸范畴是受限的,无奈应答指标检测场景中变动激烈的指标尺寸。如下图所示:

上图中绿色的点示意数据集中的多种指标尺寸,粉红色的区域代表特色可能无效表白的指标尺寸范畴,应用C5特色作为输出的SiSo Encoder,会产生上图中图(a)所示的状况。

若应用空洞卷积(Dilated Convolution)操作以增大C5特色的感触野,则会产生上图中图(b)所示的状况,感触野变大,可能无效地表白尺寸较大的指标,然而对小指标表达能力变差。

作者提出了一个SiSo Encoder的新构造,将其称作Dilated Encoder,该构造可能交融多种尺寸的感触野,从而能检测尺寸变动范畴大的多种指标,达到上图中图(c)所示的成果。

Dilated Encoder的构造如下图所示:

从上图中能够看出,Dilated Encoder将Backbone输入的C5特色作为输出,应用1x1卷积缩小通道数目,接着应用3x3卷积精炼语义信息,紧接着是4个间断的空洞残差单元(Dilated Residual Block),这4个空洞残差单元中3x3卷积的dilation rate不肯定相等。

应用4个间断的空洞残差单元能够在one-level feature中蕴含具备多种不同感触野的特色,以应答不同的指标尺寸。

2 解决positive anchor不平均问题

在RetinaNet中,如果某个anchor和指标的ground truth的最大IoU超过0.5,则该anchor为positive anchor,作者将这种选取positive anchor的办法称作Max-IoU Matching。

因为RetinaNet的Encoder应用了MiMo构造,预约义的anchor数量很多,应用Max-IoU能够在multi-level上抉择和指标尺寸匹配的positive anchor,因此能够产生大量的positive anchor。

YOLOF的Encoder应用了SiSo构造,相比于应用MiMo构造的RetinaNet,预约义的anchor数量会少很多,若应用Max-IoU Matching抉择positive anchor,ground truth尺寸大的指标产生的positive anchor要多于ground truth尺寸小的指标产生的positive anchor,如下图所示,这种景象会导致网络在训练时更关注大尺寸的指标,疏忽小尺寸指标。

为了解决positive anchor对于指标尺寸散布不平均的问题,作者提出了Uniform Matching办法:对于每个指标,都将和该指标ground truth最近的k个anchor作为该指标的positive anchor,从而保障每个指标都有雷同数量的positive anchor,如上图所示,保障网络训练时能兼顾尺寸大小不同的指标。

在理论利用中,为了防止一些极其状况,疏忽Uniform Matching办法中产生的与ground truth的IoU大于0.7的negative anchor和与ground truth的IoU小于0.15的positive anchor。

3  YOLOF网络结构

基于上述办法,作者构建了YOLOF网络,其构造如下图所示:

上面顺次介绍YOLOF网络的Backbone、Encoder和Decoder。

3.1 Backbone

作者别离应用了ResNet和ResNeXt这2种Backbone实现YOLOF,Backbone应用了在ImageNet数据集上预训练的模型。对于Backbone的输入,作者实现了2个版本,其一为绝对于输出图像采样率为32、通道数2048的feature map,即网络结构图中的C5;

其二为绝对于输出图像采样率为16、通道数为2048的feature map,即网络结构图中的DC5。

3.2 Encoder

应用上文介绍的Dilated Encoder作为YOLOF的Encoder。Dilated Encoder将Backbone输入的特色作为输出,首先应用1x1卷积和3x3卷积缩小特色通道数至512,而后应用4个间断的残差模块提取特色。

在每个残差模块中,首先应用1x1卷积将特色通道数缩小至原来1/4,而后应用3x3的空洞卷积增大感触野,最初应用1x1卷积将特色通道数裁减4倍。4个残差模块中空洞卷积的dilation rate别离为2、4、6、8。

3.3 Decoder

Decoder局部与RetinaNet中的设置相似,次要有如下2个区别:

  • 在回归分支中蕴含4个Conv-BN-ReLU操作,在分类分支中蕴含2个Conv-BN-ReLU操作;
  • 回归分支中的每个anchor都有一个objectness prediction,最终的分类得分由分类分支的输入乘以objectness prediction失去。

4  试验

YOLOF应用8个GPU在COCO训练集上训练,batch size为64,优化器为synchronized SGD,推理时应用的NMS阈值为0.6。

作者将YOLOF与RetinaNet进行比照,训练实现后,在COCO验证集下测试,后果如下图所示,图中schedule为“1x”的模型在训练时将输出图片的最短边设置为800个像素,且最长边不超过1333个像素。

上图中最下面一组为应用了Detectron2中的设置训练的RetinaNet;两头一组为应用了与YOLOF统一的设置训练的RetinaNet,比方应用generalized IoU去掂量回归损失,在检测头中应用GN代替BN等;

最初一组为YOLOF的测试后果,表中的YOLOF应用ResNet-50作为Backbone,YOLOF-R101应用ResNet-101作为Backbone,YOLOF-X101应用ResNeXt-101-64x4d作为Backbone。上图中的最初两行别离示意多尺度训练单尺度测试和多尺度训练多尺度测试的后果。

为了与DETR正当比照,YOLOF模型应用了多尺度训练形式,在COCO验证集上进行测试,与DETR比照的试验后果如下图所示:

因为YOLOv4在训练时应用了数据加强和3阶段的训练方法,为偏心比照YOLOF同样应用了上述办法训练,并且将Dilated Encoder中残差模块的数量减少至8个,8个残差模块中空洞卷积的dilation rate为1、2、3、4、5、6、7、8。

应用CSPDarkNet-53作为Backbone,应用Backbone输入的DC5特色,应用LeakyReLU代替Encoder和Decoder中的ReLU,在COCO测试集上的试验后果如下图所示:

图中的FPS是依照YOLOv4的测试方法失去的,行将卷积层和BN层交融且将模型转换为半精度模型,进行FPS的测量。

5  总结

  • 通过试验剖析了FPN胜利的最重要起因,即应用分治法(divide-and-conquer)解决指标检测问题;
  • 提出Dilated Encoder构造用来提取多尺寸感触野的特色,代替了FPN,减小了模型复杂度和计算量;
  • 应用Uniform Matching办法解决positive anchor在尺寸不同的指标上散布不平均的问题;
  • 以Dilated Encoder代替RetinaNet中的FPN模块,构建了YOLOF,并通过试验证实了YOLOF的高效性。

源码:https://github.com/megvii-mod...

论文:You Only Look One-level Feature

仅用于学习交换!

END