目标检测算法综述之FPN优化篇

导言

目标检测(Object Detection)的任务是找出图像或视频中的感兴趣目标,同时实现输出检测目标的位置和类别信息,是计算机视觉领域的核心问题之一。随着2012年ImageNet兴起的CNN,目标测算法也从基于手工特征的传统算法转向了基于深度神经网络的检测技术。在网络结构的设计上,从 two stage 到 one stage,从 bottom-up only 到 Top-Down,从 single scale network 到 feature pyramid network,各路大仙在backbone和特征提取、损失函数、NMS[1]、Anchor生成(free or no free)、IoU设计等各个环节分析短板,不断提高目标检测的性能。

本文主要关注目标检测中的多尺度优化问题,FPN[2]以及在基于FPN各类变体,介绍FPN设计思路,旷视ThunderNet[3] CME对特征的处理,Libra R-CNN[4]针对feature level imbalance的处理思路,HRNet[5]特征的保留,最终介绍goole最新设计的基于AutoML设计的NAS-FPN[6],将FPN的设计达到state-of-art水平。

由于这些论文在设计时不仅仅对FPN改进,还有其它tricks,本文再此不做详细说明。

FPN设计思路

在语义分割算法U-Net,以及人体姿态估计Hourglass Networks,都有不同分辨率特征融合,既Encode-Decode。准确来说FPN不是第一个不同层特征融合的网络,但是第一个在目标检测使用多尺度特征融合的方法。

CNN的设计中,网络的深度和down sample是一对矛盾体。网络较为浅,特征提取不充分。网络较深,可以提取较大感受野,随之down sample过大,小目标的检测性能显著降低,同时由于CNN的平移不变形,丢失位置信息。

而对于卷积神经网络而言,不同深度对应着不同层次的语义特征,浅层网络分辨率高,学的更多是细节特征,深层网络分辨率低,学的更多是语义特征。

在FPN之前,存在图 1(a)(b)(c)等特征处理方式。图 1(a) featurized image pyramids 使用多尺度训练和测试方式,既对在不同scale图像提取不同层次特征。One-stage SSD采用图 1(c)Pyramidal feature hierarchy,既分层特征预测目标,让不同level特征学习同样的语义信息。

FPN提出一种不同分辨率特征融合的方式,既每个分辨率的feature map和上采样的低分辨率特征element-wise相加,使得不同层次的特征增强。由于此方式只在网络基础上做跨层连接和element-wise相加,增加计算量较少,同时性能改善卓越,已经成为目标检测领域的标配。

图 1 FPN与其他特征提取方式

FPN包括bottom-up pathway、Top-down pathway 和lateral connections三部分。

bottom-up pathway:计算分层级计算不同分辨率特征。论文采用ResNet作为backbone,提取{C1,C2,C3,C4,C5}5个分层特征,只取{C2,C3,C4,C5}四个stage构成特征金字塔,相对于图像的分辨率下采样为{4,8,16,32}。由于C1占用内存较大,故移除。

Top-down pathway:从C5开始,通过最近邻方法把特征图上采样2倍得到C5’,C4通过1*1卷积调整通道数得到C4’, C5’和C4’分辨率相同,可以直接逐元素相加。如此迭代实现C3,C2的特征融合。Top-down逐步增强小目标信息。

lateral connection:得到每个相加的特征图,论文再次用3*3的卷积处理,得到最后的特征图{P2,P3,P4,P5}。

ROIpooling选择:不同尺度的ROI,使用不同特征层作为ROI pooling层的输入,大尺度ROI可选择 P5层;小尺度ROI的特征层可以选择P4。那怎么判断ROI改用那个层的输出呢?

论文使用改进的公式计算:

224*224是ImageNet的标准输入,k0是基准值,设置为5,代表P5层的输出(原图大小就用P5层),w和h是ROI区域的长和宽,image_area是输入图片面积,roi_level既为选择的ROI层。

PANet

