目录
作业1
作业2
一、概念
二、探究不同卷积核的作用
三、编程实现
实现灰度图的边缘检测、锐化、模糊。(必做)
2,调整卷积核参数,测试并总结。(必做)
3,使用不同尺寸图片,测试并总结。(必做)
编程实现
import torch from torch import nn import torch as d2l import matplotlib.pyplot as plt def corr2d(X, K): #@save """计算二维互相关运算""" h, w = K.shape Y = torch.zeros((X.shape[0] - h + 1, X.shape[1] - w + 1)) for i in range(Y.shape[0]): for j in range(Y.shape[1]): Y[i, j] = (X[i:i + h, j:j + w] * K).sum() return Y X=torch.tensor([[255,255,255,0,0,0], [255,255,255,0,0,0], [255,255,255,0,0,0], [255,255,255,0,0,0], [255,255,255,0,0,0], [255,255,255,0,0,0], [255,255,255,0,0,0],]) K = torch.tensor([[-1.0, 1.0]]) original_tensor=corr2d(X, K) from torchvision import transforms unloader = transforms.ToPILImage() image = original_tensor.cpu().clone() # clone the tensor image = image.squeeze(0) # remove the fake batch dimension image = unloader(image) image.save('example.jpg')
1. 图1使用卷积核,输出特征图
2. 图1使用卷积核,输出特征图
3. 图2使用卷积核,输出特征图
4. 图2使用卷积核,输出特征图
5. 图3使用卷积核,
,
,输出特征图
用自己的语言描述“卷积、卷积核、特征图、特征选择、步长、填充、感受野”。
卷积是卷积核遍历图像,加权相加的总过程
卷积核是作业一种的“K”
特征图是卷积后的得到的张量
特征选择由卷积核的内容决定,提取不同的特征。
步长是指卷积核遍历图像每一次跳跃的数量。
感受野:特征图上的一个点对应输入图上的区域,如图
用于识别
用于锐化
用于所有方向的边缘检测
模糊化图像
浮雕
不同方向的边缘检测
卷积核改为10*10形状,模糊效果变好
总结:
不同形状,大小的卷积核可以实现不同的作用,不同的卷积内使用不同的参数也可以达到不同的效果。比如模糊化3*3的卷积核不明显就可以使用10*10的卷积核。
每种卷积核内的参数都有固定的特点。
将分辨率由1920*1200改为192*120
总结:大尺寸的图像比小尺寸的图像边缘检测更细致,小尺寸更容易肉眼观察。
不同大小的图像的特征图有明显的差异。
在较低分辨率下可以节省大量的计算成本。
改变图像的尺寸相当于模糊化原图像。