segmentation
INTRODUCTION
图像分割是计算机视觉当中不可或缺的组成部分,分割在医学图像分析,自动驾驶,视频监控等方向都起着很大的作用。随着科技的发展,很多文献已经开发出了很多的图像分割算法,从最早的阈值化,k均值聚类,分水岭算法到更高级的例如活动轮廓,马尔可夫随机场和一些基于稀疏性的方法。在过去的几年中深度学习(DL)网络产生了新一代的图像分割模型,在性能上得到了非常显著的提升。许多人将其视为该领域的革命性转变。
图像分割可以分为语义分割和实例分割。
这篇综述最大的贡献在于:
1.这篇综述调查了截至2019年在图像分割方面的文献,讨论了一百多种基于深度学习的分割方法,并对这些不同的分割方法的不同方面(database,backbone,loss,训练策略)进行了比较与讨论。
2.讲述了约20种流行的segmentation database(2D,3D,2.5D)
3.对深度学习潜在未来的方向讲述自己的见解
Overiew of deep neural networks
CNNS
CNN应该是深度学习当中使用最广泛也是最成功的神经网络架构之一。
CNN主要由三种类型的层组成:
1.卷积层(conv3-64),其中卷积权重的核(或滤波器)以提取特征。
2.非线性层(激励层),它们在特征图上应用激活函数(RELU),以便能够通过网络对非线性函数进行建模。
3.池化层,这些合并层用一些统计数据替换了特征图的一小部分邻域有关邻域的信息(平均值,最大值等),提取主要特征;下采样,并降低空间分辨率优化网络参数。
4.全连接层,通过卷积层的得到的一些局部特征,将这些局部特征通过权值矩阵来组装成完整的图像,全连接层的权重矩阵是固定的,因此也就限制了CNN中输入图像的尺寸必须一样。
CNN的主要计算优势在于,一层中的所有接收场均具有权重,因此与完全连接的神经网络相比,参数数量明显减少。(局部连接,窗口滑动)
一些最著名的CNN架构包括:AlexNet(8层,5个conv层,2个FC,1个类似于softmax的lable 层)
ZFnet(ALEXNET的继任者,发现了ALEXNET中第一层包含了很多高频和低频信息,没有包含很多中间信息。将第一层的11*11卷积核变为7*7,步长4变为2)
VGGNet(16,19,conv3(2个3*3顶5*5,3个3*3顶7*7)上面两个都是专注于缩小感受野提升准确率,这个开始已经研究网络深度了,vgg超越了googlenet是分类和检测当中的最常用的backcone)。
NETWORK IN NETWORK(全局平均池化层替代了fc,可以将任意h*w*d转化为1*1*d的张量)
GoogleNet(222层使用了全局平均池化层替代了fc,采用了inception模块,一个卷积层多种不同尺度卷积核,使用了1*1卷积核进行降维)
Resnet(主要是处理一个梯度消失的问题,残差块)
RNN和LSTM
RNN(循环神经网络),主要的用途是处理和预测一些序列数据。这个RNN的主体结构A除了来自输入层XT,得到HT,同时这个A会将当前状态传递到下一步。因此RNN可以看成同一个神经网络被无限复制的结果。
RNN在NLP中的典型应用:语言模型与文本生成(给一个单词序列,通过这个模型预测下一个单词),机器翻译(将英语语句变成同样意思的中文语句),语音识别(转文本那种感觉),图像描述生成
优点:具有记忆功能,可以预测时间序列的数据
缺点:他这个只能受到上一时刻的影响,实际上往往需要结合很多这种上下文高阶信息。容易导致梯度消失(可以用于gradient clipping的方法解决)和梯度爆炸(无法解决)
LSTM-RNNs 的改进模型
Long Short Term网络,又被称作LSTM,是一种RNN特殊的类型,可以学习长期依赖信息。
LSTM的关键就是这个细胞状态,在图上方穿行而过,通过这个传送带,可以实现长时间的记忆功能。
三个门,什么该被丢弃,什么该被更新,最后的输出。
Encoder-Decoder and Auto-Encoder Models
encoder:conv(提取特征)+bn(对训练图像的分布归一化,快速学习)+pooling(下采样,将尺度不变的特征传到下一层)对图像的局部像素值进行一个归类与分析,从而获得更高阶的语义信息。
decoder 将缩小后的图像通过卷积重置上采样恢复到和原图的分辨率一样,为了弥补在encoder当中pooling将图像变小造成的细节上的损失。
GANs(照理来说是要产生大量图像样本的,也可以用于图像分割,那样就是两个输入,原图加金标准和原图加mask)
生成器:创造一个看起来像真的的图片
分辨器:判定给定的是不是真实图片
开始的时候,这里两个模型都是没有经过训练的,这两个模型一起对抗训练,然后这两个模型在训练过程当中不断对抗从而性能越来越强,最终达到一个稳态。
Transfer Learning
在某些情况下,可以在新的数据集上从头开始训练DL模型(假设有足够数量的标记训练数据),但是在许多情况下,没有足够的标记数据来从头开始训练模型,并且可以使用迁移学习解决这个问题。在迁移学习中,通常通过对新任务的适应过程,将在一个任务上训练的模型重新用于另一(相关)任务。