Deep Watershed Transform for Instance Segmentation

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/bea_tree/article/details/74156831

cvpr17的一篇文章, 作者:Min Bai; Raquel Urtasun
https://arxiv.org/pdf/1611.08303.pdf
之前效果较好的 Instance segmentation主要是使用proposal的方式,比如FCIS或者Mask rcnn,本文提出了骨骼清奇的深度分水岭的方法。

1. Watershed Transform

首先来说一下传统的分水岭算法:
我们按照图片的灰度值的梯度可以绘制一个“地形图”, 然后将在各个局部极小值的地方开始灌水,为防止不同区域内的水相通,变建立“大坝”将其分各开,也就将图分割为独立的几个区域。如下图:
这里写图片描述 这里写图片描述

传统利用分水岭的方法容易由于噪声的原因产生过度分割的现象, 本文结合深度卷积网络,学习一个特征代替传统分水岭算法中的图形灰度图的梯度值。
也就是由下图中的a变为了b,其学习的目的就是每个instance 一个 basin的区域。
这里写图片描述

2. Deep Watershed Tranform

为了学习到上面所说的energy landscape, 文章将网络分为了两部分,首先学习‘ the directionof descent of the watershed energy’所用的网络称为 Direction Net,在此基础上学习最终的Energy。 训练时首先对两部分分别预训练然后进行end2end的finetune。网络结构如下:

这里写图片描述

第一个阶段学习的结果如下图第二列所示,最终的阶段如图中第三列所示:

这里写图片描述

2.1 Direction Network

具体的第一阶段output,为一个两通道的map,表示一个单位向量,表达式为:

这里写图片描述

其中Dgt p是某个像素的distance transform,即某点到其最近instance 边界的距离,如下图,即使相近的两个点(蓝,红)如果分属于不同的instance,其得到的 结果也有较大的差距,这使得网络可以把握住instance的边缘特征。

这里写图片描述

预训练的loss如下:
这里写图片描述
采用了cos的倒数,也就是主要看他们的角度

2.2 watershed transform network

这部分的ground truth是一个K=16的one-hot vector , loss采用交叉熵的形式,也就是转化为了一个分类的形式,第0类是背景或者可以记为背景的像素。

这里写图片描述

loss中将接近于边缘的类别权重增大,即 ck .

2.3 inference

看文章是将大的object选用level=2来分割,小的object采用level=1。

3. Experiments

没有在Pascal或者coco上做,试验做的也不是特别多,cvper 的要求像是变了的感觉。

这里写图片描述

这里写图片描述

猜你喜欢

转载自blog.csdn.net/bea_tree/article/details/74156831
今日推荐