引言

在Anchor-free方法中,可以分为两种,一种是基于关键点检测,另一种是基于密集点检测

基于关键点检测有:

  • CornerNet(左上角点+右下角点)
  • CornerNet-Lite(左上角点+右下角点)
  • CenterNet :Objects as Points(中心点+边框回归)
  • CenterNet: Keypoint Triplets for Object Detection(中心点+左上角点+右下角点)
  • CSP(中心点+尺度预测)
  • ExtremeNet(4个极值点+中心点)
  • PLN(4个角点+中心点)
  • RepPoints(可变性卷积提取Offset关键点)

基于密集点检测有:

  • DenseBox(中心点处dense)
  • UnitBox(IOU loss)
  • YOLO v1
  • FCOS(中心点+边框回归)
  • FoveaBox(中央凹结构)
  • FSAF(anchor-based + anchor-free)
  • DuBox(双尺度+中心点范围扩大)

本文将对基于密集点检测的anchor-free算法进行总结,主要是FCOS、FoveaBox、FSAF算法,DenseBox和Yolo v1可以看成是anchor-free的早期探索,具体详情可以点击上面的链接笔记,UnitBox其实跟DenseBox很像,最大的创新就是IOU loss,这里也不进行总结。

注:关于anchor-free的分类,当然也可以按单关键点和多关键点分类,怎么理解怎么来

简单介绍

DenseBox:

本文只关注一个问题,即如何将FCN应用到目标检测当中去?本文提出DenseBox不需要生成proposal,在训练的过程中可以达到最有,与现存的基于滑窗的FCN的检测框架相类似。Densebox更偏重于小目标及较为模糊目标的检测。论文通过对Densebox训练,使用 hard negative mining 技术,来提升检测性能。为了进一步提高,后面多任务联合学习结合了landmark定位来进一步提升性能。

DenseBox直接预测当前点与ground truth 的四条边的距离,并且使用L2 loss。为了检测不同尺度的目标,DenseBox 使用了图像金字塔,所以计算量很大。

正负样本的选取
这一块选取看得有点难以理解,历史久远,不详细考虑这些细节(逃- - -)。

YOLO v1


YOLO的核心思想就是利用整张图作为网络的输入,直接在输出层回归bounding box的位置和bounding box所属的类别。将图像化分成7 * 7的网格,如果目标的中心点落在了某一个网格中,则该网格负责该目标的预测。

所以缺陷很明显:首先召回率太低。引入了cell的思想,7x7的来划分图片,每个cell只预测两个bbox,数量不要太少,召回率自然就很低了。其次,如果多个物体出现在同一个cell中呢?

UnitBox


针对的主要问题:DenseBox不能对目标框四个变量进行联合预测
(另外一个问题:需要在图像金字塔上预测,效率低 —>全卷积网络,移除最后的FC网络,进行分类和回归)

本文提出了IOU loss 替代L2 loss,将四个变量作为一个整体预测。

FCOS



首先以逐像素预测放肆重新构造目标检测,接下来利用多级预测来改善召回率并解决重叠边界框导致的模糊性。最后,提出的"center-ness"分支,有助于一直低质量检测到的边界框,并大幅提高整体性能。

center-ness策略在每一个层级预测中添加了一个分支,该分支与分类并行,相当于给网络添加了一个损失,而该损失保证了预测的边界框尽可能的靠近中心。

在ground truth范围内都是属于正样本,都要预测。预测完后用center-ness来抑制偏离中心点的像素的分类等分。或许可以认为是: 原本在gt范围内都是正样本,现在只是靠近中心的像素才是正样本了,偏离的像素点可以看成负样本咯。也就是类似对gt框的正负样本的选取的处理!(这里这样解释,后面会继续提到,总之可以理解为,FCOS的center-ness分支是用来对gt范围内选取正负样本的,虽然并不是一个东西)

FoveaBox


FoveaBox直接学习对象的存在可能性和边界框的坐标,而无需锚点参考。直接预测每个空间位置所属类别,对潜在物体区域的单元进行矩形框的回归预测,因此不受先验锚点框尺寸的束缚,其拟合能力更强,对于长度比变化较极端的物体更具优势。

首先理解一下Fovea:这个单词的意思是中间凹(然后呢?虽然我百度了这个东西,还是不明白啥意思,但这不重要,看后面),FoveaBox类比人类视觉系统感知世界的原理,认为人类先判定某个范围物体是什么,然后再对其边缘轮廓进行仔细判定,而不是去匹配任何事先在脑海里设定的模板矩形框。

