参考:
1
- 这是一篇anchor-free的目标检测算法。
- 以往的anchor-based算法的缺点:
缺点一:检测性能对于anchor的大小、数量、长宽比都非常敏感
缺点二:固定的anchor损害检测器的普适性,导致对于不同任务,其anchor都必须重新设置大小和长宽比。
缺点三:为匹配真实框,需生成大量anchor,但是大部分anchor在训练时标记为negative,就会造成样本间的不平衡,没有充分利用fore-ground。
缺点四:训练中需要计算所有anchor框与真实框的iou,计算量大。消耗大量内存和时间。 - FCOS也是用了FPN的结构,FPN是feature pyramid networks特征金字塔网络,是一种常规利用CNN模型来高效提取图片中各维度特征的方法。FPN是一种多尺度目标检测算法,在它之前的目标检测算法都只采用顶层特征做预测,低层的特征语义信息比较少但是目标位置准确,高层特征语义信息丰富但是目标位置粗略。FPN独特的地方在于预测是在不同的特征层独立进行的。
- FCOS也是用了FPN结构,但是最后两层没有进行上采样。FPN结构在高层的语义特征融合效果并不好。所以构建FPN没有必要使用所有的卷积层。
- FCOS的优点在于:
优点一:检测问题可以被统一到其他FCN-solvable的问题,如语义分割。可以简单重用其他任务的idea。
优点二:由于anchor-free,所以不需要像anchor-based那样去调大量参数,并且还不用计算iou。 - 如下图所示:重叠区域的问题:
大部分的重叠区域的ground truth box之间的尺度变化非常大,例如图片中一个人和一个苹果,就很容易形成包含关系。基于FPN(特征金字塔网络)的多尺度检测可以有效减少这种情况的发生。 - 神经网络的浅层更多是细节特征,对于检测小目标有利。高层更多是语义特征,对于检测大目标有利。
- 如果出现重叠区域,按照两种情况采用两种解决办法:
情况一:如果大尺度和小尺度重叠,例如图片中人和手中的苹果,使用FPN结构在每一层加以限定。可以采用这种方法是因为两者尺度差异很大。
情况二:如果一个像素点在同一层落到了多个ground truth区域,这样也会产生模棱两可的情况,这时可以简单地采用使用最小区域来作为回归目标。 - 从anchor base的角度,FCOS通过两个IOU阈值将标定的anchor分为negatige ignored positive,这样并不能充分利用正样本。增大区域为了获得更多的正样本以更好的用于回归器中。