全卷积网络(FCN)实战:使用FCN实现语义分割
发布网友
发布时间:2024-10-16 06:18
我来回答
共1个回答
热心网友
时间:2024-10-16 18:59
FCN对图像进行像素级的分类,从而解决了语义级别的图像分割问题。
FCN在卷积层之后采用反卷积层对最后一个卷积层的feature map进行上采样,使它恢复到输入图像相同的尺寸,从而可以对每个像素都产生了一个预测,同时保留了原始输入图像中的空间信息,最后在上采样的特征图上进行逐像素分类。
传统的基于CNN的分割方法在存储开销、效率和感受区域大小方面存在不足,而全卷积网络(FCN)则从抽象的特征中恢复出每个像素所属的类别,实现了从图像级别的分类到像素级别的分类。
FCN将后面几个全连接层换成卷积层,可以得到一张2维的feature map,后接softmax层获得每个像素点的分类信息,解决了分割问题。
FCN的结果不够精细,上采样的结果还是较为模糊和平滑,对图像中的细节不敏感,且没有充分考虑像素与像素之间的关系,缺乏空间一致性。
本文采用PASCAL VOC 2012数据集,包含二十个类别:Person、Animal、Vehicle、Indoor等,用于语义分割任务。数据集的结构包括物体检测和语义分割,通过自定义数据集读取方法和数据增强策略进行训练。
训练重要参数包括数据集路径、类别数、是否使用aux_classifier、设备选择、批次大小、epoch数、学习率、是否继续训练、起始epoch、是否使用自动混合精度训练等。
数据增强策略包括随机Resize、随机水平翻转、随即裁剪(训练集)和随机Resize(验证集)。
Main方法中,我们修改了模型选择,修改了类别数以匹配数据集,利用多张卡进行训练以充分利用资源,加载并测试训练好的模型。
预测部分包括获取调色板、加载模型并加载权重、图像预处理和模型预测,预测结果保存为图像文件并展示。
通过FCN实现的图像语义分割任务,实现了对图像中每个像素的精细分类,解决了存储开销大、效率低下和感受区域大小限制等问题。