旷视科技目标检测概述beyond retinanet and mask r cnn_第1页
旷视科技目标检测概述beyond retinanet and mask r cnn_第2页
旷视科技目标检测概述beyond retinanet and mask r cnn_第3页
旷视科技目标检测概述beyond retinanet and mask r cnn_第4页
旷视科技目标检测概述beyond retinanet and mask r cnn_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、2018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-旷视科技目标检测概述:Beyond RetinaNet and Mask R-旷视科技已认证的278 人赞了该文章帐号R Talk 是一个深度学习专栏,将通过不定期的推送展示旷视科技的学术及阶段性技术成果。R是 Research 的缩写,也是旷视视的 Researcher。R Talk 旨在通过一场场的内部代号;而所有的Talk都是来自旷纷呈的深度学习,抛砖引玉,推新,推动中国乃至全球领域深度学习技术的大发展。近日,旷视科技 Research Leader、Detection 组博

2、士应邀在将门做了一次 Online。旷视科技把这次 Talk 内容以文请见文末。Talk 分为 3 个环节:Talk,主题为 Beyond RetinaNet and Mask R-字形式梳理出来并作为R Talk 开篇给大家,原Introduction:什么是目标检测,其技术现状是什么;Challenges:目前目标检测领域的五个点及旷视分别给出的技术解决方案;:物体检测技术的任务远未完成,the devil is in the detail。物体检测本质上面认为是在同时做分类跟两个任务。在传统方法,往往是把两个任务割裂开来,先做(枚举所有候选框),然后做分类。从深度学习,分类跟被耦合在网络

3、中,彼此互相影响。深度神经网络的这几年的发展非常迅速,但是目前的网络设计对于分类跟这两个任务很难得到熊掌兼得,希望物体检测在未来的技术的推动下能有的发展,同时解决分类跟两个难题。Introduction1/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-目标检测技术是计算机视觉诸多应用的一个基本组件,(实时地)实现对不同类别物体又快又准的框定,准表现在两个方面,准和分类准。通过手持拍摄的通用目标检测中,旷视科技COCO 2017 目标检测冠军算法跑在从上图中算法横向比较来讲很不错,包括可以检测出如只检测出一堆玉米棒中的一个。

4、的一些,展现了当前最佳的水平。虽然反光上的人像,但依然有不少的 miss,比又比如汽车驾驶场景下的目标检测,鼠标所指的小物体(汽车)并不是可以一直检到,时有时无; 甚至还会出现一些错误的检测结果。可见,目前的目标检测技术确实做了不少的东西,出了很多的成果,但是细节上还是存在很多有待完善的问题。目标检测算法成为了人工智能公司的大多数研发2/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-的标配,包括旷视科技,很多在很大程度上取决于检测到多少物体。如果往更远处看,目标检测技术将会进一步应用到自动驾驶和医疗图像诊断之中。现代目标检

5、测传统的目标检测技术在接受深度学习洗礼之前多是基于 sliding window 来做的,遍历一片上的所有 window,据其提取 hand-crafted 特征,其 pipeline 主要是“特征+分类器”;两者最大的一个区别是基于深度学习的现代目标检测技术特征是基于深度神经网络,传统的目标检测技术需要手动设计特征,比如 Haar、HOG、LBP、ACF 等;后面再加上一个分类器,分类器主要有SVM、Boosting 和随机森林。3/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-深度学习出来之后,改变了整套框架。现代目标

6、检测技术的 pipeline 为输入(图像)-> Backone(主干网络) -> Head(出口) -> NMS(后处理),可以说目前所有的深度学习检测器都是基于这套框架来做的;RetinaNet 和 Mask R-是 2017 年出现的两个非常有代表性的成果, 两者分别是 one-stage 和 two-stage 的,共同奠定了目标检测框架的基调。在 RetinaNet 中,第 1-5 层的特征作为 backbone,第 3-7 层分别接 4 个卷积作为 head;Mask R-本质上等价于 FPN+ ROIAlign,其第 1-5 层的特征作为 backbone,并在

