首页

> 期刊投稿知识库

首页 期刊投稿知识库 问题

最新的实时目标检测论文

发布时间:

最新的实时目标检测论文

论文名称: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算法,从而实现真正的端到端检测算法。 参考博客 :

在谷歌学术搜索中,存有高达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团队击败了围棋九段棋手柯洁。人工智能击败了最强大脑,没有什么能比这更能说明人工智能的前途,同时也可能是一个细思极恐的大事件。在机器击败人的时代,人怎么办?

篇目标检测最新论文

GitHub CSDN

目前。计算机视觉中的性能最好的目标检测方法主要分为两种: one-stage 和two-stage 方法。two-stage方法分为两步,第一步为候选区域生成阶段(Proposal stage),通过如Selective Search、EdgeBoxes等方法可以生成数量相对较小候选目标检测框;第二步为分类与回归阶段,对第一阶段生成的 Candiate Proposal 进行分类和位置回归。one-stage 代表性的方法是R-CNN系列,如 R-CNN, Fast R-CNN, Faster R-CNN。 而one-stage 方法直接对图像的大量 Candiate Proposals 进行分类与回归。

这两类方法中均存在类别不平衡问题,two-stage 方法通过第一步已经将当量的候选区域降低到一个数量较小的范围,同时又在第二步通过一些启发式原则,将正负样本的比例降低到一定程度。而 one-stage 优于没有这降低候选框的步骤,因此,候选区域的数量大大超过 two-stage 方法,因此,在精度上,two-stage 仍然优于 one-stage 方法,但是在速度和模型复杂度上, one-stage 占优势。

类别不平衡会使检测器评估 的候选位置,但是通常只有少量的位置存在目标,这回导致两个问题:

因此,解决样本不平衡问题是提高目标检测精度的一个关键技术之一。

论文题目: Training Region-based Object Detectors with Online Hard Example Mining

OHEM 是通过改进 Hard Example Mining 方法,使其适应online learning算法特别是基于SGD的神经网络方法。Hard Example Mining 通过交替地用当前样本集训练模型,然后将模型固定,选择 False Positive 样本来重新组建用于下一次模型训练的样本集。但是因为训练神经网络本事就是一个耗时的操作,这样在训练中固定模型,这样会急剧降低模型的训练进程。

Hard Examples Mining通常有两种方法:

OHEM算法的大致流程是: 首先计算出每个ROI的loss, 然后按loss从高到低来排列每个 ROI, 然后为每张图片选择 个损失最高的 ROI 作为Hard Examples,其中 B 表示总的 ROI 数量, 表示batch-size 的大小,在 Fast R-CNN 中, N=2, B=128时,效果很好。

但是如果直接按照 loss 对所有的 ROI 进行选择,会有一个缺点,由于 ROI 很多,这样 很多 ROI 的位置就会相关并重叠,如果和某个高 Loss 的 ROI 重合度很高的其它 ROI很多, 这样, 这些 ROI 的 Loss 通常也会很多,这样这些样本都会被选择,但是它们可以近似认为时同一个,这样就会给其它较低 Loss 的 ROI 更少的选择余地,这样就会存在冗余。为了消除这种冗余,作者提出先使用 NMS (non-maximum suppression) 删除部分重合度很高的 ROI, 在使用上述方法进行 选择 Hard Example。

实现技巧:

论文,作者将该方法是现在 Fsat R-CNN 目标检测方法中。最简单做法是更改损失函数层,损失函数层首先计算所有 ROI 的 loss, 然后根据 loss 对 ROI 进行排序,并选择 hard RoIs, 让 那些 non-RoIs的损失变为0. 这种方法虽然很简单,但是非常不高效,因为还需要为所有的 RoIs 分配进行反向传播时需要的内存空间。

为了克服这个缺点,作者对下面的 Figure 1 进行改进, 如下面的 Figure 2.该改进时使用两份同样的 RoI network。 其中一个是只读的(readonly), 即只进行前向计算,不进行反向传播优化,所以只需要为前向传播分配内存,它的参数实时保持和另一个 RoI network(regular RoI network)保持一样。在每次迭代时,首先使用 readonly RoI network 对每个 ROI 计算起 loss,然后用上面描述的选择 hard RoIs 的方法选择 hard RoIs. 然后利用 regular RoI network来对选择的 hard RoIs 进行前向和后向计算来优化网络。

论文题目 Focal Loss for Dense Object Detection

在改论文中,作者认为样本类别的不平衡可以归结为难易样本的不平衡,从而更改交叉熵损失函数,重新对样本赋予不同的权值,之前的模型这些样本都是同等重要的,从而使模型训练更加关注 hard examples。

首先引入交叉熵的公式:

其中, ,表示真实类别, 表示我们预测的概率,为了方便,我们定义:

因此, ,该方法在 较大时,该loss是一个较小的量级, 如下图的连线所示所示,因为存在大量的易分类样本,相加后会淹没正样本的loss。

一个常见的解决类别不平衡的方式是引入一个加权因子 来表示正样本的权重, 表示负样本的权重。我们按照定义 的方法重新定义 为 , 定义如下:

虽然可以平衡 positive和negative的重要性,但是对 easy/hard 样本还是无法区分, Focal loss 通过更 Cross loss来达到区分easy/hard的目的:

上图展示了不同 取值对应的 loss,通过分析上述公式,我们发现,当 非常小时,即样本被分类错误,此时 接近1, loss几乎不受影响,当 接近于1时,即样本被分类正确,此时 接近0,此时降低了该样本的权重,比如,取 , 当时 时,该样本的 loss 会降低100倍,

在实际应用中,作者使用了该 Focal loss的变体,即加入了 平衡因子:

作者提出,对于二分类,一般模型的模型初始化会同概率的对待正负样本,由于类别不平衡,负样本的 loss 会占主导,作者提出在训练初始阶段对正样本的概率估计“prior”的概念,用 表示, 通过设置它来达到正样本的输出概率低的效果,比如为0.01,从而使模型更加关注正样本。实际操作中,出了最后一个用于分类的卷积层,其余卷积层的参数初始化为bias ,而最后一层 , 实验中设置为 0.01.

两个实现细节

论文题目: Gradient Harmonized Single-stage Detector

改论文提出 Focal Loss 存在两个缺点:

该论文有一句概括该篇论文的核心思想的一句话: 类别的不平衡可以归结为难易样本的不平衡,难易样本的不平衡可以归结为梯度的不平衡原话如下:

如下图所示:

左边是样本数量关于梯度的分布,中间表示各个修正后的函数的梯度(使用了log scale)对原始梯度的,右边表示所有样本集的梯度贡献的分布。

定义 是模型未经过 sigmoid 之前的输出, 则 ,得出该损失函数对 的梯度为:

定义梯度的模长(norm) 为:

训练样本的梯度密度(Gradient Density)定义如下:

其中, 是第 k 个样本的gradient norm,

这个公式可以理解为,以梯度 为中心,宽度为 的区域内的样本密度。

梯度密度协调参数:

分母是对梯度位于 范围的部分样本进行归一化,如果所有样本的梯度时均分分布,那么对于任意 都有 .(这里不是很理解为什么N,可以理解它们相等)

通过将梯度密度协调参数将 GHM 嵌入到损失函数中,则 GHM-C Loss 为:

计算公式11时,求和有一个N,再求 时会遍历所有的样本,因此该公式的时间复杂度为 .如果并行的化,每个计算单元也有N的计算量。对gradient norm进行排序的最好的算法复杂度为 ,然后用一个队列去扫描样本得到梯度密度的时间复杂度为 n 。基于排序的方法即使并行也不能较快的计算,因为N往往是 甚至 ,仍然是非常耗时的.

作者提出的近似求解的方法如下:

根据上述定义,得出近似梯度密度函数为:

利用上面的公式,由于我们可以事先求好 , 在求和时只需查找 即可,因此时间复杂度为 .

因为loss的计算是基于梯度密度函数,而梯度密度函数根据一个batch中的数据得到,一个batch的统计结果是有噪声的。与batch normalization相同,作者用Exponential moving average来解决这个问题,也就是

将模型鱼的的偏移量定义为 , 将真实的偏移量定义为 ,回归loss采用 Smooth L1 loss:

其中

则 关于 的梯度为:

从公式可以看出,当样本操作 时, 所有样本都有相同的梯度 1, 这就使依赖梯度范数来区分不同样本是不可能的, 一种简单的替代方法时直接使用 作为衡量标准,但是该值理论上无限大,导致 无法实现,

为了将 GHM 应用到回归损失上,作者修改了原始的 损失函数:

该函数和 具有类似的属性,当d的绝对值很小时,近似 L2 loss, 当d的绝对值比较大时, 近似 L1 loss, 关于d的梯度为:

这样就将梯度值限制在

定义 , 则 GHM-R Loss 为:

论文题目: Prime Sample Attention in Object Detection

PISA 方法和 Focal loss 和 GHM 有着不同, Focal loss 和 GHM 是利用 loss 来度量样本的难以程度,而本篇论文作者从 mAP 出法来度量样本的难易程度。

作者提出提出改论文的方法考虑了两个方面:

Prime Samples 是指那些对检测性能有着巨大影响的样本。作者研究表明样本的重要程度依赖于它和ground truth 的 IoU值,因此作者提出了一种 IOU-HLR 排序。

在目标检测中时如何定义正样本(True Positive)的呢?

剩余的标注为负样本。

mAP 的原理揭露了对目标检测器更重要的 两个准则 :

基于上述分析,作者提出了一种称为 IoU-HLR 的排序方法,它既反映了局部的IoU关系(每个ground truth目标周围),也反映了全局的IoU关系(覆盖整个图像或小批图像)。值得注意的是,不同于回归前的边界框坐标,IoU-HLR是根据样本的最终定位位置来计算的,因为mAP是根据回归后的样本位置来计算的。

该排序方法的大致流程如下图所示,其原理如下:

IoU-HLR遵循上述两个准则。首先,它通过局部排序(即上面的步骤2)将每个单独的 GT 的 对应的样本中 IoU 较高的样本放在前面,其次通过重采样和排序(步骤3, 4)将不同 GT 的 对应的样本中, 将 IoU 较高的放在了前面。

