论文链接:https://arxiv.org/abs/1506.04924

摘要

该文提出了基于混合标签的半监督分割网络。与当前基于区域分类的单任务的分割方法不同,Decoupled 网络将分割与分类任务分离,并为每个任务单独学习一个分离的网络。分类网络识别与图片相关的标签,然后在每个识别的标签中进行二进制的分割。Decoupled网络可以基于图像级别标签学习分类网络,基于像素级别标签学习分割网络。该网络通过桥链接层获得类别明确的激活maps来减少分割的搜索空间。该文在少量训练数据的条件下仍优于其他半监督方法。

介绍

分割网络对图片中目标物进行标记问题的挑战有:物体位置的变化,尺寸大小的变化,模糊,背景干扰等。DNN在标准数据集VOC上变现较好。但训练DNN需要大量的标签,因此,可以利用的标签只适用于小数量类别的图片,从而有监督的DNN应用于包含较多目标的分割任务较困难。

半监督或者弱监督通过利用每个bounding box的弱标签来进行训练。在缺失较完整的训练样本时,通常假设有许多可利用的弱标签可用于训练。实际中通过迭代可以获得较好的效果,但模型的训练条件要求较高,不易收敛,很难复现。

该文利用一小部分的完好的标签和大部分弱标签(每个图片中物体的类别)进行半监督训练分割。输入图片的每个类别由分类网络进行分类,而对每个标签的前景分割依赖于后续的分割网络。另外,桥结构的作用是将确定的类别的信息从分类网络传递到分割网络中进而让分割网络一次只关注由分类网络确定的一个类别的分割。

分类网络和分割网络的训练是彼此分离的,分别基于图片级标签和像素级的标签。同时,算法不需要迭代训练,易于复现。分类和分割大大减少了分割的搜索空间,进而可以训练大规模标签的数据。

 相关工作

对于若标记标签,利用CNN基于EM或者MIL算法进行预测潜在的分割masks。但相比有监督学习,弱监督由于训练时没有用于分割的直接监督信号,因此表现效果较差。半监督学习是连接全监督和弱监督之间的桥梁。在标准的半监督学习框架中,只提供部分带有完整标签的训练数据,然后将剩下的数据进行预测所有的分割类别。然而,在深度网络中训练大量的参数,这十分不合理,采用混合的标签进行训练。混合标签中目标物体的类别相比strong labels更易获得。通过挖掘其他带有strong labels的训练样本,弱监督更利于深层网络的训练。

对于有监督的CNN,基于strong labels的监督进行迭代推理,并增强对弱监督图片像素标签(图片级与bounding box级别)的分类。虽然利用部分strong annotations确实提高了分割的准确率,但需要进行大量的迭代操作,效果是启发式的,具有不确定性,同时,也增加了对结果的复现。

算法

网络结构如下,由三部分组成:(1)分类网络(2)分割网络(3)连接二者的桥连接层

该模型中语义分割通过连续的分类和分割操作进行实现。过程:输入一张图片,分类网络会识别出与图片相关的类别。然后,分割网络针对每一个单独的类别进行像素级别的前景分割。这里,分类于分割之间的差异会带来影响,该文通过在这两个网络之间增加一个桥连接层将分类网路确定的类别信息传递到分割网络中,进而可以对分离的目标函数进行优化。

网络的训练:含有像素级标签较少,但图片级标签较多的混合的类别不平衡的可训练的数据。(1)利用丰富的像素级的标签训练分类网络,(2)固定分类网络,利用带strong labels的样本联合训练桥连接层和分割网络。(3)对于strong label的样本数据较少,采用数据增强。

该文做的贡献:(1)提出利用混合标签训练的半监督DNN。(2)桥连接层构建了激活maps,将分类网络映射至分割网络中,为后面的分割提高了较强的预判,同时,减少了训练和测试时的搜索空间。(3)训练过程十分简便,并未使用其他半监督方法常用的迭代操作。

