zoukankan      html  css  js  c++  java
  • 计算机视觉

    FCN - Fully Convolutional Networks for Semantic Segmentation

    1. 全卷积网络

      1. 将全连接层转换为卷积层,使得输入的图片大小不受限制。
      2. 输入经过一系列的 Conv-Pooling 后,feature map 比原图小 (FCN经过了五层 Pooling)
        为了实现pixel-wise prediction,可以采用最近邻上采样或者shift-and-stitch方法。或者使用双线性插值上采样法
      3. 基于 Patchwise 采样的训练方法可以缓解类别不平衡问题和空间相关性问题,但损失了一部分全局信息,是有损采样。而FCN将整张图片作为输入去训练,保留了全局信息
      4. Pooling 操作会使计算量下降,具有尺度不变性
    2. 架构

      FCN-32s - VGG16 (将全连接转换成卷积 4096 - 4096) -> 21 Conv 1x1 -> bilinear upsampling 32x -> crop -> softmax loss
      【这里的 filters 为21,是因为数据集中一共有21类】
      输入图片在第一层卷积前,padding 100
      转为卷积的 FC6,FC7 后面接0.5 dropout
      双线性插值可以用 deconvolution 代替。根据实验结果,双线性插值与反卷积产生的效果差别不大。

      pad the input and crop 使得输入可以为任意大小且输出与输入的大小相同

      网络权重通过迁移对应数据集上的分类网络得到

      FCN-16s - 计算 Pooling 4 -> 21 Conv 1x1 -> crop 和 FC7 -> 21 Conv 1x1 -> deconv/s2,然后相加 -> deconv/s16 -> crop -> softmax loss
      FCN-8s 同理,但一共训练了三次,先迁移 VGG16,训练 FCN-32s,然后迁移并训练 FCN-16s,最后迁移训练 FCN-8s

    3. 实验框架

      在整张图像上训练的效果与固定输入图片大小,然后 sampling patch【即 crop randomly 】相同
      不需要对 class balancing 单独处理
      最后一层 deconv 转换成双线性,前面的 deconv 在双线性初始化的情况下再训练
      【然而,开源的代码中全部使用双线性插值的方法】

    SegNet - A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation

    1. max-pooling 与 sub-sampling 降低了特征的分辨率能力(即无法把握图片的局部信息)
      SegNet将低分辨率特征映射到输入分辨率级别。【采用 memorized max-pooling indices 可以获得更准确的边界位置信息】
      retrain boundary information in feature maps
      efficient memory and computation
      end-to-end

    2. 结构

      • encoder - 使用 VGG16 的结构,去掉了最后两层全连接。即 Conv - BN - ReLU 2 2 3 3 3,五次MaxPooling
      • decoder - 将 encoder 翻转过来。这里的上采样:Max Pooling时保存位置索引。上采样时恢复,其他位置置0。这样的优点是增加边界描述信息,减少网络参数,具有通用性
    3. 补充

      训练过程中增加了类别平衡。一个类别对应的权重为:该类别在训练图片中的占比的中位数。
      作者之后又提出了 Bayesian SegNet

    DeconvNet - Learning Deconvolution Network for Semantic Segmentation

    1. FCNs 的限制

      • 感受野固定,对于过大的物体可能只看到局部,过小的物体被当作背景
        (skip architecture 在边界信息和语义信息中进行权衡)
      • 物体的细节结构在encoder过程中丢失
        (bilinear interpolation 直接将 coarse feature maps 扩大32倍)
    2. 本文结构与 SegNet主要区别是

      DeconvNet 在 7x7 feature maps【即 max pooling 5 的输出】后面接了两个全连接层
      即与VGG相同

    3. VGG的输出 1 x 1 x 4096 (deonv7/s1)-> 7 x 7 x 512 (unpool)-> 14 x 14 x 512,然后通过 deconv 和 unpool 交替出现的结构

      这里反卷积为 kernel 3 strides 1 pad 1,即 feature maps 大小不变

    4. Unpool captures example-specific structures
      Unpool追踪物体的信息
      Deconv captures class-specific structures
      Deconv确定是哪类物体

    5. 训练过程

      分两步训练:简单样本 -> 复杂样本 (目标:instance-wise)

      图片被分为多张proposals,最终将这些proposals聚合

      fully-connected CRF

      Ensemble

    ENet - A Deep Neural Network Architecture for Real-Time Semantic Segmentation

    1. 结构

      end-to-end 和 real time

      input -> initial block -> bottleneck

    2. 策略

      • 图片分辨率 feature map resolution
        下采样缺点:损失空间信息,特别是边缘信息;语义分割要求输出的大小与输入相同,使用上采样会增加模型大小与计算代价
        下采样优点:更大的感受野,有利于区别不同的类(更具有判别性)【结合 dilated convolution 获得更大的感受野】
        对于损失空间信息的缺点来说,FCN 采用增加特征图维度的方法,SegNet 采用记录 MaxPooling 的索引,ENet 在上采样时,使用反卷积而不是卷积,同时像 SegNet 一样记录 MaxPooling 的索引位置。同时,下采样率仅为 8x

      • 较早的下采样 early downsampling
        视觉信息有较大的空间冗余,作者认为最初的网络层不应该有助于分类,相反,应作为特征处理器和图像预处理器

      • decoder 结构小于 encoder 结构,不是镜像对称的
        encoder 负责信息处理和过滤,decoder 上采样编码器的输出。

      • identify mappings in deep residual networks 指出卷积前加 ReLU 和 BN 的效果好。这里使用 PReLU 代替 ReLU

      • Information-preserving dimensionality changes
        使用 initial block,10倍速度加速
        下采样时 projection 1x1/s2 转变为 2x2/s2

      • factorizing filters - 5 x 5 -> 1 x 5 + 5 x 1

      • Dilated convolution
        获得更大的感受野。但是,交叉使用不同 rate 的空洞卷积的效果更好。
        本文中, dilated 1 -> dilated 2 -> asymmetric 5 -> dilated 4 -> dilated 1 -> dilated 8 -> asymmetric 5 -> dilated 16

      • Regularization 使用了 Spatial Dropout。dropout rate 0.01

    Deeplab -Semantic Image Segmentation with Deep Convolutional Nets, Atrous Convolution, and Fully Connected CRFs

    DCNN 具有平移不变性,使网络学到抽象的判别特征 abstract data representation
    但损失了空间信息,不适合 dense prediction

    语义分割面临三个挑战

    1. reduced feature resolution 由于下采样使得特征精度下降 -> atrous convolution

    2. 存在不同尺度大小的物体 -> atrous spatial pyramid pooling ASPP

    3. 平移不变性导致位置信息精度下降及边界信息丢失 -> fully connected pairwise CRF

    空洞卷积扩大感受野的同时不需要增加参数和计算量

    方法

    1. 空洞卷积:在不增加计算量的情况下扩大感受野,因此可以减小降采样率

    2. ASPP:Pool5 后,使用 rate 为 6,12,18,24 的空洞卷积,然后经过 FC7 1x1 + FC8 1x1,最后四路相加合并

    3. FC CRF:每个像素 i 具有类别标签 (x_i) 与观察值 (y_i)
      (P(X=x|I) = frac{exp(-E(X|I))}{Z(I)})
      (E(X|I) = sum_{i} heta_i(x_i) + sum_{ij} heta_{ij} (x_i, x_j))

      ( heta_{ij}) 与位置、颜色有关
      实际使用中,使用平均场近似方法

    后续论文

    1. Rethinking Atrous Convolution for Semantic Image Segmentation

    2. Encoder-Decoder with Atrous Separable Convolution for Semantic Image Segmentation

    3. Understanding Convolution for Semantic Segmentation

  • 相关阅读:
    undefined与null的区别
    js 合并多个对象 Object.assign
    No 'Access-Control-Allow-Origin' Ajax跨域访问解决方案
    CSS3的REM设置字体大小
    延迟运行方法
    如何用 SQL Tuning Advisor (STA) 优化SQL语句
    Oracle数据库查找持有锁的SQL语句,而不是请求锁的SQL语句(原创)
    Oracle记录登录失败的触发器
    11g ASM新特性
    闪回事务(Flashback Transaction)
  • 原文地址:https://www.cnblogs.com/viredery/p/semantic_segmentation.html
Copyright © 2011-2022 走看看