本篇文章介绍基于卷积层的自编码去噪网络。利用卷积层进行图像的编码和解码,是因为卷积操作在提取图像的信息上有较好的效果,而且可以对图像中隐藏的空间信息等内容进行较好的提取。该网络可用于图像去噪、分割等。
在基于卷积的自编码图像去噪网络中,其作用过程如下图所示。在网络中输入图像带有噪声,而输出图像则为去噪的原始图像,在编码器阶段,会经过多个卷积、池化、激活层和BatchNorm层等操作,逐渐降低每个特征映射的尺寸,如将每个特征映射编码的尺寸降低到24×24,即图像的大小缩为原来的1/16;而特征映射编码的解码阶段,则可以通过多个转置卷积、激活层和BatchNorm层等操作,逐渐将其解码为原始图像的大小并且包含3个通道的图像,即96×96的RGB图像。
1.去噪自编码网络数据准备
先简单介绍一下训练网络使用到的图像数据集——STL10,该数据集可以通过torchvision.datasets模块中的STL10()函数进行下载,该数据集共包含三种类型数据,分别是带有标签的训练集和验证集,分别包含5000张和8000张图像,共有10类数据,还有一个类型包含10万张的无标签图像,均是96×96的RGB图像,可用于无监督学习。虽然使用STL10()函数可直接下载该数据集,但数据大小仅约2.5GB,且下载的数据是二进制数据,故建议直接到数据网址下载,并保存到指定的文件夹。
为了节省时间和增加模型的训练速度,在搭建的卷积自编码网络中只使用包含5000张图像