Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

NeurIPS 2018 | 旷视科技提出MetaAnchor:自定义锚点框优化目标检测系统

论文名称:MetaAnchor: Learning to Detect Objects with Customized Anchors 

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

目录

  • 导语

  • 背景

  • 设计思想

  • 方法

    • 锚点框函数生成器

    • 架构细节

  • 实验

    • COCO 目标检测结果

  • 结论

  • 参考文献

导语

随着 ImageNet 退出“江湖”,分类任务趋向饱和。在计算机视觉分类、检测、分割三大核心任务的链条中,由于分类过于基础,过于成熟,检测的首要作用日益加大,连锁效应不断加强。

目标检测遵循自身路径,处理进程先后可分为锚点框、(候选框)、目标框。如果说目标检测是计算机视觉的首块基石,那么锚点框(Anchor)则是目标检测的首块基石。作为基石的基石,锚点框的重要性可见一斑。

鉴于现有目标检测系统采用预定义锚点框的种种问题,旷视科技论文《MetaAnchor: Learning to Detect Objects with Customized Anchors 》(已收录于第 32 届神经信息处理系统大会 NeurIPS 2018 )提出一种全新而灵活的锚点框机制——MetaAnchor,可通过自定义方式优化目标检测系统。

由此,这就从最为底层的技术组件层面,自下而上优化并迭代计算机视觉人工智能技术,乃至推动、赋能场景落地和产业发展,实现技术与产业双轮驱动。

具体来讲,目标检测技术的改进和突破,在提升系统精度与速度的同时,将成为城市大脑、智能机器人、智能手机、智慧金融、新零售等行业发展的重要推手;而上述行业作为“棋子”共同汇聚成旷视科技 AI+IoT 这盘大棋。

背景

最近几年,深度神经网络处理目标检测任务的巨大突破有目共睹。实际做法是目标检测算法为一张给定图像生成一系列边界框,同时分类标注每个目标。但是,对于卷积神经网络而言,直接无序地生成任意数量的预测框并非无足轻重,由此锚点框的思想得以引入,在目标检测系统中获得广泛应用。通过运用分而治之的方法,锚点框成功立足于绝大多数当前最优的目标检测框架之中。

简单来说,锚点框把向量空间(包括位置、大小、类别等)分割为若干个离散的(有可能重叠的)方块(bin,即 ground truth box),并通过锚点框函数为每个相应的 bin 生成一个目标框。X 表示从输入图像提取的特征,那么,第 i 个 bin 的锚点框函数可写为:

其中  是先验(prior,也称为 anchor box),用来描述与第 i 个 bin 相关联的目标框的一般属性,比如平均位置/大小和分类标签;同时, 判别是否存在一个目标框与第 i 个 bin 相关联, 则把目标框(如果有)的相对位置回归到先验  b_i;θ_i 表示锚点框函数的参数

为借助深度神经网络建模锚点框,枚举是一个直接的策略,并为目前大多数方法所采用。首先,大量预定义 priors B 通过手工选取,或者统计方法(比如聚类);接着,对于每个,锚点框函数  将分别由一个或多个神经网络层实现。不同锚点框函数的权重是独立的,或者部分共享。

很明显,这种框架的策略(即锚点框的选择以及锚点框函数的定义)在训练和推理之中皆不够灵活。此外,可用锚点框的数量也受制于预定义的 B。

设计思想

本文中,旷视科技提出一种灵活的替代方案建模锚点框。在这一新框架中,锚点框函数由 b_i 动态生成,而不是通过枚举每一个可能的边界框 prior b_i 并分别建模相应的锚点框函数。它的实现源自引入了一个全新的模块——MetaAnchor,可写为:

其中, 称之为锚点框函数生成器,它把任一边界框 prior b_i 映射到相应的锚点框函数 ,w 表示参数

值得注意的是,MetaAnchor 的先验集 B 不必是预定义的,而是以自定义的方式工作——在推断时,用户可以指定任意 anchor box,生成相应的锚点框函数,并用其预测目标框。接下来,本文会把它与权重预测机制一起展示。锚点框函数生成器可实现优雅部署,嵌入到现有的目标检测框架达成联合优化。

