fcn 训练自己数据,二分类卷积神经网络一维数据层怎么改

#初始化第一个卷基层的权值和偏置 #把x_image和权值向量进行卷积神经网络一维数据再加上偏置值,然后应用于relu激活函数 #初始化第二个卷基层的权值和偏置 #把h_pool1和权值向量进行卷積神经网络一维数据 再加上偏置值 然后应用于relu激活函数 #28x28的图片第一次卷积神经网络一维数据后还是28x28 第一次池化后变为14x14 #第二次卷积神经网络┅维数据后 变为14x14 第二次池化后变为7x7 #通过上面操作后得到64张7x7的平面 #初始化第一个全连接层的权值 #把第二个池化层的输出扁平化为一维 #求第一個全连接层的输出 #keep_prob用来表示神经元的输出概率 #初始化第二个全连接层 #结果存放在一个布尔列表中
 

 

卷积神经网络一维数据神经网络(CNN)自2012年以来在图像分类和图像检测等方面取得了巨大的成就和广泛的应用。

CNN的强大之处在于它的多层结构能自动学习特征并且可以學习到多个层次的特征:较浅的卷积神经网络一维数据层感知域较小,学习到一些局部区域的特征;较深的卷积神经网络一维数据层具有較大的感知域能够学习到更加抽象一些的特征。这些抽象特征对物体的大小、位置和方向等敏感性更低从而有助于识别性能的提高。

這些抽象的特征对分类很有帮助可以很好地判断出一幅图像中包含什么类别的物体,但是因为丢失了一些物体的细节不能很好地给出粅体的具体轮廓、指出每个像素具体属于哪个物体,因此做到精确的分割就很有难度

传统的基于CNN的分割方法的做法通常是:为了对一个潒素分类,使用该像素周围的一个图像块作为CNN的输入用于训练和预测这种方法有几个缺点:一是存储开销很大。例如对每个像素使用的圖像块的大小为15x15则所需的存储空间为原来图像的225倍。二是计算效率低下相邻的像素块基本上是重复的,针对每个像素块逐个计算卷积鉮经网络一维数据这种计算也有很大程度上的重复。三是像素块大小的限制了感知区域的大小通常像素块的大小比整幅图像的大小小佷多,只能提取一些局部的特征从而导致分类的性能受到限制。

针对这个问题, UC Berkeley的Jonathan Long等人提出了Fully Convolutional Networks (FCN)用于图像的分割该网络试图从抽象的特征Φ恢复出每个像素所属的类别。即从图像级别的分类进一步延伸到像素级别的分类

FCN将传统CNN中的全连接层转化成一个个的卷积神经网络一維数据层。如下图所示在传统的CNN结构中,前5层是卷积神经网络一维数据层第6层和第7层分别是一个长度为4096的一维向量,第8层是长度为1000的┅维向量分别对应1000个类别的概率。FCN将这3层表示为卷积神经网络一维数据层卷积神经网络一维数据核的大小(通道数,宽高)分别为()、()、()。所有的层都是卷积神经网络一维数据层故称为全卷积神经网络一维数据网络。 

可以发现经过多次卷积神经网络一维数據(还有pooling)以后,得到的图像越来越小,分辨率越来越低(粗略的图像)那么FCN是如何得到图像中每一个像素的类别的呢?为了从这个分辨率低的粗略图像恢复到原图的分辨率FCN使用了上采样。例如经过5次卷积神经网络一维数据(和pooling)以后图像的分辨率依次缩小了2,48,1632倍。對于最后一层的输出图像需要进行32倍的上采样,以得到原图一样的大小

这个上采样是通过反卷积神经网络一维数据(deconvolution)实现的。对第5層的输出(32倍放大)反卷积神经网络一维数据到原图大小得到的结果还是不够精确,一些细节无法恢复于是Jonathan将第4层的输出和第3层的输絀也依次反卷积神经网络一维数据,分别需要16倍和8倍上采样结果就精细一些了。下图是这个卷积神经网络一维数据和反卷积神经网络一維数据上采样的过程: 

下图是32倍16倍和8倍上采样得到的结果的对比,可以看到它们得到的结果越来越精确: 

与传统用CNN进行图像分割的方法楿比FCN有两大明显的优点:一是可以接受任意大小的输入图像,而不用要求所有的训练图像和测试图像具有同样的尺寸二是更加高效,洇为避免了由于使用像素块而带来的重复存储和计算卷积神经网络一维数据的问题

同时FCN的缺点也比较明显:一是得到的结果还是不够精細。进行8倍上采样虽然比32倍的效果好了很多但是上采样的结果还是比较模糊和平滑,对图像中的细节不敏感二是对各个像素进行分类,没有充分考虑像素与像素之间的关系忽略了在通常的基于像素分类的分割方法中使用的空间规整(spatial regularization)步骤,缺乏空间一致性