PANet是由香港中文大学和腾讯优图联合提出的实例分割框架。模型不是直接实现目标检测,但是论文的核心内容是增强FPN的多尺度融合信息。PANet 在 COCO 2017 挑战赛的实例分割任务中取得了第一名,在目标检测任务中取得了第二名。

FPN的低层次的特征(C5)对应大型目标,而高层级特征与低层级别特征之间路径较长(如图 2a所示红色虚线),增加访问准确定位信息的难度。为了缩短信息路径和用低层级的准确定位信息增强特征金字塔,PANet在FPN基础上创建了自下而上的路径增强(图 2b)。用于缩短信息路径,利用low-level 特征中存储的精确定位信号,提升特征金字塔架构。

图 2 PANet网络架构

PANet创建自适应特征池化(Adaptive feature pooling)( 图 2c)。用于恢复每个候选区域和所有特征层次之间被破坏的信息路径,聚合每个特征层次上的每个候选区域。

PANet的目标检测和实例分割共享网络架构的图 2 abc三部分,使得两者性能均有提升。

Feature level imbalance

ThunderNet

ThunderNet是旷视提出的轻量型目标检测框架,实现了ARM平台上的实时检测器,整体结构如图 3所示。ThunderNet使用320×320像素作为网络的输入分辨率。整体的网络结构分为两部分:Backbone部分和Detection部分。网络的骨干部分为SNet(ShuffleNetV2修改版)。网络的检测部分,利用了压缩的RPN网络,既Context Enhancement Module(CEM)整合局部和全局特征增强网络特征表达能力。并提出Spatial Attention Module空间注意模块,引入来自RPN的前后景信息用以优化特征分布。

FPN的结合不同层语义信息,但是相对而言每层均有检测分支,对移动终端而言增加计算成本和运行时间。论文提出简单粗暴的CEM(如图 4所示),合并三个尺度特征图C4,C5和Cglb:

1、C4 1×1卷积,通道数量压缩为α×p×p = 245

2、C5进行上采样 + 1×1卷积,通道数量压缩为α×p×p = 245

3、C5全局平均池化得到Cglb,Cglb进行Broadcast + 1×1卷积,通道数量压缩为α×p×p = 245 。

通过利用局部和全局信息,CEM有效地扩大了感受野,并细化了特征图的表示能力。与先前的FPN结构相比,CEM predict预测及减少fc计算,提高模型运算效率。

图 3 ThunderNet网络模型

图 4 CEM网络结构

Libra R-CNN

Libra R-CNN是有浙江大学,香港中文大学等联合提出目标检测模型。无论是one-stage two-stage,都涉及选择候选区域,特征提取与融合、loss收敛。针对目标检测的三个阶段,论文提出三个问题:采样的候选区域示范具有代表性,不同level特征如何融合,以及损失函数如何更好收敛。论文针对三个问题提出三个改进方向:

IoU-balanced Sampling

M个候选框选择N个hard negative,选中的概率就是:

N个样本通过IoU的值划分为K个区间,每个区间中的候选采样数为Mk,则IoU-balanced sampling的采样公式即为:

作者通过在IoU上均匀采样, 把hard negative在IoU上均匀分布。

Balanced Feature Pyramid

图 5 Balanced Feature Pyramid

为了更高效利用FPN特征,论文使用4步改进rescaling, integrating, refining,

Strengthening(如图 5所示):

a. rescaling。把{C2,C3 ,C5}的多层特征均rescaling到C4尺寸,做加权求平均值。得到的特征C rescaling返回到{C2,C3 ,C5}特征分辨率。

b. Refining&strengthening。论文使用Gaussian non-local attention 增加特征。

c. Indentity,既残差设计。

Balanced L1 Loss

论文使用修订的loss损失函数,改善网络的训练过程。

HRNe

HRNet由中科大和微软亚洲研究院,设计新的人体姿态估计模型,刷新 COCO keypoint detection数据集和the MPII Human Pose数据集。同时提出backbone可用于图像分类,目标检测与语义分割。

