目录
一、环境配置
1、添加变量
2、测试
二、制作自己的数据集
1、制作
2、 数据集目录deeplab/train下目录放置
3、生成txt文件
4、生成tfrecord文件
三、训练前代码修改
1、data_generator.py
2、train_utils.py
3、train.py
四、训练
1、下载预训练模型
2、 训练指令
参考博客:
https://blog.csdn.net/hccq1/article/details/95990148#21__12
https://blog.csdn.net/PNAN222/article/details/89450711
https://blog.csdn.net/w_xiaowen/article/details/85289750
添加依赖库到PYTHONPATH,在目录~/deeplab/models/research下:
在终端添加slim环境变量:
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
调用model_test.py测试:
python deeplab/model_test.py
出现以下结果,说明你的环境配置成功:
labelme标记,转化为cv2_mask,参考我前一篇博客https://blog.csdn.net/babyzbb636/article/details/102631510#1
+ image #存放所有的原始图片,包括训练集,验证集
+ mask #存放所有的标签文件,即3.2步生成的png文件
+ index
- train.txt #所有训练集图片名
- trainval.txt #所有交叉验证集图片名,其实这个集合基本没用到,可以省略
- val.txt #所有验证集图片名
+ tfrecord #存放3.4生成的tfrecord文件
+train #存放后面训练的模型。可以不建立这个文件夹,后面自动生成
+val #存放后面验证生成的lab文件。可以不建立这个文件夹,后面自动生成
+vis #存放后面可视化生成的图片文件。可以不建立这个文件夹,后面自动生成
生成train.txt, trainval.txt ,val.txt,参考之前博客https://blog.csdn.net/babyzbb636/article/details/100123433#3
cd '/home/zbb/deeplab/models/research/deeplab/datasets'
新建labelmetotf.py文件,写入:
python build_voc2012_data.py \
--image_folder='/home/zbb/deeplab/data/image' \
--semantic_segmentation_folder='/home/lab/lc/deeplab/data/cv2_mask' \
--list_folder='/home/zbb/deeplab/data/index' \
--image_format="png" \
--output_dir='/home/zbb/deeplab/data/tfrecord'
旧版本修改tensorflow/models/research/deeplab/datasets/segmentation_dataset.py中的内容,
新版本修改models/research/deeplab/datasets/data_generator.py中的内容_PASCAL_VOC_SEG_INFORMATION 数据
_PASCAL_VOC_SEG_INFORMATION = DatasetDescriptor(
splits_to_sizes={
#'train': 1464,
#'train_aug': 10582,
#'trainval': 2913,
#'val': 1449,
'train': 100, #pang-add-mydata5 #训练集个数
#'train_aug': 10582,
'trainval': 120, #训练验证集个数
'val': 20, #验证集个数
},
#num_classes=21,
#ignore_label=255,
num_classes=6, #共有三类
ignore_label=-1, #忽略掉-1的类别,计算IOU时不算
)
在‘/home/zbb/deeplab/models/research/deeplab/utils/train_utils.py
大约在160行左右,搜索关键词
’/home/lab/lc/deeplab/models-r1.13.0/research/deeplab/train.py’
大约在135行左右,搜索关键词
网址:https://github.com/tensorflow/models/blob/master/research/deeplab/g3doc/model_zoo.md
在/home/zbb/deeplab新建train.sh
export PYTHONPATH=$PYTHONPATH:`pwd`:`pwd`/slim
python deeplab/train.py \
--logtostderr \
--training_number_of_steps=300 \
--train_split="train" \
--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' \
--train_batch_size=2 \
--dataset="pascal_voc_seg" \
--tf_initial_checkpoint='/home/zbb/deeplab/model_ckpt/xcep65/model.ckpt' \
--train_logdir='/home/zbb/deeplab/data/train' \
--dataset_dir='/home/zbb/deeplab/data/tfrecord'
注意train_crop_size是两位,否则会报越界错误
cuda10/10.1, tensorflow1.14能跑通,但是没有用现存gpu,明天试试cuda9.0
后续评测可视化,做了再补充