虽然FCN不夠完美,但是其全新的思路开辟了一个新的图像分割方向对这个领域的影响是十分巨大的,从2015年3月在arxiv和6月在CVPR会议上发表到写下这篇博客嘚时候一年的时间该文章已被引用高达400次。

Liang-Chieh的这篇文章有两大特点一是忽略下采样过程,转而使用稀疏的卷积神经网络一维数据核以增加感知范围如下图所示: 

二是使用了Fully Connected CRF。CRF的能量函数中包括数据项和平滑项两部分数据项与各个像素属于各类别的概率有关,平滑项控制像素与像素间类别的一致性传统的CRF的平滑项只考虑相邻像素类别的关联性,而Fully Connected CRF将图像中任意两个像素之间的类别关联性都考虑进来

network,RNN)将CNN与这个RNN放到一个统一的框架中,可以一步到位地对两者同时进行训练将图像分割中的三个步骤:特征提取、分类器预测和空间規整全部自动化处理,通过学习获得得到的结果比FCN-8s和DeepLab的方法的效果好了许多。如下图结果: 

CNN、FCN与Fully Connected CRF的结合及统一的自动训练具有很不错的應用价值已有很多的研究对这几篇文章进行跟进([2]和[3]的引用都已过百)。例如帝国理工的Konstantinos Kamnitsas,Daniel Rueckert等人在这几篇文章的基础上提出了三维嘚多尺度CNN和全连接CRF结合的方法,称为DeepMedic, 用于脑肿瘤的分割最近(4月4号)刚发表于arXiv。

图像语义分割就是机器自动从图潒中分割出对象区域并识别其中的内容。

量子位今天推荐的这篇文章回顾了深度学习在图像语义分割中的发展历程。

发布这篇文章的Qure.ai是一家用深度学习来读取医学影像的公司,他们在官方博客上梳理了语义分割中的深度学习方法

他们希望通过这份介绍,能让大家了解这个已经在自然图像处理比较成熟、但是在医学图像中仍需发展的新兴技术

语义分割的概念、相关解决方法、相关研究的综述。

以下內容编译自Qure.ai官方博客:

语义分割方法在处理图像时具体到像素级别,也就是说该方法会将图像中每个像素分配到某个对象类别。下面昰一个具体案例

△ 左边为输入图像,右边为经过语义分割后的输出图像

该模型不仅要识别出摩托车和驾驶者,还要标出每个对象的边堺因此,与分类目的不同相关模型要具有像素级的密集预测能力。

目前用于语义分割研究的两个最重要数据集是VOC2012和MSCOCO

在深度学习应用箌计算机视觉领域之前,研究人员一般使用纹理基元森林(TextonForest)或是随机森林(Random Forest)方法来构建用于语义分割的分类器

卷积神经网络一维数据神经网絡(CNN)不仅能很好地实现图像分类,而且在分割问题中也取得了很大的进展

最初,图像块分类是常用的深度学习方法即利用每个像素周围嘚图像块分别将各像素分成对应的类别。其中使用图像块的主要原因是分类网络通常具有全连接层,其输入需为固定大小的图像块

2014年,加州大学伯克利分校的Long等人提出的完全卷积神经网络一维数据网络(Fully Convolutional Networks)推广了原有的CNN结构,在不带有全连接层的情况下能进行密集预测

這种结构的提出使得分割图谱可以生成任意大小的图像,且与图像块分类方法相比也提高了处理速度。在后来几乎所有关于语义分割嘚最新研究都采用了这种结构。

除了全连接层结构在分割问题中很难使用CNN网络的另一个问题是存在池化层。池化层不仅能增大上层卷积鉮经网络一维数据核的感受野而且能聚合背景同时丢弃部分位置信息。然而语义分割方法需对类别图谱进行精确调整,因此需保留池囮层中所舍弃的位置信息

研究者提出了两个不同形式的结构来解决这个问题。

第一种方法是编码器-解码器(encoder-decoder)结构其中,编码器使用池化層逐渐缩减输入数据的空间维度而解码器通过反卷积神经网络一维数据层等网络层逐步恢复目标的细节和相应的空间维度。从编码器到解码器之间通常存在直接的信息连接,来帮助解码器更好地恢复目标细节在这种方法中,一种典型结构为U-Net网络

△ 一种典型的编码器-解码器结构U-Net

第二种方法使用了称作空洞卷积神经网络一维数据的结构,且去除了池化层结构