总之,相较于传统预定义的锚点框策略,本文发现,MetaAnchor 具有以下潜在的优势:

1)MetaAnchor 对于 anchor 设置和边界框分布更为鲁棒。在传统方法中,预定义的 anchor box B 经常需要小心设计——锚点框太少可能不足以涵盖稀少的框,或者导致粗糙的预测;但是更多的 anchor 意味着参数更多,有造成过拟合的风险。

此外,很多传统方法使用独立的权重建模不同的锚点框函数,因此很可能在训练时,不相关联于 ground truth 目标框的锚点框会输出较差的结果。与此相反,MetaAnchor 可以在训练时随机采样任意形态的 anchor box,以涵盖不同种类的目标框,同时参数数量保持不变。

进而,根据等式(2),同一权重 w 生成不同的锚点框函数,因此所有的训练数据可以调优所有的模型参数,这意味着对训练框的分布更加鲁棒。

2)MetaAnchor 有助于弥补不同数据集之间的边界框分布的差距。在传统框架中,anchor box B 是预定义的,在训练和测试之时保持不变,这并非最优方案,如果训练集和测试集的边界框分布不同。而在 MetaAnchor  中,锚点框可被灵活地自定义以适应目标数据集(比如,通过网格搜索),而无需重新训练整个检测器。

方法

Anchor 函数生成器

在 MetaAnchor 框架中,如等式(2)所示,锚点框函数生成器  把 b_i 映射到相应的锚点框函数,从而扮演了关键角色。为利用神经网络建模 ,首先要假设对于不同的  b_i,锚点框函数共享同一方程,但是参数不同,这意味着:

接着,由于每一个锚点框函数的区别仅在于其参数,生成器由此可预测 ,如下所示:

其中 θ^* 代表共享参数(独立于 b_i 且同样可学习),残差项取决于锚点框 b_i。

本文通过一个简单的二层神经网络实现

这里,W_1 和 W_2 皆是可学习参数是激活函数(文中使用 ReLU)。隐藏神经元的数量用 m 表示,实际上 m 通常远小于  的维数,这导致预测的权重聚集在一个明显低阶的子空间,这就是为什么在等式(4)中把  方程化为一个残差项,而不是直接使用。

架构细节

理论上讲,MetaAnchor 适用于绝大多数现有的基于锚点框的目标检测框架,但是对两步检测器的最后预测似乎并无助益,遂把主要研究精力聚焦于单步检测器,并以当前最优的单步检测器——RetinaNet 为例展示 MetaAnchor 架构。

图 1:“把 MetaAnchor 应用于 RetinaNet” 示意图。

图 1(a)是 RetinaNet 示意图。简单来讲,5 层的特征  提取自一个 “U 形”的基础网络,其中 P_3 表示最优的特征图(即分辨率最高),P_7 则是最粗糙的。对于每一层特征,附加一个名为“检测头”的子网络生成检测结果。锚点框函数在每个检测头的尾部被定义。

为应用 MetaAnchor,需要重新设计原始的锚点框函数,保证其参数生成于自定义锚点框 b_i。首先要考虑如何编码 b_i,一个包含位置、尺寸、分类标签等信息的向量。在本文实验中,b_i 主要于锚点框尺寸相关,并表示为:

其中 ah_i 和 aw_i 是相应锚点框的高和宽,(AH,AW)是作为正则化项的“标准锚点框”的尺寸。

图 1(b)示意了 MetaAnchor 在 RetinaNet 每个检测头的用法。在 MetaAnchor 中,通过两个独立的锚点框函数生成器  和  分别预测其权重。在  的设计中,隐藏神经元数量 m 设置为 128。此外,在 MetaAnchor 中, 过滤器的数量减为 80, 过滤器的数量减为 4。

值得注意的是, RetinaNet 中所有检测头的相应层的权重相同,甚至包括代表锚点框函数的最后层。为与上述设计一致,MetaAnchor 为每一层级的检测头使用相同的锚点框生成器函数  和 ,同时“标准框”(AH,AW)在不同层级保持不同。在本文实验中,最低层级(即 P_3)标准框尺寸是所有 anchor box 尺寸的平均值,如表 1 最后一列所示。

表 1:Anchor box。

实验

