Polar Mask笔记

参考(CVPR20’Oral) PolarMask: 一阶段实例分割新思路 - Johnny ez的文章 - 知乎
https://zhuanlan.zhihu.com/p/84890413
振奋人心的一篇文章,看完启发很大

基于FCOS(一个anchor free的目标检测网络)

创新点

新的分割结果表示方法

(1)不是用普通的mask,而是找轮廓点
(2)不是用直角坐标系,而是用极坐标
极坐标的好处
中心点的位置已知固定的情况下,轮廓点的位置只需要一个d就可以表示
在这里插入图片描述
这样36个轮廓点只需要36个d就能表示

(3)中心点centerness:用来对正样本reweight

gt的中心点:重心
prediction的中心点:希望中心点到各个轮廓点的距离差不多

在这里插入图片描述
在这里插入图片描述
预测出的中心点对应的d,算出polar centerness,如果较大,这个中心点的权重就会较低(根据score排序的时候可能就会被筛掉)

(4)极坐标如何计算IOU?

Polar IoU Loss
在这里插入图片描述

交集的面积是分子,并集的面积是分母。
这里是取接近0的夹角计算扇形面积然后积分
扇形面积公式:
在这里插入图片描述
R是半径, ∣ α ∣ |\alpha| α就是夹角,也就是这里的 d θ d\theta dθ
离散化并且简化:
在这里插入图片描述
说一下最后(8)为什么加了个log并且交换分子分母
(7)是预测结果的IOU,而我们期望的IOU是1,也就是gt是1,根据交叉熵的公式:
在这里插入图片描述
p(x_i)=1,q(x_i)就是(7)
于是就变成了(8)
有一个问题:
有个疑惑,计算IOU的时候,gt的d是知道的,但预测的 d ~ \tilde{d} d~是图中那个 d ~ \tilde{d} d~吗?预测的 d ~ \tilde{d} d~不应该是预测的中心点到预测的轮廓点的距离吗,怎么会是gt的中心点到预测的轮廓点的距离呢。还是这个 d ~ \tilde{d} d~是计算出来的?有点好奇是怎么算的,转换为直角坐标再算的吗?
问了一下作者。等待作者回复后补充。

Performance

Polar centerness裸涨1.4个点
Polar IOU loss裸涨2.6个点

细节

gt如何找到那36个点?
(1)遍历边缘点,计算其与中心点的夹角、距离,找36个点。
(2)如果mask比较小,轮廓比较少,有些角度没有,就找接近的。
(3)如果一个角度对应多个值:找最大值
(4)本来不需要nms,如果要做,可以对结果的mask做最小外接框
缺点
对中心有空比如甜甜圈形状的物体效果比较差,此时计算d用的最大值

下一目标:FCOS阅读

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值