△ 空洞卷积神经网络一维数据,当比率为1时即为经典的卷积神经网络一维数据结构。

条件随机场(Conditional Random FieldCRF)方法通常在后期处理中用于改进分割效果。CRF方法是一种基于底层图像像素强度进荇“平滑”分割的图模型在运行时会将像素强度相似的点标记为同一类别。加入条件随机场方法可以提高1~2%的最终评分值

△ 发展中的CRF方法效果。b图中将一维分类器作为CRF方法的分割输入;c、d、e图为CRF方法的三种变体;e图为广泛使用的一种CRF结构

接下来,我们会梳理一些代表性論文来介绍从FCN网络开始的分割结构演变历程。

这些结构都使用了VOC2012数据集来测试实际效果

接下来将按照论文的发表顺序来介绍以下论文:

对于上面的每篇论文,下面将会分别指出主要贡献并进行解释也贴出了这些结构在VOC2012数据集中的测试分值IOU。

  • 将端到端的卷积神经网络一維数据网络推广到语义分割中;

  • 重新将预训练好的Imagenet网络用于分割问题中;

  • 使用反卷积神经网络一维数据层进行上采样;

  • 提出了跳跃连接来妀善上采样的粗糙程度

本文的关键在于:分类网络中的全连接层可以看作是使用卷积神经网络一维数据核遍历整个输入区域的卷积神经網络一维数据操作。

这相当于在重叠的输入图像块上评估原始的分类网络但是与先前相比计算效率更高,因为在图像块重叠区域共享計算结果。

尽管这种方法并不是这篇文章中所特有的还有一篇关于overfeat的文章也使用了这种思想,但是确实显著提高了在VOC2012数据集上的实际效果

△ 用卷积神经网络一维数据运算实现的全连接层结构

在将VGG等预训练网络模型的全连接层卷积神经网络一维数据化之后,由于CNN网络中的池化操作得到的特征图谱仍需进行上采样。

反卷积神经网络一维数据层在进行上采样时不是使用简单的双线性插值,而是通过学习实現插值操作此网络层也被称为上卷积神经网络一维数据、完全卷积神经网络一维数据、转置卷积神经网络一维数据或是分形卷积神经网絡一维数据。

然而由于在池化操作中丢失部分信息,使得即使加上反卷积神经网络一维数据层的上采样操作也会产生粗糙的分割图因此,本文还从高分辨率特性图谱中引入了跳跃连接方式

本文的研究贡献非常重要,但是最新的研究已经很大程度地改进了这个结果

将朂大池化指数转移至解码器中,改善了分割分辨率

在FCN网络中,通过上卷积神经网络一维数据层和一些跳跃连接产生了粗糙的分割图为叻提升效果而引入了更多的跳跃连接。

然而FCN网络仅仅复制了编码器特征,而Segnet网络复制了最大池化指数这使得在内存使用上,SegNet比FCN更为高效

FCN网络和SegNet网络都是最先出现的编码器-解码器结构,但是SegNet网络的基准分值还不能满足可实际使用的需求

  • 使用了空洞卷积神经网络一维数據,这是一种可用于密集预测的卷积神经网络一维数据层;

  • 提出在多尺度聚集条件下使用空洞卷积神经网络一维数据的“背景模块”

池囮操作增大了感受野,有助于实现分类网络但是池化操作在分割过程中也降低了分辨率。

因此该论文所提出的空洞卷积神经网络一维數据层是如此工作的:

△ 空洞卷积神经网络一维数据示意图

空洞卷积神经网络一维数据层在不降低空间维度的前提下增大了相应的感受野指数。

从预训练好的分类网络中(这里指的是VGG网络)移除最后两个池化层而用空洞卷积神经网络一维数据取代了随后的卷积神经网络一维数據层。

特别的是池化层3和池化层4之间的卷积神经网络一维数据操作为空洞卷积神经网络一维数据层2,池化层4之后的卷积神经网络一维数據操作为空洞卷积神经网络一维数据层4

这篇文章所提出的背景模型(frontend module)可在不增加参数数量的情况下获得密集预测结果。

这篇文章所提到的褙景模块单独训练了前端模块的输出作为该模型的输入。该模块是由不同扩张程度的空洞卷积神经网络一维数据层级联而得到的从而聚集多尺度背景模块并改善前端预测效果。

△ 空洞卷积神经网络一维数据在VOC2012上测试的基准分值

需要注意的是该模型预测分割图的大小是原图像大小的1/8。这是几乎所有方法中都存在的问题将通过内插方法得到最终分割图。

  • 使用了全连接条件随机场

空洞卷积神经网络一维數据在不增加参数数量的情况下增大了感受野,按照上文提到的空洞卷积神经网络一维数据论文的做法可以改善分割网络。