7、 3-6 层的 head 上接 2 个全连接层作为输出。 one-stage 和 two-stage 检测器之间的本质区别在于检出率(recall)与(localization)之间的权衡(tradeoff)。Recall 是指如果一像上有 100个物体,检测到 99 个,那么 recall 为 99%;Localization 则是指边界框框住物体的空间上的精度。一般来讲,one-stage 检测器的 recall 较高,但是 localization 会有所折衷;相反, two-stage检测器的能力则较强,但是 recall 较低,主要是第二个 stage 可以 refine 框的精度,

8、但是也会误杀一些正样本。但是大家普遍会觉得 one-stage 检测器往往更快,比如 YOLO、SSD;two-stage 检测器往往更准,比如 Faster R- 详述。、FPN,但这个事情事实上并不成立,后文会有RetinaNet4/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-RetinaNet 出自 ICCV 2017 最佳学术Focal Loss for Dense Object Detection,本质上它与 Mask R-非常相似。RetinaNet 结构上主要基于 FPN,只是在输出上做了一个非常重要的操作

9、Focal Loss,本质上是一个 online hard negative data mining 的过程。RetinaNet 最大的一个亮点是在相同速度下性能优于之前大多数算法;在相同性能下速度快于之前大多数算法,兼得速度与精度,彻底改变了大家从前关于 one-stage 快、two-stage 准的固有想法。参考:Focal Loss for Dense Object Detection:/abs/1708.0200Mask R-5/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-2017 年何恺明组

10、又做了另外一个工作,叫作 Mask R-,获得了 ICCV 2017 最佳奖。如果拆来,Mask R-的结构也非常简单,本质上是 FPN+ROIAlign,后者解决的是ROIPool 的对齐问题,它对于检测可能意义不大,但是对于分割却意义。由上图可知,加上 ROIAlign 可以带来 1+ 的涨点,达到 37.3,再加上 Mask 监督信号则涨点更多,换上更大的 backbone (ResNeXt) 最高可达到 39.8。可以说这篇文章的最大贡献是 ROIPool变换成 ROIAlign 从而解决了对问题。微软亚洲资深研究员曾做过类似工作Deformable Pool,它本质上等于 ROIAl

11、ign+Offset,所以逻辑上来讲 Deformable Pool 也有对作用。通过上述分析可以看到,物体检测技术发展到目前 pipeline 似乎已经趋近成熟,进入瓶颈期,但是在当前钱最优的技术水平与实际的体检测。如何去填补这一差距呢?级别的实战要求之间依然存在巨大的鸿沟,尤其是通用物参考:Mask R-:/abs/1703.0687Challenges6/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-我们认为,the devil is in the detail,本文将从五个细节点着手去填补这一差距

12、!通过从这些细节点出发,不断优化这项技术,才能推动其从 challenges 的角度讲,我们再次回到现代目标检测的基本框架输入(图像)-> Backone(主干网络) -> Head(出口) -> NMS(后处理),这其中暴漏了五个潜在的难题:Backbone,目前主要使用的是 ImageNet Pretrained m DenseNet 等;s,比如 VGG-16、ResNet、Head,传统的 two-stage 网络慢的主要快;在于 head 太厚,可以对其进行,变得更薄、更Scale,比如图像中人像的变化很大,大到 2k x 2k,小到 10 x 10,如何使神经网络

13、算法更好地处理物体的变化是一个非常有趣的话题;Batch Size,传统目标检测器的 batch size 非常小,为什么不尝试使用更大的 batch size 呢? Crowd,无论是传统还是现代目标检测器,都会使用到一个叫做 NMS 后处理步骤,但是目前现有的 Benchmark 对 NMS 的优化并不敏感。以上五个点相当于抛砖引玉,虽然 RetinaNet 和 Mask R-出来之后成绩很好,但是一些细节之处依然有待提升,旷视分别就这五个点给出了的尝试。Backbone第一个细节点是 Backbone。很多主干网络基于 ImageNet 预训练,从而是分类任务进行设计的。分类网络训练到最

