AI作业7-卷积

简单描述卷积、卷积核、多通道、特征图、特征选择概念

卷积

卷积是一种数学运算,它可以用来描述两个函数之间的相互作用或影响。

  • 简单理解卷积可以理解为用一个函数区提取另一个函数的共同点的过程,由此我们便可以将它用在学习中,利用它去提取特征的目的就很明显了

卷积的过程可以分为三个步骤:翻转,滑动和叠加,然后不断重复这一过程(翻转——>滑动——>叠加——>滑动——>叠加——>滑动——>叠加…)。

  • 翻转是指将一个函数沿着纵轴对称反转,滑动是指将一个函数沿着横轴移动,叠加是指将两个函数的对应点相乘然后求和。卷积的结果是一个新的函数,它反映了两个函数在不同位置的重叠程度
    (图来自中文wiki)
  • 图示两个方形脉冲波的卷积。其中函数"g"首先对 τ = 0 \tau=0 τ=0反射,接着平移"t",成为 g ( t − τ ) g(t-\tau) g(tτ)。那么重叠部分的面积就相当于"t"处的卷积,其中横坐标代表待变量 τ \tau τ 以及新函数 f ∗ g f*g fg的自变量"t"。

(可)参考链接:

卷积核

kernel / filter

卷积核(kernel)是一种用于卷积神经网络中的权重矩阵,它可以看作是对图像或信号的局部区域进行加权求和的滤波器(filter)。卷积核的大小、形状和个数(卷积核的个数就对应输出的通道数(channels))可以根据任务的需要进行设计和学习,不同的卷积核可以提取不同的特征,例如边缘、纹理、形状等。卷积核在卷积神经网络中的作用有
以下几点:

  • 降维/升维:卷积核可以改变输出的通道数,从而实现对数据量的加或少。
  • 增加非线性:卷积核可以在保持特征图尺度不变的前提下,通过后接的非线性激活函数,增加网络的表达能力。
  • 跨通道信息交互:卷积核可以实现对输入通道的线性组合,从而实现不同通道之间的信息整合。
    卷积核在图像处理中也有很多应用,例如平滑滤波、边缘提取、锐化等(下文中就会用到)。

(可)参考链接:
一文读懂卷积神经网络中的1x1卷积核

多通道

卷积核的多通道是指卷积核的通道数与输入图像的通道数相同,例如输入图像RGB三通道的,那么卷积核也要有三个通道,每个通道的卷积核与输入图像的对应通道进行卷积,然后将三个通道的卷积结果按位相加,得到一个输出特征图。多通道卷积可以提取输入图像的多种特征信息。如果要输出多个特征图,可以增加卷积核的个数。

(可)参考链接:
CNN卷积核与通道讲解

特征图

特征图是指对输入进行一次计算处理后的输出,通常是卷积层或池化层的输出。特征图可以反映输入图像在不同层次上的特征信息,例如边缘、纹理、形状等。特征图的可视化可以帮助我们理解卷积神经网络的工作原理和学习能力。

(可)参考链接:

特征选择

对每个特征向量,根据其与目标类别或边界框的相关性,进行特征选择。特征选择的方法有多种,例如过滤式、包裹式、嵌入式等。特征选择的目的是去除无关或冗余的特征,提高模型的性能和泛化能力。

探究不同卷积核的作用,研究背后的原理。

卷积核是卷积神经网络(CNN)中的关键组件,它用于进行图像处理和特征提取。不同的卷积核可以捕捉到图像中不同的特征,从而实现不同的功能和任务。

下面是几种常见的卷积核及其作用:

  • 边缘检测卷积核:

    [-1, -1, -1]
    [-1,  8, -1]
    [-1, -1, -1]
    

    这种卷积核被称为Laplacian卷积核或边缘检测卷积核。它可以强调图像中的边缘和轮廓,通过在边缘处产生明显的变化来检测图像中的边缘。

  • 在卷积操作中,该卷积核与输入图像的每个像素点进行对应位置的相乘,然后将相乘结果相加得到输出特征图的对应位置的像素值。
    这个卷积核是一种常用的卷积核之一,可用于图像处理的边缘检测、图像增强和特征提取等任务。

  • 模糊卷积核:

    [1/9, 1/9, 1/9]
    [1/9, 1/9, 1/9]
    [1/9, 1/9, 1/9]
    

    这种卷积核被称为均值滤波器或模糊卷积核。它可以平滑图像,减少图像中的噪声和细节,模糊图像的细节信息。

  • 锐化卷积核:

    [ 0, -1,  0]
    [-1,  5, -1]
    [ 0, -1,  0]
    

    这种卷积核可以增强图像的边缘和细节,使其更加清晰和锐利。它通过增加中心像素的权重并减小周围像素的权重来实现。

  • 浮雕效果卷积核:

    [-2, -1, 0]
    [-1,  1, 1]
    [ 0,  1, 2]
    

    这种卷积核可以创建一种浮雕效果,通过在图像中的相邻像素之间产生高对比度的变化。

