参考 https://blog.csdn.net/malvas/article/details/88896283 致谢
我的环境:windows 10 ,pycharm, anaconda3,tensorflow
1、下载models
https://github.com/tensorflow/models.git
2、测试环境
运行文件:D:\。。。。。\models-master\research\deeplab\model_test.py
3、数据集准备
从www.cityscapes-dataset.com上下载Cityscapes Dataset
——数据集,leftImg8bit_trainvaltest.zip (11GB)
和对应的标注集gtFine_trainvaltest.zip (241MB)
。
但是11G的文件下载相当慢,可以参考下方链接从百度云盘下载,感谢伟大的网络
链接: https://pan.baidu.com/s/108_NgFheDIpnQRrwz5uhmw 提取码: dhr8
4、 解压缩下载的数据集,目录如下
cityscapesScripts
- cityscapesScripts
- leftImg8bit
- gtFine
- tfrecord
5、下载cityscapesScripts/
下cloneCityscapes Dataset
的脚本代码?为了生成数据集的tfrecord文件?
https://github.com/mcordts/cityscapesScripts.git
找到createTrainIdLabelImgs.py,修改代码,怕路径出错可以用绝对地址:
cityscapesPath = 'cityscapesScripts的路径'
6、生成数据集的tfrecord
将数据集转换成tensorflow训练需要的tfrecord
格式
参考博客中运行convert_cityscapes.sh
文件,但是我电脑没装,不能运行sh文件,故按以下步骤操作
在第1步下载的model文件中找到build_cityscapes_data.py,设置运行参数,然后运行,可以转化成tfrecord格式
-cityscapes_root="D:/深度学习/Segmentation/cityscapesScripts"
--output_dir="D:/深度学习/Segmentation/cityscapesScripts/tfrecord"
8、训练
下载权重deeplabv3_cityscapes_train_2018_02_06,https://download.csdn.net/download/dingding1022/13137391,
解压后,我放在了train.py所在目录下,文件夹名为deeplabv3_cityscapes_train,与下面配置参数中
--tf_initial_checkpoint=deeplabv3_cityscapes_train/model.ckpt要对应
接下来运行 research\deeplab\train.py文件,先配置参数如下,注意--train_crop_size=513,513 有些博主分开写,在我的tf1.13版本会出错
--logtostderr
--training_number_of_steps=2000
--train_split=train_fine
--model_variant=xception_65
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--train_crop_size=513,513
--save_summaries_secs=60
--save_interval_secs=60
--train_batch_size=2
--dataset=cityscapes
--tf_initial_checkpoint=deeplabv3_cityscapes_train/model.ckpt
--train_logdir=train_model/
--dataset_dir=tfrecord/
其他可能出错:
a、将import tf_slim as slim改为import tensorflow.contrib.slim as slim
b、如果出现No module之类的 将from路径修改,添加上从research开始
c、出现错误“ResourceExhaustedError。。。。。" ,资源耗尽问题,电脑显卡计算能力不足,换台显卡强的即可
9、验证模型效果
research\deeplab\eval.py
配置运行参数,在deeplab文件夹下新建文件夹eval
--logtostderr
--eval_split=val_fine
--model_variant="xception_65"
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--eval_crop_size=1025,2049
--dataset="cityscapes"
--checkpoint_dir=train_model/
--eval_logdir=eval/
--dataset_dir=tfrecord/
运行结果:
之后显示INFO:tensorflow:Waiting for new checkpoint at /home/user/models/research/deeplab/exp/train_on_train_set/train
则直接跳出不用理睬。
10、查看分割结果
research\deeplab\vis.py,在在deeplab文件夹下新建文件夹vis
--logtostderr
--vis_split=val_fine
--model_variant=xception_65
--atrous_rates=6
--atrous_rates=12
--atrous_rates=18
--output_stride=16
--decoder_output_stride=4
--vis_crop_size=1025,2049
--dataset=cityscapes
--colormap_type=cityscapes
--checkpoint_dir=train_model/
--vis_logdir=vis/
--dataset_dir=tfrecord/
运行结果
在vis文件夹中查看可视化图片
未完待续,后面发现问题会再修改,本文仅仅跑代码,今后再分析代码