作者提出Prime Sample Attention,一种简单且有效的采样策略,该采样策略将更多的注意力集中到 Prime examples 上, PISA 由两部分组成: Importance- based Sample Reweighting(ISR)和Classification Aware Regression Loss(为CARL).

PISA 的训练过程是基于 prime samples 而不是同等对待所有样本。

作者提出一种基于 soft sampling 的方法: Importance-based Sample Reweighting (ISR), 他给不同样本根据重要性赋予不同的权重。首先它将Iou-HLR排序转化为线性映射的真实值。 IoU-HLR在每个类中分别进行计算。对于类 , 假设总共有 个样本, 通过 IoU-HLR 表示为 . 其中 ,使用一个线性转换函数将 转换为 , 表示第 类中的第 个样本的重要程度:

采用指数函数的形式来京一部将样本重要性 转换为 loss 的权值 , 表示对重要样本给予多大的优先权的程度因子, 决定最小样本权值的偏差(感觉就是一个决定最小的权值大小的一个变量)。

根据上面得到的权重值,重写交叉熵:

其中 n 和 m 分别表示真样本和负样本的数量, 和 分别表示预测分数和分类目标,需要注意的是,如果只是简单的添加 loss 权值将会改变 loss 的值,并改变正负样本的比例,因此为了保持正样本的总的 loss 值不变, 作者将 归一化为 (这里不是很理解,欢迎大家解惑)

5.3.1 已经介绍如何染个分类器知道 prime samples, 那么如何让回归其也知道 prime sample,作者提出了 Classification-Aware Regression Loss(CARL) 来联合优化分类器和回归其两个分支。CARL可以提升主要样本的分数,同时抑制其他样本的分数。回归质量决定了样本的重要性,我们期望分类器对重要样本输出更高的分数。两个分支的优化应该是相互关联的,而不是相互独立的。

作者的方法是让回归器知道分类器的分数,这样梯度就可以从回归器传播到分期其分支。公式如下:

表示相应类别的预测分数, 表示输出的回归偏移量。利用一个指数函数将 转化为 ,随后根据所有样本的平均值对它进行缩放。为了保持损失规模不变,对具有分类感知的 进行归一化。 是常用的smooth L1 loss。

关于 的梯度与原回归损失 成正比。 p_i \mathcal{L}(d_i, \hat d_i) \mathcal{L}(d_i, \hat d_i)$ 反映了样本i的定位质量,因此可以认为是一个IoU的估计,进一步可以看作是一个IoU-HLR的估计。可以近似认为,排序靠前的样本有较低的回归损失,于是分类得分的梯度较小。对于CARL来说,分类分支受到回归损失的监督。 不重要样本的得分被极大的抑制掉,而对重要样本的关注得到加强。

待续。。。

上面的方法大致可以分为两种:

Focal Loss认为正负样本的不平衡,本质上是因为难易样本的不平衡,于是通过修改交叉熵,使得训练过程更加关注那些困难样本,而GHM在Focal Loss的基础上继续研究,发现难易样本的不平衡本质上是因为梯度范数分布的不平衡,和Focal Loss的最大区别是GHM认为最困难的那些样本应当认为是异常样本,让检测器强行去拟合异常样本对训练过程是没有帮助的。PISA则是跳出了Focal Loss的思路,认为采样策略应当从mAP这个指标出发,通过IoU Hierarchical Local Rank (IoU-HLR),对样本进行排序并权值重标定,从而使得recall和precision都能够提升。

论文: Sparse R-CNN: End-to-End Object Detection with Learnable Proposals

论文认为,目前的目标检测算法可以按预设框的多少分为两种:

上述两种方法都会预测大量的结果,需要进行NMS后处理,而在训练的时候会存在many-to-one的问题,并且anchor的设置对性能的影响很大。   于是,很多研究开始探讨稀疏(sparse)检测,比如近期的DETR算法。该算法不需要预设anchor,并且预测的结果可直接输出,不需要后处理。但论文认为DETR并不是真正的稀疏检测,因为DETR在各位置提取特征时,需要与全图的上下文进行交互,而真正的稀疏检测应该满足sparse boxes和sparse features,即较少的初始框设定以及框之间不需要过多的特征互动。   为此,论文提出了Sparse R-CNN,如图1c所示,仅需设定少量anchor即可进行检测,而且能够进行set prediction,免去NMS等后处理,其核心主要包含以下几点:

Sparse R-CNN的推理流程如图3所示,输入图片、可学习的proposal boxes以及可学习的proposal features,根据proposal boxes提取对应的RoIAlign特征,dynamic head将proposal features转换为卷积核参数,对RoIAlign特征进一步提取特征,再进行后续的分类和回归。整体的思想和Fast RCNN很像,将selective search替换为proposal boxes,再增加其它更强的模块。

论文采用FPN-ResNet作为主干网络,输出多层特征,每层特征的维度都是256。采用更复杂的主干网络可以获得更好的性能,但论文与Faster R-CNN对齐,采用标准的实现。

Sparse R-CNN的核心是采用数目固定的小批量可学习proposal boxes( )作为region proposal,而非RPN。每个box为4-d参数,在0~1范围内,值为归一化的中心点坐标、宽度和高度。这些参数在训练过程中通过反向传播进行更新,包含了训练集目标位置的统计信息,可用于推理时的初步目标位置猜测。

