关于卷积的6个基本知识

https://www.toutiao.com/a6674160635225309709/

 

关于卷积的6个基本知识

 

  • 在数学中,卷积是对两个函数(f和g)执行的操作,以产生第三个函数。卷积是信号和图像处理中最重要的操作之一。它可以在1D(例如语音处理),2D(例如图像处理)或3D(视频处理)中操作。
  • 在图像处理中,卷积是通过在整个图像中的每个像素及其局部邻域上应用一个核来转换图像的过程。核是一个值矩阵,其大小和值决定了卷积过程的转换效果。
  • 卷积过程涉及这些步骤。
  1. 它将内核矩阵放在图像的每个像素上(确保完整的内核在图像中),将内核的每个值与其结束的相应像素相乘。
  2. 然后,对得到的相乘值求和,并将结果值作为中心像素的新值。
  3. 在整个图像上重复该过程。
  • 正如我们在图片中看到的那样,3x3核在7x7源图像上进行了卷积。核的中心元素放置在源像素上。然后用自身和周围像素的加权和替换源像素。输出放在目标像素值中。在这个例子中,在第一个位置,我们在源像素中是0,在核中是4。4x0=0,然后移动到下一个像素,我们在两个地方都是0。0x0为0,然后0x0都为0。接着在中心位置,源图像中有1,核对应的位置为0,0x1为0,在最后一个位置为-4x2,即-8。现在总结所有这些结果我们得到-8作为答案,因此这个卷积运算的输出是-8。此结果在目标图像中更新。
  • 卷积过程的输出随着核值的变化而变化。例如,下面显示的Identity Kernel,当通过卷积应用于图像时,对结果图像没有影响。每个像素将保留其原始值,如下图所示。

关于卷积的6个基本知识

Identity Kernel

关于卷积的6个基本知识

原始图像(左)和应用大小为3x3的Identity Filter后的图像(右)

当通过卷积应用于图像时,像这样的Sharpen Kernel将对所得图像具有图像锐化效果。可以根据不同的锐度等级定制精确值,如下图所示。

关于卷积的6个基本知识

Sharpen Kernel

关于卷积的6个基本知识

原始图像(左)和应用大小为3x3的Sharpen Filter后的图像(右)

高斯模糊核当通过卷积应用于图像时,会对结果图像应用高斯模糊效果。

关于卷积的6个基本知识

高斯模糊核

关于卷积的6个基本知识

原始图像(左)和使用大小为7x7的Blurring Filter后的图像(右)

正如核的值可以因不同的效果级别而变化一样,核的大小也可以改变以形成卷积的效果。通过增加核矩阵的大小,随着距离较远的像素被拉入等式中,从而使得每个像素结果值的空间局部性增加。用于图像处理的核有很多,如边缘检测、旋转等。

  • 卷积是卷积神经网络中的关键概念。卷积神经网络(CNN)是一种深度神经网络。CNN包括卷积层,池化层和全连接层。在卷积层,卷积神经网络(CNN)使用通过训练校准的核矩阵将卷积应用于其输入。因此,卷积神经网络(CNN)非常擅长图像和对象分类中的特征匹配。卷积层参数由一组可学习的核组成。每个核都是一个小矩阵。在forward pass程中,我们将每个内核在输入图像的宽度和高度上进行卷积,并计算源和核在相应位置像素值之间的点积。

示例的python代码如下:

import cv2
import numpy as np
img= cv2.imread('lena512color.tiff')
cv2.imshow('Original', img)
#Identity kernel
kernel1 = np.array([[0,0,0], [0, 1,0], [0,0,0]])
im1 = cv2.filter2D(img, -1, kernel1)
cv2.imshow('Identity kernel', im1)
#shapening kernel
kernel2 = np.array([[-1,-1,-1], [-1, 9,-1], [-1,-1,-1]])
im2 = cv2.filter2D(img, -1, kernel2)
cv2.imshow('Sharpening kernel', im2)
#blurring kernel
kernel3 = np.array([[0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816],
 [0.02040816, 0.02040816, 0.02040816, 0.02040816, 0.02040816,
 0.02040816, 0.02040816]])
im3 = cv2.filter2D(img, -1, kernel3)
cv2.imshow('Blurring kernel', im3)

关于卷积的6个基本知识

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值