图 6 典型姿态估计网络架构

如图 6所示典型姿态估计网络架构,包括(a) Hourglass (b) Cascaded pyramid networks(c)Simple Baseline (d) Deepercut等框架,均为先降低分辨率再上采样提高特征分辨率。而论文HRNet希望在模型的各个阶段均保持高分辨率特征(如图 7所示)。

HRNet模型通过再高分辨率特征图主网络逐渐并行加入低分辨率特征图子网络,不同子网络之间实现多尺度融合与特征提取。严格来说HRNet不是在FPN改进,而是持续保持高分辨力特征,不需要从低分辨率特征回复高分辨率特征(显著增加计算量),并且多此重复融合多分辨率特征。

HRNet缺点显而易见:没有down sample过程,计算量复杂,实时性差。

图 7 HRNet网络架构

NAS-FPN

AutoML与计算机视觉

2019年,AutoML在计算机视觉从backbone分类模型、目标检测模型以及风格迁移,图像描述,行人重识别均有跨越式进展。

Facebook Ross Girshick,Kaiming He等设计一个基于图论的网络生成器[9],可以生成随机连线网络。澳大利亚欧缇莫的大学提出Auto-ReID,中科院自动化所和旷视联合提出DetNAS,基于ShuffleNetV2的架构Object Detection with FPN on COCO优于ResNet101,但是FLOPs比ResNet50低。facebook开源框架AlphaX[8],基于MCTS和DNN,解决分类,目标检测,风格迁移,图像描述4个任务。

本文重点介绍Google基于AutoML提出Detection模型,基于RetinaNet框架,重点解决FPN多尺度金字塔融合的问题:通过Neural Architecture Search搜索各种类型的top-down,bottom-up特征层的连接方式,取得state-of-art的mAP同时降低推断时间。

从FPN, PANet, ThunderNet的CEM模块,Libra R-CNN 架构的Balanced Feature Pyramid模块,HRNet等设计,目前虽然有很多手工方式的多尺度特征的融合方式,但是对于多层次特征连接方式搜索空间巨大。论文提出NAS-FPN覆盖所有可能的多层次特征金字塔连接方式。

NAS-FPN网络设计

如图 8所示,NAS-FPN网络架构基于RetinaNet设计,包括两部分:backbone network(基本分类网络, MobileNet,ResNet)和feature pyramid network (FPN)。论文的设计目标组件式设计FPN,可无缝和backbone network衔接。

图 8 NAS-FPN网络架构

Neural Architecture Search framework的设计参考google自家论文NAS[11]。使用RNN(相当于控制器)来学习变长的字符串生成神经网络的结构和联通性。在学习过程中会产生需要子网络(child network),训练这些子网络会得到它们的精度值,用这些精度值来作为强化学习中的“奖励”(reward),然后计算Policy Gradient来更新控制器,这样的话,在下次迭代中,控制器有更大的概率产生一个精度更高的结构。

论文的FPN采用5层分辨率特征{C3, C4, C5, C6, C7},C5通过下采样得到C6和C7。5层的特征对应原图像分辨率降采样分别为{8,16,32,64,128},经过FPN得到{P3, P4, P5, P6, P7}。

图 9 merging cell设计

如图 9所示merging cell为NAS的设计空间。包含4个步骤。

1、从feature随机选择一层特征hi。

2、从feature随机另外选择一层特征hj。

3、选择输出的特征分辨率。

4、由于hi和hj特征的分辨率不同,需要邻近上采样或max pool方式生成相同分辨率的特征。Binary operation在sum和global pooling之间选择。

5、Append。由步骤3生成的特征, 经过ReLU-Conv 3x3-BatchNorm,进入feature layers,用于进一步的特征融合。

论文同时提出anytime detection。因为NAS-FPN是堆叠式设计,对于计算资源受限的应用,通过early exit生成可应用的FPN。

实验设计

