资源算法tensorflow-deeplab-v3

tensorflow-deeplab-v3

2020-01-03 | |  34 |   0 |   0

DeepLab-v3 Semantic Segmentation in TensorFlow

This repo attempts to reproduce DeepLabv3 in TensorFlow for semantic image segmentation on thePASCAL VOC dataset. The implementation is largely based onDrSleep's DeepLab v2 implemantationandtensorflow models Resnet implementation.

Setup

Please install latest version of TensorFlow (r1.6) and use Python 3.

  • Download and extractPASCAL VOC training/validation data(2GB tar file), specifying the location with the --data_dir.

  • Download and extractaugmented segmentation data(Thanks to DrSleep), specifying the location with --data_dir and --label_data_dir(namely, $data_dir/$label_data_dir).

  • For inference the trained model with 76.42% mIoU on the Pascal VOC 2012 validation dataset is availablehere. Download and extract to--model_dir.

  • For training, you need to download and extractpre-trained Resnet v2 101 modelfrom slimspecifying the location with --pre_trained_model.

Training

For training model, you first need to convert original data to the TensorFlow TFRecord format. This enables to accelerate training seep.

python create_pascal_tf_record.py --data_dir DATA_DIR 
                                  --image_data_dir IMAGE_DATA_DIR 
                                  --label_data_dir LABEL_DATA_DIR

Once you created TFrecord for PASCAL VOC training and validation deta, you can start training model as follow:

python train.py --model_dir MODEL_DIR --pre_trained_model PRE_TRAINED_MODEL

Here, --pre_trained_model contains the pre-trained Resnet model, whereas--model_dir contains the trained DeepLabv3 checkpoints. If --model_dir contains the valid checkpoints, the model is trained from the specified checkpoint in --model_dir.

You can see other options with the following command:

python train.py --help

The training process can be visualized with Tensor Board as follow:

tensorboard --logdir MODEL_DIR

Evaluation

To evaluate how model perform, one can use the following command:

python evaluate.py --help

The current best model build by this implementation achieves 76.42% mIoU on the Pascal VOC 2012 validation dataset.


MethodOSmIOU
paperMG(1,2,4)+ASPP(6,12,18)+Image Pooling1677.21%
repoMG(1,2,4)+ASPP(6,12,18)+Image Pooling1676.42%

Here, the above model was trained about 9.5 hours (with Tesla V100 and r1.6) with following parameters:

python train.py --train_epochs 46 --batch_size 16 --weight_decay 1e-4 --model_dir models/ba=16,wd=1e-4,max_iter=30k --max_iter 30000

You may achieve better performance with the cost of computation with myDeepLabV3+ Implementation.

Inference

To apply semantic segmentation to your images, one can use the following commands:

python inference.py --data_dir DATA_DIR --infer_data_list INFER_DATA_LIST --model_dir MODEL_DIR

The trained model is available here. One can find the detailed explanation of mask such as meaning of color inDrSleep's repo.

TODO:

Pull requests are welcome.

  • Freeze batch normalization during training

  • Multi-GPU support

  • Channels first support (Apparently large performance boost on GPU)

  • Model pretrained on MS-COCO

  • Unit test

Acknowledgment

This repo borrows code heavily from


上一篇:SSD_for_Tensorflow

下一篇:DeepLabV3-Tensorflow

用户评价
全部评价

热门资源

  • Keras-ResNeXt

    Keras ResNeXt Implementation of ResNeXt models...

  • seetafaceJNI

    项目介绍 基于中科院seetaface2进行封装的JAVA...

  • spark-corenlp

    This package wraps Stanford CoreNLP annotators ...

  • capsnet-with-caps...

    CapsNet with capsule-wise convolution Project ...

  • inferno-boilerplate

    This is a very basic boilerplate example for pe...