尽管4维的proposal box能够直观地表示目标的定位,但缺少了目标的信息,比如目标的姿态和形状,所以论文引入proposal feature( )进行补充。proposal features是高维的可学习向量,与proposal boxes一一对应,用于丰富目标的RoIAlign特征。

Dynamic instance interactive head的结构如图4所示,每个proposal box都有一个专属的预测head。给定 个proposal boxes和 个proposal features,先通过RoIAlign提取每个box的 维特征,Dynamic instance interactive head将其对应的 维proposal feature转换为卷积参数,使用这个卷积参数对RoIAlign特征进行提取,得到目标的 维特征,最后经过简单的3层感知机进行分类与回归。   Dynamic instance interactive head也可以使用类似Cascade R-CNN那样的级联模式进一步的提升性能,将输出的新回归框和 维特征作为下一次迭代的proposal box和proposal feature即可。

Sparse R-CNN的训练采用set prediction的形式,将固定数量的预测结果与GT之间进行二分图最优的匹配,然后计算损失值,完整的损失函数为:

各模块对比实验。

性能与收敛性。

在COCO上进行对比。

Sparse R-CNN贯彻了稀疏的思想,只提供少量初始框,可进行Set prediction,颠覆了当前密集预测的检测思路,整体框架十分简洁,跟Fast RCNN有点像,十分值得大家阅读。

cvpr最新目标检测论文

论文:A Dual Weighting Label Assignment Scheme for Object Detection

[图片上传失败...(image-26dcc3-1650423723225)]

Anchor作为目标检测器训练的基础单元,需要被赋予正确的分类标签和回归标签,这样的标签指定(LA, label assignment)过程也可认为是损失权重指定过程。对于单个anchor的cls损失计算,可以统一地表示为:

[图片上传失败...(image-2e24aa-1650423723225)]

和 为正向权重和反向权重,用于控制训练的方向。基于这个设计,可以将LA方法分为两个大类:

[图片上传失败...(image-372b16-1650423723225)]

为了给检测器提供更多的监督信息,论文提出了新的LA方法DW(dual weighting),从不同的角度单独计算 和 并让其能够互补。此外,为了给权重计算函数提供更准确的reg分数,论文还提出了新的bbox精调操作,预测目标的边界位置并根据对应的特征产生更准确的精调信息。

由于NMS的存在,检测器应该预测一致的bbox,既有高分类分数也有准确的位置定位。但如果在训练时平等地对待所有的训练样本,而cls分数越高的预测结果的reg位置不一定越准确,这往往会导致cls head与reg head之间就会存在不一致性。为此,Soft LA通过加权损失来更柔和地对待训练样本,加强cls head与reg head的一致性。基于Soft LA,anchor的损失可以表示为:

[图片上传失败...(image-51f384-1650423723225)]

其中 为预测的cls分数。为一致性更高的预测结果分配更大的 和 ,能够使得网络专注于学习高质量的预测结果,减轻cls head与reg head的不一致问题。

[图片上传失败...(image-98093b-1650423723225)]

当前的方法直接将 设置为 ,主要关注如何定义一致性以及如何将其集成到损失权重中。表1总结了一些方法对 和 的计算公式,这些方法先定义用于度量一致性的指标 ,随后将 作为不一致性的度量指标,最后添加缩放因子将指标集成到损失权重中。  上述方法的 和 都是高度相关的,而论文认为pos和neg权重应该以prediction-aware的方式单独设置,具体如下:

通过上述定义, 对于pos权重相似的这种模棱两可的anchor,就可以根据不同的neg权重得到更细粒度的监督信息 。

[图片上传失败...(image-535eff-1650423723225)]

DW方法的整体流程如图2所示,先根据中心点距离来为每个GT构造候选正样本集,其余的anchor为候选负样本。由于负样本的统计信息十分混乱,所以不参与权重函数的计算。候选正样本会被赋予三个权重 、 以及 ,用于更有效地监督训练。

pos权重需要反映预测结果对检测性能的重要性,论文从目标检测的验证指标来分析影响重要性的因素。在测试时,通常会根据cls分数或cls分数与IoU的结合对单分类的预测结果进行排序,从前往后依次判断。正确的预测需满足以下两点:

上述条件可认为是选择高ranking分数以及高IoU的预测结果,也意味着满足这两个条件的预测结果有更大概率在测试阶段被选择。从这个角度来看,pos权重 就应该与IoU和ranking分数正相关。首先定义一致性指标 ,用于度量两个条件的对齐程度:

[图片上传失败...(image-aac9d-1650423723225)]

为了让不同anchor的pos权重的方差更大,添加指数调节因子:

[图片上传失败...(image-3a2156-1650423723225)]

最终,各anchor的pos权重会根据对应GT的候选anchor的pos权重之和进行归一化。

pos权重虽然可以使得一致的anchor同时具有高cls分数和高IoU,但无法区分不一致anchor的重要程度。如前面图1所示,anchor D定位校准但分类分数较低,而anchor B恰好相反。两者的一致性程度 一致,pos权重无法区分差异。为了给检测器提供更多的监督信息,准确地体现anchor的重要程度,论文提出为两者赋予更清晰的neg权重,具体由以下两部分构成。

