社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Git

目标检测 | 丰富特征导向Refinement Network用于目标检测(附github源码)

arXiv每日学术速递 • 2 年前 • 351 次点击  

专栏

作者:Edison_G

对于目标检测的方法按照处理流程可以分为:two-stage和one-stage方法; 两者在处理速度和准确率上各有千秋。Refinement Neural Network致力于将两者的优点结合起来, 弥补两者的缺点, 即:获得比two-stage方法更好的准确率,并且具有与one-stage媲美的效率。



一、简要

研究者提出了一个单阶段检测框架,该框架解决了多尺度目标检测和类不平衡的问题。没有设计更深层的网络,而是引入了一种简单而有效的特征丰富化方案来生成多尺度的上下文特征。进一步引入了一种级联的优化(精炼)方案,该方案首先将多尺度的上下文特征注入到一阶段检测器的预测层中,以增强其进行多尺度检测的判别能力。其次,级联精炼方案通过细化anchors和丰富的特征以改善分类和回归来解决类不平衡问题。对于MS COCO测试上的320×320输入,新的检测器在单尺度推理的情况下以33.2的COCO AP达到了最先进的一阶段检测精度,操作是在一个Titan XP GPU上以21毫秒运行的 。对于MS COCO测试上的512×512输入,与最佳的单阶段结果相比,就COCO AP而言,新方法获得了一个明显的增加(增加了1.6%)。

二、背景

先看下:Single-Shot Refinement Neural Network for Object Detection

RefineDet的框架结构与SSD有点类似, 总工作流程如下:

  • 网络通过前馈生成固定数量的bounding box和分数;分数代表了这些box中某些类别的可能性;

  • 使用non-maximum suppression产生最终的结果。

从结构上看,RefineDet主要由两个内部链接的模块组成:anchor强化模块(anchor refinement module, ARM)和物体检测模块(object detection module,ODM)。TCB模块是用于连接ARM和ODM的一个模块。

在今天分享的这项工作中,研究者区分了标准SSD检测器实现最高精度同时保持其高速度的两个主要障碍。首先,标准的SSD难以应对大尺度变化。这可能是由于SSD预测层中的上下文信息固定所致。现有方法通过例如在更深的主干网络模型上添加上下文信息和特征金字塔表示来解决该问题。大多数方法采用自顶向下的金字塔表示,其中先对深层的低分辨率特征图进行上采样,然后与浅层的高分辨率特征图结合以注入高级语义信息。尽管这样的特征金字塔表示有助于解决大尺度变化的问题,但性能仍然远远不能令人满意。

第二个关键问题是在训练SSD检测器期间遇到的前景类-背景类不平衡问题。该问题的现有解决方案包括,例如,在稀疏的难例集上进行训练,同时对经过良好分类的示例对其损失进行打折(down-weights),另外还有整合两阶段anchor优化策略,以通过消除负例的anchors来减少分类器的搜索空间。尽管取得了成功,但由于这些特征与优化的anchors无法很好地对齐,所以有工作采用了自上而下的特征金字塔表示法,并且仅对anchors进行了优化。在这项工作中,研究者寻求一种替代方法来共同解决多尺度目标检测和类不平衡的问题,从而在不牺牲其高速度的情况下提高SSD的准确性。

三、相关工作

目标检测是一个具有挑战性的计算机视觉问题。基于卷积神经网络的目标检测器在最近几年展示了杰出的性能。今天说的框架着重于一阶段目标检测器,该检测器通常比其两阶段目标检测器更快。在现有的单阶段方法中,SSD已显示出可在实时操作时提供出色的性能。它使用多尺度表示来检测金字塔层次结构中的对象。在这样的层次结构中,浅层有助于预测较小的对象,而较深的层则有助于检测较大的对象。新方法基于标准SSD,因为它具有卓越的准确性和高速度。

一阶段检测器难以准确地检测出具有明显尺度变化的物体。此外,SSD检测器还存在类不平衡的问题。新提出的方法不需要任何特征化的图像金字塔或自上而下的金字塔结构,而是专注于捕获多尺度上下文信息。而且包括一个专门的模块来解决类不平衡问题。

首先,从多分支ResNeXT架构中引入了一种特征增强的方案,该方案产生了多尺度的上下文特征,以利用上下文信息增强标准的SSD特征。其次引入了级联的优化方案,在这种方案中,同时使用了边界框回归和二元(binary)分类来优化特征。二元分类(目标类别预测)用于生成突出显示可疑目标位置的objecness图。在特征优化期间,仅位置偏移用于特征与优化(anchors)的对齐,而比例偏移则被忽略。

为了解决训练阶段类别不平衡的问题,RetinaNet引入了focal loss来降低简单样本的贡献。RefineDet提出了一个两步anchor优化模块,通过删除几个负anchors来减少分类器的搜索空间。另外,anchor优化模块粗略地调整anchor的位置。与RefineDet不同,新框架的级联优化方案通过首先将多尺度上下文信息注入到标准SSD预测层中来利用增强的特征。此外,级联优化去除了几个负anchors ,不仅细化了anchor的位置,还细化了特征。

四、新框架

