计算机视觉应用开发课件:图像语义分割_第1页
计算机视觉应用开发课件:图像语义分割_第2页
计算机视觉应用开发课件:图像语义分割_第3页
计算机视觉应用开发课件:图像语义分割_第4页
计算机视觉应用开发课件:图像语义分割_第5页
已阅读5页,还剩72页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图像语义分割语义分割概述语义分割概述01任务语义分割特征和应用场景02任务常用语义分割方法03任务学习目标认识什么是图像语义分割掌握常见的语义分割方法

了解图像语义分割的类型以及应用场景掌握语义分割的评价准则1语义分割概述1语义分割概述在图像领域,语义指的是对图像意思的理解。语义分割就是按照“语义”给图像上目标类别中的每一点打上一个标签,使得不同种类的东西在图像上被区分开来,可以理解成像素级别的分类任务。语义分割是一种典型的计算机视觉问题,其涉及将一些原始数据(例如,平面图像)作为输入并将它们转换为具有突出显示的感兴趣区域的掩模。1图像语义分割概述类型语义分割大致可分为两类,标准语义分割和实例感知语义分割:标准语义分割(standardsemanticsegmentation)也称为全像素语义分割,它是将每个像素分类为属于对象类的过程;实例感知语义分割(instanceawaresemanticsegmentation)是标准语义分割或全像素语义分割的子类型,它将每个像素分类为属于对象类以及该类的实体ID。2语义分割特征和应用场景2语义分割特征和应用场景为了理解语义分割的特征,还要与其他常见的图像分类技术相比较。1.图像分类这类技术主要是识别图像。2.目标检测这类技术主要是识别图像中“有什么”和“它在哪里”。3.语义分割这类技术主要是识别图像区域。语义分割标记每个像素所指的含义,而不是检测整个图像或图像的一部分。特征2语义分割特征和应用场景应用场景目前图像语义分割的应用场景主要有四大领域:地理信息,无人驾驶,医疗影像分析和机器人领域。地理信息无人驾驶医疗影像分析3常见语义分割方法3常见语义分割方法目前主流的语义分割网络一般是遵循下采样,上采样,特征融合,然后重复该过程,最后经过softmax像素分类。3常见语义分割方法语义分割的评价准则为:像素精度(pixelaccuracy):每一类像素正确分类的个数/每一类像素的实际个数。均像素精度(meanpixelaccuracy):每一类像素的精度的平均值。评价准则3常见语义分割方法3.平均交并比(MeanIntersectionoverUnion):求出每一类的IOU取平均值。IOU指的是两块区域相交的部分(两个部分的并集),如图中绿色部分/总面积。这样的评价指标可以判断目标的捕获程度(使预测标签与标注尽可能重合),也可以判断模型的精确程度(使并集尽可能重合)。4.权频交并比(FrequencyWeightIntersectionoverUnion):每一类出现的频率作为权重。ThankYOU!上采样上采样的概念01任务上采样的实现方法02任务学习目标认识什么是上采样掌握常见的上采样方法1上采样的概念1上采样概念上采样是一种可以让图像变成更高分辨率的技术。在做图像识别过程中,需要对图像进行像素级别的分类,因此在卷积提取特征后需要通过上采样将featuremap还原到原图中。在语义分割FCN、U-Net等网络结构中,涉及到了上采样。2上采样的实现方法2上采样的实现方法常见的上采样方法有插值,unsample,反卷积,unpooling等。插值常见的插值方式有最近邻插值,双线性插值等。最近邻插值是指将目标图像中的点,对应到源图像后,找到最相邻的整数点作为插值后的输出。用f(x,y)表示目标图像,h(x,y)表示源图像,公式如下:其中

分别为源图像的宽和高,

分别为目标图像的宽和高。2上采样的实现方法举个例子,将一幅3×3的图像放大到4×4,放大后的像素点的值通过计算后如图所示:但是用该方法做放大处理时,在图像中可能会出现明显的块状效应,有点像打了马赛克一样。2上采样的实现方法在讲双线性插值之前,先看一下线性插值,线性插值多项式为:以图中的平面坐标系为例,插值后的值为:2上采样的实现方法对于图像来说,都是二维的,故只需做推广即可。双线性插值就是线性插值在二维的推广,在两个方向上做三次线性插值。具体操作如图所示:令f(x,y)为两个变量的函数,其在单位正方形顶点的值已知。假设希望通过插值得到正方形内任意点的函数值。则可由双线性方程:f(x,y)=ax+by+cxy+d来定义的一个双曲抛物面与四个已知点拟合。首先对上端的两个顶点进行线性插值得:f(x,0)=f(0,0)+x[f(1,0)−f(0,0)]类似地,再对底端的两个顶点进行线性插值有:f(x,1)=f(0,1)+x[f(1,1)−f(0,1)]最后,做垂直方向的线性插值,以确定:f(x,y)=f(x,0)+y[f(x,1)−f(x,0)]整理得:f(x,y)=[f(1,0)−f(0,0)]x+[f(0,1)−f(0,0)]y+[f(1,1)+f(0,0)−f(0,1)−f(1,0)]xy+f(0,0)2上采样的实现方法2.unsample​

