应用于图像语义分割的神经网络
——从SegNet到U-Net

2021-07-18 07:12梅迪
电子制作 2021年12期
关键词:池化空洞分辨率

梅迪

(四川大学,四川成都,610227)

1 SegNet

全卷积神经网络(FCN)中已经提出了上采样(反卷积)的思想,通过此手段可以将最后一个卷积层的特征图进行放大。不仅能够使得所有尺寸的输入图像得到处理,而且保留了相应的空间信息,能较好地做出语义预测和像素分类。

但在2015 年发表的“A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation”一文中提出的SegNet 对上采样又有创新。其提出了编码-解码结构,对输入的低分辨率特征图采用了非线性上采样处理方式,从而省去了上采样过程的学习。由此也可以看出,SegNet 网络的核心就是编码器-解码器结构。

■1.1 编码器-解码器结构

首先了解下SegNet 的网络结构如图1 所示。

图1

SegNet 由编码网络,解码网络后接一个分类层组成。其中,编码网络在结构上与深度学习模型VGG16 中的13层卷积层相同,都是由若干个卷积层和池化层堆叠而成。因此就可以用在大数据库下训练得到的权重初始化网络(ImageNet large scale visual recognition challenge)。此外,SegNet 通过丢弃了全连接层来在编码输出位置保留高分辨率特征图,并大幅减少了编码部分的参数量。

解码器与编码器对应,也有13 层,它的作用是将低分辨率的编码特征图还原到完整的输入分辨率上,输出最后会传递给多类别soft-max 分类器,从而用于像素级分类任务,生成像素点在不同类别下的独立概率。

总的来看,其网络分为两部分,左边是连续卷积层提取特征,通过池化增大感受野,同时图像变小,该过程即为编码;右边是转置卷积与上采样,通过转置卷积使得图像分类后特征得以重现,上采样还原到图像原始尺寸,该过程即为解码,最后通过Softmax 分类器,输出不同分类的最大值,得到最终分割图。

■1.2 池化索引(pooling indices)

池化实际上是一种形式的降采样。SegNet 的编码器在进行最大池化时也存储了对应的索引位置,而解码器则使用最大池化的索引进行上采样。最大池化(Max pooling)作为最常见的非线性池化函数,取得的是划分开来的局部接受域中值最大的点,相比于保留图像的背景布局方面的信息,它会更多地保留纹理细节信息。

池化的作用主要有以下三个:(1)增大感受野,即使一个像素对应回原图的区域大小。(2)平移不变性,池化抽象了区域特征而不关心位置,所以其增加了平移不变性。(3)降低优化难度和参数。

SegNet 模型的上采样操作中使用了特殊设计的带池化索引的上采样,减少因池化操作导致的信息丢失,此外还使用了跳层连接传递低层特征,增加特征中包含的信息量。

综合来看,该模型的最大贡献是将最大池化指数转移至解码器中,改善了分割分辨率。由于Segnet 网络复制了最大池化指数,因此,这也使得在内存使用上,SegNet 比FCN 更为高效。

2 DeepLab

SegNet 编码器中所采用的池化技术显然令人印象深刻,而在2015 年同年提出的DeepLab 系列所采用的扩展感受野的方式也同样精妙,并且它还对上采样的方式做了进一步的改进。“DeepLab:Semantic Image Segmentation with Deep Convolutional Nets,Atrous Convolution,and Fully Connected CRFs”一文中主要强调了基于深度学习语义分割的三大贡献:(1)使用空洞卷积来进行上采样来进行密集的预测任务。空洞卷积可以在不增加参数量的基础上增大filter 的感受野,从而可以得到更多的语义信息。(2)空洞空间金字塔池化结构(ASPP)探索了一种采用多采样率和有效视野滤波器的输入卷积特征层,从而以多尺寸来分割目标物体并获得多尺寸的语义信息。(3)结合DCNN 与概率模型提高物体的检测边界。下文将主要阐述DCNN 与ASPP 这两个核心技术。

1.2 指标检测方法 检测并对比两组血清PTX3、瘦素、雌二醇(E2)、睾酮(T)、LH及FSH与HOMA-IR的相关性。

■2.1 深度卷积神经网络(DCNN)

深度卷积神经网络相对于神经网络而言,其优点在于对特征值进行计算而不是对原始值进行计算,可使计算量大幅降低。其大致上分为三层:卷积层,利用卷积核来进行计算以得到特征值,这些特征值将构成一个特征图;池化层,是一个功能层,是一种对特征图进行优化的函数;全连接层,基于卷积层和池化层,用于输出一个结果函数。

文中提到,DCNN 应用于语义分割存在三个挑战:(1)特征分辨率的降低;(2)对象存在多尺度;(3)由于DCNNs 不变性导致的定位精度下降。并且文章中也依次给出了解决方法:针对第一个挑战,作者移除DCNNs 最后几层的max-pooling 并在接下来的几层中使用upsampling filter 替代。针对第二个挑战,作者提出了一种就计算而言很高效的方案,即在卷积之前以多种采样率重新采样给定特征层,这相当于多个滤波器探索原始图像获得互补的视野,从而在多个尺度捕获对象及其有用的上下文信息。针对第三个挑战,作者的方法是提出了一个全连接条件随机场(fcCRFs)来提升模型捕获细节的能力。

