Skip to content

Modified Caffe for Segmentation Task Based on Deeplab v2

License

Notifications You must be signed in to change notification settings

thomasdic2000/caffe_segtask

 
 

Repository files navigation

Introduction

This code is based on Deeplab v2, which I merged some other features:

  • Fixed the batch_norm_layer's bug by replacing with caffe-master's batch_norm_layer
  • Merge crop_layer from caffe-master for FCN support
  • Merge multi_stage_meanfield layer from https://github.com/bittnt/caffe/tree/crfrnn for CRFasRNN merge
  • Modify image_seg_data_layer.cpp to support class segmentation label index > 256. if set label_span: RG in prototxt,Index=R/10*256+G.
  • Merge LRCN support with coco caption example included.
  • Merge PSPNet support by merging bn_layer from PSPNet while without MPI-support for multi-batch train currenttly.

Tips

  • How to load source image & label image for training?

    Use python interface as FCN's or deeplab's filelist format. examples/indoor_scene_parsing/scripts/image_seg_data_layer.py maybe help too.

  • How to fetch image to segmentation models with any size?

    Ref to FCN's python script. examples/indoor_scene_parsing/scripts/predict.py maybe help too.

  • How to display result pretty?

    examples/indoor_scene_parsing/scripts/viz_seg.py maybe help.

  • How to use CRFasRNN?

    examples/indoor_scene_parsing/test_pspnet50_ade20k64cls_v2.prototxt is an example. CRFasRNN's README may help too, but some differs,

     layer {
       name: "splitting"
       type: "Split"
       bottom: "conv6_interp"
       top: "unary"
       top: "Q0"
     }
     layer {
       name: "crf_inf"
       type: "MultiStageMeanfield"
       bottom: "unary"
       bottom: "Q0"
       bottom: "data"
       top: "crf_inf"
       param { lr_mult: 10000 }
       param { lr_mult: 10000 }
       param { lr_mult: 1000 }
       multi_stage_meanfield_param {
     	num_iterations: 3
     	compatibility_mode: POTTS
     	threshold: 2
     	theta_alpha: 160
     	theta_beta: 3
     	theta_gamma: 3
     	spatial_filter_weights_str: "3 3 2"    # Remain unsetting value = 3
     	bilateral_filter_weights_str: "5 3 4"  # Remain unsetting value = 4
       }
     }
    

Install

The same to Deeplab v2.

About

Modified Caffe for Segmentation Task Based on Deeplab v2

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 77.9%
  • Cuda 7.4%
  • Python 6.7%
  • MATLAB 3.1%
  • CMake 2.4%
  • Protocol Buffer 1.5%
  • Other 1.0%