one-stage和two-stage目标检测算法( 三 )


one-stage和two-stage目标检测算法

文章插图
1.10
针对的就是算法的运算速度提升问题,2016 年底 Intel 图像技术团队提出了一个轻量级的网络,取得了 state-of-the-art 的效果 。主要分为特征抽取网络和检测网络,基于多层少通道的基本原则,在网络浅层采用 C.ReLU 结构,在网络深层采用模块,其中前者是将 K×K 卷积结构表示 1×1 - K×K - 1×1 的卷积层的堆叠,后者设计原则是由于为了检测图像中的大目标,需要足够大的感受野,可通过堆叠 3×3 的卷积核实现,但是为了捕获小目标,则需要小一点的感受野,可通过 1×1 的卷积核实现,且可以避免大卷积核造成的参数冗余问题 。
应用多尺度特征级联最大化目标检测任务的多尺度性质,权重衰减策略采用一定迭代次数内 loss 不再下降,则将学习速率降低常数倍的方式,通过 batch和连接实现高效的训练 。
one-stage和two-stage目标检测算法

文章插图
1.11 FPN
2017 年的 Tsung-Yi Lin 等提出了 FPN 算法,利用不同层的特征图进行不同尺寸的目标预测 。原来多数的目标检测算法都是只采用深层特征做预测,低层的特征语义信息比较少,但是目标位置准确;高层的特征语义信息比较丰富,但是目标位置比较粗略 。另外虽然也有些算法采用多尺度特征融合的方式,但是一般是采用融合后的特征做预测,而 FPN 算法不一样的地方在于预测是在不同特征层独立进行的,利用深层特征通过上采样和低层特征做融合 。
FPN 算法主网络是,结构主要是一个自底向上的线路横向连接一个自顶向下的线路 。自底向上其实就是网络的前向过程,在前向过程中,map 的大小在经过某些层后会改变,而在经过其他一些层的时候不会改变,FPN 算法将不改变map 大小的层归为一个 stage,因此每次抽取的特征都是每个 stage 的最后一个层输出,这样就能构成特征金字塔 。自顶向下的过程采用上采样进行,而横向连接则是将上采样的结果和自底向上生成的相同大小的map 并一一对应进行融合,在融合之后还会再采用 3×3 的卷积核对每个融合结果进行卷积,目的是消除上采样的混叠效应 。
one-stage和two-stage目标检测算法

文章插图
1.12 Mask R-CNN
为了解决 R-CNN 算法为代表的 two stage 的方法问题,2017 年的何恺明等提出了 Mask R-CNN 算法,取得了很好的识别效果 。Mask R-CNN 算法将层替换成了,并且在边框识别的基础上添加分支 FCN 层(mask 层),用于语义 Mask 识别,通过 RPN 网络生成目标候选框,再对每个目标候选框分类判断和边框回归,同时利用全卷积网络对每个目标候选框预测分割掩膜 。加入的掩膜预测结构解决了特征图像和原始图像上的 ROI 不对准问题,避免对 ROI 边界做任何量化,而用双线性插值到对准特征,再用池化操作融合 。掩膜编码了输入图像的空间布局,用全卷积网络预测每个目标候选框的掩膜能完整的保留空间结构信息,实现目标像素级分割定位 。
one-stage和two-stage目标检测算法

文章插图
1.13 A-Fast-RCNN
A-Fast-RCNN 算法是 2017 年卡内基梅隆大学提出的,其将对抗学习引入到目标检测问题中,通过对抗网络生成一下遮挡和变形的训练样本来训练检测网络,从而使得网络能够对遮挡和变形问题更加的鲁棒 。使用对抗网络生成有遮挡和有形变的两种特征,两种网络分别为 ASDN 和 ASTN 。
ASDN 利用 Fast R-CNN 中 ROI 池化层之后的每个目标卷积特征作为对抗网络的输入,给定一个目标的特征,ASDN 尝试生成特征某些部分被的掩码,导致检测器无法识别该物体 。在前向传播过程中,首先使用 ASDN 在 ROI 池化层之后生成特征掩码,然后使用重要性采样法生成二值掩码,使用该掩码将特征对应部位值清零,修改后的特征继续前向传播计算损失,这个过程生成了困难的特征,用于训练检测器 。