1.上采样和下采样
UNet 网路结构左半部分是下采样:图片尺寸变小,图片变得模糊;
UNet 网路结构右半部分是上采样:图片尺寸变大,图片变得清晰。
下采样:将高分辨率图像降维到低分辨率图像的过程,常见的方法包括平均池化、最大池化和卷积池化等。
上采样:将低分辨率图像放大到高分辨率图像的过程,常见的方法包括最近邻插值、双线性插值和三次插值等。
上采样和下采样的目的是为了适应不同的任务需求,例如:
在特征提取、图像压缩和迁移学习中,需要将高分辨率图像下采样到低分辨率图像。(UNet 左半部分就是在进行特征提取、图像压缩)
在目标检测、图像分割和超分辨率重建等任务中,需要将低分辨率图像上采样到高分辨率图像。(UNet 右半部分就是在进行图像分割)
# 我们首先导入了PyTorch的nn模块,然后定义了一个上采样函数upsample,设置了尺度因子为2,插值模式为双线性插值,不进行像素对齐。
# 接着我们生成了一个大小为128x128的随机输入图像input_image,将其传递给上采样函数upsample后,得到了大小为256x256的输出图像output_image。
import torch
import torch.nn as nn
# 定义上采样函数
upsample = nn.Upsample(scale_factor=2, mode='bilinear', align_corners=False)
# 假设输入图像大小为128x128,输出图像大小为256x256
input_image = torch.randn(1, 3, 128, 128)
output_image = upsample(input_image)
print(input_image.shape)
print(output_image.shape)
输出结果:
2. ReLU 函数
ReLU,全称Rectified linear unit,是现代神经网络中最常用的激活函数,函数公式:
当 时,这时候函数值是与x正相关,当检测特征信号越强时,得到的结果越强;
当 时,说明该特征对结果有负影响,那么所有信号结果都转化为0,去除负影响。
3. BN模块
Batch Normalization是15年一篇论文中提出的数据归一化方法。
内容有点多,具体的可以见知乎。
4. up-conv
转置卷积,详情见这位博主写的。写的很细!!
http://t.csdnimg.cn/4pMlghttp://t.csdnimg.cn/4pMlg
4. max pool
最大池化可以提取出指定窗口的特征(最大)数据,显著减少了特征图(特征张量的大小)。
为什么彩色图片经过卷积后变成了灰度图?
答:卷积层会把所有输入的通道进行卷积后求和。
而最大池化层仍会保留原来的输入通道!所以,这样操作依旧是彩色图片。