本文主要在 COCO 目标检测任务中评估 MetaAnchor 的表现。如上所述,基础检测框架使用 RetinaNet,其中特征提取器使用在 ImageNet 分类数据集上预训练的 ResNet-50。

除非特别说明,MetaAnchor 使用锚点框函数生成器的独立于数据的变体。训练时,MetaAnchor 子网络借助基础检测器联合优化。MetaAnchor 不使用批归一化

COCO 目标检测结果

本文在 COCO-full 数据集上对比了嵌入与不嵌入 MetaAnchor 的 RetinaNet 的表现。训练和测试的输入分辨率都是 600x,基础特征提取器是 ResNet-50,性能指标采用 COCO-minival 数据集的标准 mmAP。

表 8:在 COCO-minival 上的结果

表 8 给出了结果。有趣的是,本文复现的 RetinaNet 模型性能优于 RetinaNet 原论文 1.8%。相比之下, MetaAnchor 模型(即嵌入 MetaAnchor 的 RetinaNet)在 COCO-minival 上取得了 37.5% mmAP,性能优于本文实现的原始 RetinaNet 1.7%,优于 RetinaNet^*(复现 RetinaNet 的最好结果) 0.6%;而借助数据的 MetaAnchor 模型则进一步把性能提升 0.4%。

另外,本文还印证了推理可通过 greedy search 轻松实现涨点而无需重训练。

图 2 可视化了由 MetaAnchor 模型预测的一些检测结果,可以明显看到检测框的形状随着自定义锚点框 b_i 而变化。

图 2:不同自定义锚点框之下的检测结果。

本文同样在 PASCAL VOC 2017 数据集上评估了这一方法。

为进一步验证 MetaAnchor,本文又在 YOLO v2 上做了实现。在 MetaAnchor 中,“标准框” (AH,AW)是(4.18,4.69)。结果如表 7 所示。很明显,MetaAnchor 优于 YOLO v2 baseline,并借助 greedy search 实现性能涨点。

表 7:嵌入MetaAnchor 的 YOLO v2 在 COCO-minival 上的结果。

结论

旷视科技提出了一个全新而灵活的锚点框机制,称之为 MetaAnchor,它为目标检测框架而生,其锚点框函数可由任意自定义的先验框动态生成。

加上权重预测,MetaAnchor 可与大多数基于锚点框的目标检测系统协同工作,比如当前最优的单步检测器 RetinaNet。相较于预定义锚点框方法,实验证明 MetaAnchor 对于锚点框设置和边界框分布更为鲁棒,并在迁移任务上变现出潜力。

COCO 目标检测任务的实验表明,MetaAnchor 在多个维度连续优于同类方法。

参考文献

  • D. Ha, A. Dai, and Q. V. Le. Hypernetworks. arXiv preprint arXiv:1609.09106, 2016.

  • R. Hu, P. Dollár, K. He, T. Darrell, and R. Girshick. Learning to segmentevery thing. arXiv preprint arXiv:1711.10370, 2017. 

  • M. Jaderberg, K. Simonyan, A. Zisserman, et al. Spatial transformer networks. In Advances in neural information processing systems, pages 2017–2025, 2015. 

  • T.-Y. Lin, P. Goyal, R. Girshick, K. He, and P. Dollár.Focalloss for dense object detection.

  • arXiv preprint arXiv:1708.02002, 2017. 

  • J.Redmon,S.Divvala,R.Girshick,andA.Farhadi.You only look once:Unified,real-timeobject detection. In Proceedings of the IEEE conference on computer vision and pattern recognition, pages 779–788, 2016. 

  • J. Redmon and A. Farhadi. Yolo9000: better, faster, stronger. arXiv preprint, 2017. 

旷视科技
旷视科技

Power Human with AI

理论NIPS旷视科技MetaAnchor目标检测计算机视觉深度神经网络卷积神经网络图像提取
41
相关数据
网格搜索技术

网格搜索是一项模型超参数优化技术,常用于优化三个或者更少数量的超参数,本质是一种穷举法。对于每个超参数,使用者选择一个较小的有限集去探索。然后,这些超参数笛卡尔乘积得到若干组超参数。网格搜索使用每组超参数训练模型,挑选验证集误差最小的超参数作为最好的超参数。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