14、后会丢弃所有的空间分辨率信息,再做一个输出;它只需要把全局信息、context 以及更大的感受野组合在一起,得到一个图像分类层面的信息。7/262018/8/20但是这对于检测、分割和R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-关键点等需要精确每个像素的计算机视觉任务来讲并不友好。因为对检测任务来讲,不仅需要感受野的信息,还需要空间分辨率的信息。这是之前用 ImageNet 预训练模型做检测的一个非常大的误区。另外一个误区是包括 RetinaNet 和 Mask R-这两个工作在内,其第 1-5 层是预训练的,但是第 6 层 (或者有些算法的

15、第 7 层)则是随机初始化的,这不一定很科学,所以如何把 f6、f7 放进 ImageNet 进行预训练是一个很有意思的话题。DetNet 是旷视专门目标检测打造的 backbone 网络,代码稍后会开源。DetNet 虽然也是针对分类问题进行训练,但会考虑到始化权重更为科学。问题的需求;另外就是在 ImageNet 预训练 P6 层,使得初相较于 FPN 和分类网络 backbone,DetNet backbone 的改动相对简单,但是效果非常明显, 即在后面几层不做下采样,而是增加 dilation,从而保留了一定空间分辨率的特征图;同时也不能做太过,比如 8x,否则计算量会非常大。另外,

16、还会把 P6 加进去一直训练。参考:DetNet: A Backbone network for Object Detection:/abs/1804.06218/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-这是 DetNet 的框架。上图略掉了前 3 层,从第 4 层的输入开始,每层之后会做一个 16x 的下采样;做 ImageNet 预训练时会接一个 14x14 GAP 和一个 FC-1000,训练完之后再把这两部分去掉。可以看出 DetNet 结构上来讲和 FPN 一模一样,只不过是把 ResNe

17、t-50 替换为 DetNet,想法直观而简单。DetNet(D)和 ResNet (R) 的结果对比,自依次是 ImageNet、COCO minival 和COCO test-dev 上的竞赛结果。可以看出分类结果上 D-59(23.5)比 R-50(24.1)要优,当然这可能是由于计算量大的,因此我们又设计了计算量相当的 R-62,D-59 在结果上依然略9/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-优;但是在 COCO minival 和 COCO test-dev 检测结果上,D-59 要比 R-62 和 R

18、-50 高出很多。这里要说明的一点是,我们复现的 baseline 要普遍高于上的 baseline。在 D-101 和 R-101 的对比中,结果也是一致的。接着,对 DetNet 的涨点做一些更细致的拆分,主要表现为,对于大物体来讲,DetNet 增加了网络的能力,比如从 AP_85 从 34.5 涨点至 40.0;对于小物体来讲,则增加了其 recall 能力,比如 AP_50 从 60.0 涨点至 66.4。10/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-这里是 DetNet 作为 backbone 与当前最佳

19、模型的对比结果,上图中的上半部分表示检测的对比结果,下半部分是分割的对比结果;可以看出以 DetNet-59 作为 backbone 的模型 FPN 和Mask R-在 mAP 等多项指标上涨点还是很明显的,虽然其中有复现 baseline 的,但还是无法掩盖涨点的事实。你会发现,只是简单改变 backbone 的结构,就带来很大的涨点,所以DetNet 的工作意义非常大。最后总结一下:backbone 作为神经网络的重要模块之一,提供了基础的特征表示,但是非常耗费计算量,通过实验我们发现,对于一些 single-stage 网络,backbone 的计算量占比最高可达 90%;backone

20、 通常是分类任务而设计的,对于检测任务并不友好,DetNet 最有价值的一点在出一种新思路,在设计 base m时更加注重其泛化能力,使其适用于检测、分割或者关键点等不同任务,而不仅仅局限于分类任务,DetNet 希望做一种抛砖引玉的工作;DetNet 是第一个力。检测任务而设计的骨干网络,并朝着兼得感受野和空间分辨率的努Head第二个细节点是 Head。Head 是一个神经网络的“头部”。two-stage 检测器长久以来的一个问题是速度的提升,从R-到 Fast R-到 Faster R-再到 R-FCN,本质上就做一件事情。从框架的角度讲,R的速度非常慢,慢到让人无法想象,检测一需要很多

21、秒,从角度讲这是不可思议的;迭代到 R-FCN 时,1 秒钟最多可以检测 5,这和 one-stage 检测器YOLO 和 SSD 相比依然没有竞争力。那么,如何设计一个 two-stage 检测器,使其既有 YOLO 这样的速度,同时又保证性能?11/262018/8/20我们可以从网络两个最R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-的东西(backbone 和 head)着手,把 backbone 变的更小、更合理;把 head 变轻,则是旷视的另一项成果 Light Head R的工作。Light Head R Light Head