根据COCO的验证指标,IoU不满足阈值的预测结果一律归为错误的检测。所以,IoU是决定achor为负样本的概率的唯一因素,记为 。由于COCO使用0.5-0.95的IoU阈值来计算AO,所以 应该满足以下规则:

[图片上传失败...(image-639b1e-1650423723225)]

任意 上单调递减的函数都可以作为 中间部分。为了简便,论文采用了以下函数:

[图片上传失败...(image-fa54fb-1650423723225)]

公式6需要穿过点 和 ,一旦 确定了,参数 和 可通过待定系数法确定。

[图片上传失败...(image-83052a-1650423723225)]

图3展示了不同 下的 曲线。

在推理时,ranking队列中靠前的neg预测结果虽然不会影响召回率,但会降低准确率。为了得到更高的性能,应该尽可能地降低neg预测结果的ranking分数。所以在训练中,ranking分数较高的neg预测结果应该比ranking分数较低的预测结果更为重要。基于此,定义neg预测结果的重要程度 为ranking分数的函数:

[图片上传失败...(image-1f95aa-1650423723225)]

最终,整体的neg权重 变为:

[图片上传失败...(image-851912-1650423723225)]

与 负相关,与 正相关。对于pos权重相同的anchor,IoU更小的会有更大的neg权重。在兼容验证指标的同时, 能给予检测器更多的监督信息。

pos权重和neg权重都以IoU作为输入,更准确的IoU可以保证更高质量的训练样本,有助于学习更强的特征。为此,论文提出了新的box精调操作,基于预测的四条边的偏移值 进行下一步的精调。

[图片上传失败...(image-98246a-1650423723225)]

考虑到目标边界上的点有更大的概率预测准确的位置,论文设计了可学习的预测模块,基于初步的bbox为每条边生成边界点。如图4所示,四个边界点的坐标定义为:

[图片上传失败...(image-a8361b-1650423723225)]

其中, 为精调模块的输出。最后,结合边界点的预测和精调模块的输出,最终精调后的anchor偏移 为:

[图片上传失败...(image-935c8b-1650423723225)]

DW策略可直接应用到大多数的dense检测器中。论文将DW应用到FCOS中并进行了少量修改,将centerness分支和分类分支合并成cls分数,网络的损失为:

[图片上传失败...(image-5d0fc-1650423723225)]

[图片上传失败...(image-1a38af-1650423723225)]

这里的 跟公式3是同一个, 和 分别为候选anchor数和非候选anchor数。

[图片上传失败...(image-20568e-1650423723225)]

平衡超参数对性能的影响。

[图片上传失败...(image-14e2fa-1650423723225)]

候选anchor选择方法对性能的影响。第一种为中心点的距离阈值,第二种选择最近的几个,第三种为距离权重与pos权重乘积排序。

[图片上传失败...(image-74467a-1650423723225)]

neg权重计算方式对比。

[图片上传失败...(image-8baa09-1650423723225)]

LA研究之间的对比。

[图片上传失败...(image-9d2740-1650423723225)]

与SOTA检测算法对比。

论文提出自适应的label assignment方法DW,打破了以往耦合加权的惯例。根据不同角度的一致性和非一致性指标,动态地为anchor分配独立的pos权重和neg权重,可以更全面地监督训练。此外,论文还提出了新的预测框精调操作,在回归特征图上直接精调预测框。

论文: EfficientDet: Scalable and Efficient Object Detection

目前目标检测领域,高精度的模型通常需要很大的参数量和计算量,而轻量级的网络则一般都会牺牲精度。因此,论文希望建立一个可伸缩的高精度且高性能的检测框架。论文基于one-stage的检测网络范式,进行了多种主干网络、特征融合和class/box预测的结构尝试,主要面临两个挑战:

FPN是目前最广泛的多尺度融合方法,最近也有PANet和NAS-FPN一类跨尺度特征融合方法。对于融合不同的特征,最初的方法都只是简单地直接相加,然而由于不同的特征是不同的分辨率,对融合输出特征的共享应该是不相等的。为了解决这一问题,论文提出简单但高效加权的bi-directional feature pyramid network(BiFPN),该方法使用可学习的权重来学习不同特征的重要性,同时反复地进行top-down和bottom-up的多尺度融合

论文认为除了缩放主干网络和输入图片的分辨率,特征网络(feature network)和box/class预测网络的缩放对准确率和性能也是很重要的。作者借鉴EfficientNet,提出针对检测网络的混合缩放方法(compound scaling method),同时对主干网络,特征网络和box/class预测网络的分辨率/深度/宽度进行缩放

最后,论文将EfficientNet作为主干,结合BiFPN和混合缩放,提出新的检测系列EfficientDet,精度高且轻量,COCO上的结果如图1,论文的贡献有以下3点:

定义多尺寸特征 ,论文的目标是找到变化函数 来高效融合不同的特征,输出新特征 。具体地,图2a展示了top-down FPN网络结构,一般FPN只有一层,这里应该为了对比写了repeat形式。FPN获取3-7层的输入 , 代表一个分辨率为 的特征层

