热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

论文阅读|ExtremeNet:BottomupObjectDetectionbyGroupingExtremeandCenterPoints

相关链接论文地址:https:arxiv.orgabs1901.08043论文代码:https:github.comxingyizhouExtremeNet概述ExtremeNet

 

相关链接

论文地址:https://arxiv.org/abs/1901.08043

论文代码:https://github.com/xingyizhou/ExtremeNet

概述

ExtremeNet是今年(2019)1月23号挂在arxiv上的目标检测论文,是至今为止检测效果最好的单阶段目标检测算法。思想借鉴CornerNet,使用标准的关键点估计网络检测目标关键点进而构造目标的预测框。ExtremeNet预测四个extreme point(顶、左、底、右)以及目标的中心点,如果这五个点满足几何对齐关系,就将其组合成一个目标框。ExtremeNet在COCO test-dev上的AP达到43.2%。此外,根据extreme point还可以得到更加精细的八边形分割估计结果,在COCO Mask上的AP达到34.6%。

ExtremeNet介绍

ExtremeNet是一个自底向上的目标检测框架,检测目标的四个极值点(顶端、左端、底端、右端),使用state-of-the-art的关键点估计框架产生每个类别的五个Heatmaps(四个极值点和一个中心点)。使用纯几何方法组合同一目标的极值点:四个极值点的几何中心与预测的中心点heatmap匹配且高于阈值(暴力枚举,时间复杂度O(n^4),不过n一般非常小)。

 

图2 展示了算法的大致流程。首先产生四个预测极值点的heatmap(图2顶部)和一个预测中心点的heatmap(图2左下),提取极值点heatmap的峰值(图2中左),暴力枚举所有组合,计算几何中心(图2中右),如果几何中心与中心heatmap高度匹配,则接受该组合,否则拒绝(图2右下)。

该算法与CornerNet的区别在于关键点定义和组合。(1)CornerNet采用左上和右下角点,角点往往不在目标上,没有较强的外观特征;而ExtremeNet采用极值点,极值点在目标上,容易区分且具有一致的局部外观特征。(2)CornerNet点对组合是根据embedding vector的距离,而ExtremeNet则是根据几何中心点。ExtremeNet完全基于外观,没有任何的隐特征学习。

网络结构

网络结构如下图所示:

 

ExtremeNet使用Hourglass网络作为backbone,产生4个C通道、大小为H*W的heatmaps,一个C通道、大小为H*W的heatmap,以及4个2通道、大小为H*W的偏移map。Heatmaps通过加权逐像素逻辑回归进行训练,其中权重用于减少在ground-truth位置附近的假阳性惩罚(详见CornerNet)。四个极值点的估计使用了CornerNet的结构和损失函数,不过没有使用embedding部分。

focal loss的变体来处理heatmap损失:

 

其中,pcij是类别c在位置(i, j)的score,ycij是非标准化高斯增强的ground-truth,N是图像中目标数,α和β是超参数(实验中α设为2,β 设为4)。

Offsets则是位置偏移。下采样的使用使得输出尺寸小于原始图像尺寸,假设下采样因子为n,则图像中(x, y)映射到Heatmaps的([x/n], [y/n])。取整计算会导致精度丢失,使用offsets来更准确地进行Heatmaps到输入图像的映射。

 

训练过程中使用smooth L1损失,即:

 

训练设置、损失函数以及offset预测与CornerNet相同。

Center grouping算法如下:

 

ExtractPeak就是给定一个heatmap,检测其中所有的峰值来提取相应的关键点。峰值就是3*3窗口中的局部最大值。预设阈值进行筛选。暴力枚举所有组合,计算几何中心,如果其在中心点的heatmap上有高响应则接受结果,得分为五个heatmap的平均值。阈值设置τp=0.1,τc=0.1。

Center grouping算法可能会出现这样的情况:处理三个共线且尺度相同的目标时,是产生三个正确的小框还是一个错误的大框呢?这种假阳性的检测结果称为“ghost box”。文中使用一种soft NMS来抑制ghost box:如果某个边框中包含的所有框的分数之和超过其本身得分的3倍,则将其得分除以2。

