卷积神经网络是构建深度学习的主要挡路,它帮助完成计算机视觉任务中的图像分类、目标检测、图像识别等任务。我们使用本文将讨论的许多卷积运算技术。
你用过照片编辑工具吗?
哪个选项可以使您的图像更清晰,或者可以删除您想要删除的照片的一部分?
如果是,则表示您对照片进行了隐含的卷积运算。
对卷积运算的认识
什么是内核/过滤?
内核是一个矩形的小矩阵,它从左到右和从上到下在图像上滑动。
什么是斯泰德?
内核在输入图像上滑动的像素数称为步幅。
什么是卷积运算?
卷积运算是隐含产生第三个函数的两个函数的组合的过程,因此,在整个输入图像上采用滤波器允许过滤发现图像的该特征。这也被称为特征地图。
让我们通过一个简单的拼图游戏来理解。拼图游戏是卷积运算的完美例子。
在拼图游戏中,每一块拼图都有图像的一部分,当拼接在一起时,图像会透露出关于整个画面的一些信息。
就像卷积网络中的拼图游戏一样,多个滤波器被用来对图像进行切片并逐个映射,并学习输入图像的不同部分。
例如,我们有输入图像3×4作为I和2×2核K,卷积是两个矩阵的逐元素乘法,后面跟着和SIj。
我们使用以下公式计算输出(当前像素的重新估计值):
在原始图像i的每个像素处,我们重新估计位于图像核中心的像素的邻域。然后,我们取这个像素邻域,将它们与核k卷积,得到单个输出值sij。内核可以从大图像从左到右和从上到下滑动
该操作的输出将是:(Aw+bx+ey+fz)。然后我们用步长1水平移动内核,这将给出权重和(bw+cx+fy+gz)。
因此,在此之后,第一层的输出将如下所示:
我们有不同的过滤器,如模糊(平均平滑、高斯平滑、中值平滑等)、边缘检测(拉普拉斯、Sobel、Scharr、Prewitt等)和锐化-所有这些操作都是为执行特定功能而设计的。
让我们以高斯平滑滤波器为例,如果我们取平均值(加权和值除以9),它将稀释/模糊用于平滑和降低图像中的噪声的图像的值。
使用3D过滤进行2D卷积运算
在3D输入的情况下(RGB图像有3个通道对应于红、绿、蓝,所有这些通道都相互叠加,这就是我们如何获得最终图像的),我们有3个通道(深度),每个通道对应于图像中的每个RGB。
那么,我们在这里分别计算所有3个通道的卷积运算吗?
我们是不是也在往深处滑过滤?
不,我们使用与输入相同深度的过滤,将过滤放在输入上,然后计算所有3个维度的加权和。
在这里,我们输入图像和内核是3D的,但我们正在进行的操作是2D操作,因为我们在水平(从左到右)和垂直(从上到下)的两个方向上移动内核。
因此,我们了解到可以使用带滤波器的卷积运算从图像中提取重要特征。因此,我们可以使用多个过滤器从图像中提取不同的特征,而不是使用一个过滤,并生成多个特征地图。每个过滤负责提取不同的特征,如水平边缘、垂直边缘、非线性特征等。
什么是填充物?
在角落,我们不能放置核,因此很明显,卷积运算的输出小于输入图像。
如果我们希望输出的大小与输入的大小相同,该怎么办?或
如果过滤不适合输入图像怎么办?
在这种情况下,我们根据所需的大小和内核大小在图像周围添加人工填充0,如下图所示,也称为补零。
例如,假设我们正在执行步长为2的卷积运算。当我们将过滤移动两个像素时,可能会出现到达边界的情况,而过滤与输入图像不匹配。我们使用零填充来保留图像边界。
结论
- 卷积神经网络将过滤应用于输入图像,以创建汇总输入中检测到的特征的特征映射。
- 如何在卷积神经网络中计算二维和三维卷积层的特征映射。
- 填充如何在使用不同大小的过滤创建的要素地图中添加边框效果。
如果您有任何反馈需要我改进,或者您想分享任何想法或经验,请随时发表评论。
你还要点儿吗?在LinkedIn和GitHub上关注我。LinkedIn GitHub
原创文章,作者:fendouai,如若转载,请注明出处:https://panchuang.net/2021/06/24/%e5%8d%b7%e7%a7%af%e7%a5%9e%e7%bb%8f%e7%bd%91%e7%bb%9c%e4%b8%ad%e7%9a%84%e5%8d%b7%e7%a7%af%e8%bf%90%e7%ae%97/