通过使用不同的卷积核,可以提取图像中的不同特征,例如边缘、纹理、颜色等。这些特征可以被用于图像分类、对象检测、图像分割等各种计算机视觉任务。选择合适的卷积核是根据具体任务和图像特征的需求进行实验和调试的重要步骤。

编程实现:灰度图的边缘检测、锐化、模糊

源码:源码地址:【2021-2022 春学期】人工智能-作业4:CNN - 卷积

# -*- coding: utf-8 -*-
# @File    : CNN.py
# @Time    : 2023/6/10 1:05
# @Author  : seveN1foR
# @Version : 1.0
# @Software: PyCharm 
# @Contact : sevencdxxiv@qq.com

# here put the import lib
import numpy as np
import torch
from torch import nn
from torch.autograd import Variable
from PIL import Image
import matplotlib.pyplot as plt

plt.rcParams['font.sans-serif'] = ['SimHei']  # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False  # 用来正常显示负号 #有中文出现的情况,需要u'内容
# https://blog.csdn.net/weixin_40123108/article/details/83510592
file_path = 'saya_9.jpg'
im = Image.open(file_path).convert('L')  # 读入一张灰度图的图片
im = np.array(im, dtype='float32')  # 将其转换为一个矩阵
print(im.shape[0], im.shape[1])
plt.imshow(im.astype('uint8'), cmap='gray')  # 可视化图片
plt.title('原图')
plt.show()

im = torch.from_numpy(im.reshape((1, 1, im.shape[0], im.shape[1])))
conv1 = nn.Conv2d(1, 1, 3, bias=False)  # 定义卷积

sobel_kernel = np.array([[-1, -1, -1],
                         [-1, 8, -1],
                         [-1, -1, -1]], dtype='float32')  # 定义轮廓检测算子
sobel_kernel = sobel_kernel.reshape((1, 1, 3, 3))  # 适配卷积的输入输出
conv1.weight.data = torch.from_numpy(sobel_kernel)  # 给卷积的 kernel 赋值

edge1 = conv1(Variable(im))  # 作用在图片上

x = edge1.data.squeeze().numpy()
print(x.shape)  # 输出大小

plt.imshow(x, cmap='gray',vmin=0, vmax=255)//后两个参数是用来解决“蒙上了一层灰色”的问题的
plt.show()

注:不同效果更新卷积核即可
卷积核 (可)参考链接:
Image Kernels【有例图可直观的查看效果】
【NNDL作业】图像锐化后,为什么“蒙上了一层灰色”?

使用的例图:

图片来源:
Pixiv:Fioritura
作者 Pixiv:Noir

边缘检测

该卷积核的权重矩阵如下所示:

[-1, -1, -1]
[-1,  8, -1]
[-1, -1, -1]

在卷积操作中,该卷积核与输入图像的每个像素点进行对应位置的相乘,然后将相乘结果相加得到输出特征图的对应位置的像素值。

具体地,将卷积核与图像的每个像素点进行卷积操作的过程如下:

-1 * (左上像素) + -1 * (上方像素) + -1 * (右上像素)
-1 * (左侧像素) +  8 * (当前像素) + -1 * (右侧像素)
-1 * (左下像素) + -1 * (下方像素) + -1 * (右下像素)

这样计算得到的结果即为输出特征图中对应位置的像素值。

使用这个卷积核进行卷积操作,可以突出图像中的边缘特征,使得图像中的边缘更加清晰和显著。正值权重的部分对应亮度增加的区域,负值权重的部分对应亮度减小的区域,从而提升图像的锐利度和对比度。

这个卷积核是一种常用的卷积核之一,可用于图像处理的边缘检测、图像增强和特征提取等任务。

