extremenet:通过极点进行目标检测,更细致的目标区域|cvpr2019

晓飞的算法工程笔记 晓飞的算法工程笔记     2022-11-30     480

关键词:

ExtremeNet检测目标的四个极点,然后以几何的方式将其组合起来进行目标检测,性能与其它传统形式的检测算法相当。ExtremeNet的检测方法十分独特,但是包含了较多的后处理方法,所以有很大的改进空间,感兴趣可以去看看论文实验中的错误分析部分

来源:晓飞的算法工程笔记 公众号

论文: Bottom-up Object Detection by Grouping Extreme and Center Points

Introduction


  在目标检测中,常用的方法将目标定义为矩形框,这通常会带来大量妨碍检测的背景信息。为此,论文提出ExtremeNet,通过检测目标的四个极点进行目标定位,如图1所示。整体算法基于CornerNet的思想进行改进,使用五张热图分别预测目标的四个极点以及中心区域,将不同热图的极点进行组合,通过组合的几何中心在中心点热图上的值判断组合是否符合要求。另外,ExtremeNet检测的极点能够配合DEXTR网络进行目标分割信息的预测。

ExtremeNet for Object detection


  ExtremeNet使用HourglassNet进行类可知的关键点检测,遵循CornerNet的训练步骤、损失函数和偏移值预测,其中偏移值的预测是类不可知的,中心点不包含偏移值。主干网络共输出$5\\times C$张热图,$4\\times 2$偏移值特征图,$C$为类别数,整体结构和输出如图3所示。当极点提取后,根据几何关系将他们进行组合。

Center Grouping

  极点位于目标的不同方向,组合时会十分复杂,论文认为像CornerNet那样采用embedding向量进行组合会缺乏全局信息,所以提出了Center Grouping进行极点组合。

  Center Grouping的流程如算法1所示,首先获取四个极点热图上的高峰点,高峰点需满足两点:1) 其值需大于阈值$\\tau_p$ 2) 为局部最大值,高峰点的值需大于周围八个点,获取高峰点的过程称为ExtrectPeak。在得到各个热图上的高峰点后,遍历各高峰点的组合,对于满足几何关系的高峰点组合($t$,$b$,$r$,$l$),计算其几何中心点$c=(\\fracl_x+t_x2, \\fract_y+b_y2)$,如果几何中心点的值满足$\\hatY^(c)_c_x, c_y \\ge \\tau_c$,则认为该高峰点组合符合要求。

Ghost box suppression

  在三个大小相同的目标等距分布的情况下,Center Grouping可能会出现高置信度的误判。此时,中间的目标可能有两种情况,一是正确的预测,二是错误地与隔壁的物体合并输出,论文称第二种情况的预测框为ghost框。为了解决这种情况,论文增加了soft-NMS后处理方法,如果某个预测框的内包含的预测框的置信度之和大于其三倍,则将其置信度除以二,然后再进行NMS操作。

Edge aggregation

  极点有时不是唯一的,如果目标存在水平或垂直的边界,则边上所有的点都是极点,而网络对这种边界上的点的预测值会较小,可能导致极点的漏检。

  论文采用边聚合(edge aggregation)来解决这个场景,对于左右热图的局部最大点,在垂直方向进行分数聚合,而上下热图的局部最大点则在水平方向进行分数聚合。将对应方向上的单调递减分数进行聚合,直到遇到聚合方向上的局部最小点为止。假设$m$为局部最大值点,$N^(m)i=\\hatYm_x+i, m_y$为水平方向的点,定义$i_0 < 0$和$0<i_1$为两边最近的局部最小值,即$N^(m)i_0-1 > N(m)_i_0$和$N(m)i_1 < N(m)_i_1+1$,则边聚合的高峰点值更新为$\\tildeY_m=\\hatY_m+\\lambda_aggr\\sumi_1_i=i_0N^(m)i$,其中$\\lambdaaggr$为聚合权重,设置为0.1,整体效果如图4。

Extreme Instance Segmentation

  极点比bbox包含更多的目标信息,毕竟多了两倍的标注信息(8 vs 4)。基于四个极点和bbox,论文提出简单的方法来获取目标的mask信息,首先以极点为中心扩展出1/4 bbox边界长度的线,如果线超过bbox则截断,然后将四条线首尾连接得到八边形,如图1所示。最后使用DEXTR(Deep Extreme Cut)方法进一步获取mask信息,DEXTR网络能够将极点信息转化成分割信息,这里直接将八边形截图输入到预训练的DEXTR网络中。

Experiments


  各模块的对比实验,另外论文对ExtremeNet进行了错误分析,将各模块的输出替换为GT,最终能达到到86.0AP。

  与其它SOTA方法进行对比。

  实例分割效果。

Conclusion


  ExtremeNet检测目标的四个极点,然后以几何的方式将其组合起来进行目标检测,性能与其它传统形式的检测算法相当。ExtremeNet的检测方法十分独特,但是包含了较多的后处理方法,所以有很大的改进空间,感兴趣可以去看看论文实验中的错误分析部分。



如果本文对你有帮助,麻烦点个赞或在看呗~
更多内容请关注 微信公众号【晓飞的算法工程笔记】

work-life balance.

anchor-free目标检测

...教它吧!引入cornerpooling。2、取出top-100个左上,右下点,通过offset调整角点位置。3、计算左上,右下角点embedding的L1距离,距离小的,类别一样的构成目标框。角点得分的平均作为置信度。一个目标框可以用左上右下角点组成,... 查看详情

通过云端自动生成openmv的神经网络模型,进行目标检测