下面这个公式是将物体边框groundtruth进行收缩或者扩展(中心点不变,尺度大小变)

该图就是正负样本的选取,设置那个参数σ1为0.3、σ2为0.4,0.3表示,这个范围内的像素点都是正样本,0.4表示这个范围外的点都是负样本(if assign),中间呢就忽略掉。(记住这个选取方法,因为这跟FSAF中的选取方法基本上类似。或许也可以认为,FCOS的center-ness也相当于正负样本的划分,跟这个好像也有点类似,只是没有中间的忽略区域了)

当然也用到了 FPN多尺度检测 ,为每一层限定了一个basic area,值得注意的是,一个对象可能被网络的多个金字塔检测到

FSAF


FSAF的大体思想是在每一层都插入anchor-free的模块,尝试不用anchor去检测instance,而后看看哪一层的FSAF对于这个instance 的损失最小,不就可以认为这一层是最适合检测这个instance的吗?然后再用anchor-based的模块去检测。

FSAF中同样用到了FPN,在分类的时候,用的是focal loss,回归的时候用的是IOU loss。

在分类的时候,正负样本是如何选取的呢?看图中红色标记,白色为正样本区域,黑色为负样本区域,灰色则是忽略区域

细节就不详细讲,用的参数分别是0.2和0.5来表示正负样本。

注:以上具体可以点击对应的阅读笔记链接。

总结

FSAF、FCOS、FoveaBox的异同点:

  1. 都利用FPN来进行多尺度目标检测。
  2. 都将分类和回归解耦成2个子网络来处理。
  3. 都是通过密集预测进行分类和回归的。
  4. FSAF和FCOS的回归预测的是到4个边界的距离,而FoveaBox的回归预测的是一个坐标转换。
  5. FSAF通过在线特征选择的方式,选择更加合适的特征来提升性能,FCOS通过center-ness分支剔除掉低质量bbox来提升性能,FoveaBox通过只预测目标中心区域来提升性能。

(DenseBox、YOLO)和(FSAF、FCOS、FoveaBox)的异同点:

  1. 都是通过密集预测进行分类和回归的。
  2. (FSAF、FCOS、FoveaBox)利用FPN进行多尺度目标检测,而(DenseBox、YOLO)只有单尺度目标检测。
  3. (DenseBox、FSAF、FCOS、FoveaBox)将分类和回归解耦成2个子网络来得到,而(YOLO)分类和定位统一得到。

注:上面说DenseBox是单尺度目标检测,但是我们上面提到,他用到了图像金字塔检测。所以这里的单尺度目标检测,说得是特征单尺度。

重点

细心读完上面的各个密集检测算法,会发现,每个算法的网络结构都差不多啊,怎么会天差地别呢???它们之间的区别到底在哪里???
各种方法的关键在于gt如何定义正负样本的!!!

目标检测的gt是一个矩形框,然而用这个矩形框信息来检测目标显然是不合理的,因为矩形框内只有一小部分是目标,而剩下的是背景,这可能会导致检测器的精度下降,而最近的一些anchor-free模型其实是改变了gt的定义,比如cornernet定义为角点,extremenet定义为极值点和中心点,FSAF、FoveaBox定义为矩形框的中间区域,FCOS虽然是矩形框,但是经过center-ness抑制掉低质量的框,其实也是一种变相的将gt定义为矩形框中心区域(也就是我上面的强行解释)。gt重新定义之后,需要检测的目标语义变得更加明确了,有利于分类和回归。

所以,可以认为设计合适的gt,是提升目标检测速度和精度的关键!

参考

  • 目标检测:Anchor-Free时代

相关系列

  • 【论文总结】:基于关键点检测的anchor-free算法总结(待完成)