结构

分类网络:

input: 一张图片x,

outputs: a normalized score vector   ,对于L个类别,基于优化后的分类模型 预测出的对应的score。

目标函数: 表示第i个样本对应的ground truth,ec为每个yi对应的loss损失。

用VGG16作为分类网络(13*(conv+rectification+pooling)+3*fully connected layers)。

loss:sigmoid cross-entropy

对于分类网络预测出的标签对应的区域x,由分割网络进行处理。

分割网络

将由桥连接层得到输入图像xi的类别激活映射送如分割网络,经过softmax 变换后得到一个两通道的类别确定的分割map为分割网络的参数。M有前景和背景两个通道,分割相当于对像素级别的回归。目标函数如下

 :代表第i张图片类别为l的grount truth值,取值为0或1。

该文应用转置卷积网络作为分割网络。通过一系列的上采样,转置卷积和非线性处理来恢复与图片x相同大小的feature map。利用softmax loss损失来优化上式。

该文改进:分割网络中的分类为二值分类,是某个类别L或者不是, 借助于分类网络所确定的类别,极大的减少了分割网络中的参数。

桥连接层

分割网络的输入需要包含确定的类别及空间信息。桥连接针对每个类别构建一个激活mp。为了编码图片中存在的目标物体。该文利用分类网络中间层的输出(最后一个pooling 层,用fspat表示)。经过卷积池化层后保存空间信息,越深层捕捉更加抽象的全局信息。

虽然fspat包含着丰富的信息,但仍包含图像中相关标签的混合信息。因此,我们需要确定fspat中的类别。该文用BP来得到类别确定的显著图。f(i)作为分类网络中第i层的输出。基于一个确定的类别l下,f(k)中激活函数的相关性由链式法则计算。

代表class-specific 显著图,代表类别L的score,上式描述,f(k)中的激活与类别L的相关性。

class-specific activation map  结合fspat与fclsl,将fspat于fclsl按通道进行拼接,产生的同时包含空间信息和class-specific 信息。而由于fspat是固定的,因此,对不同的类别,变化的是fclsl。

训练

数据增强:组合裁剪,代表与图片相关的一系列ground truth Label,该文枚举了类别中所有可能的组合。通过设置与类别l相关的像素的值({0,1})分为前景和背景。基于region proposal 选取包含前景的图片,同时进行随机采样来增强数据。

实验

参考

[1] Mark Everingham, Luc Van Gool, Christopher KI Williams, John Winn, and Andrew Zisserman. The pascal visual object classes (voc) challenge. IJCV, 88(2):303–338, 2010.

[2] Jonathan Long, Evan Shelhamer, and Trevor Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.

[3] Liang-Chieh Chen, George Papandreou, Iasonas Kokkinos, Kevin Murphy, and Alan L Yuille. Semantic image segmentation with deep convolutional nets and fully connected CRFs. In ICLR, 2015.