综合来看,DeepLab 系统具有“快速、精准、简单”的三大优势。

■2.2 空洞卷积(Atrous Convolution)与金字塔型的空洞池化(ASPP)

另一方面,DeepLab 所提出的空洞卷积替代传统的方法,相较于稀疏的特征提取,其优势如图2 所示。

图2

将空洞卷积的rate 调大,会使得到的特征图像更加密集。由于网络最后的卷积池化层分辨率会减少很多,因此,在随后的网络中增加rate=2 的空洞卷积,但这里会大大增加计算量,平衡效率与准确率,在对一个feature map 放大四倍后,进行双线性插值来还原到原图分辨率大小。

传统的方法为了增大感受野的同时不增大运算量,先进行downsampling 将图像缩小为原先的四分之一,然后采用7×7 的卷积核卷积输出分数图,之后再通过upsampling(stride=2)将分数图还原到原先大小。而采用空洞卷积直接对原图进行空洞卷积,增大了卷积核的感受野,整合了更多的上下文信息,同时虽然看起来卷积核尺寸变大,但由于空洞卷积的每一个hole 填充的为0,不参与计算,因此运算量不变,没有下采样也不会丢失信息,从最终输出的分数图来看,空洞卷积具有很大的优势。

R-CNN 空间金字塔的方法表明任意尺度的区域可以通过对以单一尺度提取的卷积特征进行重采样来准确而有效地分类。作者采用了一种不同于他们的方案,采用多个不同采样率的平行空洞卷积层。对每个采样率提取到的特征在不同的分支中进一步处理后融合从而产生最后的结果。

据此就生成了使用ASPP 的多尺度图像表示的算法。空洞空间卷积池化金字塔(atrous spatial pyramid pooling(ASPP)),将不同空洞率的空洞卷积通过平行或者级联堆叠来获取多尺度的信息,相当于以多个比例捕捉了图像的上下文。其优势也相当明显,即在一定程度上解决了多次池化后损失空间分辨率造成信息丢失的问题。

3 RefineNet

随着神经网络的继续发展,很快人们就发现重复的下采样(如池化或带步长的卷积)操作使得深度卷积神经网络在原始图像分辨率上产生了严重的损失,而在DeepLab中所提出的空洞卷积作为解决方案之一却又有耗费大量计算资源的问题。于是,在2017 年发表的“RefineNet:Multi-Path Refinement Networks for High-Resolution Semantic Segmentation”一文中提出了RefineNet,其作为一个生成性(generic)多通道恢复网络,主要探索了在下采样过程中可得到的所有信息,从而通过远距离残差连接恢复高分辨率估计。这样一来,获取高层语义特征的更深的层也可以直接通过从前层得到的详细特征得到恢复。

■3.1 模块结构

RefnieNet 提供一种生成式的方法融合原始高层语义特征和更精细化的低层特征,从而生成更高分辨率的语义特征图。

在本文标准多通道网络结构中,作者将预训练的ResNet(以ImageNet 初始化)按照分辨率分成了4 个模块,随后级联了4 个RefineNet 单元,每个都直接和ResNet 模块的输出连在一起。用RefineNet-m 表示连接在ResNet第m 个模块上的RefineNet 模块。在具体应用中,每个ResNet 的输出都通过了一个卷积层来适应维度。

简要地来分析下RefineNet 模块的具体结构:每一个RefineNet 模块都有四部分组成,第一个是残差卷积单元,用来调整预训练的权重,其中每条通路都经过两层级联的残差卷积单元;第二个是多分辨率融合单元,通过上采样将所有特征图恢复成与输入相同分辨率,之后实现不同分辨率特征图的融合;第三部分是残差池化模块,用来捕获上下文关联数据,其中池化为最大池化,后面跟一层卷积层用来学习适应性权重。后一级的池化层以上一级的输出为输入;最后一个是输出卷积单元,输入输出尺寸相同,目的是在softmax 估计之前增加非线性,处理结果用于最终的预测。

■3.2 残差连接

残差连接的思想,是将输出表述为输入和输入的一个非线性变化的线性叠加,其用公式表示为“y=H(x,WH)+X”。通过对残差这一概念的引入,输出的变化将会将会更为明显地展现,因此能更好地考察模型的合理性和可靠性。

针对梯度消散的情况下,残差是有效的。但普遍认为神经网络的退化才是难以训练深层网络根本原因所在。虽然梯度范数大,但是如果网络的可用自由度对这些范数的贡献非常不均衡,也就是每个层中只有少量的隐藏单元对不同的输入改变它们的激活值,而大部分隐藏单元对不同的输入都是相同的反应,此时整个权重矩阵的秩不高。并且随着网络层数的增加,连乘后使得整个秩变的更低。