【论文总结】:基于密集点检测的anchor-free算法总结相关推荐

  1. 基于白点检测的数码相机自动白平衡算法实现(Opencv+vs)

    1 白平衡 白平衡(White Balance)实现对白色物体的还原.人的大脑可以侦测并且更正不同光照下的色彩变更,因此不论在阳光.室内.阴影.或荧光下,人们所看到的白色物体仍旧为白色.但是,图像传感 ...

  2. 人头识别与计数_基于人头检测的人数统计算法研究

    摘要: 在统计人数时候都是根据所检测到的目标进行计数,从最开始传统的红外线检测的人数统计系统到现在的智能视频处理人数统计系统.在一些人群众多的场所和人员并排走时会有很严重的遮挡现象,所以红外线检测就不 ...

  3. 华为诺亚ICLR 2020满分论文:基于强化学习的因果发现算法

    2019-12-30 13:04:12 人工智能顶会 ICLR 2020 将于明年 4 月 26 日于埃塞俄比亚首都亚的斯亚贝巴举行,不久之前,大会官方公布论文接收结果:在最终提交的 2594 篇论文 ...

  4. matlab立体坐标定位_【半导光电】基于光电探测器的激光章动定位算法(二)

    今日光电        有人说,20世纪是电的世纪,21世纪是光的世纪:知光解电,再小的个体都可以被赋能.欢迎来到今日光电! ----与智者为伍 为创新赋能---- 1. 章动定位算法实验前,首先需要 ...

  5. 基于连通域字符分割的流程_基于连通域的快速文字图像分割算法

    基于连通域的快速文字图像分割算法 林孜阳 ; 穆雪 ; 吴凯锋 ; 严寒 ; 林怡芳 [期刊名称] <计算机光盘软件与应用> [年 ( 卷 ), 期] 2014(000)022 [摘要] ...

  6. AAAI 2019 论文解读 | 基于区域分解集成的目标检测

    作者丨文永亮 学校丨哈尔滨工业大学(深圳) 研究方向丨目标检测.GAN 本文解读的是一篇发表于 AAAI 2019 的 paper,文章提出了一种 R-DAD 的方法来对 RCNN 系列的目标检测方法 ...

  7. 检测噪声大小的c语言程序,单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计.doc...

    单片机课程设计(论文)_基于AT89C51的噪音检测自适应系统设计 摘 要 本文以AT89S52 单片机为控制核心,通过播音判断电路寻找广播间歇时段,实时采集噪声环境内的噪音信 号,根据A/ D 转换 ...

  8. WWW 2018论文分享| 基于部分可见异常样本的异常检测问题

    小蚂蚁说: The Web Conference 2018,即前WWW大会(International Conference of World Wide Web)于4月23-28日期间在法国里昂举行. ...

  9. 解读ICDE‘22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法

    摘要:本文提出了两个用于无监督的具备可解释性和鲁棒性时间序列离群点检测的自动编码器框架. 本文分享自华为云社区<解读ICDE'22论文:基于鲁棒和可解释自编码器的无监督时间序列离群点检测算法&g ...

最新文章

  1. 由于找不到PBSYS90.dll,无法继续执行代码。重新安装程序可能会解决此问题!
  2. ubuntu mysql 更新时间_Ubuntu Server 修改mysql timeout超时时间
  3. qwe qwe qw
  4. 配置_DruidDataSource参考配置
  5. BZOJ3572 [Hnoi2014]世界树 【虚树 + 树形dp】
  6. 第46条:不要使用 dispatch_get_current_queue
  7. 手把手教你玩转SOCKET模型:重叠I/O篇
  8. SAP Netweaver gateway cache table logic
  9. cmap参数 plt_plt.imshow的参数有哪些?
  10. 公共端接正极还是负极_电动车通过增加电池来提高续航能力,到底是并联好还是串联好?...
  11. 不可小视的贝叶斯(二)
  12. c++ 显示三维散点图_【无机纳米材料科研制图——OriginLab 0209】Origin散点图线性拟合与非线性拟合...
  13. php java 读取所有txt_paip.文件读写api php java python总结.txt
  14. 从安装认识Angular 2
  15. 11倍增长!支付宝自研数据库OceanBase再次刷新世界纪录
  16. 一个空格惹的祸:服务器端接收不到前端采用问号传参方式传过来的值
  17. 常见报错_mysql常见报错之SELECT list is not in GROUP BY clause
  18. ftdi+usb转串口驱动+android,FTDI usb转串口驱动
  19. spacedesk安卓_【图吧小白教程】安卓平板改数位板
  20. Dynamics AX2012 General ledger

热门文章

  1. 达梦认证考试及报名流程
  2. RabbitMQ普通集群、镜像集群、集群负载均衡、压力测试、选举策略及测试、集群故障恢复【集群超大全详解】
  3. solidworks 草图 阵列修改_SolidWorks 由草图驱动的阵列
  4. linux 交叉编译工具中没有libc和liblog库文件,NDK无法找到动态链接库;动态链接库找不到依赖的gcc库;JNI中无法找到要注册的类;and so on...
  5. win10系统要求配置_2020年win10系统配置要求是什么
  6. SQL Server两表比对数据
  7. 背包系统 设计要点_建立新设计系统的要点和要点
  8. ​力扣解法汇总732-我的日程安排表 III
  9. Boson 6.0 试验笔记一
  10. Swift Tips(18-32)