论文: 《Rich feature hierarchies for accurate object detection and semantic segmentation》 发表年份:2013 RCNN(Regions with CNN features)是将CNN用到目标检测的一个里程碑,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。 Region proposal是一类传统的候选区域生成方法,论文使用 selective search 生成大约2k个候选区域(先用分割手段将图片完全分割成小图,再通过一些合并规则,将小图均匀的合并,经过若干次合并,直到合并成整张原图),然后将proposal的图片进行归一化(大小为217*217)用于CNN的输入。 对每个Region proposal使用CNN提取出一个4096维的特征向量 3.1 CNN提取的特征输入到SVM分类器中,对region proposal进行分类,与 ground-truth box的IoU大于0.5的为正样本,其余为负样本。论文中每个图片正样本个数为32负样本个数为96。得到所有region proposals的对于每一类的分数,再使用贪心的非极大值抑制方法对每一个SVM分类器类去除相交的多余的框。 3.2 使用一个线性回归器对bounding box进行修正,proposal bounding box的大小位置与真实框的转换关系如下: 综上,整个网络结构如下:R-CNN在当年无论是在学术界还是工业界都是具有创造性的,但是现在来看RCNN主要存在下面三个问题: 1)多个候选区域对应的图像需要预先提取,占用较大的磁盘空间; 2)针对传统CNN需要固定尺寸(217*217)的输入图像,crop/warp(归一化)产生物体截断或拉伸,丧失或者改变了图片本身的信息; 3)每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的CNN特征提取导致巨大的计算浪费。论文: 《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》 发表年份:2015 既然CNN特征提取如此耗时,为什么还要对每个Region proposal进行特征提取,而不是整体进行特征提取,然后在分类之前做一次Region的截取呢,于是就诞生了SPP-Net。 1.解决了CNN需要固定大小输入的变换后导致图片信息丢失或者变化的问题 2.对于一张图,只需要进行一次的特征提取运算,避免了R-CNN中特征重复计算的问题 CNN为什么需要固定大小的输入? R-CNN中会对图片缩放成217*217的固定大小,从而导致物体发生形变(如下图的上部分所示)。与前面不同,SPP-Net是加在最后一个卷积层的输出的后面,使得不同输入尺寸的图像在经过前面的卷积池化过程后,再经过SPP-net,得到相同大小的feature map,最后再经过全连接层进行分类 以AlexNet为例,经CNN得到conv5输出的任意尺寸的feature map,图中256-d是conv5卷积核的数量。将最后一个池化层pool5替换成SPP layer,将feature map划分成不同大小的网格,分别是`4x4`,`2x2`,`1x1`,每个网格中经过max pooling,从而得到4x4+2x2+1x1=21个特征值,最后将这21个特征值平铺成一个特征向量作为全连接层的输入,这种方式就是 空间金字塔池化 。 与R-CNN不同,SPP-Net中是将整张图片进行一次特征提取,得到整张图片的feature map,然后对feature map中的候选区域(RoIs)经过空间金字塔池化,提取出固定长度的特征向量进入全连接层。 原图候选区域与特征图上的RoIs的转换流程:综上,整个网络结构如下图。SPP-Net相比R-CNN做了很多优化,但现在来看依然存在一些问题,主要如下:论文: 《Fast R-CNN》 发表年份:2015 Fast R-CNN是对R-CNN的一个提升版本,相比R-CNN,训练速度提升9倍,测试速度提升213倍,mAP由66%提升到66.9%主要改进点如下:多任务损失函数(Multi-task Loss): Fast R-CNN将分类和边框回归合并,通过多任务Loss层进一步整合深度网络,统一了训练过程。分为两个损失函数:分类损失和回归损失。分类采用softmax代替SVM进行分类,共输出N(类别)+1(背景)类。softmax由于引入了类间竞争,所以分类效果优于SVM,SVM在R-CNN中用于二分类。回归损失输出的是4*N(类别),4表示的是(x,y,w,h分别表示候选框的中心坐标和宽、高)。 SVD对全连接层进行分解: 由于一张图像约产生2000个RoIs,将近一半多的时间用在全连接层计算,为了提高运算速度,使用 SVD(奇异值分解) 对全连接层进行变换来提高运算速度。一个大的矩阵可以近似分解为三个小矩阵的乘积,分解后的矩阵的元素数目远小于原始矩阵的元素数目,从而达到减少计算量的目的。通过对全连接层的权值矩阵进行SVD分解,使得处理一张图像的速度明显提升。 论文: 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》 发表年份:2016 SPP-Net和Fast R-CNN都有一个非常耗时的候选框选取的过程,提取候选框最常用的SelectiveSearch方法,提取一副图像大概需要2s的时间,改进的EdgeBoxes算法将效率提高到了0.2s,但是还是比较耗时。 Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search,同时引入anchor box应对目标形状的变化问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal) Region Proposal Network: RPN的核心思想是候选框的提取不在原图上做,而是在feature map上做,这意味着相比原图更少的计算量。在Faster R-CNN中,RPN是单独的分支,通过RPN提取候选框并合并到深度网络中。多尺度先验框: RPN网络的特点在于通过滑动窗口的方式实现候选框的提取,每个滑动窗口位置生成9个候选窗口(不同尺度、不同宽高),提取对应9个候选窗口(anchor)的特征,用于目标分类和边框回归,与FastRCNN类似。anchor的生成规则有两个:调整宽高比和放大。如下图所示,假设base_size为16,按照1:2,1:1,2:1三种比例进行变换生成下图上部分三种anchor;第二种是将宽高进行三种倍数放大,2^3=8,2^4=16,2^5=32倍的放大,如16x16的区域变成(16*8)*(16*8)=128*128的区域,(16*16)*(16*16)=256*256的区域,(16*32)*(16*32)=512*512的区域。训练过程中,涉及到的候选框选取,选取依据如下: 从模型训练的角度来看,通过使用共享特征交替训练的方式,达到接近实时的性能,交替训练方式为: Faster R-CNN实现了端到端的检测,并且几乎达到了效果上的最优,有些基于Faster R-CNN的变种准确度已经刷到了87%以上。速度方面还有优化的余地,比如Yolo系列(Yolo v1/v2/v3/v4)。对于目标检测,仍处于一个探索和高度发展的阶段,还不断有更优的模型产生。
(该分享持续更新中...) 这篇论文主要有三个贡献点: 目前,物体检测、语义分割等技术都是集中在如何在图片上检测出物体,但是忽略了物体与物体之间的关系。一项最近的工作提出了用图(场景图)来代表一个场景。场景图是图像的可解释的结构化表示,可以支持更高级别的视觉智能任务,如captioning。 将每一对节点(对象)视为潜在的边(关系)的自然方法本质上是对全连通图的推理,这种方法在建模上下文关系时通常是有效的,但对对象数量的缩放效果很差(二次),很快就变得不切实际。嘴朴素的修正方法是采用随机采样,虽然它是efficient,但不是effective,因为对象之间的相互作用的分布远远不是随机的。 作者的解决办法: 图1.给一张图片,模型从图片中抽取出objects(a), 所有节点考虑可能存在的边(b),通过一个医学系的方法‘relatedness’裁去不可能发关系,从而产生更稀疏的候选图结构(c)。最后,利用aGCN去集成全局信息并且更新物体节点和关系的标签(d) 在这项工作中,我们提出了一个新的框架,Graph R-CNN,它通过两种机制有效地利用对象关系规则来智能地稀疏化和推理候选场景图。我们的模型可以分解为三个逻辑阶段:1)对象节点提取,2)关系边缘剪枝,3)图上下文集成,如图1所示。 在对象节点提取阶段,我们使用了一个标准的对象检测的pipeline(faster rcnn)。这就产生了一组localized object regions,如图1b所示。我们将在剩下的pipeline中引入两个重要的新特性,以合并上面讨论的对象关系中的真实世界的规则性。首先,我们介绍了一个关系建议网络(RePN),该网络能够有效地计算对象对之间的关联分数,这些分数被用来智能地修剪不太可能的场景图连接(与之前工作中的随机修剪不同),剪枝后的稀疏图如图1c所示。其次,给出了稀疏连接的候选场景图,我们应用了一个注意图卷积网络(aGCN)来在整个图中传播higher-order上下文——更新每个对象及其基于其邻居的关系表示。与现有的工作相比,我们预测每个节点的边attention,使我们的方法能够学习调节不可靠或不太可能的边缘之间的信息流。我们在图1d中显示了细化的图形标签和边缘attention(与边缘宽度成比例)。 现有对于场景图生成的指标是基于召回⟨主题、谓词、对象⟩三元组或给定ground truth的object localizations的对象和谓词。为了揭示这些度量标准存在的问题,考虑一个方法,该方法将图1a中的boy误认为是man,但在其他方面识别出他是1)站在消防栓后面,2)靠近一辆汽车,3)穿着一件毛衣。在基于三元组的度量标准下,这个小错误(boy vs man)将被严重惩罚,尽管大多数boy的关系被正确识别。尽管提供ground-truth区域的度量方法通过严格关注关系预测来回避这个问题,但是它不能准确地反映整个场景图生成系统的测试时性能。 为了解决这种不匹配,我们引入了一种新的评估度量(SGGen+),它更全面地评估场景图生成的性能,包括对象、属性(如果有的话)和关系。我们提出了度量SGGen +计算总的recall对于独立实体(对象和谓词),pair 实体⟨对象,属性⟩(如果有的话),和三元组实体⟨主题、谓词、对象⟩。我们在这个新的度量下报告现有方法的结果,发现我们的方法也显著地优于最先进的方法。更重要的是,这个新的度量为生成的场景图和真实场景图之间的相似性提供了一个更鲁棒、更全面的度量。 具体来说,本工作通过引入一种新的模型(graph R-CNN)来解决场景图生成问题,该模型可以利用对象关系的规律性,并提出了一种更全面的场景图生成评价指标(SGGen+)。我们将我们的模型与现有的标准度量方法进行基准测试,而这个新度量方法的性能优于现有方法。 利用上下文来提高场景理解的想法在计算机视觉中有着悠久的历史[16,27,28,30]。最近,Johnson等人受到图形界研究的表示方法的启发,提出了从图像中提取场景图的问题,这将对象检测的任务[6,7,22,31,32]概括为也检测对象的关系和属性。 已经提出了许多方法来检测对象及其关系。尽管这些工作中的大多数指出,对场景图中二次关系的推理是棘手的,但每个都采用了启发式方法,如随机抽样来解决这个问题。我们的工作是第一个引入一个可训练的关系建议网络(RePN),它学会了在不牺牲efficacy的情况下从图中删除不可能的关系边缘。RePN提供了高质量的候选关系,我们发现它提高了场景图生成的整体性能。 大多数场景图生成方法还包括上下文传播和对候选场景图进行推理的机制,以细化最终的标记。在[40]中,Xu等人将问题分解为两个子图,一个用于对象,另一个用于关系,并执行消息传递。类似地,在[17]中,作者提出了两种消息传递策略(并行顺序),用于在对象和关系之间传播信息。Dai等人将场景图生成过程建模为条件随机场(CRF)的推理。Newell等人提出直接从图像像素中生成场景图,而不需要使用基于关联图嵌入的对象检测器。在我们的工作中,我们开发了一种新的注意图卷积网络(aGCN)来更新节点和关系表示,通过在候选场景图的节点之间传播上下文来操作视觉和语义特征。虽然在功能上类似于上述基于消息传递的方法,但aGCN是高效的,可以学习将注意力放在可靠的边缘,并减弱不太可能的影响。 以往的许多方法都注意到在场景图生成过程中具有很强的规律性,从而激发了我们的方法。在[23]中,Lu等人整合了语言中的语义先验,以改进对对象之间有意义关系的检测。同样,Li等人[18]证明了region caption也可以为场景图生成提供有用的上下文。与我们的动机最相关的是,Zeller等人将motifs的概念(即经常出现的图结构)形式化。并在VG数据集[14]中检测它们的出现的概率。作者还提出了一个令人惊讶的强基线,它直接使用频率先验来明确地综合图结构中的规律来预测关系。 我们的关系建议网络(Relationship Proposal Network, RePN)受到了RPN的启发,与用于对象检测的faster R-CNN[32]的区域建议网络(region Proposal Network, RPN)紧密相关。我们的RePN在本质上也类似于最近提出的关系建议网络(Rel-PN)[45]。这些方法之间有许多细微的差别。Rel-PN模型独立地预测主题、对象和谓词的建议,然后重新对所有有效的三元组进行评分,而我们的RePN根据对象生成关系,允许它学习对象对关系的偏差。此外,他们的方法是类无关的,并没有用于场景图生成。 GCNs最初是在[13]的半监督学习环境中提出的。GCNs将图数据上的复杂计算分解为一系列局部化操作(通常只涉及相邻节点),用于每个节点的每个时间步。在计算之前,结构和边缘强度通常是固定的。为了完整起见,我们注意到即将出版的出版物[36]同时独立地开发了一个类似的GCN注意机制(如aGCN),并在其他(非计算机视觉)上下文中显示了它的有效性。 在这项工作中,我们将场景图建模为包含图像区域、关系及其标签的图。 代表image, 代表nodes集合(一个node对应一个localized object region), 代表物体间的关系, 分别代表object和relationship的labels。因此,我们的目标是为 建模,在我们的工作中,我们把场景图的生成分解为三部分: 将图的构造(节点和边)与图的标注分离开来。这个因式分解背后的直觉很简单。首先,object region proposal 通常使用现成的对象检测系统(如faster rcnn[32])进行建模,以生成候选区域。值得注意的是,现有的方法通常将第二个关系建议项 建模为顶点 之间潜在边的均匀随机抽样。相反,我们提出了一个关系建议网络(RePN)来直接建模 ——使我们的方法成为第一个允许学习整个生成过程端到端。最后,图标记过程 通常被视为迭代求精过程。模型的pipeline如图2所示:每一个object proposal 都与一个空间区域 , 一个合并的特征向量 , 一个初始化估计标签分布 over 相关联。我们将对于所有n个proposals的向量集合表示为矩阵 以及 3.2 Relation Proposal Network 给定上一步提出的n个对象节点,它们之间可能有 个连接;然而,正如前面所讨论的,由于真实对象交互中的规则性,大多数对象对不太可能有关系。为了对这些规律进行建模,我们引入了一个关系建议网络(RePN),该网络能够有效地估计对象对之间的关联性。通过对不太可能关系的边缘进行剪枝,可以有效地稀疏化候选场景图,保留可能的边缘,抑制不太可能的边缘带来的噪声。 在这篇论文中,我们利用估计的类别分布( )来推断关联性——本质上是学习软类别关系的先验。这种选择与我们的直觉一致,即与其他类相比,某些类相对不太可能交互。具体,给定初始对象分类分布 ,我们给所有的 有向对 评分, 计算 时的相关性,其中 是一个习得的相关性对函数。 的一个直接实现可以将连接[p^o_i, p^o_j]作为输入传递给一个多层感知器,该感知器输出分数。然而,考虑到对象对的平方数,这种方法将消耗大量的内存和计算。为了避免这种情况,我们考虑一个非对称的内核函数: 分别代表在关系中主语和宾语对映射函数。这个分解使得,仅使用 的两个投影过程,然后执行一次矩阵乘法就能获得分数矩阵 。对于 和 ,我们使用两个多层感知器(mlp)与相同的架构(但不同的参数)。我们还对分数矩阵S进行了sigmoid操作,使得每一个元素都为0~1之间。 在获得分数矩阵后,我们将其降序排序,然后选择前K对。然后,我们使用非最大抑制(NMS)来过滤出与其他对象有明显重叠的对象对。每个关系都有一对边界框,组合顺序很重要。我们计算两个对象对 and 之间对重叠: 计算两个box交集的区域, 计算并集区域。剩余的m个对象对被认为是具有意义关系E的候选对象。利用E,我们得到了一个图 ,它比原来的全连通图稀疏得多。随着图的边的提出,我们还通过从每个对象对的联合框中提取特征,得到所有m个关系的可视化表示 。 为了整合由图结构提供的上下文信息,我们提出了一个注意图卷积网络(aGCN)。在描述我们提出的aGCN之前,让我们简要回顾一下“普通的”GCN,其中每个节点 都有一个表示 如在[13]中提出的那样。简单,目标节点图中,相邻节点的表示 首先通过学习改变线性变换矩阵 .然后,这些转换表示与预先确定的权值α聚集,紧随其后的是一个非线性函数σ(ReLU [25])。这种分层传播可以写成: 或者我们可以把节点整合进一个矩阵中,就可以得到:与i不相邻的节点设定为0,并且设定αii为1。在传统的GCN中,图中的连接是已知并且系数向量αi是基于对称规范化邻接矩阵的特性预设的。 在这篇论文中,我们将传统的GCN拓展了attention版本,通过调节α。为了能够从节点features预测attention,我们通过一个拼接的节点feature学习了一个两层的MLP,并且对得到的分数进行一次softmax。对于节点i的attention是:and 是习得参数,[·, ·] 是拼接操作。通过定义,我们设定 and 。由于注意力机制是节点特征的函数,每次迭代都会导致注意力的改变,从而影响后续的迭代。 回想一下,在前面的小节中,我们有一组N个对象区域和m个关系。在此基础上,我们构造了一个图G,其中节点对应于对象和关系建议。我们在关系节点及其关联对象之间插入边。我们还在所有对象节点之间直接添加了跳转连接边。这些连接允许信息直接在对象节点之间流动。最近的研究表明,对目标相关性进行推理可以提高检测的性能。我们将aGCN应用于此图,基于全局上下文更新对象和关系表示。 注意到我们的图捕获到不同类型到连接(i.e.object ↔ relationship, relationship ↔ subject and object ↔ object)。此外,每个连接之间的信息流可能是不对称的(the 信息量 of subject on relationship might be quite different from relationship to subject)。我们学习了每种类型和顺序的不同转换——将节点类型a到节点类型b的线性转换表示为 ,其中s=subject、o=objects和r=relationships。Object node的representation的更新公式如下(object features为 , relationship features为 ):with and similarly for relationship nodes as: 一个开放的选择是如何初始化object and relationship node represenstions ,它可能被设置为任何intermediate feature representations,甚至是对应类标签的pre-softmax输出。在实践中,我们同时运行可视化的和语义化的aGCN计算——一个具有可视化的特性,另一个使用pre-softmax输出。通过这种方式,我们既可以推断出较低层的视觉细节,也可以推断出较高级别的语义共现(即汽车轮子)。进一步地,我们把语义aGCN的注意力放在视觉aGCN上——基于视觉线索有效地调节语义信息流。这也加强了两个图中表示的真实对象和关系以相同的方式与其他对象交互。 3.4 Loss Function 在Graph R-CNN,我们把场景图生成过程分解成三个子过程: 。在训练阶段,这些子过程都是使用监督训练。对于 ,我们用RPN相同的损失(binary cross entropy loss on proposals,regression loss for anchors)。对于 ,我们使用另一个binary cross entropy loss on the relation proposals。对于最后的场景图生成 ,两个muti-class cross entropy losses是被用于object classification and predicate classification。 场景图生成是一个结构化的图上预测问题,如何正确、有效地对预测进行评价是当前场景图生成研究中尚未解决的问题。我们注意到图论[5]对基于最小图编辑距离的图相似度进行了深入的研究;然而,计算准确的解决方案是np完全和ap近似的APX-hard[20]。 以前的工作通过在[40]中引入一个简单的基于三元组回归的度量来评估场景图的生成,从而绕过了这些问题。根据这个指标,我们将称之为SGGen, the ground truth of 场景图表示为一组
论文: 《Rich feature hierarchies for accurate object detection and semantic segmentation》 发表年份:2013 RCNN(Regions with CNN features)是将CNN用到目标检测的一个里程碑,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。 Region proposal是一类传统的候选区域生成方法,论文使用 selective search 生成大约2k个候选区域(先用分割手段将图片完全分割成小图,再通过一些合并规则,将小图均匀的合并,经过若干次合并,直到合并成整张原图),然后将proposal的图片进行归一化(大小为217*217)用于CNN的输入。 对每个Region proposal使用CNN提取出一个4096维的特征向量 3.1 CNN提取的特征输入到SVM分类器中,对region proposal进行分类,与 ground-truth box的IoU大于0.5的为正样本,其余为负样本。论文中每个图片正样本个数为32负样本个数为96。得到所有region proposals的对于每一类的分数,再使用贪心的非极大值抑制方法对每一个SVM分类器类去除相交的多余的框。 3.2 使用一个线性回归器对bounding box进行修正,proposal bounding box的大小位置与真实框的转换关系如下: 综上,整个网络结构如下:R-CNN在当年无论是在学术界还是工业界都是具有创造性的,但是现在来看RCNN主要存在下面三个问题: 1)多个候选区域对应的图像需要预先提取,占用较大的磁盘空间; 2)针对传统CNN需要固定尺寸(217*217)的输入图像,crop/warp(归一化)产生物体截断或拉伸,丧失或者改变了图片本身的信息; 3)每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的CNN特征提取导致巨大的计算浪费。论文: 《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》 发表年份:2015 既然CNN特征提取如此耗时,为什么还要对每个Region proposal进行特征提取,而不是整体进行特征提取,然后在分类之前做一次Region的截取呢,于是就诞生了SPP-Net。 1.解决了CNN需要固定大小输入的变换后导致图片信息丢失或者变化的问题 2.对于一张图,只需要进行一次的特征提取运算,避免了R-CNN中特征重复计算的问题 CNN为什么需要固定大小的输入? R-CNN中会对图片缩放成217*217的固定大小,从而导致物体发生形变(如下图的上部分所示)。与前面不同,SPP-Net是加在最后一个卷积层的输出的后面,使得不同输入尺寸的图像在经过前面的卷积池化过程后,再经过SPP-net,得到相同大小的feature map,最后再经过全连接层进行分类 以AlexNet为例,经CNN得到conv5输出的任意尺寸的feature map,图中256-d是conv5卷积核的数量。将最后一个池化层pool5替换成SPP layer,将feature map划分成不同大小的网格,分别是`4x4`,`2x2`,`1x1`,每个网格中经过max pooling,从而得到4x4+2x2+1x1=21个特征值,最后将这21个特征值平铺成一个特征向量作为全连接层的输入,这种方式就是 空间金字塔池化 。 与R-CNN不同,SPP-Net中是将整张图片进行一次特征提取,得到整张图片的feature map,然后对feature map中的候选区域(RoIs)经过空间金字塔池化,提取出固定长度的特征向量进入全连接层。 原图候选区域与特征图上的RoIs的转换流程:综上,整个网络结构如下图。SPP-Net相比R-CNN做了很多优化,但现在来看依然存在一些问题,主要如下:论文: 《Fast R-CNN》 发表年份:2015 Fast R-CNN是对R-CNN的一个提升版本,相比R-CNN,训练速度提升9倍,测试速度提升213倍,mAP由66%提升到66.9%主要改进点如下:多任务损失函数(Multi-task Loss): Fast R-CNN将分类和边框回归合并,通过多任务Loss层进一步整合深度网络,统一了训练过程。分为两个损失函数:分类损失和回归损失。分类采用softmax代替SVM进行分类,共输出N(类别)+1(背景)类。softmax由于引入了类间竞争,所以分类效果优于SVM,SVM在R-CNN中用于二分类。回归损失输出的是4*N(类别),4表示的是(x,y,w,h分别表示候选框的中心坐标和宽、高)。 SVD对全连接层进行分解: 由于一张图像约产生2000个RoIs,将近一半多的时间用在全连接层计算,为了提高运算速度,使用 SVD(奇异值分解) 对全连接层进行变换来提高运算速度。一个大的矩阵可以近似分解为三个小矩阵的乘积,分解后的矩阵的元素数目远小于原始矩阵的元素数目,从而达到减少计算量的目的。通过对全连接层的权值矩阵进行SVD分解,使得处理一张图像的速度明显提升。 论文: 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》 发表年份:2016 SPP-Net和Fast R-CNN都有一个非常耗时的候选框选取的过程,提取候选框最常用的SelectiveSearch方法,提取一副图像大概需要2s的时间,改进的EdgeBoxes算法将效率提高到了0.2s,但是还是比较耗时。 Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search,同时引入anchor box应对目标形状的变化问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal) Region Proposal Network: RPN的核心思想是候选框的提取不在原图上做,而是在feature map上做,这意味着相比原图更少的计算量。在Faster R-CNN中,RPN是单独的分支,通过RPN提取候选框并合并到深度网络中。多尺度先验框: RPN网络的特点在于通过滑动窗口的方式实现候选框的提取,每个滑动窗口位置生成9个候选窗口(不同尺度、不同宽高),提取对应9个候选窗口(anchor)的特征,用于目标分类和边框回归,与FastRCNN类似。anchor的生成规则有两个:调整宽高比和放大。如下图所示,假设base_size为16,按照1:2,1:1,2:1三种比例进行变换生成下图上部分三种anchor;第二种是将宽高进行三种倍数放大,2^3=8,2^4=16,2^5=32倍的放大,如16x16的区域变成(16*8)*(16*8)=128*128的区域,(16*16)*(16*16)=256*256的区域,(16*32)*(16*32)=512*512的区域。训练过程中,涉及到的候选框选取,选取依据如下: 从模型训练的角度来看,通过使用共享特征交替训练的方式,达到接近实时的性能,交替训练方式为: Faster R-CNN实现了端到端的检测,并且几乎达到了效果上的最优,有些基于Faster R-CNN的变种准确度已经刷到了87%以上。速度方面还有优化的余地,比如Yolo系列(Yolo v1/v2/v3/v4)。对于目标检测,仍处于一个探索和高度发展的阶段,还不断有更优的模型产生。
在谷歌学术搜索中,存有高达4亿篇论文的数据库。论文被引用的数据可以作为证明文章影响力的依据。即使这个方法有局限性,但在更大程度上,反映了当今社会的进展和科学的进步。
1《亚当:一种随机优化方法 》 Adam: A Method for Stochastic Optimization。文章发布于2015年,引用数为47774。
截止2020年为止,这篇文章达到了,人类可知的引用最高数。一篇涉及人工智能的文章获得最高引用,证实了科学界对人工智能的注重。不仅是科学界对人工智能领域有巨大的兴趣,而且欧美国家也正在把人工智能作为未来的主要发展对象。美国把对人工智能的投资提高了一倍,欧盟也把投资提高了百分之70。《亚当:一种随机优化方法 》能够获得最高引用,正说明在未来人工智能上,将展开激烈竞争。无独有偶,跟着这篇文章后面,引用最多的文章多是涉及人工智能。
2《图像识别的深度残差学习》 Deep Residual Learning for Image Recognition 文章发布于2016年,引用数为25256。
深度残差学习的概念出自何凯明等4名中国学生。何凯明来自清华大学物理系,现是脸书人工智能的科学家。从文章的引用数量来看,足以显示,他提出的这个方法对该行业的影响。
3《让R-CNN更快: 朝着带有区域建议网络 的实时目标检测》 Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks发表于2015,引用数为19507。
4《深度学习》 Deep Learning, 文章发布于2015年,引用数为16750。
5 《带着缠绕走得更深》 Going deeper with Convolutions, 文章发布于2015年,引用数为14424。
这篇文章已经成为计算机图像处理必读论文之一。
6《通过深层强化学习的人类层面的控制》 Human-Level control through deep reinforcement learning 文章发布于2015年,引用数为10394。
7 《语义分割的完全常规网络》 Fully Conventinal Networks for Semantic segmentation 文章发布于2015年,引用数为10153。
9 《 脓毒症与脓毒症休克第三版国际共识 》 The Third International Consensus Definitions for Sepsis and Septic Shock (Sepsis-3) 文章发布于2016年,引用数为8576。
10《RNA测序和微阵列研究中 Limma 强化差异表达分析》 Limma porwers defferential expression analyses for RNA-sequencing and microarray studies 文章发布于2015年,引用数为8328。
第9和第10篇是前十名论文中,和计算机没有关系的两篇医学论文。这是否意味着,未来对人类社会影响最大的,除了人工智能就是医学了呢?
最后要提到的这篇文章,虽然没有进入第10,但值得一提。 《以深度神经网络和树搜索掌握围棋战略》 Mastering the game of Go with deep neural networks and tree search发布于2016年,引用数为8209。
这篇文章涉及的是伦敦大学学院的教授David Silver, 他领导的AlphaGo团队击败了围棋九段棋手柯洁。人工智能击败了最强大脑,没有什么能比这更能说明人工智能的前途,同时也可能是一个细思极恐的大事件。在机器击败人的时代,人怎么办?
论文名称:Rich feature hierarchies for accurate object detection and semantic segmentation 提出时间:2014年 论文地址: 针对问题: 从Alexnet提出后,作者等人思考如何利用卷积网络来完成检测任务,即输入一张图,实现图上目标的定位(目标在哪)和分类(目标是什么)两个目标,并最终完成了RCNN网络模型。 创新点: RCNN提出时,检测网络的执行思路还是脱胎于分类网络。也就是深度学习部分仅完成输入图像块的分类工作。那么对检测任务来说如何完成目标的定位呢,作者采用的是Selective Search候选区域提取算法,来获得当前输入图上可能包含目标的不同图像块,再将图像块裁剪到固定的尺寸输入CNN网络来进行当前图像块类别的判断。 参考博客: 。 论文题目:OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks 提出时间:2014年 论文地址: 针对问题: 该论文讨论了,CNN提取到的特征能够同时用于定位和分类两个任务。也就是在CNN提取到特征以后,在网络后端组织两组卷积或全连接层,一组用于实现定位,输出当前图像上目标的最小外接矩形框坐标,一组用于分类,输出当前图像上目标的类别信息。也是以此为起点,检测网络出现基础主干网络(backbone)+分类头或回归头(定位头)的网络设计模式雏形。 创新点: 在这篇论文中还有两个比较有意思的点,一是作者认为全连接层其实质实现的操作和1x1的卷积是类似的,而且用1x1的卷积核还可以避免FC对输入特征尺寸的限制,那用1x1卷积来替换FC层,是否可行呢?作者在测试时通过将全连接层替换为1x1卷积核证明是可行的;二是提出了offset max-pooling,也就是对池化层输入特征不能整除的情况,通过进行滑动池化并将不同的池化层传递给后续网络层来提高效果。另外作者在论文里提到他的用法是先基于主干网络+分类头训练,然后切换分类头为回归头,再训练回归头的参数,最终完成整个网络的训练。图像的输入作者采用的是直接在输入图上利用卷积核划窗。然后在指定的每个网络层上回归目标的尺度和空间位置。 参考博客: 论文题目:Scalable Object Detection using Deep Neural Networks 提出时间:2014年 论文地址: 针对问题: 既然CNN网络提取的特征可以直接用于检测任务(定位+分类),作者就尝试将目标框(可能包含目标的最小外包矩形框)提取任务放到CNN中进行。也就是直接通过网络完成输入图像上目标的定位工作。 创新点: 本文作者通过将物体检测问题定义为输出多个bounding box的回归问题. 同时每个bounding box会输出关于是否包含目标物体的置信度, 使得模型更加紧凑和高效。先通过聚类获得图像中可能有目标的位置聚类中心,(800个anchor box)然后学习预测不考虑目标类别的二分类网络,背景or前景。用到了多尺度下的检测。 参考博客: 论文题目:DeepBox: Learning Objectness with Convolutional Networks 提出时间:2015年ICCV 论文地址: 主要针对的问题: 本文完成的工作与第三篇类似,都是对目标框提取算法的优化方案,区别是本文首先采用自底而上的方案来提取图像上的疑似目标框,然后再利用CNN网络提取特征对目标框进行是否为前景区域的排序;而第三篇为直接利用CNN网络来回归图像上可能的目标位置。创新点: 本文作者想通过CNN学习输入图像的特征,从而实现对输入网络目标框是否为真实目标的情况进行计算,量化每个输入框的包含目标的可能性值。 参考博客: 论文题目:AttentionNet: AggregatingWeak Directions for Accurate Object Detection 提出时间:2015年ICCV 论文地址: 主要针对的问题: 对检测网络的实现方案进行思考,之前的执行策略是,先确定输入图像中可能包含目标位置的矩形框,再对每个矩形框进行分类和回归从而确定目标的准确位置,参考RCNN。那么能否直接利用回归的思路从图像的四个角点,逐渐得到目标的最小外接矩形框和类别呢? 创新点: 通过从图像的四个角点,逐步迭代的方式,每次计算一个缩小的方向,并缩小指定的距离来使得逐渐逼近目标。作者还提出了针对多目标情况的处理方式。 参考博客: 论文题目:Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition 提出时间:2014年 论文地址: 针对问题: 如RCNN会将输入的目标图像块处理到同一尺寸再输入进CNN网络,在处理过程中就造成了图像块信息的损失。在实际的场景中,输入网络的目标尺寸很难统一,而网络最后的全连接层又要求输入的特征信息为统一维度的向量。作者就尝试进行不同尺寸CNN网络提取到的特征维度进行统一。创新点: 作者提出的SPPnet中,通过使用特征金字塔池化来使得最后的卷积层输出结果可以统一到全连接层需要的尺寸,在训练的时候,池化的操作还是通过滑动窗口完成的,池化的核宽高及步长通过当前层的特征图的宽高计算得到。原论文中的特征金字塔池化操作图示如下。 参考博客 : 论文题目:Object detection via a multi-region & semantic segmentation-aware CNN model 提出时间:2015年 论文地址: 针对问题: 既然第三篇论文multibox算法提出了可以用CNN来实现输入图像中待检测目标的定位,本文作者就尝试增加一些训练时的方法技巧来提高CNN网络最终的定位精度。创新点: 作者通过对输入网络的region进行一定的处理(通过数据增强,使得网络利用目标周围的上下文信息得到更精准的目标框)来增加网络对目标回归框的精度。具体的处理方式包括:扩大输入目标的标签包围框、取输入目标的标签中包围框的一部分等并对不同区域分别回归位置,使得网络对目标的边界更加敏感。这种操作丰富了输入目标的多样性,从而提高了回归框的精度。 参考博客 : 论文题目:Fast-RCNN 提出时间:2015年 论文地址: 针对问题: RCNN中的CNN每输入一个图像块就要执行一次前向计算,这显然是非常耗时的,那么如何优化这部分呢? 创新点: 作者参考了SPPNet(第六篇论文),在网络中实现了ROIpooling来使得输入的图像块不用裁剪到统一尺寸,从而避免了输入的信息丢失。其次是将整张图输入网络得到特征图,再将原图上用Selective Search算法得到的目标框映射到特征图上,避免了特征的重复提取。 参考博客 : 论文题目:DeepProposal: Hunting Objects by Cascading Deep Convolutional Layers 提出时间:2015年 论文地址: 主要针对的问题: 本文的作者观察到CNN可以提取到很棒的对输入图像进行表征的论文,作者尝试通过实验来对CNN网络不同层所产生的特征的作用和情况进行讨论和解析。 创新点: 作者在不同的激活层上以滑动窗口的方式生成了假设,并表明最终的卷积层可以以较高的查全率找到感兴趣的对象,但是由于特征图的粗糙性,定位性很差。相反,网络的第一层可以更好地定位感兴趣的对象,但召回率降低。 论文题目:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks 提出时间:2015年NIPS 论文地址: 主要针对的问题: 由multibox(第三篇)和DeepBox(第四篇)等论文,我们知道,用CNN可以生成目标待检测框,并判定当前框为目标的概率,那能否将该模型整合到目标检测的模型中,从而实现真正输入端为图像,输出为最终检测结果的,全部依赖CNN完成的检测系统呢? 创新点: 将当前输入图目标框提取整合到了检测网络中,依赖一个小的目标框提取网络RPN来替代Selective Search算法,从而实现真正的端到端检测算法。 参考博客 :
姓名:王咫毅 学号: 【嵌牛导读】机器学习成为现在研究的一大热门,而机器学习所应用到的领域图像处理 目标检测 图像分割都已经日趋成熟,而cnn是如何应用到图像分割里边的呢?而其发展过程又有哪些呢? 【嵌牛鼻子】机器学习 cnn 【嵌牛提问】r-cnn和mask r-cnn有什么区别?两者又是怎么形成的? 【嵌牛正文】 在 Athelas (Athelas 通过深度学习进行血液诊断),我们使用卷积神经网络(CNN)不仅仅是分类!在这篇文章中,我们将看到如何在图像实例分割中使用CNN,效果很好。 自从 Alex Krizhevsky,Geoff Hinton和Ilya Sutskever在2012年赢得ImageNet以来 ,卷积神经网络(CNNs)已经成为图像分类的黄金标准。事实上,从那时起,CNN已经改进到现在他们在ImageNet挑战中胜过人类的程度! need-to-insert-img CNN现在在ImageNet挑战中胜过人类。上图中的y轴是ImageNet上的错误率。 虽然这些结果令人印象深刻,但图像分类远比真人类视觉理解的复杂性和多样性简单得多。 need-to-insert-img 分类挑战中使用的图像示例。请注意图像是如何构图良好的,并且只有一个对象。 在分类中,通常有一个图像,其中一个对象作为焦点,任务是说该图像是什么(见上文)。但是,当我们观察周围的世界时,我们会执行更复杂的任务。 need-to-insert-img 现实生活中的景点通常由许多不同的,重叠的物体,背景和动作组成。 我们看到复杂的景点有多个重叠的物体和不同的背景,我们不仅要对这些不同的物体进行分类,还要确定它们之间的界限,差异和关系! need-to-insert-img CNN可以帮助我们完成这些复杂的任务吗?也就是说,给定一个更复杂的图像,我们可以使用CNN来识别图像中的不同对象及其边界吗?正如Ross Girshick和他的同龄人在过去几年所表明的那样,答案是肯定的。 这篇文章的目标 通过这篇文章,我们将介绍在对象检测和分割中使用的一些主要技术背后的直觉,并了解它们是如何从一个实现发展到下一个实现的。特别是,我们将介绍R-CNN(地区CNN),这是CNN对此问题的原始应用,以及其后代Fast R-CNN和Faster R-CNN。最后,我们将介绍最近由Facebook Research发布的一篇文章Mask R-CNN,它扩展了这种对象检测技术以提供像素级分割。以下是本文中引用的论文: R-CNN: https : //arxiv.org/abs/1311.2524 Fast R-CNN: https : //arxiv.org/abs/1504.08083 Faster R-CNN: https : //arxiv.org/abs/1506.01497 Mask R-CNN: https : //arxiv.org/abs/1703.06870 2014年:R-CNN - CNN在物体检测中的早期应用 need-to-insert-img 诸如R-CNN的对象检测算法接收图像并识别图像中主要对象的位置和分类。 受多伦多大学Hinton实验室研究的启发,由Jitendra Malik教授领导的加州大学伯克利分校的一个小团队问自己,今天看来是一个不可避免的问题: 在多大程度上[Krizhevsky等。al的结果]推广到物体检测? 对象检测的任务是在图像中查找不同的对象并对其进行分类(如上图所示)。由Ross Girshick(我们将再次看到的名字),Jeff Donahue和Trevor Darrel组成的团队发现,通过测试PASCAL VOC Challenge,这是一种类似于ImageNet的流行物体检测挑战,Krizhevsky的结果可以解决这个问题。他们写, 本文首次表明,与基于简单HOG类功能的系统相比,CNN可以在PASCAL VOC上实现更高的物体检测性能。 现在让我们花一点时间来了解他们的架构,CNNs区域(R-CNN)是如何工作的。 了解R-CNN R-CNN的目标是接收图像,并正确识别图像中主要对象(通过边界框)的位置。 输入 :图像 输出 :图像中每个对象的边界框+标签。 但是我们如何找出这些边界框的位置?R-CNN做了我们可能直观地做的事情 - 在图像中 提出 一堆框,看看它们中的任何一个是否实际上对应于一个对象 。 need-to-insert-img 选择性搜索查看多个比例的窗口,并查找共享纹理,颜色或强度的相邻像素 R-CNN使用称为选择性搜索的过程创建这些边界框或区域提议,您可以在 此处 阅读。在较高的层次上,选择性搜索(如上图所示)通过不同大小的窗口查看图像,并且对于每个尺寸,尝试通过纹理,颜色或强度将相邻像素组合在一起以识别对象。 need-to-insert-img 在创建一组区域提议后,R-CNN通过AlexNet的修改版本传递图像,以确定它是否是有效区域。 一旦提出建议,R-CNN将该区域变为标准的方形大小,并将其传递给AlexNet的修改版本(ImageNet 2012的获奖提交,启发了R-CNN),如上所示。 在CNN的最后一层,R-CNN增加了一个支持向量机(SVM),它简单地分类这是否是一个对象,如果是的话,是什么对象。这是上图中的第4步。 改进边界框 现在,在盒子里找到了这个物体,我们可以收紧盒子以适应物体的真实尺寸吗?我们可以,这是R-CNN的最后一步。R-CNN对区域提议运行简单的线性回归,以生成更紧密的边界框坐标以获得最终结果。以下是此回归模型的输入和输出: 输入 :与对象对应的图像的子区域。 输出 :子区域中对象的新边界框坐标。 总而言之,R-CNN只是以下步骤: 1.为边界框生成一组提议。 2.通过预先训练的AlexNet运行边界框中的图像,最后运行SVM,以查看框中图像的对象。 3.通过线性回归模型运行该框,一旦对象被分类,就为框输出更紧密的坐标。 2015年:快速R-CNN - 加速并简化R-CNN need-to-insert-img Ross Girshick写了R-CNN和Fast R-CNN。他继续在Facebook Research推动计算机视觉的界限。 R-CNN效果很好,但由于一些简单的原因,它确实很慢: 它需要CNN(AlexNet)的正向传递,用于每个单个图像的每个区域建议(每个图像大约2000个前向传递!)。 它必须分别训练三个不同的模型 - 用于生成图像特征的CNN,用于预测类的分类器,以及用于收紧边界框的回归模型。这使得管道极难训练。 2015年,R-CNN的第一作者Ross Girshick解决了这两个问题,导致了我们短暂历史中的第二个算法 - 快速R-CNN。现在让我们回顾一下它的主要见解。 Fast R-CNN洞察力1:RoI(感兴趣区域)池 对于CNN的前向传递,Girshick意识到对于每个图像,图像的许多建议区域总是重叠,导致我们一次又一次地运行相同的CNN计算(~2000次!)。他的洞察力很简单 - 为什么不在每张图像上运行CNN一次,然后找到一种方法来分享〜2000个提案中的计算? need-to-insert-img 在RoIPool中,创建图像的完整前向传递,并从所得到的前向传递中提取每个感兴趣区域的conv特征。 这正是Fast R-CNN使用称为RoIPool(感兴趣区域池)的技术所做的事情。在其核心,RoIPool分享CNN的前向传递,以在其子区域中形成图像。在上图中,请注意如何通过从CNN的要素图中选择相应的区域来获取每个区域的CNN要素。然后,汇集每个区域中的要素(通常使用最大池)。所以我们所需要的只是原始图像的一次传递而不是~2000! 快速R-CNN洞察力2:将所有模型组合到一个网络中 need-to-insert-img 快速R-CNN将CNN,分类器和边界框回归器组合成一个单一网络 Fast R-CNN的第二个见解是在单个模型中联合训练CNN,分类器和边界框回归器。之前我们有不同的模型来提取图像特征(CNN),分类(SVM)和收紧边界框(回归量),而 快速R-CNN则使用单个网络来计算所有三个。 您可以在上图中看到这是如何完成的。快速R-CNN用在CNN顶部的softmax层替换SVM分类器以输出分类。它还添加了一个与softmax图层平行的线性回归图层,以输出边界框坐标。这样,所需的所有输出都来自一个网络!以下是此整体模型的输入和输出: 输入 :带有区域提案的图像。 输出 :每个区域的对象分类以及更严格的边界框。 2016年:更快的R-CNN - 加速地区提案 即使有了所有这些进步,快速R-CNN过程仍然存在一个瓶颈 - 区域提议者。正如我们所看到的,检测对象位置的第一步是生成一堆潜在的边界框或感兴趣的区域进行测试。在Fast R-CNN中,这些提议是使用 选择性搜索 创建的,这是一个相当缓慢的过程,被发现是整个过程的瓶颈。 need-to-insert-img 微软研究院的首席研究员孙健带领团队领导更快的R-CNN。 在2015年中期,由Shaoqing Ren,Kaiming He,Ross Girshick和Jian Sun组成的微软研究团队找到了一种方法,通过他们(创造性地)命名为快速R-CNN的架构,使该区域提案步骤几乎免费。 更快的R-CNN的见解是区域建议取决于已经通过CNN的前向传递(分类的第一步)计算的图像的特征。 那么为什么不为区域提案重用那些相同的CNN结果而不是运行单独的选择性搜索算法呢? need-to-insert-img 在Faster R-CNN中,单个CNN用于区域提议和分类。 实际上,这正是R-CNN团队更快取得的成就。在上图中,您可以看到单个CNN如何用于执行区域提议和分类。这样, 只有一个CNN需要接受培训 ,我们几乎可以免费获得地区建议!作者写道: 我们的观察结果是,基于区域的探测器(如Fast R-CNN)使用的卷积特征图也可用于生成区域提议[从而实现几乎无成本的区域提议]。 以下是其模型的输入和输出: 输入 :图像(注意不需要区域提议)。 输出 :图像中对象的分类和边界框坐标。 如何生成区域 让我们花点时间看看R-CNN如何通过CNN功能更快地生成这些区域提案。Faster R-CNN在CNN的功能之上增加了一个完全卷积网络,创建了所谓的 区域提案网络 。 need-to-insert-img 区域提案网络在CNN的功能上滑动窗口。在每个窗口位置,网络输出每个锚点的分数和边界框(因此4k框坐标,其中k是锚的数量)。 区域提议网络通过在CNN特征映射和每个窗口上传递滑动窗口来工作,输出 k个 潜在的边界框以及每个框预期有多好的分数。这些 k 盒代表什么? need-to-insert-img 我们知道人们的边界框往往是矩形和垂直的。我们可以通过创建这样的维度锚来利用这种直觉来指导我们的区域提案网络。 直觉上,我们知道图像中的对象应该适合某些常见的宽高比和大小。例如,我们知道我们想要一些类似于人类形状的矩形盒子。同样,我们知道我们不会看到很多非常薄的盒子。以这种方式,我们创建 k 这样的常见宽高比,我们称之为 锚盒 。对于每个这样的锚箱,我们输出一个边界框并在图像中的每个位置得分。 考虑到这些锚框,我们来看看这个区域提案网络的输入和输出: 输入 :CNN功能图。 输出 :每个锚点的边界框。表示该边界框中图像成为对象的可能性的分数。 然后,我们将可能是对象的每个这样的边界框传递到Fast R-CNN,以生成分类和收紧的边界框。 2017:Mask R-CNN - 扩展更快的R-CNN以实现像素级分割 need-to-insert-img 图像实例分割的目标是在像素级别识别场景中不同的对象是什么。 到目前为止,我们已经看到我们如何能够以许多有趣的方式使用CNN功能来有效地定位带有边界框的图像中的不同对象。 我们是否可以扩展这些技术以进一步找到每个对象的精确像素而不仅仅是边界框?这个问题被称为图像分割,是Kaiming He和包括Girshick在内的一组研究人员在Facebook AI上使用一种名为 Mask R-CNN 的架构进行探索的。 need-to-insert-img Facebook AI的研究员Kaiming He是Mask R-CNN的主要作者,也是Faster R-CNN的合着者。 就像Fast R-CNN和Faster R-CNN一样,Mask R-CNN的潜在直觉也是直截了当的。鉴于Faster R-CNN在物体检测方面的效果非常好,我们是否可以扩展它以进行像素级分割? need-to-insert-img 在掩码R-CNN中,在快速R-CNN的CNN特征之上添加完全卷积网络(FCN)以生成掩码(分段输出)。注意这与Faster R-CNN的分类和边界框回归网络并行。 Mask R-CNN通过向更快的R-CNN添加分支来完成此操作,该分支输出二进制掩码,该Mask 表示给定像素是否是对象的一部分。与以前一样,分支(上图中的白色)只是基于CNN的特征映射之上的完全卷积网络。以下是其输入和输出: 输入 :CNN功能图。 输出 :矩阵在像素属于对象的所有位置上为1,在其他位置为0(这称为 二进制掩码 )。 但Mask R-CNN的作者不得不进行一次小调整,以使这条管道按预期工作。 RoiAlign - 重新调整RoIPool更准确 need-to-insert-img 而不是RoIPool,图像通过RoIAlign传递,以便RoIPool选择的特征图的区域更精确地对应于原始图像的区域。这是必需的,因为像素级分割需要比边界框更细粒度的对齐。 当在原始的快速R-CNN架构上运行而没有修改时,Mask R-CNN作者意识到由RoIPool选择的特征图的区域与原始图像的区域略微不对准。由于图像分割需要像素级特异性,与边界框不同,这自然会导致不准确。 作者能够通过巧妙地调整RoIPool来解决这个问题,使用一种称为RoIAlign的方法进行更精确的对齐。 need-to-insert-img 我们如何准确地将感兴趣的区域从原始图像映射到特征图? 想象一下,我们有一个大小为 128x128 的图像和一个大小为 25x25 的特征图。让我们想象一下,我们想要的特征区域对应于原始图像中左上角的 15x15 像素(见上文)。我们如何从要素图中选择这些像素? 我们知道原始图像中的每个像素对应于特征图中的~25 / 128像素。要从原始图像中选择15个像素,我们只选择15 * 25 / 128~ = 2.93 像素。 在RoIPool中,我们将它向下舍入并选择2个像素,导致轻微的错位。但是,在RoIAlign中, 我们避免了这种舍入。 相反,我们使用 双线性插值 来准确了解像素2.93处的内容。这在很大程度上是允许我们避免RoIPool引起的错位的原因。 生成这些掩模后,Mask R-CNN将它们与Faster R-CNN中的分类和边界框组合在一起,生成如此精确的分割: need-to-insert-img Mask R-CNN能够对图像中的对象进行分段和分类。 期待 在短短3年时间里,我们已经看到研究界如何从Krizhevsky等进步。al的原始结果是R-CNN,最后一直到Mask R-CNN这样强大的结果。孤立地看,像面具R-CNN这样的结果看起来像天才的难以置信的飞跃,是无法接近的。然而,通过这篇文章,我希望你已经看到这些进步如何通过多年的努力和合作实现直观,渐进的改进。R-CNN,Fast R-CNN,Faster R-CNN以及最后的Mask R-CNN提出的每个想法都不一定是量子跳跃,但它们的总和产品已经产生了非常显着的结果,使我们更接近人类水平了解视力。 让我特别兴奋的是,R-CNN和Mask R-CNN之间的时间只有三年!通过持续的资金,关注和支持,未来计算机视觉能够进一步提升?
可以在《国家人文历史》《历史研究4102》《看历史》等期刊发表。发表论文前期挑选期刊可以打开知网输入自己研究方向的关键词,点击“期刊”,点击搜索用出来还多篇文献,找到期刊名称。(多找几个,列下来这个领域的期刊名称,也可以换个关键词继续搜)。《国家人文历史》—2113—探讨人类的5261终极关怀和价值诉求。《历史研究4102》—全1653国历史类期刊中居首位的核心期刊。《看历史》—成长最快的社会性人文历史类杂志。
现在登报是不需要亲自跑一趟报社的,其实这也并不现实。毕竟,登报发声明、发公示,对报纸的等级都是有要求的,要求声明和公示都必须发布在市级及以上级别的报纸上,方具有法律效力。丢失人也实在不可能为了登报而去跑一趟长途,舟车劳顿不说,还特别地浪费时间。因此,现在登报都是通过在线的登报平台,在那里先填写登报申请,报社就会马上安排登报了。登报申请页面的进入方法:上支付宝或是微信搜[跑政通],主页面上找到“登报”进入即可看到客服头像,点击就可以在线留言咨询了。一般地,企业登报会更常见,企业的证件类物品发生遗失时,应当立马联系当地的办证机关,如营业执照遗失,那就联系工商部门,在那边挂失备案后,就需要去登报了。通常,办证机关会出具一份申请,申请中会注明登报的要求,比如报纸名称、登报声明的格式,以及登报的有效期等。办证机关要求,登报时必须得严格遵循的。如果,办证机关对报纸和格式均不做要求,那么登报时我们可以选择刊登在国家级的报纸上,不但看此类报纸的人群广,而且登报收费会更低,比如选择:中国商报、人 民日报。还有,登报的计费标准是按字数来的,所以选择的模板也直接决定了价格的高低。
论文: 《Rich feature hierarchies for accurate object detection and semantic segmentation》 发表年份:2013 RCNN(Regions with CNN features)是将CNN用到目标检测的一个里程碑,借助CNN良好的特征提取和分类性能,通过RegionProposal方法实现目标检测问题的转化。 Region proposal是一类传统的候选区域生成方法,论文使用 selective search 生成大约2k个候选区域(先用分割手段将图片完全分割成小图,再通过一些合并规则,将小图均匀的合并,经过若干次合并,直到合并成整张原图),然后将proposal的图片进行归一化(大小为217*217)用于CNN的输入。 对每个Region proposal使用CNN提取出一个4096维的特征向量 3.1 CNN提取的特征输入到SVM分类器中,对region proposal进行分类,与 ground-truth box的IoU大于0.5的为正样本,其余为负样本。论文中每个图片正样本个数为32负样本个数为96。得到所有region proposals的对于每一类的分数,再使用贪心的非极大值抑制方法对每一个SVM分类器类去除相交的多余的框。 3.2 使用一个线性回归器对bounding box进行修正,proposal bounding box的大小位置与真实框的转换关系如下: 综上,整个网络结构如下:R-CNN在当年无论是在学术界还是工业界都是具有创造性的,但是现在来看RCNN主要存在下面三个问题: 1)多个候选区域对应的图像需要预先提取,占用较大的磁盘空间; 2)针对传统CNN需要固定尺寸(217*217)的输入图像,crop/warp(归一化)产生物体截断或拉伸,丧失或者改变了图片本身的信息; 3)每一个ProposalRegion都需要进入CNN网络计算,上千个Region存在大量的范围重叠,重复的CNN特征提取导致巨大的计算浪费。论文: 《Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition》 发表年份:2015 既然CNN特征提取如此耗时,为什么还要对每个Region proposal进行特征提取,而不是整体进行特征提取,然后在分类之前做一次Region的截取呢,于是就诞生了SPP-Net。 1.解决了CNN需要固定大小输入的变换后导致图片信息丢失或者变化的问题 2.对于一张图,只需要进行一次的特征提取运算,避免了R-CNN中特征重复计算的问题 CNN为什么需要固定大小的输入? R-CNN中会对图片缩放成217*217的固定大小,从而导致物体发生形变(如下图的上部分所示)。与前面不同,SPP-Net是加在最后一个卷积层的输出的后面,使得不同输入尺寸的图像在经过前面的卷积池化过程后,再经过SPP-net,得到相同大小的feature map,最后再经过全连接层进行分类 以AlexNet为例,经CNN得到conv5输出的任意尺寸的feature map,图中256-d是conv5卷积核的数量。将最后一个池化层pool5替换成SPP layer,将feature map划分成不同大小的网格,分别是`4x4`,`2x2`,`1x1`,每个网格中经过max pooling,从而得到4x4+2x2+1x1=21个特征值,最后将这21个特征值平铺成一个特征向量作为全连接层的输入,这种方式就是 空间金字塔池化 。 与R-CNN不同,SPP-Net中是将整张图片进行一次特征提取,得到整张图片的feature map,然后对feature map中的候选区域(RoIs)经过空间金字塔池化,提取出固定长度的特征向量进入全连接层。 原图候选区域与特征图上的RoIs的转换流程:综上,整个网络结构如下图。SPP-Net相比R-CNN做了很多优化,但现在来看依然存在一些问题,主要如下:论文: 《Fast R-CNN》 发表年份:2015 Fast R-CNN是对R-CNN的一个提升版本,相比R-CNN,训练速度提升9倍,测试速度提升213倍,mAP由66%提升到66.9%主要改进点如下:多任务损失函数(Multi-task Loss): Fast R-CNN将分类和边框回归合并,通过多任务Loss层进一步整合深度网络,统一了训练过程。分为两个损失函数:分类损失和回归损失。分类采用softmax代替SVM进行分类,共输出N(类别)+1(背景)类。softmax由于引入了类间竞争,所以分类效果优于SVM,SVM在R-CNN中用于二分类。回归损失输出的是4*N(类别),4表示的是(x,y,w,h分别表示候选框的中心坐标和宽、高)。 SVD对全连接层进行分解: 由于一张图像约产生2000个RoIs,将近一半多的时间用在全连接层计算,为了提高运算速度,使用 SVD(奇异值分解) 对全连接层进行变换来提高运算速度。一个大的矩阵可以近似分解为三个小矩阵的乘积,分解后的矩阵的元素数目远小于原始矩阵的元素数目,从而达到减少计算量的目的。通过对全连接层的权值矩阵进行SVD分解,使得处理一张图像的速度明显提升。 论文: 《Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks》 发表年份:2016 SPP-Net和Fast R-CNN都有一个非常耗时的候选框选取的过程,提取候选框最常用的SelectiveSearch方法,提取一副图像大概需要2s的时间,改进的EdgeBoxes算法将效率提高到了0.2s,但是还是比较耗时。 Fast R-CNN中引入Region Proposal Network(RPN)替代Selective Search,同时引入anchor box应对目标形状的变化问题(anchor就是位置和大小固定的box,可以理解成事先设置好的固定的proposal) Region Proposal Network: RPN的核心思想是候选框的提取不在原图上做,而是在feature map上做,这意味着相比原图更少的计算量。在Faster R-CNN中,RPN是单独的分支,通过RPN提取候选框并合并到深度网络中。多尺度先验框: RPN网络的特点在于通过滑动窗口的方式实现候选框的提取,每个滑动窗口位置生成9个候选窗口(不同尺度、不同宽高),提取对应9个候选窗口(anchor)的特征,用于目标分类和边框回归,与FastRCNN类似。anchor的生成规则有两个:调整宽高比和放大。如下图所示,假设base_size为16,按照1:2,1:1,2:1三种比例进行变换生成下图上部分三种anchor;第二种是将宽高进行三种倍数放大,2^3=8,2^4=16,2^5=32倍的放大,如16x16的区域变成(16*8)*(16*8)=128*128的区域,(16*16)*(16*16)=256*256的区域,(16*32)*(16*32)=512*512的区域。训练过程中,涉及到的候选框选取,选取依据如下: 从模型训练的角度来看,通过使用共享特征交替训练的方式,达到接近实时的性能,交替训练方式为: Faster R-CNN实现了端到端的检测,并且几乎达到了效果上的最优,有些基于Faster R-CNN的变种准确度已经刷到了87%以上。速度方面还有优化的余地,比如Yolo系列(Yolo v1/v2/v3/v4)。对于目标检测,仍处于一个探索和高度发展的阶段,还不断有更优的模型产生。
对于目标检测方向并不是特别熟悉,本文记录一下RCNN, fast-RCNN, faster-RCNN, mask-RCNN这4篇有关目标检测的论文笔记和学习心得。
R-CNN的意思就是Region based,主要思路就是根据一张图像,提取多个region,再将每个Region输入CNN来进行特征的提取。因此RCNN就可以分为 Region proposals , Feature extraction 两个主要部分,提取的特征就可以输入任意一个分类器来进行分类。 模型的流程图如下:
在训练的时候,首先使用的是已经训练好的CNN网络作为特征提取器,但是由于预训练是在分类数据集上,因此在应用到检测之前要做finetune。也就是说,为了将用ImageNet数据集训练的网络应用到新的任务(检测),新的数据集(region)上,作者将原来的CNN最后的1000类的fc层,更改为了 层, 代表待检测的物体的类别数。然后,对于所有的region,如果它和ground truth的重叠率大于0.5,就认为是正类。 对于分类器的训练,作者发现选择多大的IoU来区分正类和负类非常关键。并且,对于每一类,都会训练一个分类器。
框的回归非常重要,在对每一个region proposal使用分类器进行打分评价之后,作者使用一个回归器来预测一个新的框作为结果。这个回归器使用的特征是从CNN中提取的特征。回归器的训练中,输入是 region proposal 的 和ground truth的 ,目标是学习一种变换,使得region proposal通过该变换能够接近ground truth。同时,希望这种变换拥有尺度不变性,也就是说尺度变化的话,变换不会改变。 如下图所示,每一个regressor会学习一组参数,特征输入是pool 5的特征输出,拟合的目标是 。
Fast-RCNN 主要解决的问题是在RCNN中对于每一个region proposal都进行特征提取,会产生非常多的冗余计算,因此可以先对一张图像进行特征提取,再根据region proposal在相应的特征上进行划分得到对应region的特征(映射关系)。 这样便可以实现共享计算提高速度,但是与SPPnets不同,SPPnets在一副图像得到对应的特征后,从这张图像的特征上proposal对应的部分,采用空间金字塔池化,如下图:
RoI pooling的方法很简单,类似于空间金字塔pooling,它将proposal部分对应卷积层输出的特征(称之为RoI,因为用于做pooling的特征是 region of interest,也就是我们感兴趣的区域)划分成 块,然后对每一块求最大值,最终得到了一个 的特征图。可以看出,它只是空间金字塔pooling的一部分。 但是SPP-nets的空间金字塔也是可以求导的,那么它到底不好在哪里呢?因为当每一个RoI都可能来源于不同的图像的时候(R-CNN和SPPnets的训练策略是从一个batch的不同图像中,分别挑选一个proposal region),SPPNets的训练非常地低效,这种低效来源于在SPPnets的训练中,每个RoI的感受野都非常地大,很可能对应了原图的整个图像,因此,得到的特征也几乎对应了整张图像,所以输入的图像也就很大。 为了提高效率,Fast-RCNN首先选取 个图像,再从每个图像上选择 个RoI,这样的效率就比从每个图像提取一个RoI提高了 倍。
为了将分类和框回归结合起来,作者采用了多任务的loss,来进行联合的训练。具体来说就是将分类的loss和框回归的loss结合起来。网络的设计上非常直接,就是将RoI得到的特征接几个FC层后,分别接不同的输出层。对应于分类部分,特征会接一个softmax输出,用于分类,对于框回归部分,会接一个输出4维特征的输出层,然后分别计算loss,用于反向传播。loss的公式如下:
回归的target可以参考前面的R-CNN部分。
notes
为什么比fast还fast呢?主要原因是在这篇论文中提出了一个新的层:RPN(region proposal networks)用于替代之前的selective search。这个层还可以在GPU上运算来提高速度。 RPN的目的:
为了能够进行region proposal,作者使用了一个小的网络,在基础的卷积层输出的特征上进行滑动,这个网络输入大小为 ,输入后会映射(用 的卷积)为一个固定长度的特征向量,然后接两个并联的fc层(用 的卷积层代替),这两个fc层,一个为box-regressoin,一个为box-classification。如下图:
在每一个滑动窗口(可以参考 ),为了考虑到尽可能多的框的情况,作者设计了anchors来作为region proposal。anchors就是对于每一个滑动窗口的中心位置,在该位置对应的原图位置的基础上,按照不同的尺度,长宽比例框出 个不同的区域。然后根据这些anchors对应的原始图像位置以及区域,和ground truth,就可以给每一个滑动窗口的每一个anchor进行标记,也就是赋予label,满足一定条件标记为正类(比如和ground truth重叠大于一个值),一定条件为负类。对于正类,就可以根据ground truth和该anchor对应的原图的区域之间的变换关系(参考前面的R-CNN的框回归),得到回归器中的目标,用于训练。也就是论文中的loss function部分:
自然地,也就要求RPN的两个并联的FC层一个输出2k个值用于表示这k个anchor对应的区域的正类,负类的概率,另一个输出4k个值,用于表示框回归的变换的预测值。
对于整个网络的训练,作者采用了一种叫做 4-step Alternating Training 的方法。具体可以参考论文。
与之前的检测任务稍有不同,mask r-cnn的任务是做instance segmentation。因此,它需要对每一个像素点进行分类。 与Faster R-CNN不同,Faster R-CNN对每一个候选框产生两个输出,一个是类别,一个是bounding box的offset。Mask R-CNN新增加了一个输出,作为物体的mask。这个mask类似于ps中的蒙版。
与Faster R-CNN类似的是,Mask R-CNN同样采用RPN来进行Region Proposal。但是在之后,对于每一个RoI,mask r-cnn还输出了一个二值化的mask。
不像类别,框回归,输出都可以是一个向量,mask必须保持一定的空间信息。因此,作者采用FCN来从每个RoI中预测一个 的mask。
由于属于像素级别的预测问题,就需要RoI能够在进行特征提取的时候保持住空间信息,至少在像素级别上能够对应起来。因此,传统的取最大值的方法就显得不合适。 RoI Pooling,经历了两个量化的过程: 第一个:从roi proposal到feature map的映射过程。 第二个:从feature map划分成7*7的bin,每个bin使用max pooling。
为此,作者使用了RoIAlign。如下图
为了避免上面提到的量化过程
可以参考
作者使用ResNet作为基础的特征提取的网络。 对于预测类别,回归框,mask的网络使用如下图结构:
整体看完这几篇大佬的论文,虽说没有弄清楚每一个实现细节,但是大体上了解了算法的思路。可以看出,出发点都源于深度神经网络在特征提取上的卓越能力,因此一众大神试图将这种能力应用在检测问题中。从R-CNN中简单地用于特征提取,到为了提高速度减少计算的Fast R-CNN,再到为了将region proposal集成进入整个模型中,并且利用GPU加速的RPN,也就是Faster R-CNN。再到为了应用于instance segmentation任务中,设计的RoIAlign和mask。包括bounding box regression,pooling层的设计,训练方法的选择,loss的设计等等细节,无一不体现了大师们的思考和创造力。 可能在我们这些“拿来”者的眼中,这些方法都显得“理所应当”和巧妙,好用,但是,它们背后隐藏的选择和这些选择的思考却更值得我们学习。 以及,对待每一个问题,如何设计出合理的解决方案,以及方案的效率,通用性,更是应该我们努力的方向。
请问你是想发稿么
不会。论文改回归结果不会被发现的,是小批改不会发现的。论文发表是需要审核的,有一项就是论文内容与实际不符的审核容易不通过。
简介:GA-RPN(Guided Anchoring)是一种新的anchor 生成方法,其通过图像特征来指导anchor 的生成。通过CNN预测 anchor 的位置和形状,生成稀疏而且形状任意的 anchor,并且设计Feature Adaption 模块来修正特征图使之与预测生成得 anchor精确匹配。GA-RPN相比RPN减少90%的anchor,并且提高9.1%的召回率,将其用于不同的物体检测器Fast R-CNN, Faster R-CNN and RetinaNet,分别提高 检测mAP 2.2%,2.7% ,1.2%。 贡献: 提出了一种新的anchor策略,用于产生稀疏的任意形状的anchor; 设计了基于anchor形状的特征适应模块来refine特征; 提出了一种改进模型性能的方案. 现有的Anchor-based方法生成Anchor的过程存在两大问题: 为了保证召回率,需要生成密集的anchor,引入过多负样本同时影响模型的速率。 anchor的尺度和长宽比需要预先定义,针对不同类型的检测任务需要调整这些超参数,预先定义好的 anchor 形状不一定能满足极端大小或者长宽比悬殊的物体。 基于上述两点,作者就尝试使用特征去指导Anchor box中心位置,宽高比的生成,这样不仅可以提高生成Anchor的效率,而且还可以生成任意大小的Anchor,这对于一些比较极端长宽比的物体是非常有效的。 注意:作者假设待检测图像中的目标是不均匀分布的且稀疏的。 作者提出使用图像特征去指导Anchor生成,该结构称为Guided Anchoring,Guided Anchoring可以嵌入到任意的Anchor生成模块之中。下面是一个嵌入到FPN中的例子: 上图左边是一个FPN结构,FPN每一层的特征都可以嵌入一个Guided Anchoring模块用于预测proposals。Guided Anchoring的具体结构则如上图右边所示,主要由两个模块组成: 添加两个分支分别用于预测特征图上每个像素(对应的感受野)是目标的置信度,以及对应宽和高。目标的置信度大于一个特定域值,则被认为是目标。显然,这个proposal获取的过程不同于滑窗,可以减少大量负样本(每个Feature map上的像素点做多只产生一个proposal)。此外,由于宽和高也是CNN回归出来的,所以没有对物体的scale,宽高比作任何先验假设。 1、anchor Location Prediction 位置预测分支的目标是预测那些区域应该作为中心点来生成 anchor,是一个二分类问题,预测是不是物体的中心。 FPN特征图经过位置预测子网络生成位置得分图:对基础feature map先通过1*1卷积,然后逐元素Sigmoid转换为概率值。然后根据阈值筛选,可以过滤掉90%的区域而保持相同的召回率 我们将整个 feature map 的区域分为物体中心区域,外围区域和忽略区域:即将 ground truth 框的中心一小块对应在 feature map 上的区域标为物体中心区域,在训练的时候作为正样本,其余区域按照离中心的距离标为忽略或者负样本。通过位置预测,可以筛选出一小部分区域作为 anchor 的候选中心点位置,使得 anchor 数量大大降低。 针对每个检测出的中心点,选取一个最佳的anchor box。最佳anchor box的定义为:与预测的候选中心点的邻近ground truth box产生最大IOU的anchor box。 形状预测分支的目标是给定 anchor 中心点,预测最佳的长和宽,这是一个回归问题。论文直接使用 IoU 作为监督,来学习 w 和 h。无法直接计算w 和 h,而计算 IoU 又是可导的操作,所以使用基于bounded IoU Loss网络优化使得 IoU 最大。 作者认为,直接预测anchor box的宽高的话,范围太广不易学习,故将宽高值使用指数及比例缩放进行压缩: ω =σ·s·exp(dw) , h=σ·s·exp(dh ) 该分支预测dw,dh,通过上式进行压缩,s为stride,σ是经验尺度因子(论文取8),该映射将[0,1000]压缩至[-1,1]。该分支输出dw和dh。首先通过1*1卷积层产生两个通道的map(包括dw和dh的值),然后经过逐元素转换层实现w和h的转化。得益于任意形状的anchor,所以对于宽高比夸张的目标也具有更好的效果(比如火车等)。 Feature adaption模块:这个模块实际上借鉴了可变性卷积的思想。 由于每个位置的形状不同,大的anchor对应较大感受野,小的anchor对应小的感受野。所以不能像之前基于anchor的方法那样直接对feature map进行卷积来预测,而是要对feature map进行feature adaptation。作者利用变形卷积的思想,根据形状对各个位置单独进行转换。 其中,fi是第i个位置的特征,(wi, hi)是对应的anchor形状。NT通过3*3的变形卷积实现。首先通过形状预测分支预测offset field,然后对带偏移的原始feature map做变形卷积获得adapted features。之后进一步做分类和bounding box回归。 采用多任务loss进行端到端的训练,损失函数为: 利用groundtruth bounding box来指导label生成,1代表有效位置,0代表无效位置。中心附近的anchor应该较多,而远离中心的anchor数目应该少一些。假定R(x, y, w, h)表示以(x, y)为中心,w和h分别为宽高的矩形区域。将groundtruth的bbox(xg, yg, wg, hg)映射到feature map的尺度得到(x'g, y'g, w'g, h'g)。 a.定义中心区域CR=R(x'g, y'g, σ1w', σ1h'),CR区域内的像素标记为正样本; b.定义ignore区域IR=R(x'g, y'g, σ2w', σ2h')\CR,该区域的像素标记为ignore; c.其余区域标记为外部区域OR,该区域所有像素标记为负样本。 考虑到基于FPN利用了多层feature,所以只有当feature map与目标的尺度范围匹配时才标记为CR,而临近层相同区域标记为IR,如下图所示。文中使用Focal Loss来训练定位分支。 首先将anchor与groundtruth的bbox匹配,然后计算最佳宽和高(可以最大化IoU)。因此重新定义了变化的anchor与gt bbox的vIoU: 变化anchor:awh=(x0, y0, w, h) groundtruth bbox:gt=(xg, yg, wg, hg) 其中IoUnormal是IoU的常规定义,w和h是变量。由于对任意位置的anchor与ground truth,对vIOU进行明确的表示是非常困难的,因此给定(x0,y0),本文采用近似的方法,采样一些可能的w和h。文中采样了9组常见的w、h。实验表明结果对sample的组数不敏感。文中采用有界IoU损失来最大化IoU。 作者使用Guided Anchoring策略来改进RPN(称为GA-RPN)。下图对比了RPN和GA-RPN产生的proposal的IoU分布: 很显然,GA-RPN产生的正样本数目更多,而且高IoU的proposal占的比例更大。训练时相比于RPN,GA-RPN采用更高的阈值、使用更少的样本(使用高质量proposal的前提是根据proposal的分布调整训练样本的分布)。 优点: 1、论文提出anchor设计的两个准则:alignment 和 consistency,指导基于anchor优化的方向。采用位置预测和形状预测两个分支,不需要像FPN预先设置尺度和长宽比,同时使用可变形卷积对feature map调整,生成高质量低密度的proposal,提高IoU的阈值进行训练。 2、提出了一种新的anchor策略,用于产生稀疏的任意形状的anchor; 3、论文提出的GA-RPN可以完全替代RPN,在Fast R-CNN, Faster R-CNN and RetinaNet等模型基础上提高目标检测模型的精度。 缺点: 1、论文假设图像中的目标是稀疏的。如果是稠密图像,比如车站或广场的拥挤人群,检测效果有待检验。 2、每一个点只产生一个anchor,那么对于那些目标中心重合,即一个点需要负责检测两个目标,似乎无法处理。 3、采用deformable卷积会相对地降低速度,同时根据DCN v2的分析,在deformable卷积中加入可调节的机制可能会更好。 思考: 1、可以借鉴采用双分支预测:一个分支预测目标的中心点,另一个分支预测物体的长框,这个思想的实现和看完cornerNet和CenterNet的想法实现是类似的,但是出发点不同。 之前做双分支预测是想利用anchor free中的中心点的预测看能否增加物体的内部感知能力。现在的双分支预测是为了减少先验框anchor的数量,减少正负样本的不平衡问题。两者出发点不同,但是采用的操作是类似的,有效性有待考证。