【23-24 秋学期】NNDL 作业6 卷积

本文通过实例介绍卷积的概念,探讨不同卷积核对图像特征图的影响,如边缘检测、锐化和模糊,强调了卷积如何在特征提取中发挥作用。作者通过代码展示了使用卷积核进行灰度图像处理的过程,并分享了学习体会。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

卷积常用于特征提取 

实验过程中注意认真体会“特征提取”,弄清楚为什么卷积能够提取特征。

 一、概念

自己的语言描述“卷积、卷积核、特征图、特征选择、步长、填充、感受野”。

二、探究不同卷积核的作用

卷积神经网络工作原理的直观理解_superdont的博客-CSDN博客

1. 图1分别使用卷积核\begin{pmatrix} 1 & -1 \end{pmatrix}​,\begin{pmatrix} 1\\ -1\\ \end{pmatrix}输出特征图

2. 图2分别使用卷积核\begin{pmatrix} 1 & -1 \end{pmatrix}​,\begin{pmatrix} 1\\ -1\\ \end{pmatrix}输出特征图

3. 图3分别使用卷积核\begin{pmatrix} 1 & -1 \end{pmatrix}​,\begin{pmatrix} 1\\ -1\\ \end{pmatrix}​,\begin{pmatrix} 1 &-1 \\ -1&1 \end{pmatrix}​ ,输出特征图 

4. 实现灰度图边缘检测、锐化、模糊

5. 总结不同卷积核的特征和作用。

 

参考代码 

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 = 'deer.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')
plt.show()

总结:

本次作业的心得体会,重点谈谈卷积能够提取特征的原理。


参考链接

参考:Image Kernels explained visually (setosa.io)

【2021-2022 春学期】人工智能-作业4:CNN - 卷积_HBU_David的博客-CSDN博客

6.2. 图像卷积 — 动手学深度学习 2.0.0-beta1 documentation (d2l.ai)

【精选】【NNDL作业】图像锐化后,为什么“蒙上了一层灰色”?_在matlab图像处理过程中,double型图像灰度值出现负数的原因-CSDN博客

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值