调低卷积和中间的数字

  • 如果将中间的数字调低,例如将权重矩阵改为:
[-1, -1, -1]
[-1,  4, -1]
[-1, -1, -1]

那么卷积操作的结果会有所变化。由于中间的数字控制着当前像素的权重,较低的数字会导致当前像素的贡献减小。
具体影响取决于图像中的边缘特征和卷积核的权重分布。调低中间的数字可能会导致以下效果:

  1. 边缘检测减弱:较低的数字减小了当前像素的权重,可能会导致边缘检测的效果减弱。边缘部分可能不够清晰和显著。
  2. 亮度变化减小:如果中间的数字较低,特别是负数,那么卷积操作会减小当前像素周围区域的亮度变化,导致图像的对比度降低。
  3. 细节损失减小:较低的数字减小了对图像细节的强调,可能导致细节部分的损失减小,图像看起来更加平滑。
    需要根据具体的图像和任务需求来选择合适的卷积核权重。调整卷积核的权重可以改变卷积操作的效果,但需要进行实验和调试以确定最佳的参数配置。
### 卷积核中的数字设置得过大
[-1, -1, -1]
[-1, 10, -1]
[-1, -1, -1]

那么卷积操作的结果会受到影响,可能导致以下情况发生:

  1. 边缘强调增加:较大的数字会增加当前像素周围区域的权重,使得边缘部分的强调增加。这可能会导致边缘更加清晰和显著。

  2. 亮度变化增加:较大的数字会增加当前像素周围区域的贡献,可能导致图像的亮度变化更加明显。这可能会增加图像的对比度。

  3. 细节损失增加:如果数字设置得过大,可能会导致对图像细节的强调过强,从而使细节部分损失更加明显。图像可能看起来更加平滑,细节不够清晰

需要根据具体的图像和任务需求来选择合适的卷积核权重。过大的数字可能会引起图像的过度增强或损失细节的问题,因此需要进行实验和调试以确定最佳的参数配置。

锐化

锐化卷积核是一种常用的卷积核,用于增强图像的边缘和细节,使图像看起来更加清晰和锐利。下面是一个常见的锐化卷积核示例:

[ 0, -1,  0]
[-1,  5, -1]
[ 0, -1,  0]

这个锐化卷积核将中心像素的权重增加,并减小周围像素的权重。它通过对图像进行高通滤波,突出了图像中的边缘和细节。

在锐化卷积核的情况下,当卷积核与图像进行卷积时,中心像素的权重较高,使得中心像素的值受到周围像素的影响,从而增强了图像中的边缘和细节。

锐化卷积核可以应用于多个图像处理任务,例如图像增强、边缘检测和特征提取等。它可以使图像更加清晰和鲜明,突出图像中的细节信息,对于一些需要强调图像边缘和纹理的应用非常有用。然而,需要注意的是过度使用锐化卷积核可能会导致图像噪声的增加和伪影的产生,因此在使用时需要谨慎调整卷积核的参数。

模糊卷积核

一种常用的卷积核,用于图像模糊处理,也称为平滑卷积核或低通滤波器。它通过对图像进行卷积操作,减少图像中的细节和噪声,使图像变得更加平滑和模糊。下面是一些常见的模糊卷积核示例:

  • 均值模糊卷积核(平均卷积核):
[1/9, 1/9, 1/9]
[1/9, 1/9, 1/9]
[1/9, 1/9, 1/9]

该卷积核将每个像素周围的像素取平均值,从而实现图像的均值模糊效果。

  • 高斯模糊卷积核:
[1/16, 1/8, 1/16]
[1/8,  1/4, 1/8]
[1/16, 1/8, 1/16]

该卷积核是一个高斯分布函数的离散近似,它可以在模糊图像的同时保留更多的图像细节

模糊卷积核的作用是对图像进行低通滤波,使高频部分(边缘和细节)在卷积过程中受到抑制,从而达到模糊的效果。模糊卷积核可以用于去除图像中的噪声、平滑图像、减少细节等应用。不同的模糊卷积核会产生不同程度的模糊效果,可以根据具体需求选择合适的卷积核。

需要注意的是,模糊卷积核会损失图像中的细节信息,因此在应用时需要权衡图像的清晰度和模糊程度。此外,卷积核的大小和权重分布也会影响模糊效果的结果,可以根据实际需求进行调整。
均值:

高斯模糊:

其他卷积核

浮雕效果

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值