首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

参数少一半、速度快3倍:最新目标检测核心架构来了

选自arXiv

作者:Abdullah Rashwan、Agastya Kalra、Pascal Poupart

机器之心编译

机器之心编辑部

这是一个「矩阵网络」,它的参数少、效果好、训练快、显存占用低。将这样的架构加载到目标检测中,嗯,超越 SOTA 检测器不是梦。

论文链接:https://arxiv.org/abs/1908.04646

研究者在这篇论文中提出了 Matrix Net (xNet),它是一种用于目标检测的深度架构。研究者利用 xNet 加强基于关键点的目标检测,并且在 MS COCO 数据集上获得了 47.8 的 mAP,这比其它任何一步(single-shot)检测器效果都要好,而且参数量减半。重要的是,相比效果第二好的架构,xNets 在训练上要快了 3 倍。

如下图所示,很明显 xNet 的参数效率要超过其它模型。其中 FSAF 在基于锚点的检测器中效果是最好的,它超过了经典的 RetinaNet。而在基于关键点的目标检测器中,18 年提出的 CornerNet 是「开山之作」,今年又沿着它提出了 CenterNet。这些非常厉害的 single-shot 检测器看起来效果都不如 xNet。

图 1:一步检测架构在 MSCOCO 测试集上的模型大小(参数量)vs 准确率(平均精度)。借助于 MatrixNet 主干,本文作者提出的模型在参数量类似的情况下性能超过了所有其他 single-shot 架构。

在这篇论文中,xNet 用于基于关键点的目标检测就构成了 KP-xNet,后文会继续介绍它的结构,但这里主要关注它的性能。其实基于关键点的目标检测近来也是一个热点,通过几个关键点确定边界框,这确实非常简洁优雅。

以前性能最好的是 CenterNet,它在 COCO 数据集上能获得 47.0 的 mAP,但是 KP-xNet 只需要一半的参数量、1/3 的迭代数量、1/2 的 GPU 内存,就能获得额外 5.7% mAP 的效果提升。

表 1:本文提出的架构与其他架构在 MSCOCO 数据集上的实验对比结果。如图所示,以 ResNext-101-X 为主干的最终模型 KP-xNet(MultiScale)mAP 值最高,比原始 CornerNet(MultiScale)架构高 5.7%。

目标检测需要什么样的架构

目标检测架构可以分为两类:一步检测架构和两步检测架构。两步检测利用候选区域网络寻找固定数量的候选目标,然后再用第二个网络来预测每个候选目标的得分并修改边界框。

一步检测架构还可以分为两类:基于锚点的检测架构和基于关键点的检测架构。

基于锚点的检测架构包含许多锚框,预测每个模板的偏移量和类别,其中最著名的就是 RetinaNet。

基于关键点的检测架构预测左上角和右下角的热图,并用特征嵌入将其合在一起,CornerNet 就是基于关键点检测中非常经典的架构。

检测不同尺度的目标是目标检测任务的一大挑战。特征金字塔网络(FPN)是多尺度架构领域取得的最大进展之一。尽管 FPN 为处理不同大小的目标提供了一种优雅的方法,但它并没有为不同宽高比的目标提供任何解决方案。

为了解决这一问题。研究者引入了一种新的 CNN 架构——Matrix Network,这一架构能够同时解决目标尺度和宽高比不同的问题。如下图 2 所示,xNet 拥有若干矩阵层,每一层负责处理一种特定大小和宽高比的目标。xNet 将不同大小和宽高比的目标分配到各个层,以确保在其分配的层中目标大小接近一致。这使得方形的输出卷积核可以从各种宽高比和大小的目标中收集信息。和 FPN 类似,xNet 可以应用到不同的主干上。

图 2:(a)是原始的 FPN 架构,这一架构对每种尺度都分配了不同的输出层。(b)是 MatrixNet 架构,这一架构将 5 个 FPN 层视为矩阵中的对角层,通过下采样这些层来填充矩阵的其余部分。

Matrix Nets 是什么

如图 2 所示,Matrix nets(xNets)使用分层矩阵建模具有不同大小和宽高比的目标,其中矩阵中的每个条目 i、j 表示一个层 l_i,j,矩阵左上角层 l_1,1 中宽度降采样 2^(i-1),高度降采样 2^(j-1)。对角层是不同大小的方形层,相当于一个 FPN,而非对角层是矩形层(这是 xNets 所特有的)。

层 l_1,1 是最大的层,每向右一步,层宽度减半,而每向下一步高度减半。例如,层 l_3,4 是层 l_3,3 宽度的一半。对角层建模宽高比接近方形的目标,而非对角层建模宽高比不接近方形的目标。接近矩阵右上角或左下角的层建模宽高比极高或极低的目标。这类目标非常罕见,所以可以对它们进行剪枝以提升效率。

1. 层生成

生成矩阵层是影响模型参数数量的关键步骤。参数越多,模型的表达能力越强,但优化也越困难,所以研究者尽可能少地采用新参数。

2. 层范围

矩阵中的每层都对一定宽度和高度的目标进行建模,所以研究者需要限定矩阵中每层宽度和高度的范围,并且范围需要反映矩阵层特征向量的感受野。

3.Matrix Nets 的优点

Matrix Nets 的主要优点是:它可以让方形卷积核准确地收集不同宽高比的信息。因此基于这个特点,MatrixNets 可作为任何目标检测的主架构,包括基于锚点或关键点的一步或两步检测器。

Matrix Nets 怎样用于基于关键点的检测

CornerNet 提出来就是为了替代基于锚点的检测器,它利用一对角——左上角和右下角——来预测边界框。对于每个角来说,CornerNet 可预测热图、偏移量和嵌入。

下图 3 为研究者提出的基于关键点的目标检测架构 KP-xNet,它包含 4 个步骤。(a-b) 步骤使用了 xNet 主干;(c) 步骤使用了共享输出子网络,而针对每个矩阵层,他们预测了左上角和右下角的热图和偏移量,并在目标层内对它们进行中心点预测;(d) 步骤利用中心点预测匹配同一层中的角,然后将所有层的输出与 soft 非极大值抑制结合,从而得到最终输出。

图 3:KP-xNet 架构

本文为机器之心编译,转载请联系本公众号获得授权。

------------------------------------------------

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190815A0BJSP00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券