top-down FPN操作如上所示, 为上采用或下采样来对齐分辨率, 通常是特征处理的卷积操作

top-down FPN受限于单向的信息流,为了解决这一问题,PANet(图2b)增加了额外的bottom-up路径的融合网络,NAS_FPN(图2c)使用神经架构搜索来获取更好的跨尺度特征网络的拓扑结构,但需要大量资源进行搜索。其中准确率最高的是PANet,但是其需要太多的参数和计算量,为了提高性能,论文对跨尺寸连接做了几点改进:

大多的特征融合方法都将输入特征平等对待,而论文观察到不同分辨率的输入对融合输出的特征的贡献应该是不同的。为了解决这一问题,论文提出在融合时对输入特征添加额外的权重预测,主要有以下方法:

, 是可学习的权重,可以是标量(per-feature),也可以是向量(per-channel),或者是多维tensor(per-pixel)。论文发现标量形式已经足够提高准确率,且不增加计算量,但是由于标量是无限制的,容易造成训练不稳定,因此,要对其进行归一化限制

,利用softmax来归一化所有的权重,但softmax操作会导致GPU性能的下降,后面会详细说明

,Relu保证 , 保证数值稳定。这样,归一化的权重也落在 ,由于没有softmax操作,效率更高,大约加速30%

BiFPN集合了双向跨尺寸的连接和快速归一化融合,level 6的融合操作如上, 为top-down路径的中间特征, 是bottom-up路径的输出特征,其它层的特征也是类似的构造方法。为了进一步提高效率,论文特征融合时采用depthwise spearable convolution,并在每个卷积后面添加batch normalization和activation

EfficientDet的结构如图3所示,基于one-stage检测器的范式,将ImageNet-pretrained的EfficientNet作为主干,BiFPN将主干的3-7层特征作为输入,然后重复进行top-down和bottom-up的双向特征融合,所有层共享class和box网络

之前检测算法的缩放都是针对单一维度的,从EfficientNet得到启发,论文提出检测网络的新混合缩放方法,该方法使用混合因子 来同时缩放主干网络的宽度和深度、BiFPN网络、class/box网络和分辨率。由于缩放的维度过多,EfficientNet使用的网格搜索效率太慢,论文改用heuristic-based的缩放方法来同时缩放网络的所有维度

EfficientDet重复使用EfficientNet的宽度和深度因子,EfficinetNet-B0至EfficientNet-B6

