Segmentation中anchor free方法怎么实现的
小编给大家分享一下Segmentation中anchor free方法怎么实现的,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!
3. 基于Segmentation的方法
FCOS
按照FCOS的说法,它是把每个location都当做一个样本,如下图所示,可以看到,最左面的橙色点在棒球运动员的box内,这个点的gt实际上是该点到box的四个边缘的距离以及box的obj类别,所以最后预测出来的output是HxWxC以及HxWx4,C和4分别代表每个特征图的每个location要预测的该点所属于的类别和该点到box的边界距离。在通过这种方式得到box后,FCOS回合anchor based的方法一样进行NMS等:
实际上如果不考虑Classification下面的Center-ness分支,怎么样,会不会觉得非常熟悉?在这里贴一下retinanet的网络图:
可以发现,两者最大的差别是最后输出的通道,Retinanet输出的是KA和4A(A代表anchors数量,K代表类别数量),是对每个location位置的A个anchors预测它们的类别和相对偏移量,而FCOS则直接对格子所在的类别和产生box进行预测了,完全没有box的概念,整体上也非常接近语义分割的segmentation思想。这样做的方法会有一个问题,就是box里面,越接近中心的位置往往效果越好,但是越靠近Box边缘,虽然理论上应该仍然是正类,但是因为往往落在obj外,预测效果不佳,对此,FCOS的解决方法是引入一个新的分支centerness,它的gt计算如下:
可以看到,如果location距离box的左边界距离和右边界距离相同,根号内第一项应该是1,同理,当距离上下边界距离一样时候,根号内第二项是1,此时,gt值为1,location恰好处于中心位置。而如果location非常接近边缘,则gt会非常小。这个分支训练以后,在inference阶段将会和classification预测的值相乘作为最终scores得分,从而抑制接近中心点的位置。此外,FCOS还引入了多尺度的概念,如果在FPN的某个level上,t/b/l/r中的最大值大于某个阈值,则认为这个box不适合当前level的feature,从而进行排除。
Foveabox
而考虑到不同level预测的box大小不同,预测的box位置坐标也是经过编码的,编码方式如下(z代表系数,具体计算方式见论文):
最后,也就是foveabox名称的由来,对于box内部离中心点比较远的抑制方法,foveabox没有centerness那样的分支,而是用了另一个思路,那就是只有box内部比较靠近中心的点才被视作正样本(下图带黑色点的红色区域),如果该点在Box内部但是离边缘比较近,则往往被视作灰色区域,即不算正样本,也不算负样本,梯度回传的时候不考虑(红色box内部白色区域)。正样本所在的矩形框和灰色区域的矩形框大小是由两个不同的伸缩系数控制的。
FSAF
以上是“Segmentation中anchor free方法怎么实现的”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注蜗牛博客行业资讯频道!
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。版权声明:如无特殊标注,文章均为本站原创,转载时请以链接形式注明文章出处。
评论