最近发现FCN拟合数据能力有限,vgg也太沉重,做不了事。查了下deeplabv3+算是分割里面比较成熟的,研究一下。
代码地址:https://github.com/rishizek/tensorflow-deeplab-v3-plus
部署过程
准备代码和数据:
1.git clone代码之后
安装如下库:
- tensorflow >=1.6
- numpy
- matplotlib
- pillow
- opencv-python
我的配置是:
驱动nvidia384.130 +cuda9.0(这两个要配套,详见https://blog.youkuaiyun.com/liu506039293/article/details/103138467)
python3.6+tensorflow1.12.0+numpy1.16.0(numpy1.17.0测试报错)
这套是测试可行的,最好跟我一样。
2.下载PASCAL VOC training/validation data数据集,解压到data_dir参数对应路径.(直接解压到dataset文件夹内即可)
3.下载augmented segmentation data,解压到data_dir文件夹下的label_data_dir对应路径.(解压到\dataset\VOCdevkit\VOC2012文件夹里面即可)
4.下载trained model解压到model_dir对应路径(解压到./model文件夹即可)
5.下载pre-trained Resnet v2 101 model解压到pre_trained_model对应路径(需要按照路径参数创建./ini_checkpoints/resnet_v2_101/目录,然后解压)关键!!!很多人忘了创建ini_checkpoints/结果就是loss一直是0
转换为TFRecord:
如果你的数据位置依照前文放置,跟我一样的话,直接运行:
python create_pascal_tf_record.py
如果numpy版本不对,在这里会报错,请更换1.16.0版本。
如果成功:
dataset文件夹下面出现两个record文件,报warning说明有错误哈,检查路径!! 后面会运行不了的。
可以尝试训练了:
如果跟上文一样配置的话,这里直接:
python train.py
查看tensorbord
tensorboard --logdir=./model
要注意的:
显存不够的bathsize注意改小一点,train.py第41行default=5
后记总结:
佩服作者学术能力过硬,代码质量够硬,让人充满了对美好生活的向往!!