新检测框架由三部分组成:标准SSD层,特征增强(丰富)(FE)方案和级联优化方案。FE方案包含一个多尺度上下文特征模块(MSCF)以解决尺度变化。FE方案产生了多尺度的上下文特征,以提高标准SSD预测层的判别能力。级联优化方案同时利用了多尺度上下文和标准SSD特征,并解决了类不平衡问题。级联优化方案通过分别在两个级联模块(即物体性模块(OM)和特征导向的优化模块(FGRM))中执行框回归和分类来优化anchor和特征。物体性模块(OM)对对象与背景进行二进制分类,并进行初始框回归。然后,FGRM模块重新优化特征和anchor位置,以预测最终的多类别分类和边界框位置。

Feature Enrichment Scheme

在标准SSD框架中,特征的提取是从深度卷积网络主干中通过卷积和最大池操作的重复过程执行的。尽管保留了一定程度的语义信息,但它们仍然丢失了可能有助于区分对象区域和背景区域的低级特征信息。此外,在每个预测层的恒定感受野仅捕获固定的上下文信息。在这项工作中,引入了一种特征增强(FE)方案来捕获多尺度上下文信息。首先通过简单的池化操作对输入图像进行下采样,以使其尺寸与第一个SSD预测层的尺寸相匹配。然后,将经过下采样的图像通过我们的多尺度上下文特征(MSCF)模块。

Multi-scale Contextual Features Module

提出的MSCF模块在上图(b)中以蓝色虚线框突出显示。它是一个简单的模块,包含多个卷积运算,并产生多尺度的上下文特征。MSCF模块的结构受到多分支ResNeXT体系结构的启发,是拆分,转换和聚合策略的一种操作。MSCF模块将下采样后的图像作为输入,并输出上下文增强的多尺度特征。下采样的图像首先通过大小为3×3和1×1的两个连续卷积层,从而产生初始特征投影。然后,将这些特征投影通过1×1卷积层切成三个低维分支。为了捕获多尺度上下文信息,我们对不同的分支采用三个膨胀卷积,膨胀率分别设置为1、2和4。膨胀卷积的运算将初始特征投影转换为上下文增强的特征集。然后,这些变换后的特征通过级联运算进行聚合,然后传递给1×1卷积进行运算。MSCF的输出用于我们的级联优化方案的对象性模块(OM)中。

Cascaded Refinement Scheme

优化方案由两个级联模块组成:对象性模块和特征导向的优化模块(FGRM),如上图(a)所示。对象性模块通过多尺度上下文信息增强了SSD的特征,并标识了可能的物体位置(客观性)。使用多尺度上下文信息增强特征可以提高对于小目标的性能,而FGRM使用对象性预测来解决类不平衡问题。

物体性模块Objectness Module

物体性模块首先通过逐元素乘法运算在conv4_3的MCSF模块中注入多尺度上下文信息,从而增强了SSD的特征。然后,引入了一个自下而上的金字塔特征层次结构,以将增强的特征传播到后续的SSD预测层,如上图(a)所示。物体性模块使用步长为2(D)的3×3卷积运算,并投影前一层的特征以与当前层的空间分辨率和通道数匹配。然后,通过在每个预测层上的投影特征和SSD特征之间执行逐元素乘法来获得增强的特征。最后,增强的特征用于在每个预测层x上执行二元分类(C1x)和初始框回归(B1x)。x = 1,2、3和4对应于四个预测层。

来自PASCAL VOC数据集的示例图像以及来自标准SSD(第二列),多尺度上下文特征(第三列)和增强的特征(第四列)的相应fc7层特征图。这些示例表明,通过将多尺度上下文特征注入到标准SSD特征中而获得的增强的特征有助于更好地从背景中区分目标区域。

五、实验及可视化

 PASCAL VOC 2007测试集上的测试结果

新框架采用在ImageNet上进行预训练的VGG-16作为主干架构。对两个数据集使用相同的设置进行模型初始化和优化。采用warming up策略,将前5个epochs的初始学习速率设置为从10-6到4×10-3。然后,对于150和200 epoch的PASCAL VOC 2007数据集以及90、120和140 epoch的MS COCO数据集,将学习率逐渐降低10倍。

对于这两个数据集,权重衰减设置为0.0005,动量设置为0.9,批大小(batch size)为32。在实验中,分别为PASCAL VOC 2007和MS COCO数据集执行了250和160个epoch。除了VGG-16,还对MS COCO数据集使用更强大的ResNet-101主干进行了实验。对于ResNet-101,在截断的ResNet-101主干的末尾添加了两个额外的卷积层(即res6 1,res6 2)。利用四个预测层(res3,res4,res5,res6 2)进行检测。

MS COCO test-dev2015的测试结果

对于所有80个COCO对象类别,在RefineDet(左侧)和新的检测器(右侧)之间进行了误差分析。为了公平比较,两种方法都使用相同的主干(VGG)和输入大小(320×320)进行分析。在此,每个子图像中的图都显示了一系列精确的召回曲线。这些曲线是使用不同的设置计算的。此外,图例中还显示了AUC曲线。

比较在PASCAL VOC 2007和MS COCO minival set数据集上将提出的特征增强和级联的优化方案集成到基准SSD框架中的比较。对于所有实验,主干为VGG16,输入为320×320。最终方法在两个数据集上都比基线SSD的性能有大幅度提高。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/149051
 
351 次点击