关于yolov3和fcos中inference差异:
yolov3和fcos的结构其实比较像,前者有类别+置信度,后者有类别+中心度,而且训练时对于类别都是使用了多个bce,对于objness则另外约束,除了Yolov3有3个anchor之外好像区别不大。
但在Inference的时候,根据阅读的源码,yolov3是先对每个anchor取出分数最高的那类,然后与Obj相乘,得到一个综合的分数,再根据这个进行nms,但是,fcos则是保留每个point的所有类别分数,在每一层上把所有的point的所有类别分数统一排序,取出top num,然后再将obj与这top num个分数取几何平均,最后再进行nms。
区别在哪呢,就在于,前者对于每个anchor只会得到一个类别的框,但是对于后者,会出现同一个point,在两类或者多类上分数都很高的 情况,然后出现一个框,两个类别。