残差连接则强制打破了网络的对称性,提升了网络的表征能力。

RefineNet 中所有组件都遵循了恒等映射思想,采用了残差连接的设计方式。文中利用基于恒等映射的残差链接能够直接将梯度从一个模块传递到另一个模块。这个概念有助于保持干净的信息通路,使其不被非线性层或元素阻挡。相应的非线性模块则被放置在主干上。在每个残差池化模块上都应用了一个ReLU,这样做使得网络对于学习率不敏感。同时还观察到了这样做不会影响有效的梯度流。

4 PSPNet 与U-Net

增大感受野的方法不断被人们所探索,其目标也往往是获得更多的语义信息,而在2017 年所发表的“Pyramid Scene Parsing Network”却着眼于如何聚合上下文的语义信息,文中开创性地使用了金字塔池化层来考虑不同尺寸的全局信息,金字塔池化模块(PSP)也对聚合背景信息具有很好地效果。

PSP 模块的精妙毋庸置疑,但我在这部分却想着重谈谈PSPNet 在附加损失方面做出的改进,这一优化策略往往被人忽视,却相当有效而又出人意料的简单。

相似的现状还出现在了早在2015 年就发表的论文“U-Net:Convolutional Networks for Biomedical Image Segmentation”上,在神经网络发展的今天,非研究者总是更多的关注U-Net 的网络架构、收缩路径(contracting path)和对称扩展路径(symmetric expanding path)的布局,对于使用图像增强技术来解决小样本训练数据不适合使用深度学习方法的问题的热度却在慢慢衰退。

因此,本部分将着重阐述PSPNet 的附加损失概念和U-Net 的数据增大方法。

■4.1 PSPNet 的附加损失(auxiliary loss)

“Pyramid Scene Parsing Network”的作者在Res Net101 的基础上做了改进,额外的在第四阶段添加了一个辅助的loss,额外的附加损失随同原有的loss 一起传播,通过使用不同的权重来共同优化参数。后续的实验也证明了这样做有利于快速收敛。

图3 金字塔池化模块

附加损失(辅助损失)的添加有助于网络训练,模型使用一个辅助任务时,模型中参数的梯度的来源除了主任务,还有辅助任务。如果辅助任务是有效的,那么它提供的梯度也是有益的。Auxiliary loss 的引入无疑能更好地训练网络层数较多的模型。

■4.2 U-Net 的数据增强(data augmentation)

相较于PSPNet,U-net 在损失处理方面设置了函数权重,主要侧重于处理重叠的边缘信息,这二者的优劣且不做讨论,我们主要关注的是U-net 使用移位、旋转、变形、灰度值变化等数据增强的方法,这对于之后神经网络的研究具有更为重大的意义,其中训练样本的随机弹性变形是训练具有很少标签的分割网络的关键。文中使用随机位移矢量在粗糙的3*3 网络上生成平滑变形,位移从10 像素标准偏差的高斯分布中采样,逐像素位移,然后使用双立方插值计算每个像素位移。收缩路径的漏失层(Drop-out layers)执行进一步的隐式数据增大。

基于以下两种原因,医疗图像领域适合使用文中提出的数据增大方法和u-net 网络结构:一是医学图像大都展现人体、细胞中的细节情况,往往特征复杂度较高,边界存在有不清晰的区域。二是因为 U-net 的下采样与上采样之间有同层分辨率级联,其在解码器阶段能充分结合浅层图像较为简单的特征,且通过数据增强得到了充足的样本数据量,因此对于样本量小的训练集也不容易过拟合,往往能取得不错的效果。

5 总结

在深度学习引爆了图像处理领域的革命之前,人们大都采用N-cut,Grab cut 等来进行图像划分。而在计算机步入深度学习时代后,通过这些论文文献的阅读,我深刻体会到了算法的进步,网络架构的创新,不同思想的百花齐放。如今,运行代价、内存占用等不断降低,图像语义分割的精度不断提高,对每个像素类别所做出的预测也更为准确,各种不同模型的提出,使得对复杂背景图像的语义分割更加快速也更加精确。

应用于图像语义分割的神经网络发展至今,语义信息的获取、结果图像分辨率降低的问题都在逐一得到解决,人们还在不断追求更少的计算量、更高的分割准确率以及更为方便的数据标注。

目前,图像语义分割技术在医学、民用、工业等很多领域都大受欢迎,应用极其广泛。通过深度学习进行特征提取,FCN等神经网络结构作为一种技巧来对像素进行有效分类,随着更优算法的提出、热点问题的不断解决,其终将推动社会文明的进步。

猜你喜欢
池化空洞分辨率
基于高斯函数的池化算法
卷积神经网络中的自适应加权池化
我国科学家发明计算超分辨图像重建算法拓展荧光显微镜分辨率极限
北极上空出现罕见臭氧层空洞
用于手写汉字识别的文本分割方法
利用瑞利波法探测地下空洞
空洞的眼神
ARM发布显示控制器新品重点强化对分辨率的支持
从600dpi到9600dpi
锐化与显示器分辨率