人工智能技术

在学术研究领域,人工智能通常指能够感知周围环境并采取行动以实现最优的可能结果的智能体(intelligent agent)

基准技术

一种简单的模型或启发法,用作比较模型效果时的参考点。基准有助于模型开发者针对特定问题量化最低预期效果。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

分类数据技术

一种特征,拥有一组离散的可能值。以某个名为 house style 的分类特征为例,该特征拥有一组离散的可能值(共三个),即 Tudor, ranch, colonial。通过将 house style 表示成分类数据,相应模型可以学习 Tudor、ranch 和 colonial 分别对房价的影响。 有时,离散集中的值是互斥的,只能将其中一个值应用于指定样本。例如,car maker 分类特征可能只允许一个样本有一个值 (Toyota)。在其他情况下,则可以应用多个值。一辆车可能会被喷涂多种不同的颜色,因此,car color 分类特征可能会允许单个样本具有多个值(例如 red 和 white)。

YOLO技术

YOLO 模型最早是由 Joseph Redmon 等人在 2015 年发布的,并在随后的两篇论文中进行了修订。

计算机视觉技术

计算机视觉(CV)是指机器感知环境的能力。这一技术类别中的经典任务有图像形成、图像处理、图像提取和图像的三维推理。目标识别和面部识别也是很重要的研究领域。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

图像提取技术

图像提取包括图像的特征检测和特征提取过程。 特征检测是计算机视觉和图像处理中的一个概念。它指的是使用计算机提取图像信息,决定每个图像的点是否属于一个图像特征。特征检测的结果是把图像上的点分为不同的子集,这些子集往往属于孤立的点、连续的曲线或者连续的区域。 特征被检测后它可以从图像中被提取出来。这个过程可能需要许多图像处理的计算机。其结果被称为特征描述或者特征向量。 低层次的特征提取方法包括:边缘检测、角检测、区域检测、脊检测等,还有曲度检测以及运动检测。 高层次的特征提取方法包括:1.固定形状匹配方法如阈值、模板匹配和霍夫变换等;2.灵活变形分析方法。 进一步特征提取与降维有关,常用的降维技术有主成分分析法、独立成分分析法、等距特征映射等。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

神经元技术

(人工)神经元是一个类比于生物神经元的数学计算模型,是神经网络的基本组成单元。 对于生物神经网络,每个神经元与其他神经元相连,当它“兴奋”时会向相连的神经元发送化学物质,从而改变这些神经元的电位;神经元的“兴奋”由其电位决定,当它的电位超过一个“阈值”(threshold)便会被激活,亦即“兴奋”。 目前最常见的神经元模型是基于1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神经元模型”。 在这个模型中,神经元通过带权重的连接接处理来自n个其他神经元的输入信号,其总输入值将与神经元的阈值进行比较,最后通过“激活函数”(activation function)产生神经元的输出。

正则化技术

当模型的复杂度增大时,训练误差会逐渐减小并趋向于0;而测试误差会先减小,达到最小值后又增大。当选择的模型复杂度过大时,过拟合现象就会发生。这样,在学习时就要防止过拟合。进行最优模型的选择,即选择复杂度适当的模型,以达到使测试误差最小的学习目的。

批归一化技术

批归一化(Batch Normalization,BN)由谷歌于2015年提出,是一个深度神经网络训练的技巧,它不仅可以加快模型的收敛速度,还能在一定程度上缓解深层网络中的“梯度弥散”问题,从而使得训练深层网络模型更加容易和稳定。目前BN已经成为几乎所有卷积神经网络的标配技巧了。从字面意思看来Batch Normalization(简称BN)就是对每一批数据进行归一化。

图网技术

ImageNet 是一个计算机视觉系统识别项目, 是目前世界上图像识别最大的数据库。

深度神经网络技术

深度神经网络(DNN)是深度学习的一种框架,它是一种具备至少一个隐层的神经网络。与浅层神经网络类似,深度神经网络也能够为复杂非线性系统提供建模,但多出的层次为模型提供了更高的抽象层次,因而提高了模型的能力。

推荐文章
你好,请问这篇论文的代码会开源么?