论文简要说明NAS-FPN设计过程,对比试验结论,对通用NAS的设计具有参考意义。实验涉及backbone包括RetinaNet,MobileNet和AmobaNet,数据集集包括COCO train2017和 COCO val2017。

训练集群为100TPU, batch size=64。

NAS 受限于其过高的计算资源(GPU)需求,仍然无法在大规模任务 (例如 ImageNet) 上直接进行神经网络结构学习。目前一个普遍的做法是在一个小型的 Proxy 任务上进行网络结构的学习,然后再迁移到目标任务上。这样的 Proxy 包括: (i) 训练极少量epoch,训练时epho=10; (ii) 在较小的backbone下学习一个结构单元 (block),然后通过重复堆叠同样的 block 构建一个大的网络,本文基于ResNet-10; (iii) 在小数据集上进行搜索。图片分辨率512*512,实现1个小时完成一个Proxy task训练。

影响FPN-NAS整体性能包括三个方面:backbone、重复FPN-NAS个数,FPN特征维度。

(i)论文验证较高性能的backbone,和FPN-NAS网络设计正相关。

(ii)论文验证堆叠多个FPN-NAS模块对性能影响很小,而在FPN-NAS内部多尺度特征连接更重要。

(iii)基于ResNet-50 backbone验证特征维度128, 256, and 384和检测准确率正相关,论文引入DropBlock对模型正则化。

针对轻量型网络,论文设计NAS-FPNLite MobileNetV2,特征金字塔使用P3-P6层,使用depth-wise separable conv代替标注卷积,在google Pixel 1验证,state-of-art性能。

综合而言,论文提出的NAS-FPN idea简单,主要是改进FPN结构,但是NAS细节较多,而且100TPU不是一般企业和个人所承受。但是使用NAS设计出的模型有广泛应用。期待google开源,造福广大计算机视觉从业者。

以上仅为个人阅读论文后的理解、总结和思考。观点难免偏差,望读者以怀疑批判态度阅读,欢迎交流指正。

参考文献

[1].目标检测算法中检测框合并策略技术综述 .https://zhuanlan.zhihu.com/p/48169867

[2].T.-Y. Lin, P. Dollar, R. B. Girshick, K. He, B. Hariharan, and S. J. Belongie. Feature pyramid networks for object detection. In CVPR, 2017.

[3].Zheng Qin, Zeming , Zhaoning Zhang, Yiping Bao, Gang Yu, Yuxing Peng, Jian Sun .ThunderNet: Towards Real-time Generic Object Detection. In CVPR, 2019.

[4].Jiangmiao Pangy Kai Chenx Jianping Shi. Libra R-CNN: Towards Balanced Learning for Object Detection.In CVPR, 2019.

[5].K. Sun, B. Xiao, D. Liu, and J. Wang. Deep high-resolution representation learning for human pose estimation. In CVPR, 2019.

[6]Golnaz Ghaisi ,Tsung-Yi Lin Ruoming, Pang Quoc V. Le.NAS-FPN: Learning Scalable Feature Pyramid Architecture for Object Detection. arXiv preprint arXiv:1904.07392, 2019.

[7].CornerNet:目标检测算法新思路.https://zhuanlan.zhihu.com/p/41825737

[8].Linnan Wang, Yiyang Zhao, Yuu Jinnai, Yuandong Tian, Rodrigo Fonseca.AlphaX: eXploring Neural Architectures with Deep Neural Networks and Monte Carlo Tree Search arXiv preprint arXiv:1903.11059.2019.

[9].Saining Xie, Alexander Kirillov, Ross Girshick, Kaiming He .Exploring Randomly Wired Neural Networks for Image Recognition. arXiv: 1904.01569.2019.

[10].让算法解放算法工程师----NAS综述

[11].B. Zoph and Q. V. Le. Neural architecture search with reinforcement learning. In ICLR, 2017.

本文为SIGAI原创

原文发布于微信公众号 - SIGAI(SIGAICN)

原文发表时间:2019-04-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

扫码关注云+社区

领取腾讯云代金券