OpenMV训练神经网络模型(目标识别)一、准备材料:1.OpenMV4Plus(低版本的openmv可能算力不够不支持)2.一根microusb的数据线3.电脑、网络二、软件下载在openMV官网下载openmvIDEhttps://book.openmv.cc/下载完毕后进入IDE... 查看详情

小目标检测的增强算法

...现。因此,本文建议用小对象对这些图像进行过采样,并通过多次复制粘贴小对象来增强每个图像。它允许本文在大物体和小物体上权衡探测器的质量。本文评估了不同的粘贴增强策略,最终,本文在实例分割和小目标检测方面... 查看详情

autoware使用相机和深度学习进行目标检测(代码片段)

autoware使用相机和深度学习进行目标检测(六)安装yolo进入对应的vision_darknet_detect/darknet/data/目录下对应目录位置:autoware.ai/install/vision_darknet_detect/share/vision_darknet_detect/darknet或通过命令进入roscdvision_darknet_detect/darknet 查看详情

深度学习之目标检测常用算法原理+实践精讲

...检测技术发展的历程开始,从算法角度出发,对各个模型进行全面细致的讲解,并结合人脸检测、物体检测、行人车辆检测、文本检测等项目,熟悉算法工程师在工作中会接触到的数据打包、网络训练、测试等问题,一步步带大... 查看详情

产品需求文档的学习记录

我们通过思维导图将想法进行了结构化梳理,接下来我们就需要进行方案的可行性推演,验证产品功能是否可行,预估项目要花多少人力物力,因此我们就要通过原型设计进行相关需求的论证。一开始就撰写PRD文档,我们很难对... 查看详情

目标检测中boundingboxregression

...的输出向量进行分类(需要根据特征训练分类器);二是通过边界回归(bounding-boxregression)得到精确的目标区域,由于实际目标会产生多个子区域,旨在对完成分类的前景目标进行精确的定位与合并,避免多个检出。fastrcnn中Softm... 查看详情

pytorch深度学习实战|基于yolov3的安全帽佩戴检测

...现方案。本案例较为容易分解出实现目标和实现方式,即通过深度学习中常用的目标检测方法对收集到的图片进行学 查看详情

多维活体检测,让人脸识别更安全

...提到人脸识别领域的安全风险,主持人用现场合成的视频通过了活体检测和人脸验证,因此人脸识别的安全性引起大众关注。对于活体检测的安全隐患,腾讯优图团队一直保持高度关注,并依托多年积累的技术能力和业务运营经... 查看详情

多维活体检测,让人脸识别更安全

...提到人脸识别领域的安全风险,主持人用现场合成的视频通过了活体检测和人脸验证,因此人脸识别的安全性引起大众关注。对于活体检测的安全隐患,腾讯优图团队一直保持高度关注,并依托多年积累的技术能力和业务运营经... 查看详情

目标检测算法-softnms

...了,因为NMS是对其他box的IOU与当前最大Confidence的box的IOU进行比较,如果大于一定的阈值,就将当前这个Confidence最大的box周围满足条件的box给去掉。NMS存在的两个问题:(1)当前两个目标框接近时,分数更低的框就会因为重叠面... 查看详情

深度学习和目标检测系列教程22-300:关于人体姿态常见的估计方法(代码片段)

...c;人们只会被感知为一个边界框(一个正方形)。通过执行姿势检测和姿势跟踪,计算机可以理解人体语言。然而,传统的姿势跟踪方法既不够快,也不够稳健,无法实现遮挡。高性能实时姿势检测和跟踪... 查看详情

如何利用opencv进行样本训练

...几个简单分类器级联组成。在图像检测中,被检窗口依次通过每一级分类器,这样在前面几层的检测中大部分的候选区域就被排除了,全部通过每一级分类器检测的区域即为目标区域。分类器训练完以后,就可以应用于输入图像... 查看详情

目标检测进阶:使用深度学习和opencv进行目标检测(代码片段)

使用深度学习和OpenCV进行目标检测基于深度学习的对象检测时,您可能会遇到三种主要的对象检测方法:FasterR-CNNs(Renetal.,2015)YouOnlyLookOnce(YOLO)(Redmonetal.,2015)SingleShotDetectors(SSD)(Liu等人,2015年)FasterR-CNNs可能是... 查看详情

通过 Canny 和 Hough 进行地平线检测

】通过Canny和Hough进行地平线检测【英文标题】:HorizonLineDetectionviaCannyandHough【发布时间】:2017-05-1916:07:51【问题描述】:我正在尝试在python中检测水平线。为了实现我的目标,我首先使用了精明的边缘检测算法。sea.jpgimportcv2impo... 查看详情

cnn调参目标检测算法优化技巧

...策略不会改变模型的结构,也不会引入额外的计算代价。通过使用这些trick,可以比SOTA提高最多5个百分点。2.Trick2.1mixupmixup也是图片分类中的一个非常有效的trick,具体流程如下图所示:简单来讲就是将两张图片通过不同的比例进... 查看详情

目标检测进阶:使用深度学习和opencv进行目标检测

使用深度学习和OpenCV进行目标检测基于深度学习的对象检测时,您可能会遇到三种主要的对象检测方法:FasterR-CNNs(Renetal.,2015)YouOnlyLookOnce(YOLO)(Redmonetal.,2015)SingleShotDetectors(SSD)(Liu等人,2015年)FasterR-CNNs 查看详情

漏洞检测的几种方法

...的办法检查系统属性和文件属性,如数据库、注册号等。通过消息文摘算法,对文件的加密数进行检验。这种技术的实现是运行在一个闭环上,不断地处理文件、系统目标、系统目标属性,然后产生检验数,把这些检验数同原来... 查看详情