文章目录
1.代码地址
https://github.com/WZMIAOMIAO/deep-learning-for-image-processing/tree/master/pytorch_segmentation/fcn
作者视频教程:https://b23.tv/VRSuEmi
2.ResNet50和ResNet101文件下载
fcn_resnet50: https://download.pytorch.org/models/fcn_resnet50_coco-1167a1af.pth
fcn_resnet101: https://download.pytorch.org/models/fcn_resnet101_coco-7ecb50ca.pth
3.VOC2012数据集的下载
Pascal VOC2012 train/val数据集下载地址:
http://host.robots.ox.ac.uk/pascal/VOC/voc2012/VOCtrainval_11-May-2012.tar
4.文件结构
其中自己添加了一部分文件:便于训练和测试

GitHub上作者本人给出文件解释:
├── src: 模型的backbone以及FCN的搭建
├── train_utils: 训练、验证以及多GPU训练相关模块
├── my_dataset.py: 自定义dataset用于读取VOC数据集
├── train.py: 以fcn_resnet50(这里使用了Dilated/Atrous Convolution)进行训练
├── train_multi_GPU.py: 针对使用多GPU的用户使用
├── predict.py: 简易的预测脚本,使用训练好的权重进行预测测试
├── validation.py: 利用训练好的权重验证/测试数据的mIoU等指标,并生成record_mAP.txt文件
└── pascal_voc_classes.json: pascal_voc标签文件
5.首先测试一张图片
测试predict.py文件中:


修改完成之后就可以右击进行测试了。

6.训练VOC2012数据集
注:这个数据集有1.89GB,所以对我们CPU电脑配置来说,训练很难,后面再介绍使用Google的Colab进行训练。
首先配置一些参数和数据集的放置:train.py文件



右击train.py文件进行训练:

注:有GPU最好。我这里使用的是CPU,就不继续训练下去了。
7.Google Colab进行训练
(1)准备好Google账号
(2)上传数据集和代码到云盘硬件上





上传的过程比较慢,加上数据集也比较大,所以请读者耐心等待。
(3)打开Colab官网
https://colab.research.google.com/
(4)新建笔记本.ipynb和命名


(5)更换运行时类型(CPU->GPU)


(6)连接云盘硬件

from google.colab import drive
drive.mount('/content/gdrive')
(7)解压数据集
连接上云盘硬件之后,将看到gdrive,将其中我们上传的文件fcn拖拽到根目录下(/content/),和我们平时拖拽的方式一样的,当然我是这样做的,如果你自己熟悉复制命令,也可以将文件复制到根目录下。

右击刷新一下,如果网比较差的话,等一会儿在根目录才显示出来。
!tar -xvf fcn/data/VOCtrainval.tar

右击刷新一下,可以看到数据集文件在根目录下,所以将数据集文件拖拽到data文件下:

解压完数据压缩包之后就是对train.py文件中的一一些地方做修改。




修改之后:Crtl+S保存
(8)训练
!python fcn/train.py


该博客介绍了如何使用PyTorch实现FCN(全卷积网络)在VOC2012数据集上进行语义分割。提供了代码仓库链接、ResNet预训练模型下载、数据集获取路径以及训练和测试的详细步骤。训练过程可在本地进行,对于资源有限的用户,还给出了利用Google Colab免费GPU资源进行训练的方法。
1万+





