图像分割学习笔记1

1、显著性检测(Saliency Detection)

1.1 两类问题

①显著性物体分割(Salient object segmentation)--- 最能引起人的视觉注意的物体区域

②注视点预测(Fixation prediction)--- 通过对眼动的预测和研究探索人类视觉注意机制

1.2 两种策略的视觉注意机制

①自底而上基于数据驱动的注意机制

  1)从数据出发

  2)与周边有较强对比度或差异

  3)颜色、亮度、边缘等特征

②自上而下基于任务驱动的目标的注意机制

  1)从认知因素出发,如知识、预期、兴趣等

1.3 Pascal VOC数据集

  ①显著物体标注   ②眼动数据

  如下图所示,由VGG修改而成DNN模型,用于显著性检测,最后一层是一个解卷积层。

2、物体分割(Object Segmentation)

2.1 前景背景分割

  ①前景一般包含物体  ②需要交互提供初始标记(提供一些简单的初始标记,使分割更好)

2.2 Graph Cuts分割

  最基本的分割算法一般都是基于图论。

  ①基于图论的分割方法

  ②分割模型

    1)每个像素都一个节点

    2)最小割最大流算法优化

2.3 GrabCut分割

  ①前景/背景的颜色模型

    1)高斯混合模型

    2)Kmeans算法获得

  ②迭代进行Graph Cuts

    1)优化前景和背景的颜色模型

    2)能量随着不断迭代变小

    3)分割结果越来越好

  ③算法流程

    1)使用标记初始化颜色模型(K=5)

    2)执行Graph Cuts

3、语义分割(Semantic Segmentation)

3.1 什么是语义分割

  ①目标

    1)从像素水平(pixel-level)上,理解、识别图片的内容

    2)根据语义信息分割

  ②输入

    图片

  ③输出

    1)同尺寸的分割标记(像素水平)

    2)每个像素会被识别为一个类别(category)

3.2 语义分割的用处

  ①机器人视觉和场景理解

  ②辅助/自动驾驶

  ③医学X光

3.3 算法研究阶段

  ①2015年以前:手工特征+图模型(CRF)

  ②2015开始:深度神经网络模型

    1)思路:改进CNN,并使用预训练CNN层的参数

    2)传统CNN的问题

      后半段网络无空间信息

      输入图片尺寸固定

    3)全卷积网络(Fully Convolutional Networks)

      所有层都是卷积层

      解决降采样后的低分辨率问题

 3.4 全卷积网络(Fully Convolutional Networks-FCN)

  ①卷积化(Convolutionalization)

    1)将所有全连接层转换成卷积层

    2)适应任意尺寸输入,输出低分率分割图片

  ②反卷积(Deconvolution)

    1)将低分辨率图片进行上采样,输出同分辨率分割图片

  ③跳层结构(Skip-layer)

    1)精化分割图片

3.4.1 FCN-卷积化的降维问题

3.4.2 FCN-反卷积(Deconvolution)

  ①一对多操作

  ②卷积的逆操作

    1)小数步长1/f

    2)卷积核尺寸不变

  ③前向和后向传播

    1)对应卷积操作的后向和前向传播,优化上做颠倒

    2)反卷积核实卷积核的转置,学习率为0

  ④也叫转置卷积(Transposed convolution)

  ⑤可以拟合出双线性插值

  例如:

    1)外围全补零(Full padding)反卷积

    2)输入:2x2

    3)输出:4x4

    4)参数设置:

      卷积核尺寸:3x3

      步长:1

      Padding:2

    5)被Skip-layer使用

 

 3.4.3 FCN-跳层结构(Skip-layer)

  ①原因:直接使用32倍反卷积得到的分割结果粗糙

  ②使用前2个卷积层的输出做融合

    1)跳层:Pool4和Pool3后会增加一个1x1卷积层做预测

    2)较浅网络的结果精细,较深网络的结果鲁棒

  ③最后的反卷积层

    1)固定为双线性插值

    2)不学习

  ④中间的反卷积层

    1)初始化为双线性插值

    2)需要学习

3.4.4 使用AlexNet构建FCN

  ①第一步

    1)使用AlexNet作为初始网络,保留参数

    2)舍弃最后1个全连接层

  ②第二步(FCN-32s网络)

    1)替换为两个同深度的卷积层(4096,1,1)-> 16x16x4096

    2)追加一个预测卷积层(21,1,1)-> 16x16x21

    3)追加一个步长为32的双线性插值反卷积层 -> 500x500x21

   ③第三步(FCN-16s网络)

    1)对最终层Conv7结果2倍上采样 -> 34x34x21

    2)提取Pool4输出,追加预测卷积层(21,1,1)-> 34x34x21

    3)相加融合 ->34x34x21

    4)追加一个步长为16的双线性插值反卷积层 ->500x500x21

  ④第四步(FCN-8s网络)

    1)对上次融合结果2倍上采样 ->70x70x21

    2)提取Pool3输出,追加预测卷积层(21,1,1)->70x70x21

    3)相加融合 ->70x70x21

    4)追加一个步长为8的双线性插值反卷积层 ->500x500x21

3.4.5 FCN训练

  ①SGD with momentum(0.9)

    1)Learning rate 

      0.001(AlexNet),0.0001(VGG16),0.00001(GoogLeNet)

    2)Minibatch:20

  ②初始化

    1)卷积层

      前5个卷积层使用初始CNN网络的参数

      剩余第6和7卷积层初始化为0

    2)反卷积层

      最后一层反卷积层固定为双线性插值,不做学习

      剩余反卷积层初始化为双线性插值,做学习

3.4.6 FCN的跳层结构性能

  FCN-8s最优

3.4.7 FCN-8s的Pascal VOC竞赛结果

  ①边缘准确性比较差

    1)第一个卷积层大量补零

    2)之后做裁剪

    3)保证输出分辨率

    4)带来噪声

 

posted @ 2018-07-02 16:18  mjl_cv  阅读(2644)  评论(0编辑  收藏  举报