图中是unsampling的原理图。直接将内容复制来扩充featuremap。2上采样的实现方法3.反卷积在介绍反卷积之前,需要深入了解一下卷积。假设有一个4×4的矩阵,将在这个矩阵上应用3×3的卷积核,并且不添加任何填充(padding),步进参数(stride)设置为1,就像图中所示,输出为一个2×2的矩阵。2上采样的实现方法

这个卷积操作在输入矩阵和卷积核中,对每个元素的乘积进行相加。因为没有任何填充和使用1为步进,因此只能对这个操作进行4次,因此输出矩阵尺寸为2×2。2上采样的实现方法

这种卷积操作使得输入值和输出值之间存在有位置上的连接关系,一个卷积操作是一个多对一(many-to-one)的映射关系。

现在,假设想要反过来操作,想要将输入矩阵中的一个值映射到输出矩阵的9个值,这将是一个一对多(one-to-many)的映射关系。这个就像是卷积操作的反操作,其核心观点就是用转置卷积。2上采样的实现方法

卷积操作是多对一,而转置卷积操作是一对多,如下图所示,每一个“对”而言,都需要维护一个权值。但是将如何具体操作呢?为了接下来的讨论,需要定义一个卷积矩阵(convolutionmatrix)和相应的转置卷积矩阵(transposedconvolutionmatrix)。卷积矩阵:

可以将一个卷积操作用一个矩阵表示。这个表示很简单,无非就是将卷积核重新排列,可以用普通的矩阵乘法进行矩阵卷积操作。2上采样的实现方法

对这个3×3的卷积核进行重新排列,得到了下面这个4×16的卷积矩阵。

这个便是卷积矩阵了,这个矩阵的每一行都定义了一个卷积操作。每一个卷积矩阵的行都是通过重新排列卷积核的元素,并且添加0补充(zeropadding)进行的。2上采样的实现方法为了将卷积操作表示为卷积矩阵和输入矩阵的向量乘法,将输入矩阵4×4摊平(flatten)为一个列向量,形状为16×1。可以将这个4×16的卷积矩阵和1×16的输入列向量进行矩阵乘法,这样就得到了输出列向量,操作过程如图所示。这个输出的4×1的矩阵可以重新塑性为一个2×2的矩阵,而这个矩阵正是和一开始通过传统的卷积操作得到的一模一样。2上采样的实现方法转置卷积矩阵:

但是想要从4(2×2)到16(4×4),就需要使用了一个16×4的矩阵,但是还有一件事情需要注意,还需要维护一个1到9的映射关系。假设转置这个卷积矩阵C(4×16)变为

(16×4)。可以对

和列向量(4×1)进行矩阵乘法,从而生成一个16×1的输出矩阵。

这个转置矩阵正是将一个元素映射到了9个元素,反卷积计算过程如图所示:2上采样的实现方法

这个输出可以塑形为(4×4)的矩阵,输出矩阵如图所示:

对小矩阵(2×2)进行上采样为一个更大尺寸的矩阵(4×4)。这个转置卷积矩阵维护了一个1个元素到9个元素的映射关系,因为这个关系表现在了其转置卷积元素上。2上采样的实现方法4.unpooling下图表示unpooling的过程,特点是在最大池化时保留的位置信息,在之后的unpooling阶段会使用该信息用来扩充featuremap。可以清晰的看到与unsampling的不同,在unpooling中,除最大位置外,其余补0。ThankYOU!特征融合特征融合的概念01任务特征融合的方法02任务学习目标认识什么是特征融合掌握常见的特征融合方法1特征融合的概念1特征融合的概念特征融合,即融合不同尺度(低层和高层)的特征。在很多工作中,融合不同尺度的特征是提高分割性能的一个重要手段。如何将低层特征和高层特征高效融合,取其长处,弃之糟泊,是改善分割模型的关键。特征融合是为了提高网络对特征的表达能力,进而使得网络可以得到更准确的分割结果。不同的特征融合方法有着不同的效果,如何寻求更有效的特征方法对网络性能有着进一步的提升,是目前语义分割研究的一个热点问题。2特征融合的方法2特征融合的方法按照融合与预测的先后顺序,分为早融合(Earlyfusion)与晚融合(Latefusion)。早融合早融合(Earlyfusion):就是在特征上进行融合,进行不同特征的连接,输入到一个模型中进行训练。先融合多层的特征,然后在融合后的特征上训练预测器,只有在完全融合之后,才进行检测。这类方法也被称为skipconnection,即采用concat、add操作。这一思路的代表是Inside-OutsideNet(ION)和HyperNet。两个经典的特征融合的方法:(1)concat:系列特征融合,直接将两个特征进行连接。两个输入特征x和y的维数若为p和q,输出特征z的维数为p+q。(2)add:并行策略,将这两个特征向量组合成复合向量,对于输入特征x和y,z=x+iy,其中i是虚数单位。2特征融合的方法2特征融合的方法(1)concat是通道数的增加;(2)add是特征图相加,通道数不变add是描述图像的特征下的信息量增多了,但是描述图像的维度本身并没有增加,只是每一维下的信息量在增加,这显然是对最终的图像的分类是有益的。而concatenate是通道数的合并,也就是说描述图像本身的特征数(通道数)增加了,而每一特征下的信息是没有增加。concat每个通道对应着对应的卷积核。而add形式则将对应的特征图相加,再进行下一步卷积操作,相当于加了一个先验:对应通道的特征图语义类似,从而对应的特征图共享一个卷积核(对于两路输入来说,如果是通道数相同且后面带卷积的话,add等价于concat之后对应通道共享同一个卷积核)。因此add可以认为是特殊的concat形式。但是add的计算量要比concat的计算量小得多。2特征融合的方法2.晚融合晚融合(Latefusion):指的是在预测分数上进行融合,做法就是训练多个模型,每个模型都会有一个预测分数,对所有模型的结果进行融合,得到最后的预测结果。通过结合不同层的检测结果改进检测性能,尚未完成最终融合之前,在部分融合的层上就开始检测,会有多层的检测,最终将多个检测结果进行融合。FPN(FeaturePyramidNetwork)算法同时利用低层特征高分辨率和高层特征的高语义信息,通过融合这些不同层的特征达到预测的效果。并且预测是在每个融合后的特征层上单独进行的,这和常规的特征融合方式不同。2特征融合的方法(1)自下而上:最左侧为普通的卷积网络,默认使用ResNet结构,用作提取语义信息。C1代表了ResNet的前几个卷积与池化层,而C2至C5分别为不同的ResNet卷积组,这些卷积组包含了多个Bottleneck结构,组内的特征图大小相同,组间大小递减。(2)自上而下:首先对C5进行1×1卷积降低通道数得到P5,然后依次进行上采样得到P4、P3和P2,目的是得到与C4、C3与C2长宽相同的特征,以方便下一步进行逐元素相加。这里采用2倍最邻近上采样,即直接对临近元素进行复制,而非线性插值。(3)横向连接(LateralConnection):目的是为了将上采样后的高语义特征与浅层的定位细节特征进行融合。高语义特征经过上采样后,其长宽与对应的浅层特征相同,而通道数固定为256,因此需要对底层特征C2至C4进行1×1卷积使得其通道数变为256,然后两者进行逐元素相加得到P4、P3与P2。由于C1的特征图尺寸较大且语义信息不足,因此没有把C1放到横向连接中。2特征融合的方法(4)卷积融合:在得到相加后的特征后,利用3×3卷积对生成的P2至P4再进行融合,目的是消除上采样过程带来的重叠效应,以生成最终的特征图。(5)FPN对于不同大小的RoI,使用不同的特征图,大尺度的RoI在深层的特征图上进行提取,如P5,小尺度的RoI在浅层的特征图上进行提取,如P2。ThankYOU!语义分割网络常见的语义分割网络01任务编码器-解码器02任务U-Net结构解析03任务学习目标了解常见的语义分割网络掌握编码器-解码器的网络结构掌握U-Net语义分割网络结构1常见的语义分割网络1常见的语义分割网络目前,在语义分割任务中,绝大多数的主流算法都是基于深度学习,尤其是卷积神经网络。2015年,加州大学伯克莱分校的jonathanlong等人提出了用于语义分割的全卷积神经网络(fullyconvolutionalnetworks,FCN),在语义分割方面进行了开创性的工作,解决了像素分割的问题。全卷积神经网络提出将传统神经网络后面的全连接层全部替换为卷积层,这也是全卷积名字的由来。基于卷积神经网络的语义分割技术也由此快速发展起来。同年,U-Net网络也别提出,U-Net网络是一种典型的“编码器-解码器”结构,这种结构也是目前一种比较主流的语义分割结构。采用相似结构的还有segnet,基于“编码器-解码器”结构的语义分割网络U-Net和segnet都有着很好的性能,在分割任务中有着较好的表现。2编码器-解码器2编码器-解码器编码器(encoder):编码器本身就是一连串的卷积神经网络,由卷积层,池化层组成。卷积层负责提取图像的特征,池化层对图像进行下采样并且将尺度不变特征传送到下一层。概括地说,encoder对图像的低级局域像素值进行归类与分析,从而获得高阶语义信息。解码器(decoder):既然encoder已经获取了所有的物体信息与大致的位置信息,那么下一步就需要将这些物体对应到具体的像素点上。decoder对缩小后的特征图像进行上采样,然后对上采样后的图像进行卷积处理,目的是完善物体的几何形状,从而弥补encoder中池化层将物体缩小造成的细节损失。2编码器-解码器在CNN中在卷积神经网络中,图片先经过卷积层,然后再经过线性层,最终输出分类结果。其中卷积层用于特征提取,而线性层用于结果预测。从另一个角度来看,可以把特征提取看成一个编码器,将原始的图片编码成有利于机器学习的中间表达形式,而解码器就是把中间表示转换成另一种表达形式。编码器:将输入编程成中间表达特征。解码器:将中间表示解码成输出。在RNN中RNN同样也可以看成一个编码器-解码器结构,编码器将文本编码成向量,而解码器将向量解码成我们想要的输出。编码器:将文本表示成向量。解码器:将向量表示成输出。3U-Net结构解析3U-Net结构解析U-Net是在ISBIChallenge比赛上提出的一种分割网络,能够适应很小的训练集(大约30张图)。3U-Net结构解析将输入进行2次3×3的卷积操作之后,再进行一次2×2的最大池化,同时卷积核数目翻倍(1-64-128-256-512-1024),进行四次这样的down(下采样)操作。然后进行2次3×3卷积,取一半的卷积核进行上采样(转置卷积),再剪切对应down层的featuremap和上采样得到的featuremap拼接在一起,然后重复这样的过程。最后输出是深度为n_classes个featuremap,进行分类。

