deeplab v3+训练自己的数据

deeplab v3+代码链接
使用Pascal_voc数据集训练的官方教程

1.环境配置

这里笔者主要是按照官方教程安装了需要的包,再有就是把slim依赖库添加到pythonpath,但是笔者没有这样做,直接运行程序,在报错的位置前面加上slim.就行了。

2.数据集准备

笔者是仿照voc数据集来准备的,voc数据集中格式如下图所示。这里写图片描述
创建如上图所示的文件夹,将数据原图放入JPEGImages中,做好的mask图放入SegmentationClass中,tfrecord为稍后将数据转为tensorflow所需要的tfrecord格式的文件夹,exp中train为保存模型位置,eval为保存评估时event事件文件夹,vis为可视化文件夹,均需手动创建。
# From the tensorflow/models/research/deeplab/datasets directory.
sh download_and_convert_voc2012.sh
运行上述命令,将数据转为tfrecord格式。
/home/niechuan/DeepLearningModels/models-master/research/deeplab/datasets/pascal_voc_seg/VOCdevkit/VOC2012/ImageSets/Segmentation
在上述文件夹中有,创建train.txt及val.tet文件,内容为图片名称,只包含前缀,一行一个。在segmentation_dataset.py中修改如下内容为自己数据的train数据量、val数据量及分类书(num_classes),笔者这里仅有一种分类,所以为1+1(背景)。这里写图片描述
再修改train.py中的dataset、train_spilt、dataset_dir的地址,根据自己数据修改。这里写图片描述
至此就可以训练自己的模型了。

这里再提一下该代码中的一些问题。
1.模型选择
在common.py中,可修改mobilenet_v2为xception_65等。这里写图片描述
2.损失函数
在train_util.py中,为交叉熵损失函数,读者可自行查看。
3.改代码中笔者感觉没有实现论文中所说的叠加一个low_level的信息,而是直接使用的双线性插值到原图大小。(model.py中有疑问,直接resize)这里写图片描述
4.关于eval.py
笔者执行改程序执行到一定程度直接显示waiting for new checkpoint,原来该程序是train文件夹中生成一个模型,则eval.py就验证一次,如果一直不生成,则一直卡在waiting那儿就不动了。

  • 5
    点赞
  • 35
    收藏
    觉得还不错? 一键收藏
  • 42
    评论
评论 42
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值