首先申明以下我使用的DeepLab caffe源码是原作者给出的:
https://bitbucket.org/aquariusjay/deeplab-public-ver2/overview
使用的model是:
http://liangchiehchen.com/projects/DeepLabv2_vgg.html
训练测试自己数据集时,我并没有套用原来的数据结构(就是外围的所有东西都不变,只是将voc数据集中的数据替换),而是修改了数据输层来将自己的数据送入网络.
本文中还会涉及到怎样进行一次测试并显示测试效果(mask图)
下面将从训练,测试,单张测试并显示效果三个部分进行阐述:
一. 训练
训练中主要需要修改的有三个部分:数据输入相关,run_pascal.sh文件修改,网络结构修改
1.数据输入相关
我使用的数据输入层为我自己写的一个python类型的data层AerialImageDatasetLayer(其主要是参考FCN的数据读入层),这个层的作用是读取那些以文件夹为分类(而不是类似于poscal voc那样的将所有的images放一个文件夹,将所有的Segment放一个文件夹,然后通过train.txt,test.txt,val.txt这些txt文件夹来获取不同集合的数据),数据的存放形式如下:
dataset的根目录为dataset/BuildingDataset
训练样本images存放在: /dataset/BuildingDataset/train/images
训练样本GT存放在: /dataset/BuildingDataset/train/gt
测试样本images