运行DeepLabv3+

用于语义图像分割的带空洞可分离卷积的编解码器 论文 源码 讲解


下面第一个是原作者提供的代码,基于tf.contrib.slim。第二个代码是网友实现的,基于tf.estimator。tf.estimator是比tf.contrib.slim更高级的API,能同时训练和验证模型。[更多]


Tensorflow/model下面的源码 

  1. 安装tensoeflow-gpu==1.9.0(python2.7),较低版本tf会出现这样的错误:
    AttributeError: module 'tensorflow.python.platform.flags' has no attribute 'DEFINE_multi_float'

     

  2. 安装pillow。
  3. 下载源码models-master。
  4. 找到models-master/research/deeplab。
  5. 把models-master/research/slim拷贝到deeplab文件夹。
  6. 把models-master/research/slim/nets拷贝到deeplab文件夹。
  7. 测试环境:
    添加环境变量:
    export PYTHONPATH=$PYTHONPATH:/home/
    
    在deeplab的外层文件夹:
    python deeplab/model_test.py
    
    在deeplab文件夹:
    创建文件夹deeplab/datasets/pascal_voc_seg,在该文件夹下载PASCAL VOC 2012数据集,并产生4个文件夹。然后执行训练、验证、可视化
    sh local_test.sh

     

  8. 说明:执行sh local_test.sh生成的数据与项目路径有关,所以项目路径更改后要删除文件夹deeplab/datasets/pascal_voc_seg,并重新生成。
  9. 在PASCAL VOC 2012数据集上运行。

rishizek提供的源码 

  1. 下载源码,命名为DeepLabv3p。
  2. 下载PASCAL VOC training/validation data和augmented segmentation data。数据组织方式:
    DeepLabv3p
    -dataset
    --VOCdevkit
    ---VOC2012
    ----Annotations
    ----ImageSets
    ----JPEGImages
    ----SegmentationClass
    ----SegmentationClassAug(来自增广数据集,注意里面只有图片没有文件夹)
    ----SegmentationObject

     

  3. 生成TFRecord数据:
    python create_pascal_tf_record.py \
    --data_dir dataset/VOCdevkit/VOC2012/ \
    --image_data_dir JPEGImages \
    --label_data_dir SegmentationClassAug
    
    这会生成dataset/voc_train.record和dataset/voc_val.record。

     

  4. 下载pre-trained Resnet v2 101模型,这样存放:
    output
    -init
    --eval.graph#没用
    --resnet_v2_101.ckpt
    --train.graph#没用

     

  5. 训练:
    python train.py \
    --batch_size=4 \(默认是10)
    --model_dir output/model \
    --pre_trained_model output/init/resnet_v2_101.ckpt
    
    会创建文件夹:output/eval

     

  6. 可视化:tensorboard --logdir output
  7. 测试任意张图片:使用自己训练的模型或下载作者提供的模型:
    python inference.py \
    --data_dir output \#测试图片的路径
    --infer_data_list output/sample_images_list.txt \#测试图片的路径列表(data_dir后的XXX/XXX.jpg)
    --model_dir output/model#模型文件

     

  8. 相关源码解读。


你可能感兴趣的:(深度学习)