简单记录下FCOS的创新点
1. 首次提出逐像素边框预测,对feature-map上所有像素点预测。
类似于yolo-v1,不过yolo-v1是对7x7的cell进行预测,召回率较低,在之后v2,v3中又回归anchor-based方法。
而FCOS为了提高召回率对所有像素点预测,随之而来的是很多低质量的检测框,后面通过center-ness方法解决。
另外FCOS直接预测l,r,t,b等四个数值。
2.多尺度策略
对不同尺度的feature-map进行预测,同时为了避免边界框大小无限生长,限制了边界框的大小范围。
if a location satisfies max(l; t; r; b) > mi or max(l,t; r; b) < mi-1, it is set as a negative sample and is thus
not required to regress a bounding box anymore.
这种约束带来的额外的效果在于,由于不同尺寸的物体被分配到不同的特征层进行回归,又由于大部分重叠发生在尺寸相差较大的物体之间,因此多尺度预测可以在很大程度上缓解目标框重叠情况下的预测性能。
3.Center-ness(中心度)
对于创新点1带来的大量低质量框的问题,提出Center-ness的方法。思路是对每一个边界框计算并记录center-ness,center-ness作为最后是否选择该框的衡量标准之一。
center-ness即中心度,衡量的是一个预测框距离gt上物体中心的远近,中心度越小,偏离越大。
公式如下:
center-ness作为预测分类、预测分支并列的第三个分支加入网络中。
几点疑惑:
- 怎么完成逐像素点预测的,预测时是把每一个像素点输入进行预测吗?还是输入像素点周围一定区域?还是整个feature-map,然后对每一个像素点都有一个相应的输出?
- 中心度计算后,是否会因为中心度大小对l,f,t,b四个数值进行调整,还是只把中心度作为接下来NMS的一个标准?看了几篇博客,说法不一致,有的说是调整限制四个数值,有的说是作为接下来评判标准,还是二者兼有。
- faster-rcnn中RPN第一次回归anchor box 的位置时,只输入了anchor box的feature-map,怎么实现对bbox的回归的,feature-map中包含了位置信息吗。