zoukankan      html  css  js  c++  java
  • Learning a Discriminative Feature Network for Semantic Segmentation(语义分割DFN,区别特征网络)

    1、介绍

    语义分割通常有两个问题:类内不一致性(同一物体分成两类)和类间不确定性(不同物体分成同一类)。本文从宏观角度,认为语义分割不是标记像素而是标记一个整体,提出了两个结构解决这两个问题,平滑网络和边界网络(Smooth Network and Border Network)。平滑网络用的是通道注意力块(Channel Attention Block),来解决类内不一致性。边界网络集成了语义边界损失。

    2、相关工作

    Encoder-Decoder:主要考虑如何恢复由于池化造成的空间信息损失,如 SegNet,U-net,Global Convolutional Network,LRR,Refinenet。这些方法只是把相邻步骤的特征总和起来,没有考虑多样表现性

    Global Context(全局上下文信息):全局平均池化有很大的效果,如 ParseNet,PSPNet,Deeplabv3

    Attention Module(注意力模块):注意力关注不同尺度信息,如 SENet

    Semantic Boundary Detection(语义边界检测):许多方法直接连接不同层的特征提取边界,我们用了自下而上的结构来优化每一步的特征

    3、网络结构

    平滑网络:用了 global pool 以及通道注意力模块和精细化残差块

    边界网络:用传统的 canny 边缘检测算法获得边界,损失函数用的 focal loss,为了平衡正负样本,同时减少简单样本的损失,使网络更易于训练

    整体网络:用 deep supervision 对每一层的结果进行上采样计算损失,除了全局池化层,平滑网络用 softmax,边界网络用 focal loss,最后两个加起来用一个平衡参数 L=L(s)+a*L(b)

    4、训练

    优化器:SGD

    batch size:32

    动量:0.9

    权重衰减:0.0001

    学习率:4e-3

    学习率衰减:(1-iter/maxiter)^0.9

    损失函数比例a:0.1(验证集上效果最好)

    数据扩增:减去均值,随机水平翻转,随机缩放

    5、看完其实并不太懂具体的实现,只能是知道一个大概的结构,具体的实现结构可以参考github:https://github.com/YuhuiMa/DFN-tensorflow

     Border Network主要用于计算 loss 更新权重,

    ---------------- 坚持每天学习一点点
  • 相关阅读:
    列出 visual studio 的所有快捷键
    CVS命令深入研究 zz
    大话系统之权限控制 (转)
    策略模式
    使用ISAPI_Rewrite对asp.net实现URL重写,显示HTML后缀
    使用ICSharpCode.SharpZipLib.dll实现在线解压缩
    ISAPI_REWRITE(转)
    ISAPI_Rewrite集
    做快乐的程序员(转)
    Request.PathInfo,Request.Path,RequestRawUrl
  • 原文地址:https://www.cnblogs.com/tccbj/p/10814788.html
Copyright © 2011-2022 走看看