Holistically-Nested Edge Detection读书笔记

这是一篇边缘检测的文章,边缘检测跟semantic segmentation有点类似,边缘检测就是把边缘设置为1,其他的为0;而semantic segmentation只是把边缘内部为1,而外部为0。如果我们把边缘检测出来,只要把内部设置为1,外面设置为0就可以得到semantic segmentation的结果。因而,了解边缘检测对语义分割还是有所帮助的。并且,这两个任务存在一定程度的不同之处,那么可以使用一个任务进行预训练模型,再用预训练好的模型去训练另外一个模型,或者将把另外一个任务作为侧监督,上述两种方法在某些医疗图像中已经验证了具有一定的效果。

1. Holistically-Nested Edge Detection

作者的贡献点集中在两个方面:(1)采用deep supervision指导后半部分的层,(2)将后半部分的不同层的结果(shape不一样)分别进行上采样,并将各个层的结果进行融合(一种方法是将各个层的上采样输出值求average,另外一个将各个层上采样的输出值concatenate在一起然后再经过卷积得到最后的输出)

1.1 Existing multi-scale and multi-level NN


(a)将同一个输入进过不同个数的卷积层,然后将输出合并再经过一个卷积得到最后的输出。

(b)将一个输入经过多个卷积核,并将每个卷积核的输出结果concatenate在一起,在经过一个卷积得到输出。(a)和(b)差别在于(a)是横向的,而(b)是纵向的。

(c)将输入先resize成不同大小的shape然后再放进去卷积层。

(d)将一个输入经过多个不同个数的卷积,然后将对结果进行ensemble。

(e)作者提出来的方法,对于一个输入,经过连续的卷积层,将每一层的结果保存下来进行ensemble得到第一个输出,同时将每一层的结果concatenate在一起再过一个卷积核得到第二个输出,最后将两个输出在ensemble在一起得到最后的结果。

ps:这里的ensemble用的都是average。

1.2formulation

考虑到边缘的pixel个数很少,所以数据的类别不平衡十分严重,作者采用了加权的cross-entropy作为损失函数。


这里beta作为损失函数的权重,其利用正负样本在总样本的权重来作为损失函数的权重。optimize过程为:


这里W代表主干网络的参数,w则是将不同层的结果进行upsample对应的网络参数,b则是将不同层的结果concatenate在一起然后经过一个卷积得到最后的输出时候的卷积网络的参数。

2.实验


可以看出将不同层的结果进行融合可以取得明显的提升,同时对于不同层的输出结果加上侧监督也有帮助。


从上表可以看出,虽然第一层输出结果与Groud Truth差别很大,但是在求avg的时候,如果仅仅统计中间三层的output,会比统计所有输出层的结果更差,这一点值得我们警惕。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值