【实验记录】DeepLabv3+训练测试

更新时间:2023-07-30 14:39:57 阅读: 评论:0

【实验记录】DeepLabv3+训练测试
Code:
DeepLab:
Tutorial:
Model Zoo:
训练参考:
⽂章⽬录
袋子英文环境配置
GPU:2080Ti
CUDA 9.0
CUDNN 7.0.5
Python 3.6
Tensorflow-gpu 1.12.0
======================= 安装过程 =======================
# 创建虚拟环境
conda create -n tensorflow-deeplab python=3.6
# 安装依赖
向阳花木早逢春conda install numpy
conda install pillow
conda install jupyter
conda install matplotlib
pip install tensorflow-gpu==1.12.0
初一期中试卷
验证⼀下 GPU 版的 tensorflow 安装是否成功:
import tensorflow as tf
>>>
True
只要出现了 True 就没问题。
将 models/rearch/slim 添加到环境变量中,这是因为 DeepLab 的某些⼯具(⽐如 multigrid)是⽤ slim 实现的。
vi ~/.bashrc
# tensorflow-deeplab
export PYTHONPATH=$PYTHONPATH:/data/zyy/code/models-master/rearch/slim
source ~/.bashrc
Note:
1. 注意 CUDA 和 Tensorflow-gpu 版本的对应关系,否则后⾯很容易出错。参考
2. 最初安装的是 tensorflow-gpu 1.5.0,结果训练时报了⼏个类似于 TypeError: unexpected keyword argument 的错,应该和版本更新有
关,后⾯换成 1.12.0 就全都没问题了
======================= 测试配置 =======================
调⽤ model_test.py 测试⼀下:
# From /home/ur/models/rearch/
python deeplab/model_test.py
输出如下:
训练过程
巧克力蛋糕的做法采⽤ PASCAL VOC 2012 的数据格式训练⾃⼰的数据,如果直接训练 VOC,就省掉了第⼀步【数据准备】,直接运⾏ datats/ ⽂件夹下的 download_and_convert_voc2012.sh 就可以下载并转换 VOC 数据,如果提前下好了就放在 datats/ ⽂件夹下,不⽤改代码,它会⾃⼰判断需不需要下载。
1. 数据准备
按照 VOC 数据格式,把⾃⼰的数据整合成这样⼦:
deeplab/datats/pascal_voc_g
├── exp
│└── train_on_train_t
│├── eval
│├── export
│├── train
│└── vis
└── VOCdevkit
│└── VOC2012
│├── Annotations
│├── ImageSets
││└── Segmentation
│├── JPEGImages
│├── SegmentationClass
└── VOCtrainval_11-May-2012.tar
VOCdevkit 需要放在⼿动创建的 pascal_voc_g ⽂件夹下,另外⾃⼰处理好数据后,将 VOCdevkit 压缩为 VOCtrainval_11-May-2012.tar 和 VOCdevkit 放在同级⽬录下
JPEGImages:训练图像
SegmentationClass:训练图像对应的标签
ImageSets:训练验证集的划分⽂件
train_on_train_t:⼿动新建,放训练、测试、可视化的⼀些结果
tfrecord:建不建都⾏,后⾯数据转换时会⾃动⽣成
注意:在 ImageSets/Sementation 路径下的索引 txt ⽂件内容格式,只需要图⽚的名称即可,不需要路径和后缀名。如:
0001
0002
0003
...
2. 数据转换
数据转换脚本:deeplab/datats/download_and_convert_voc2012.sh,可以先根据⾃⼰的数据⽂件名,更改⼯作⽬录,在脚本⽂件的第 39 ⾏WORK_DIR="mydata"。
# 执⾏转换命令
sh download_and_convert_voc2012.sh
注意⾃⼰的数据格式,在 download_and_convert_voc2012.sh 代码⾥默认做训练的原始图像是 jpg 格式,如果是 png,需要在download_and_convert_voc2012.sh 的最后修改:
# 数据格式
--image_format="jpg" \
对于标签图像,默认是 png 格式。另外,原始训练图像只⽀持 <jpg|jpeg|png> 格式的⽂件,像我⾃⼰的 bmp 医学图像直接输进去会报错,所以其他格式的图像需要先转成这三个格式。
如果⾃⼰的路径没有按照 VOC 数据集的格式,可以在 sh 脚本⽂件中进⾏修改
IMAGE_FOLDER:训练图像数据路径
SEMANTIC_SEG_FOLDER:训练图像对应标签的路径
LIST_FOLDER:数据集划分的 txt ⽂件
OUTPUT_DIR:数据转换结果的存放路径
这个脚本实际调⽤的是 deeplab/datats/build_voc2012_data.py,所以也能直接在终端执⾏ py ⽂件,指定⼀下参数即可,例如:
python deeplab/datats/build_voc2012_data.py \
--image_folder="/path/to/image" \
--mantic_gmentation_folder="path/to/mask" \
--list_folder="path/to/list" \
--image_format="png" \
关于烟花的作文--output_dir="/path/to/tfrecord"
润肺食物
执⾏转换脚本,⼀切正常的话打印信息类似这样:
此时,在 VOCdevkit 同级⽬录下,形成了⼀个 tfrecord ⽂件夹
注意到处理数据后,在 pascal_voc_g/VOCdevkit/VOC2012 ⾥还⽣成了⼀个新⽂件夹 SegmentationClassRaw,这⾥⾯是单通道的⼆值标签图像,0 代表背景,1 代表前景,拖进 matlab ⾥可以看到并不是全⿊滴~
3. 修改代码
1)修改数据集设置
需要修改 deeplab/deprecated/ ⽂件夹下的 gmentation_datat.py
#_PASCAL_VOC_SEG_INFORMATION = DatatDescriptor(
#    splits_to_sizes={
#        'train': 1464,
种植物
#        'train_aug': 10582,
#        'trainval': 2913,
#        'val': 1449,
#    },
#    num_class=21,
#    ignore_label=255,
#)
# Modified(2019/8/30)
_PASCAL_VOC_SEG_INFORMATION = DatatDescriptor(
splits_to_sizes={
'train':3034,
'trainval':3371,
'val':337,
丰富},
num_class=2,
ignore_label=255,
)
注意这⾥ ignore_label=255 是说有⼀些像素值为 255 的像素点既不属于前景也不属于背景(这是因为 VOC 数据集的特点,⽬标⽆论的轮廓会有⽩⾊描边)。在使⽤⾃⼰的数据集时,要注意⾃⼰数据的前背景像素值分别是多少,避免出现前景为 255 ⽽不⼩⼼设置为了 ignore 类别。
如果⾃⼰要创建新的数据集名称,就需要改两处代码:
# 添加⾃⼰的数据描述(100⾏左右)
_MYDATA = DatatDescriptor(
splits_to_sizes={
'train':1000,
#'train_aug': 1500,
'trainval':1300,
'val':3000,
},
num_class=2,# 包括背景类
ignore_label=255,# 有些数据标注有⽩⾊描边(VOC),不代表任何实际类别
)
# 添加数据集名称(112⾏)
_DATASETS_INFORMATION ={
'cityscapes': _CITYSCAPES_INFORMATION,
'pascal_voc_g': _PASCAL_VOC_SEG_INFORMATION,
'ade20k': _ADE20K_INFORMATION,
'mydata': _MYDATA
}
如果在训练时报错:
ValueError: The specified datat is not supported yet.
就说明没有注册数据集。
修改 deeplab/datats/ ⽂件夹下的 data_generator.py

本文发布于:2023-07-30 14:39:57,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/1123819.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   训练   图像
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图