论文以指数形式来缩放BiFPN宽度 (#channels),而以线性形式增加深度 (#layers),因为深度需要限制在较小的数字

box/class预测网络的宽度固定与BiFPN的宽度一致,而用公式2线性增加深度(#layers)

因为BiFPN使用3-7层的特征,因此输入图片的分辨率必需能被 整除,所以使用公式3线性增加分辨率

结合公式1-3和不同的 ,论文提出EfficientDet-D0到EfficientDet-D6,具体参数如Table 1,EfficientDet-D7没有使用 ,而是在D6的基础上增大输入分辨率

模型训练使用momentum=0.9和weight decay=4e-5的SGD优化器,在初始的5%warm up阶段,学习率线性从0增加到0.008,之后使用余弦衰减规律(cosine decay rule)下降,每个卷积后面都添加Batch normalization,batch norm decay=0.997,epsilon=1e-4,梯度使用指数滑动平均,decay=0.9998,采用 和 的focal loss,bbox的长宽比为 ,32块GPU,batch size=128,D0-D4采用RetinaNet的预处理方法,D5-D7采用NAS-FPN的增强方法

Table 2展示了EfficientDet与其它算法的对比结果,EfficientDet准确率更高且性能更好。在低准确率区域,Efficient-D0跟YOLOv3的相同准确率但是只用了1/28的计算量。而与RetianaNet和Mask-RCNN对比,相同的准确率只使用了1/8参数和1/25的计算量。在高准确率区域,EfficientDet-D7达到了51.0mAP,比NAS-FPN少使用4x参数量和9.3x计算量,而anchor也仅使用3x3,非9x9

论文在实际的机器上对模型的推理速度进行了对比,结果如图4所示,EfficientDet在GPU和CPU上分别有3.2x和8.1x加速

论文对主干网络和BiFPN的具体贡献进行了实验对比,结果表明主干网络和BiFPN都是很重要的。这里要注意的是,第一个模型应该是RetinaNet-R50(640),第二和第三个模型应该是896输入,所以准确率的提升有一部分是这个原因。另外使用BiFPN后模型精简了很多,主要得益于channel的降低,FPN的channel都是256和512的,而BiFPN只使用160维,这里应该没有repeat

Table 4展示了Figure 2中同一网络使用不同跨尺寸连接的准确率和复杂度,BiFPN在准确率和复杂度上都是相当不错的

Table 5展示了不同model size下两种加权方法的对比,在精度损失不大的情况下,论文提出的fast normalized fusion能提升26%-31%的速度

figure 5展示了两种方法在训练时的权重变化过程,fast normalizaed fusion的变化过程与softmax方法十分相似。另外,可以看到权重的变化十分快速,这证明不同的特征的确贡献是不同的,

论文对比了混合缩放方法与其它方法,尽管开始的时候相差不多,但是随着模型的增大,混合精度的作用越来越明显

论文提出BiFPN这一轻量级的跨尺寸FPN以及定制的检测版混合缩放方法,基于这些优化,推出了EfficientDet系列算法,既保持高精度也保持了高性能,EfficientDet-D7达到了SOTA。整体而言,论文的idea基于之前的EfficientNet,创新点可能没有之前那么惊艳,但是从实验来看,论文推出的新检测框架十分实用,期待作者的开源

人脸检测最新的论文

URL: 论文pdf Google出品。亚毫秒级的移动端人脸检测算法。移动端可达200~1000+FPS速度。主要以下改进: 在深度可分离卷积中,计算量主要为point-wise部分,增加depth-wise部分卷积核大小并不会明显增加成本。因此本文在depth-wise部分采用了5x5的卷积核,已获得更大的感受野,故此可以降低在层数上的需求。 此外,启发于mobilenetV2,本文设计了一个先升后降的double BlazeBlock。BlazeBlock适用于浅层,double BlazeBlock适用于深层。 16x16的anchor是一样的,但本文将8x8,4x4和2x2的2个anchor替换到8x8的6个anchor。此外强制限制人脸的长宽为1:1。 由于最后一层feature map较大(相对于ssd),导致预测结果会较多,在连续帧预测过程中,nms会变导致人脸框变得更加抖动。本文在原始边界框的回归参数估计变为其与重叠概率的加权平均。这基本没有带来预测时间上的消耗,但在提升了10%的性能。 效果好速度快的方法想不想要?

人脸编辑技术的发展和广泛使用引起人们对隐私安全等的担忧,如 DeepFakes 可以实现视频换脸,且逼真程度很高,有时人类都无法分辨真伪。为此,本研究提出了一种检测人脸伪造图像的新方法以及包含来自 1000 个真实视频的 510,207 张图像和目标真值的数据集。本研究使用该数据集,采用额外的人脸区域特定领域知识,改善了人脸图像伪造检测的准确率。现在,操纵视觉内容已经很普遍,也是数字社会中最重要的话题之一。比如,DeepFakes 展示了如何使用计算机图形学和视觉技术进行视频换脸,进而破坏别人的声誉。人脸是目前视觉内容操纵方法的主要兴趣点,这有很多原因。首先,人脸重建和追踪是计算机视觉中比较成熟的领域,而它正是这些编辑方法的基础。其次,人脸在人类沟通中起核心作用,因为人脸可以强调某个信息,甚至可以传达某个信息。目前的人脸操纵(facial manipulation)方法分为两类:面部表情操纵和面部身份操纵(见图 2)。最著名的面部表情操纵技术之一 Face2Face 来自于 Thies 等人 [48]。它可基于商用硬件,将一个人的面部表情实时迁移至另一个人。后续的研究(如《Synthesizing Obama: learning lip sync from audio》[45])能够基于音频输入序列使人脸动起来。《Bringing portraits to life》[8] 可以编辑图像中的面部表情。图 2:人脸数字化的发展是现代人脸图像编辑工具的基础。这些编辑工具分为两类:身份修改和表情修改。除了使用 Photoshop 等工具手动编辑人脸以外,近年来出现了很多自动化方法。最著名、最广泛的身份编辑技术是换脸(face swapping)。这些技术流行的根源在于其轻量级特性,方便在手机上运行。facial reenactment 技术可以将源人脸的表情迁移到目标人脸,从而改变一个人的表情。身份操纵是人脸伪造的第二大类。与改变表情不同,身份操纵方法将一个人的脸换到另一个人的面部。因此,这个类别又叫换脸。随着 Snapchat 等消费者级别应用的广泛使用,这类技术变得流行。DeepFakes 也可以换脸,但它使用了深度学习技术。尽管基于简单计算机图形学技术的换脸可以实时运行,但 DeepFakes 需要为每一个视频对进行训练,这非常耗时。本研究展示了一种方法,可以自动、可靠地检测出此类人脸操纵,且性能大幅超过人类观察者。研究者利用深度学习的近期进展,即使用卷积神经网络(CNN)学习极强图像特征的能力。研究者以监督学习的方式训练了一个神经网络,可以解决人脸伪造检测的问题。为了以监督的方式学习并评估人类观察者的表现,研究者基于 Face2Face、FaceSwap 和 DeepFakes 生成了一个大规模人脸操纵数据集。本文贡献如下:使用特定领域知识的当前最先进人脸伪造检测技术。新型人脸伪造图像数据集,包含来自 1000 个真实视频的 510,207 张图像和目标真值,以保证监督学习。进行了用户调查,以评估所用人脸操纵方法的有效性,以及人类观察者在不同视频质量情况下检测伪造图像的能力。论文:FaceForensics++: Learning to Detect Manipulated Facial Images论文链接:摘要:合成图像生成和操纵的快速发展引起人们对其社会影响的巨大担忧。这会导致人们丧失对数字内容的信任,也可能会加剧虚假信息的传播和假新闻的捏造,从而带来更大的伤害。在本文中,我们检查了当前最先进人脸图像操纵技术结果的逼真程度,以及检测它们的困难性——不管是自动检测还是人工检测。具体来说,我们聚焦于 DeepFakes、Face2Face、FaceSwap 这几种最具代表性的人脸操纵方法。我们为每种方法各创建了超过50万张操纵过的图像。由此产生的公开数据集至少比其它同类数据集大了一个数量级,它使我们能够以监督的方式训练数据驱动的伪造图像检测器。我们证明了使用额外的特定领域知识可以改善伪造检测方法,使其准确性达到前所未有的高度,即使在强压缩的情况下同样如此。通过一系列深入实验,我们量化了经典方法、新型深度学习方法和人类观察者之间的性能差异。3 数据集本文的核心贡献之一是 FaceForensics 数据集。这个新的大规模数据集使我们能够以监督的方式训练当前最佳的人脸图像伪造检测器。为此,我们将三种当前最先进的自动人脸操纵方法应用到 1000 个原始真实视频上(这些视频均是从网上下载的)。表 1:FaceForensics 数据集中每一种方法相关图像的数量,包括训练、验证和测试数据集中的图像数量图 4:FaceForensics 数据集统计数据。VGA 表示视频分辨率为 480p,HD 表示 720p,FHD 表示 1080p。c 中 x 轴表示给定像素高度,y 轴表示序列数。4 伪造检测我们将伪造检测视为被操纵视频每一帧的二分类问题。下面是人工和自动伪造检测的结果。对于所有的实验,我们将数据集分成固定的训练、验证和测试集,分别包含 720、140 和 140 个视频。所有评估结果都是基于测试集中的视频报告的。图 6:143 个参与用户的伪造检测结果。准确率取决于视频质量,视频质量差则准确率会下降。原始视频上的检测准确率为 72%,高质量视频上的准确率为 71%,低质量视频上的准确率只有 61%。4.2 自动伪造检测方法图 5:本文提出的特定领域伪造检测流程:先用一种稳健的人脸追踪方法处理输入图像,然后利用特定领域信息提取图像中被脸部覆盖的区域,将该区域输送至一个训练好的分类网络,最后该网络的输出即是图像真伪的最终结果。图 7:使用人脸图像伪造的特定领域信息(即人脸追踪),所有使用架构在不同操纵方法上的二分类检测准确率。这些架构在不同的操纵方法上独立训练。图 8:使用人脸图像伪造的特定领域信息(即人脸追踪),本文提出检测器的所有变体在不同操纵方法上的二分类检测准确率。除了最右侧分类器使用完整图像作为输入,这些架构都使用人脸追踪器的追踪信息在完整数据集上训练。图 9:使用人脸图像伪造的特定领域信息(即人脸追踪),本文提出检测器的所有变体在不同操纵方法上的平均二分类检测准确率。除了最右侧分类器使用完整图像作为输入,这些方法都使用人脸追踪器的追踪信息在完整数据集上训练。图 10:本文提出的方法使用 XceptionNet 的检测性能依赖于训练语料库的大小。尤其是,低质量视频数据需要较大型的数据集

使用ai软件提取不到人脸你的4.psd这个图被你移动过,链接进AI的图是不能随便移动的,不然AI就找着了!修复的方法就只能找到这个文件然后放回原来的地方,否则只能重做!建议你以后做这样的图,考虑直接用AI打开,然后复制进去使用,不要链接,否则链接一丢失就很麻烦了

人脸识别的原理是使用者首先需要采集自己的人脸特征信息,在应用的过程中,使用摄像头获取当前人物的面相特征。最后将当前捕获到的人像特征与之前存储的人脸数据档案进行对比。人脸识别技术经历了20多年的发展历史,从最初的2D识别到现在的3D识别,识别精度达到了99%以上,未来以3D是主流,而且会是融合方案,就是为了提高识别的精准度和应用场景,他会同时用多个摄像头。人脸识别主要是靠硬件进步+AI来推动,在硬件方面主要是这几种:1、3D结构光:通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。这种具备一定结构的光线,会因被摄物体的不同深度区域,而采集不同的图像相位信息,然后通过运算单元将这种结构的变化换算成深度信息,以此来获得三维结构。3D结构光的好处就是精准度高,但是有个bug就是,对距离有要求,要隔得近才能识别,大家可以试试自己手机的识别距离,所以适合做前置摄像头。2、TOF是飞行时间(Time of Flight)技术的缩写,其原理是:传感器发出经调制的脉冲红外光,遇物体后反射,传感器通过计算光线发射和反射时间差或相位差,来换算被拍摄景物的距离,以产生深度信息,此外再结合传统的相机拍摄,就能将物体的三维轮廓以不同颜色代表不同距离的地形图方式呈现出来。

目标检测的论文

对于目标检测方向并不是特别熟悉,本文记录一下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的设计等等细节,无一不体现了大师们的思考和创造力。 可能在我们这些“拿来”者的眼中,这些方法都显得“理所应当”和巧妙,好用,但是,它们背后隐藏的选择和这些选择的思考却更值得我们学习。 以及,对待每一个问题,如何设计出合理的解决方案,以及方案的效率,通用性,更是应该我们努力的方向。

论文名称: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算法,从而实现真正的端到端检测算法。 参考博客 :

相关百科

热门百科

首页
发表服务