介绍
FCN(全卷积网络)是深度学习在图像语义分割领域的里程碑式贡献。它摒弃了传统CNN中的全连接层,转而采用全卷积层,实现了图像到图像的端到端分割。这种方法直接对图像中的每个像素进行预测,生成与原图大小完全一致的label map,即每个像素都被赋予了相应的类别标签。
图像语义分割是图像处理和机器视觉技术中的关键一环,它涉及对图像中每个像素点的细致分类。与普通的图像分类任务不同,语义分割不仅要求识别出图像中的不同对象,还需要将这些对象精确地定位到具体的像素位置上。
模型简介
全卷积神经网络主要使用以下三种技术:
1.卷积化:通过连续的卷积和池化操作提取图像特征,但特征图的尺寸会逐渐减小。
2.上采样:为了恢复特征图的尺寸到原图大小,使用上采样(如双线性插值或转置卷积)技术。
3.跳跃结构:通过结合深层和浅层的特征图,FCN能够同时利用全局信息和局部细节,提高分割精度。FCN-32s、FCN-16s和FCN-8s是不同深度的融合策略。
数据处理
数据预处理:将PASCAL VOC 2012数据集中的图像进行标准化处理。
数据加载:将PASCAL VOC 2012和SDB数据集混合。
训练集可视化:通过可视化加载的数据集图片。
网络构建
FCN网络的构建基于VGG-16的编码器部分,通过添加适当的上采样层和跳跃连接来实现图像的像素级分割。从pool1到pool5逐层池化,然后通过conv6-7进一步提取特征,最后通过不同策略的上采样和融合得到FCN-32s、FCN-16s和FCN-8s的分割结果。
训练准备
导入VGG-16部分预训练权重
损失函数:损失函数选择交叉熵损失函数来计算FCN网络输出与mask之间的交叉熵损失。
自定义评价指标 Metrics
模型训练
导入VGG-16预训练参数后,实例化损失函数、优化器,使用Model接口编译网络,训练FCN-8s网络。