此外,极值点并非总是唯一的,比如一个汽车的极值点可能是水平或竖直的线段,文中极值点的响应是对边缘多个点的弱响应而不是一个点的强响应。这有可能产生几个问题:弱响应可能会被忽略;目标如果发生轻微旋转即便检测到关键点,得分也有很大差异。作者采用边缘聚集的方法来解决:对于每个极值点(局部最大值点),分别沿水平和垂直两个方向进行聚集,也就是在每个方向上找极值点最近的左右两个局部最小值,在区间内做加权和作为极值点的得分。公式如下所示:

 

其中,m为极值点位置,i0、i1分别为距离m最近的两个局部最小值。

如下图所示,使用边缘聚集策略后,边缘中心的像素点的置信度明显提升:

 

实例分割

文中提出了一个简单的八边形逼近目标的方法(基于四个极值点形成的矩形边界框):将一个极值点左右各延长1/8形成线段,如果遇到矩形框的角时则截断。将这四个线段的端点连接起来,形成八边形。

实验

在COCO数据集上进行实验,如果一条边与坐标轴平行或者夹角小于3度,就将其中心作为极值点。从头训练太耗时,使用了CornerNet的预训练模型进行finetune。

细节:最多只取ExtractPeak 中top40的点进行枚举;测试阶段使用flip argumentation策略;对增强的检测结果使用soft NMS。检测速度3.1fps。

在COCO数据集上的检测结果:

 

由上表可见,ExtremeNet多尺度模型的效果达到目前单阶段算法的最佳AP(43.2%),比CornerNet提升1.1%;而单尺度模型的AP比CornerNet低了0.4%,在中、小目标的检测上AP都高于CornerNet,而大目标检测略差,可能原因是中心点的response map不够准确造成的。

在实例分割方面,ExtremeNet与DeepExtremeCut结合,在COCO val2017上达到34.6%的AP,而当前最先进的Mask RCNN的AP为34.0%(基于ResNet-50+FPN)、37.5%(基于ResNeXt-101+FPN)。在实例分割方面也与最先进的方法相当。

 


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • 向QTextEdit拖放文件的方法及实现步骤
    本文介绍了在使用QTextEdit时如何实现拖放文件的功能,包括相关的方法和实现步骤。通过重写dragEnterEvent和dropEvent函数,并结合QMimeData和QUrl等类,可以轻松实现向QTextEdit拖放文件的功能。详细的代码实现和说明可以参考本文提供的示例代码。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • 本文讨论了在openwrt-17.01版本中,mt7628设备上初始化启动时eth0的mac地址总是随机生成的问题。每次随机生成的eth0的mac地址都会写到/sys/class/net/eth0/address目录下,而openwrt-17.01原版的SDK会根据随机生成的eth0的mac地址再生成eth0.1、eth0.2等,生成后的mac地址会保存在/etc/config/network下。 ... [详细]
  • 提升Python编程效率的十点建议
    本文介绍了提升Python编程效率的十点建议,包括不使用分号、选择合适的代码编辑器、遵循Python代码规范等。这些建议可以帮助开发者节省时间,提高编程效率。同时,还提供了相关参考链接供读者深入学习。 ... [详细]
  • 微软头条实习生分享深度学习自学指南
    本文介绍了一位微软头条实习生自学深度学习的经验分享,包括学习资源推荐、重要基础知识的学习要点等。作者强调了学好Python和数学基础的重要性,并提供了一些建议。 ... [详细]
  • 本文详细解析了JavaScript中相称性推断的知识点,包括严厉相称和宽松相称的区别,以及范例转换的规则。针对不同类型的范例值,如差别范例值、统一类的原始范例值和统一类的复合范例值,都给出了具体的比较方法。对于宽松相称的情况,也解释了原始范例值和对象之间的比较规则。通过本文的学习,读者可以更好地理解JavaScript中相称性推断的概念和应用。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了P1651题目的描述和要求,以及计算能搭建的塔的最大高度的方法。通过动态规划和状压技术,将问题转化为求解差值的问题,并定义了相应的状态。最终得出了计算最大高度的解法。 ... [详细]
author-avatar
美娟婉燕6386
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有