If you find our work useful in your research, please cite:
@inproceedings{singhBMVC18overhead,
Author = {Singh, Suriya; Batra, Anil; Pang, Guan; Torresani, Lorenzo; Basu, Saikat; Paluri, Manohar; Jawahar, C. V.},
Title = {Self-supervised Feature Learning for Semantic Segmentation of Overhead Imagery},
Booktitle = {BMVC},
Year = {2018}
}
- ISPRS Potsdam
- SpaceNet Roads
- DeepGlobe Lands
- DeepGlobe Roads
- Note Results reported are on our splits.
- Potsdam
bash prepare_potsdam.sh
- SpaceNet
bash prepare_spacenet.sh
- DeepGlobe Lands
bash prepare_deepglobe_lands.sh
- DeepGlobe Roads
bash prepare_deepglobe_roads.sh
Please refer to jupyter notebook for semantic inpainting (Pathak et al, CVPR 2016), adversarial mask prediction, and semantic segmentation codes:
Toggling use_coach
flag in the notebook is sufficient to switch between our method and Context Encoders. Random patches from the image are erased when use_coach = False
whereas the mask values are sampled from uniform distribution in iteration 0
or predicted by the coach network in iteration > 0
when use_coach = True
.
from models import resnet18, FCNify
net = resnet18().cuda()
net_segmentation = FCNify(net, n_class = nClasses)
from models import resnet18, FCNify
net = resnet18(pretrained=True).cuda()
net_segmentation = FCNify(net, n_class = nClasses)
net = resnet18_encoderdecoder_wbottleneck().cuda()
erase_count = 0 ### number of blocks to erase from image
net_segmentation = FCNify_v2(net, n_class = nClasses)
net = resnet18_encoderdecoder_wbottleneck().cuda()
erase_count = 0 ### number of blocks to erase from image
net_segmentation = FCNify_v2(net, n_class = nClasses)