我们可以通過将原始图像的多个重新缩放版本传递到CNN网络的并行分支(即图像金字塔)中或是可使用不同采样率(ASPP)的多个并行空洞卷积神经网络一维数据層,这两种方法均可实现多尺度处理

我们也可通过全连接条件随机场实现结构化预测,需将条件随机场的训练和微调单独作为一个后期處理步骤

  • 带有精心设计解码器模块的编码器-解码器结构;

  • 所有组件遵循残差连接的设计方式。

使用空洞卷积神经网络一维数据的方法也存在一定的缺点它的计算成本比较高,同时由于需处理大量高分辨率特征图谱会占用大量内存,这个问题阻碍了高分辨率预测的计算研究

DeepLab得到的预测结果只有原始输入的1/8大小。

所以这篇论文提出了相应的编码器-解码器结构,其中编码器是ResNet-101模块解码器为能融合编码器高分辨率特征和先前RefineNet模块低分辨率特征的RefineNet模块。

每个RefineNet模块包含一个能通过对较低分辨率特征进行上采样来融合多分辨率特征的组件以忣一个能基于步幅为1及5×5大小的重复池化层来获取背景信息的组件。

这些组件遵循恒等映射的思想采用了残差连接的设计方式。

  • 提出了金字塔池化模块来聚合背景信息;

全局场景分类很重要由于它提供了分割类别分布的线索。金字塔池化模块使用大内核池化层来捕获这些信息

和上文提到的空洞卷积神经网络一维数据论文一样,PSPNet也用空洞卷积神经网络一维数据来改善Resnet结构并添加了一个金字塔池化模块。该模块将ResNet的特征图谱连接到并行池化层的上采样输出其中内核分别覆盖了图像的整个区域、半各区域和小块区域。

在ResNet网络的第四阶段(即输入到金字塔池化模块后)除了主分支的损失之外又新增了附加损失,这种思想在其他研究中也被称为中级监督(intermediate supervision)

COCO预训练,多维度输入无CRF方法
无COCO预训练方法,多维度输入无CRF方法

提出了一种带有大维度卷积神经网络一维数据核的编码器-解码器结构。

这项研究通过全局卷積神经网络一维数据网络来提高语义分割的效果

语义分割不仅需要图像分割,而且需要对分割目标进行分类在分割结构中不能使用全連接层,这项研究发现可以使用大维度内核来替代

采用大内核结构的另一个原因是,尽管ResNet等多种深层网络具有很大的感受野有相关研究发现网络倾向于在一个小得多的区域来获取信息,并提出了有效感受野的概念

大内核结构计算成本高,且具有很多结构参数因此,k×k卷积神经网络一维数据可近似成1×k+k×1和k×1+1×k的两种分布组合这个模块称为全局卷积神经网络一维数据网络(Global Convolutional Network, GCN)。

接下来谈结构ResNet(不带涳洞卷积神经网络一维数据)组成了整个结构的编码器部分,同时GCN网络和反卷积神经网络一维数据层组成了解码器部分该结构还使用了一種称作边界细化(Boundary Refinement,BR)的简单残差模块

改进训练过程,未在本文中详细描述
  • 改进了空间维度上的金字塔空洞池化方法(ASPP);

  • 该模块级联了多个空洞卷积神经网络一维数据结构

与在DeepLab v2网络、空洞卷积神经网络一维数据中一样,这项研究也用空洞卷积神经网络一维数据/多空卷积神经网絡一维数据来改善ResNet模型

这篇论文还提出了三种改善ASPP的方法,涉及了像素级特征的连接、加入1×1的卷积神经网络一维数据层和三个不同比率下3×3的空洞卷积神经网络一维数据还在每个并行卷积神经网络一维数据层之后加入了批量归一化操作。

级联模块实际上是一个残差网絡模块但其中的空洞卷积神经网络一维数据层是以不同比率构建的。这个模块与空洞卷积神经网络一维数据论文中提到的背景模块相似但直接应用到中间特征图谱中,而不是置信图谱置信图谱是指其通道数与类别数相同的CNN网络顶层特征图谱。

该论文独立评估了这两个所提出的模型尝试结合将两者结合起来并没有提高实际性能。两者在验证集上的实际性能相近带有ASPP结构的模型表现略好一些,且没有加入CRF结构

这两种模型的性能优于DeepLabv2模型的最优值,文章中还提到性能的提高是由于加入了批量归一化层和使用了更优的方法来编码多尺度褙景

使用了ASPP结构,且不带有级联模块

我要回帖

更多关于 去卷积 的文章

 

随机推荐