22、R 时,Faster R-的代码已开源。常见的 two-stage 方法有两个: Faster R-和 R-FCN,实际上是这两种方法的一个结合体。由于 proposal 不可复用,当其不断增多网络的计算量会陡增;R-FCN 正是为此而生,它解决了复用的问题,但是空间分辨率却丢失很多,因此通过增加大量的通道(channel)弥补这一损失,导致通道过多(4000+ 维),特征图层很厚。Light Head R所做工作就是去除这些过多的通道,发现对速度影响很明显,对结果几乎没有影响,不掉点;前面会接一个 large separable convolution,它起到类似于 large kernel

23、 的作用,可以缩小特征图层。另外一个和 R-FCN 的区别是,Light Head R的 head 部分是一个全连接层(连接到 PS ROIpool/Align),这非常本质,影响非常大。因此,Light Head R本质的改进主要有两点:一是 head 可以做到非常薄;二是很多计算量可复用,从而大大提高了速度。参考:Light-Head R-: In Defense of Two-Stage Object Detector:/abs/1711.0726代码:.com/zengarden/li12/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond R

24、etinaNet and Mask R-这里是 Light Head R的一些结果。有两个 baseline:Faster R-和 R-FCN。可以发,则又涨点至现,如果加 Large Kernel,mAP 则涨点至 35.9;再加上 Light Head R-37.7,效果很明显;这只是涨,如果再加上 PS ROI Align,更改 NMS 阈值,大概还可以再涨两个点。如果对比上述的两个优秀工作 RetinaNet 和 Mask-R-显。以上是从大模型的角度讲,性能要好于市面上的其他同等模型。,可以看到涨点依然非常明我们想强调的一点是,即使从小模型的角度讲,速度的提升依然非常亮眼。这主要是因

25、为通过把head 做大大加快了网络的速度。Light Head R以 Xception-145 (145 表示 145 MFLOPs)作为 backbone,速度可以实现很大的提升,同时性能保持在较高水平。13/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-通过与市面上主流的小模型相对比,同等速度下比性能,同等性能下比速度,Light Head R都是领先的。当然由于设备、硬件平台不一样,其中可能会有一些别。,但是造成本质的差参考:Xception: Deep Learning with Depthwise Separab

26、le Convolutions: /abs/1610.0235同时,Light Head R版的工作也在进行之中,提前预告一下。这可能是第一个把 two-stage 检测器在上运行起来,同时性能又比较合理有意义的一个算法。总结一下,Light Head R的初衷是做,并在性能和速度之间实现了一个很好的权衡,具体细节做法通过使用 Large Kernel 和更小更薄的特征图,把全连接层接在 ROI pool 之后。最后要强调的一点是 Light Head R还可以做成端的。Scale14/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaN

27、et and Mask R-第三个细节点是 Scale。在很多的目标检测场景之下,Scale 的变化会非常大,一像上经常会出现不同 scale 的物体。基于 Anchor 的做法问题在于预设性,预设处理。之内的物体检测做的比较好,之外的则不能很好地先前的工作比如 SSD 和 FPN 等是一类方法,采取分而治之的策略,缺点是 scale variation 比较受限;CVPR 2018 有篇 oralSNIP(Scale Normalization for Image Pyramids),它代表了另一类工作,但是最大的问题在于推断速度较慢。那么如何在变化与推断速度之间实现一个很好的权衡呢?参考:

28、An Analysis of Scale Invariance in Object Detection - SNIP:/abs/1711.081815/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-SFace 是旷视最近的一个工作,本质上是做人脸检测。目前的很多方法是基于 Anchor 的,好处是可以对 anchor 覆盖的尺度进行较好的,坏处是难以所有尺度的人脸。同时还有很多方法不使用 anchor,比如 DenseBox,优点是可以覆盖不同尺度的人脸,缺点是SFace 的想法也很简单,就是吸收整合了上

29、述两种方法的长处。能力较差。所以参考:SFace: An Efficient Network for Face Detection in Large Scale Variations: /abs/1804.065516/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-SFace 采用 FPN 结ackbone 是 Xception-39(39 表示 39 M FLOPs),然后 head 有两个分支,一个是 anchor-based,另一个是 anchor-free。实验发现这两个分支的评分(score)不

