目录
3.2.2 填充( padding )和步幅(stride)
3.5.1.2 ReLU(Rectified Linear Unit)激活函数
3.5.1.3 GELU (Gaussian Error Linear Units)
深度学习图像分割PPT【金山文档 | WPS云文档】 Deep Learn
https://kdocs.cn/l/cfWyYoLaHVV1
作为一个图像分割的初学者,各位同学应该很苦恼,这么多知识,不知从何下手,下面就让我带领大家,从零到一,通过此文章,由浅到深,由简到难,让你轻松拿捏图像分割。
对于大家而言什么是图像分割,图像分割能干什么?
一、图像分割
图像分割是指将数字图像划分为若干个不同区域(这些区域也被称作超像素或图像子区域)的过程,使得每个区域内的像素具有相似的特征,如灰度、颜色、纹理、形状等。图像分割包括目标检测、图像编辑、医学图像分析等。
图像分割又细分为三种类型: 语义分割(Semantic Aegmentation)
实例分割(Instance Segmentation)
全景分割(Panoptic Segmentation)
原图
语义分割 Semantic Aegmentation
实例分割 stance Segmentation
全景分割 Panoptic Segmentation
语义分割:(只区分类别,不区分类别中的具体个体)就是把每个像素都打上标签 (这个像素点是建筑物,鸟,背景)
实例分割:(图像中的每个物体实例(不含背景)) 不光区分类别,还要区分类别中的每一个个体
全景分割:(图像中的所有物体(包括背景)) 全景分割是语义分割和实例分割的结合
二、图像通道(channel)
图像通道是图像中像素数据的不同组成部分,用于存储颜色、亮度或其他图像特征的信息。
简单来说:一张图像就好比一张纸巾,纸巾由多层纸张构成,那么同理,一张图像也是由多层照片组成,每一层照片,就可以看作一个通道数。这张照片由几层照片组成,那么这个图像就有多少的通道数。
单通道:也就是通常所说的灰度图,每个像素点只有一个值表示,那么他的像素取值范围是:0(黑)~255(白),并且仅用一个数字表示该点的像素值。
三通道:也就是通过见到的彩色图,RGB色彩模式,是通过 对红 (Red)、绿 (Green)、蓝 (Blue)三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,每个像素点有三个值表示,那么他的像素值有红(0~255)、绿(0~255)、蓝(0~255)叠加表示,色彩更加艳丽,每一个像素值为三个数字(a,b,c),分别代表了三原色的一种。
拿一张彩色图像举例: 图像由红,绿,蓝三个通道组成。
对于彩色图像来说,大部分都是RGB图像,也就是由三个通道为:红,绿,蓝构成(这三种光线的混合几乎可以表示出所有的颜色)
RGB颜色对照表 (oschina.net)https://tool.oschina.net/commons?type=3
三、卷积神经网络(CNN)
卷积神经网络是一种多层感知机(MLP)的变种,它通过模拟生物的视知觉机制构建,尤其擅长处理图像特别是图像识别等相关的机器学习问题,如图像分类、目标检测、图像分割等视觉任务。
它主要是由如下几层构成:
输入层:输入图像等信息
卷积层:用来提取图像的底层特征
池化层:防止过拟合,将数据维度减小
全连接层:汇总卷积层和池化层得到的图像的底层特征和信息
输出层:根据全连接层的信息得到概率最大的结果
下面让我们一步一步解析卷积神经网络。
3.1 输入层
输入层:将图像转换为其对应的由像素值构成的二维矩阵
对于输入图像,首先要将其转换为对应的二维矩阵,这个二位矩阵就是由图像每一个像素的像素值大小组成的,我们可以看一个例子,如下图所示的手写数字“8”的图像,计算机读取后是以像素值大小组成的二维矩阵存储的图像。
上图又称为灰度图像,因为其每一个像素值的范围是0~255(由纯黑色到纯白色),表示其颜色强弱程度。另外还有黑白图像,每个像素值要么是0(表示纯黑色),要么是255(表示纯白色)。
3.2 卷积层(核心)
卷积操作是指将一个可移动的小窗口与图像进行逐元素相乘然后相加的操作。
上图计算:2*0 + 1*1 + 0*2 + 1*2 + 3*2 + 1*0 + 2*0 + 2*1 + 3*2 = 17.0
以上图为例:将32*32*3的图像拆分为几个5*5*3的图像,将图像与3*3的卷积核(权重参数矩阵)相乘后相加输出结果,同时使卷积核以padding(步长)= 1,在图像上滑动,提取图像上的特征
卷积核的数量决定了卷积层能够提取的特征的种类和数量
如上图所示:x[0]*W0[0]+x[1]*W0[1]+x[2]*W0[2]+bias(偏置顶)=O[0]
3.2.1 特征图
特征图:是卷积核在输入图像(或前一层的特征图)上进行特征提取后得到的图像
卷积核的数量等于输出特征图的数量
3.2.2 填充( padding )和步幅(stride)
填充( padding ):是指在输⼊⾼和宽的两侧填充元素(通常是 0 元素)。 注:当想用一个大的卷积核又不想减少输出怎么办? 就是进行填充,在输入的周围添加额外的行或者列。 填充在输入周围添加额外的行或者列,来控制输出形状的减少量。
步幅(stride):是指行或者列的滑动步长。往右边走多少列,往下边走多少行。 步幅是每次滑动核窗口时的行或者列,可以成倍的减少输出形状。
3.3 池化层
池化层是深度学习中常用的一种层级结构,它可以对输入数据进行降采样,减少数据量,同时保留重要的特征信息。池化层通常紧跟在卷积层之后,可以有效地减少数据量和计算复杂度,提高模型的训练速度和泛化能力。
常见池化层分类:最大池化,平均池化
最大池化(取最大值)
平均池化(取平均值)
3.4 全连接层(FC)
全连接层基本上用来作为模型的最后一层,是将每个神经元与所用前后的神经元进行连接,得到图像的特征信息输出。
实现方式:
1.在全连接层中,每一个神经元都与前一层的所有神经元相连接。这种连接方式意味着前一层的输出将作为当前层所有神经元的输入。
2.具体来说,前一层的输出(经过展平或其他处理后的数据)会被转换为一个一维向量,这个向量中的每一个元素都将成为当前层神经元的一个输入。
3.每个神经元会根据其对应的权重和偏置对输入进行加权求和,并通过激活函数(如ReLU、Sigmoid、Tanh等)进行非线性变换,最终产生输出。
3.5 输出层
卷积神经网络的输出层理解起来就比较简单了,我们只需要将全连接层得到的一维向量经过计算后得到识别值的一个概率,在深度学习中,我们需要识别的结果一般都是多分类的,所以每个位置都会有一个概率值,代表识别为当前值的概率,取最大的概率值,就是最终的识别结果。在训练的过程中,可以通过不断地调整参数值来使识别结果更准确,从而达到最高的模型准确率。
3.5.1 激活函数
讲解几个常见的 激活函数:Softmax ReLu GELU
3.5.1.1 Softmax激活函数
Softmax激活函数是:一种用于多类别分类问题的激活函数,通常用于神经网络的输出层。
Softmax函数的特点包括:
(1)将输入映射到0和1之间:Softmax函数确保每个类别的概率在0和1之间,因此可以用来表示每个类别的相对权重。
(2)归一化:Softmax函数对原始分数进行归一化,使所有类别的概率之和为1,这使得它适用于多类别互斥的分类问题。
(3)放大差异:Softmax函数会放大具有更高原始分数的类别的概率,因此可以更好地区分不同类别的可能性。
对于给定的原始分数(logits)z = [ z1 , z2 , …, zn ],Softmax函数将这些分数转换为概率分布p = [ p1 , p2, …, pn ]
3.5.1.2 ReLU(Rectified Linear Unit)激活函数
ReLU(Rectified Linear Unit)激活函数是一种常用的非线性激活函数,其原理是在输入小于等于零时输出为零,在输入大于零时输出等于输入值。 ReLU激活函数的数学表达式为:
3.5.1.3 GELU (Gaussian Error Linear Units)
GELU 是一种基于高斯误差函数的激活函数,相较于 ReLU 等激活函数,GELU 更加平滑,有助于提高训练过程的收敛速度和性能。
四、感受野和跳跃连接
在卷积神经网络中,感受野的定义是卷积神经网络每一层输出的特征图上的像素点在输入图片上映射的区域大小。再通俗点的解释是,特征图上的一个点对应输入图上的区域。
感受野的作用是确定神经元对输入数据的感知范围。通过调整感受野的大小,我们可以控制神经元对输入数据的敏感程度。感受野越大,神经元能够感知到的输入信息就越多,但也可能会增加计算量和参数数量。
跳跃连接的基本思想是在网络的某些层中,将输入直接连接到输出,以允许信息在不同层之间跳跃传递。这种连接通常是通过加法操作来实现的,将输入和输出相加;同时,在图形相关的应用中,也可以通过在特征通道上叠加的操作实现,将输入作为特征图叠加到输出的特征通道上,并用内核大小1x1的通道卷积提取需要的特征。
五、残差连接和层归一化
残差连接是一种设计技术,通过在层与层之间添加跳跃连接(skip connections),使得信号可以直接跨层传播,从而缓解深层网络的退化问题。
层归一化是一种归一化技术,通过对单个训练样本的所有神经元激活值进行归一化,来提升训练稳定性和加速收敛。
残差连接和层归一化是深度神经网络中两种重要的技术。残差连接通过引入跨层的直接连接来优化网络性能;而层归一化则通过对某一层的所有神经元进行归一化处理来加速训练过程并使模型更加稳定。
六、下采样和上采样
下采样 :
在图像处理中,这通常意味着减少图像的尺寸(即减少图像的宽度和高度),从而减少图像中的像素数量
通常采用普通卷积
上采样 :
上采样,也称为插值或超采样,是增加数据采样率的过程。在图像处理中,这通常意味着增加图像的尺寸(即增加图像的宽度和高度),从而增加图像中的像素数量。
通常采用转置卷积
普通卷积
下面蓝色的是卷积之前的特征图,上面绿色的是卷积之后的特征图,可以看到,普通卷积之后,特征图的大小从原来的 [ 4 , 4 ]变为了 [ 2 , 2 ],整体是一个下采样的过程。
转置卷积
而对于这个转置卷积,输入是一个 2 × 2 的特征图,但是会在它的四周填充一些 0 元素,卷积核大小也是 3 × 3 ,输出是一个 4 × 4 的特征图。这样就实现了特征图的上采样。
七、损失函数
用于定义单个训练样本与真实值之间的误差。简单的理解就是每一个样本经过模型后会得到一个预测值,然后得到的预测值和真实值的差值就成为损失(当然损失值越小证明模型越是成功),我们知道有许多不同种类的损失函数,这些函数本质上就是计算预测值和真实值的差距的一类型函数
更多激活函数和损失函数见
八、实例运用
恭喜各位同学成功学习完图像分割的基础知识
下面让我们实战看看如何运用和检验自己的学习成果
我们以Unet模型为原型进行分析
蓝色通道数(卷积核数量),红色图像大小,卷积核的数量等于输出特征图的通道数(通过控制卷积核数量的从而改变特征图的通道数)
(1)输入一张图片
(2)使用3*3的卷积+ReLu(1→64 572→570)
(3)使用3*3的卷积+ReLu(570→568)
(4)下采样(最大池化层)( 568→284)
. . . . .
(5)上采样(转置卷积)(1024→512 28→56)
(6)跳跃连接(64裁剪为56 与上采样拼接 512→1024 )
(7)使用3*3的卷积+ReLu(1024→512 56→54)
(8)使用3*3的卷积+ReLu( 54→52)
. . . . .
(9)使用1*1的卷积(64→2 388→388)