论文阅读笔记十四:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation(CVPR2015)的更多相关文章

  1. 论文笔记之:Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation

    Decoupled Deep Neural Network for Semi-supervised Semantic Segmentation xx

  2. 论文阅读笔记十二:Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation(DeepLabv3+)(CVPR2018)

    论文链接:https://arxiv.org/abs/1802.02611 tensorflow 官方实现: https: //github.com/tensorflow/models/tree/ma ...

  3. 论文阅读笔记十八:ENet: A Deep Neural Network Architecture for Real-Time Semantic Segmentation(CVPR2016)

    论文源址:https://arxiv.org/abs/1606.02147 tensorflow github: https://github.com/kwotsin/TensorFlow-ENet ...

  4. [论文阅读笔记] Community aware random walk for network embedding

    [论文阅读笔记] Community aware random walk for network embedding 本文结构 解决问题 主要贡献 算法原理 参考文献 (1) 解决问题 先前许多算法都 ...

  5. [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding

    [论文阅读笔记] Adversarial Mutual Information Learning for Network Embedding 本文结构 解决问题 主要贡献 算法原理 实验结果 参考文献 ...

  6. 2018年发表论文阅读:Convolutional Simplex Projection Network for Weakly Supervised Semantic Segmentation

    记笔记目的:刻意地.有意地整理其思路,综合对比,以求借鉴.他山之石,可以攻玉. <Convolutional Simplex Projection Network for Weakly Supe ...

  7. 论文阅读笔记十五:Pyramid Scene Parsing Network(CVPR2016)

    论文源址:https://arxiv.org/pdf/1612.01105.pdf tensorflow代码:https://github.com/hellochick/PSPNet-tensorfl ...

  8. 论文阅读笔记十六:DeconvNet:Learning Deconvolution Network for Semantic Segmentation(ICCV2015)

    论文源址:https://arxiv.org/abs/1505.04366 tensorflow代码:https://github.com/fabianbormann/Tensorflow-Decon ...

  9. 论文阅读笔记十:DeepLab: Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs (DeepLabv2)(CVPR2016)

    论文链接:https://arxiv.org/pdf/1606.00915.pdf 摘要 该文主要对基于深度学习的分割任务做了三个贡献,(1)使用空洞卷积来进行上采样来进行密集的预测任务.空洞卷积可以 ...

随机推荐

  1. 解决Nginx出现403 forbidden

    在之前我修改了nginx.conf,所以/home/ftpuser/www文件夹下应该有index.html或index.htm文件 将index.html或index.htm文件复制到/home/f ...

  2. gradle记录

    set-env.bat set "JAVA_HOME=G:\jdk" set "CLASSPATH=%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\ ...

  3. 【转】Linux下查看系统配置

    [转]Linux下查看系统配置 CPU 1. lscpu:显示cpu架构信息 [xxx@localhost ~]$ lscpu Architecture: x86_64 CPU op-mode(s): ...

  4. Session、LocalStorage、SessionStorage、Cache-Ctrol比较

    1.Session Session是什么? 服务器通过 Set-Cookie给用户一个sessionIdsessionId对应 服务器 内的一小块内存每次用户访问服务器的时候,服务器就听过Sessio ...

  5. 6个Async/Await完胜Promise的原因

    友情提醒:NodeJS自从7.6版开始已经内置了对async/await的支持.如果你还没用过该特性,那么接下来我会给出一系列的原因解释为何你应该立即开始使用它并且会结合示例代码说明. async/a ...

  6. HTTP协议04-返回状态码

    状态码职责是在客户端向服务器端发送请求时候,描述返回的请求结果.借助状态码,用户可以知道服务器是否正常处理了请求,还是出错了. 状态码的类别   类别 原因短语 1XX Informational(信 ...

  7. 题解-ZeroJudge-c686 高斯符號

    Problem ZeroJudge Solution 考慮到\(\lfloor \frac {km}n\rfloor\)等同於\(km\)整除\(n\),換種表示方法就是\(km\)減去\(km\)模 ...

  8. C++怎么实现线程安全

    muduo库学习笔记1-C++多线程系统编程 网上都说这本书很适合初学者入门学习, 我今天开始准备从头再来; 第一章线程安全的对象管理 对象的生与死不能由对象自身拥有的mutex(互斥器)来保护; 如 ...

  9. fpm...failed: Cannot assign requested address

    2017年6月23日 16:00:28 星期五 启动fpm的时候总是报错, 看了网上说的修改rlimit值但是不管用 后来发现fpm配置文件监听的地址写错了, 127.0.0.1 写成了 172.0. ...

  10. Sql语句之并(UNION)、交(INTERSECT)、差(minus)、除去(EXCEPT)

    UNION 查询选修了180101号或180102号课程或二者都选修了的学生学号.课程号和成绩. (SELECT  学号, 课程号, 成绩 FROM   学习 WHERE   课程号='180101' ...