anchor based
优点
- 使用anchor机制产生密集的anchor box,使得网络可直接在此基础上进行目标分类及边界框坐标回归。加入先验,训练稳定
- 密集的anchor box可有效提高网络目标召回能力,对于小目标检测来说提升非常明显。
缺点
- anchor机制中,需要设定的超参:尺度(scale)和长宽比( aspect ratio) 是比较难设计的。这需要较强的先验知识。
- 冗余框非常之多:一张图像内的目标毕竟是有限的,基于每个anchor设定大量anchor box会产生大量的easy-sample,即完全不包含目标的背景框。这会造成正负样本严重不平衡问题,也是one-stage算法难以赶超two-stage算法的原因之一。使用包括two-stage的RPN和one-stage的Focal loss
- 网络实质上是看不见anchor box的,在anchor box的基础上进行边界回归更像是一种在范围比较小时候的强行记忆。
- 基于anchor box进行目标类别分类时,IOU阈值超参设置也是一个问题
anchor free
优点
更大更灵活的解空间、摆脱了使用anchor而带来计算量从而让检测和分割都进一步走向实时高精度
缺点
- 正负样本极端不平衡
- 语义模糊性(两个目标中心点重叠)
现在这两者大多是采用Focus Loss和FPN来缓解的,但并没有真正解决。 - 检测结果不稳定,需要设计更多的方法来进行re-weight
对比
anchor-free和anchor-based实际上最大的区别应该是解空间上的区别。
anchor-free
无论是keypoint-based的方法(e.g. CornerNet和CenterNet)还是pixel-wise prediction的方法(e.g. FCOS),本质上都是dense prediction的方法,庞大的解空间使得简单的anchor-free的方法容易得到过多的false positive,而获得高recall但是低precision的检测结果;
目前的anchor-free方法,一方面通过了各种方式来进一步re-weight检测结果的质量(e.g. FCOS的centerness),另一方面通过FPN也在一定程度上缓解了高度重合带来的影响
anchor-based
由于加入了人为先验分布,同时在训练的时候prediction(尤其是regression)的值域变化范围实际上是比较小的,这就使得anchor-based的网络更加容易训练也更加稳定;