30、是很一致,不在同一个范围之内,因此加入 IOU 进行 rescore,保证最后得到的 scale 差别不 大。这里是 SFace 的一些结果。图的上半部分是 WiderFace 数据集上 SFace 与一些当前最优模型的对比,可以看出还是非常有优势的,特别是下半部分,在不同输入大小的情况下,SFace定的精度,同时速度又非常快。在不增好,这一工作还是非常有价值的。度 overhead 的情况下,同时又把 scale 这个问题解17/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-总结一下,SFace 的主要工作即是通过整合

31、anchor-based 和 anchor-free 两种方法来解决 scale 问题;其次,在这项工作中还引入了一个叫做 4K Face 的数据集,专门用来解决人脸检测中的变化问题。Batch Size第四个细节点是 Batch Size。在一般的目标检测框架中,batch size 往往很小,比如 R-和 Faster R的为 2;在一些最新的工作比如 RetinaNet 和 Mask R中,batch size 也仅为 16;相比之下,在ImageNet 中分类模型的 batch size 一般设为 256。可以看到两者的 gap 非常大。我们因此假设,把目标检测的 batch size

32、 调大会有什么效果呢?或者反过来讲,batch size 很小存在哪些问题?主要有三个潜在的问题。一是训练时间较长,二是 BN 统计确,三是正负样本比例失衡。之前也有工作试图解决这些问题,即质上是在通道上做一些归一化的操作。的Group Normalization,它本参考:Group Normalization:/abs/1803.084918/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-同样这些问题,旷 视有一项新工作叫 MegDet。下面直接介绍一下结果,细节请见论文。上图中横轴为训练时间轴,纵轴

33、为 COCO 结果。假设把 batch size 调到 256,它会很早收敛,如果 batch size 是 16,则收敛时间非常长。同时最有意义的一点是收敛点的精度更好。这是batch size 大的一个潜在好处。参考:MegDet: A Large Mini-Batch Object Detector:/abs/1711.072419/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-MegDet 的实现并不难,主要是学习率 warmup 策略和跨卡批归一化(CGBN)的工程实现。旷视据此拿下了 COCO

34、 2017 物体检测的冠军,这是目前市面上可以找到的最高结果。开头的实例就是拿 MegDet 跑的,虽然这个结果已经非常之高,但实际上仍然存在很多可做优化的潜在问题。Crowd第五个细节点是 Crowd。目标检测领域中想做,做的不多并且一直不 solid 的一个场景就是 crowd。目前,无论是传统或者现代物体检测技术,一个 NMS(Nonum Suppression) 操作来去除多余的候选框,它作为一个后处理步骤加在算法的最后。一般来讲,NMS 在通用物体检测数据集比如COCO 和 VOC 上是没问题的,这些数据集本质上并不 crowd。真实场景中 crowd 情况非常多,但是由于缺乏相应的

35、数据集,导致这一问题并没有在学术圈重视起来。为解决这一问题,旷视引入了一个新数据集CrowdHuman,希望学术界引起对这件事情的重视,希望大家一起协力优化这一方向,希望共同努力在 crowd 场景下把目标检测做的更好、。20/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-这一方向上已有两个相关工作在尝试。ICCV 2017 有一个叫做 Soft-NMS 的工作,通过一行代码改进 NMS;微软资深研究员有一个 CVPR 2018 的工作Relation Networks,尝试用端到端方式去学习 NMS,逻辑上讲还是非常科学

36、的。但是上述两个工作并没有涉及最本质的问题benchmark,从而缺乏了一个科学的衡量标准。参考:Soft-NMS - Improving Object Detection With One Line of Code: /abs/1704.0450Relation Networks for Object Detection:/abs/1711.115721/262018/8/20R Ta k | 旷视科技目标检测概述:Beyond RetinaNet and Mask R-因此,旷视推出了 CrowdHuman,并已开源。这个 benchmark 的特点是主要做行人检测,一方面,数据标注涵盖头部位置,的可见框和完整框,并且人框与头框之间有绑定关系;另一方面,通过实验我们发现该数据集有一定的泛化能力,经过 CrowdHuman 预训练之后,在头部/行人等其他数据集上一定程度的涨点。最重要的一点是,这个数据集非常 Crowd!参考:CrowdHuman: A Benchmark for Detecting Human in a Crowd: /abs/1805.0012:22/262018/8/20R Ta k | 旷视

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论