这个featuremap拼接的操作,就是上一节中所讲的特征融合。U-Net的特征融合方式采用的是concat,可以恢复部分的语义信息,从而保证分割的精度。相似的,在FCN中(语义分割开山之作),是通过featuremap相加(add)的方式来恢复语义信息的。3U-Net结构解析U-Net还有以下几个优点:(1)5个poolinglayer实现了网络对图像特征的多尺度特征识别。(2)上采样部分会融合特征提取部分的输出,这样做实际上是将多尺度特征融合在了一起,以最后一个上采样为例,它的特征既来自第一个卷积block的输出(同尺度特征),也来自上采样的输出(大尺度特征),这样的连接是贯穿整个网络的,可以看到上图的网络中有四次融合过程,相对应的FCN网络只在最后一层进行融合。ThankYOU!基于U-Net的图像语义分割案例描述01任务案例目标02任务案例分析03任务案例实施04任务1案例描述1案例描述本案例学习如何搭建U-Net网络,训练Oxford-IIITPet数据,实现图像语义分割。2案例目标案例目标搭建U-Net全卷积神经网络;对Oxford-IIITPet数据集中的数据进行语义分割。23案例分析案例分析Oxford-IIIT宠物数据集是37个类别的宠物图像数据集,其中有犬类25类,猫类12类,每个类别大约有200张图像。图像在比例,姿势和照明方面有很大的差异。该数据集由图像、图像所对应的标签、以及对像素逐一标记的掩码组成。掩码其实就是给每个像素的标签。每个像素分别属于以下三个类别中的一个:类别1:像素是宠物的一部分;类别2:像素是宠物的轮廓;类别3:以上都不是(外围像素)。34案例实施4案例实施 1.加载Oxford-IIIT宠物数据集dataset,info=tfds.load(data_dir='data/oxford',name='oxford_iiit_pet:3.0.0',with_info=True)2.数据预处理

先将图像标准化到[0,1]范围内。像素点在图像分割掩码中被标记为{1,2,3}中的一个。为了方便起见,将分割掩码都减1,得到了以下的标签:{0,1,2}

input_image=tf.cast(input_image,tf.float32)/128.0–1随机的水平翻转了一些图片,用来扩充测试数据集。input_image=tf.image.flip_left_right(input_image)input_mask=tf.image.flip_left_right(input_mask)4案例实施3.数据集划分原始数据集已经划分好了训练集和测试集,所以也延续使用相同的划分。train=dataset['train'].map(load_image_train,num_parallel_calls=tf.data.experimental.AUTOTUNE)test=dataset['test'].map(load_image_test)对数据进行打乱分批处理train_dataset=train.cache().shuffle(BUFFER_SIZE).batch(BATCH_SIZE).repeat()train_dataset=train_dataset.prefetch(buffer_size=tf.d

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论