源代码链接: https://github.com/fregu856/deeplabv3#paperspace
这个源代码相对简单,可以用来仔细看下,学习思想。
环境配置
源代码使用的是pytorch0.4,我使用的是pytorch1.13,会报某个函数版本警告问题,但是不影响训练过程。对于pytorch安装,可以直接到官网采用相应的命令进行一键式安装。
训练过程
1、准备好数据集Cityscapes
CityScapes数据集官网下载并不容易,我准备好了相应的百度网盘链接供学习使用:
链接:https://pan.baidu.com/s/18OjT1SxxpBr_hR4gJbwLOg
提取码:hhk0
2、将源代码下载好后进行解压
- 解压后,首先编译deeplabv3 / utils / preprocess_data.py文件,编译之前需要修改一点代码:
修改preprocess_data.py中第97、98行的路径,cityscapes_data_path是你下载的cityscapes数据的路径。cityscapes_meta_path是你想要存放labelimg的图像位置,这里我直接将cityscapes_meta_path设置成和cityscapes_data_path相同路径。
之后运行 preprocess_data.py。等待一段时间后可以发现项目路径下多了一个label_imgs文件夹,里面存放了许多的mask图片。
2. 运行train.py ,运行之前也要做出一点修改。
- 修改一点model文件夹下的deeplabv3.py的第9、10行
- 修改一点model文件夹下的resnet.py
- train.py的第8、11行加一个"model.","utils.",当然你也可以把第7、10行修改为你自己的model文件夹与utils的绝对路径
- 在import time后面 用一个main将下面代码包括进来,注意记得缩进
- 调整以下路径
在第40行左右调整以下路径
在59行左右调整以下路径:
之后便可以训练了,如果有修改问题的,可以联系我,我发我修改好的给你,对比一下即可。
训练能输出以下信息就代表成功了:
测试效果
测试使用文件为visualization文件夹下的run_on_seq.py。使用前需要修改以下内容:
- 第30行加入以下内容,同样要注意下面代码的缩进
- 修改第34、35,40行以下路径
- 在cityscapes\leftImg8bit里创建以下文件夹
- demoVideo文件下创建以下三个文件夹,可以看下我图片上的路径
- 三个文件下里面放入你想测试的图片序列,如下
之后就可以运行run_on_seq.py测试了,运行结果保存在deeplabv3\training_logs\model_eval_seq文件夹下
由于电脑太垃圾了,训练了8个epoch都用了不少时间。这里展示下8个epoch的效果:
原图1
测试效果
原图2
测试效果
要让结果更好,建议训练多一点epoch
修改后的代码已上传至deeplabv3.rar-互联网文档类资源-CSDN下载,想对比看一下的可以下载看看
如果你觉得这篇文章对你有帮助的话,不妨帮我点个赞吧!