All Projects → mohitsharma-sh → Adversarial-Semisupervised-Semantic-Segmentation

mohitsharma-sh / Adversarial-Semisupervised-Semantic-Segmentation

Licence: other
Pytorch Implementation of "Adversarial Learning For Semi-Supervised Semantic Segmentation" for ICLR 2018 Reproducibility Challenge

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Adversarial-Semisupervised-Semantic-Segmentation

Adversarial Semisupervised Semantic Segmentation
Pytorch Implementation of "Adversarial Learning For Semi-Supervised Semantic Segmentation" for ICLR 2018 Reproducibility Challenge
Stars: ✭ 147 (-2.65%)
Mutual labels:  semi-supervised-learning, adversarial-networks, semantic-segmentation
SemiSeg-AEL
Semi-Supervised Semantic Segmentation via Adaptive Equalization Learning, NeurIPS 2021 (Spotlight)
Stars: ✭ 79 (-47.68%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
improving segmentation with selfsupervised depth
[CVPR21] Implementation of our work "Three Ways to Improve Semantic Segmentation with Self-Supervised Depth Estimation"
Stars: ✭ 189 (+25.17%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
AdversarialAudioSeparation
Code accompanying the paper "Semi-supervised adversarial audio source separation applied to singing voice extraction"
Stars: ✭ 70 (-53.64%)
Mutual labels:  semi-supervised-learning, adversarial-networks
DST-CBC
Implementation of our paper "DMT: Dynamic Mutual Training for Semi-Supervised Learning"
Stars: ✭ 98 (-35.1%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
Usss iccv19
Code for Universal Semi-Supervised Semantic Segmentation models paper accepted in ICCV 2019
Stars: ✭ 57 (-62.25%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
Context-Aware-Consistency
Semi-supervised Semantic Segmentation with Directional Context-aware Consistency (CVPR 2021)
Stars: ✭ 121 (-19.87%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
Advsemiseg
Adversarial Learning for Semi-supervised Semantic Segmentation, BMVC 2018
Stars: ✭ 382 (+152.98%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
Cct
[CVPR 2020] Semi-Supervised Semantic Segmentation with Cross-Consistency Training.
Stars: ✭ 171 (+13.25%)
Mutual labels:  semi-supervised-learning, semantic-segmentation
Adversarial Autoencoders
Tensorflow implementation of Adversarial Autoencoders
Stars: ✭ 215 (+42.38%)
Mutual labels:  semi-supervised-learning, adversarial-networks
MFNet-pytorch
MFNet-pytorch, image semantic segmentation using RGB-Thermal images
Stars: ✭ 72 (-52.32%)
Mutual labels:  semantic-segmentation
Scale-Adaptive-Network
Semantic Image Segmentation by Scale-Adaptive Networks (TIP 2019)
Stars: ✭ 42 (-72.19%)
Mutual labels:  semantic-segmentation
caffe
Caffe: a fast open framework for deep learning.
Stars: ✭ 4,618 (+2958.28%)
Mutual labels:  semantic-segmentation
pytorch-UNet
2D and 3D UNet implementation in PyTorch.
Stars: ✭ 107 (-29.14%)
Mutual labels:  semantic-segmentation
metric-transfer.pytorch
Deep Metric Transfer for Label Propagation with Limited Annotated Data
Stars: ✭ 49 (-67.55%)
Mutual labels:  semi-supervised-learning
Remote-sensing-image-semantic-segmentation-tf2
The remote sensing image semantic segmentation repository based on tf.keras includes backbone networks such as resnet, densenet, mobilenet, and segmentation networks such as deeplabv3+, pspnet, panet, and refinenet.
Stars: ✭ 54 (-64.24%)
Mutual labels:  semantic-segmentation
RandLA-Net-pytorch
🍀 Pytorch Implementation of RandLA-Net (https://arxiv.org/abs/1911.11236)
Stars: ✭ 69 (-54.3%)
Mutual labels:  semantic-segmentation
smartImgProcess
手工实现的智能图片处理系统 包含基础的图片处理功能 各类滤波 seam carving算法 以及结合精细语义分割信息 实现智能去除目标的功能
Stars: ✭ 22 (-85.43%)
Mutual labels:  semantic-segmentation
Pro-GNN
Implementation of the KDD 2020 paper "Graph Structure Learning for Robust Graph Neural Networks"
Stars: ✭ 202 (+33.77%)
Mutual labels:  semi-supervised-learning
tensorflow-mnist-AAE
Tensorflow implementation of adversarial auto-encoder for MNIST
Stars: ✭ 86 (-43.05%)
Mutual labels:  adversarial-networks

Adversarial Learning For Semi-Supervised Semantic Segmentation

Introduction

This is a submission for ICLR 2018 Reproducibility Challenge. The central theme of the work by the authors is to incorporate adversarial training for semantic-segmentation task which enables the segmentation-network to learn in a semi-supervised fashion on top of the traditional supervised learning. The authors claim significant improvement in the performance (measured in terms of mean IoU) of segmentation network after the supervised-training is extended with adversarial and semi-supervised training.

Scope

My plan is to reproduce the improvement in the performance of the segmentation network (Resnet-101) by including adversarial and semi-supervised learning scheme over the baseline supervised training and document my experience along the way. The authors have used two datasets, PASCAL VOC 12 (extended version) and Cityscapes, to demonstrate the benefits of their proposed training scheme. I will focus on PASCAL VOC 12 dataset for this work. Specifically, the target for this work is to reproduce the following table from the paper.

Method       Data Amount
1/2       full
Baseline (Resnet-101) 69.8      73.6
Baseline + Adversarial Training 72.6       74.9
Baseline + Adversarial Training +
Semi-supervised Learning
73.2       NA

Results Reproduced

Following table summarizes the results I have been able to reproduce for the full dataset. For the full dataset, only the performance of the adversarial training on top of baseline can be evaluated.

Method (Full Dataset) Original Challenge
Baseline (Resnet-101) 73.6 69.98
Baseline + Adversarial Training 74.9 70.97
Baseline + Adversarial Training +
Semi-supervised Learning
NA NA

Following table summarizes the results I was able to reproduce for the semi-supervised training where half of the training data is reserved for semi-supervised training with unlabeled data.

Method (1/2 Dataset) Original Challenge
Baseline (Resnet-101) 69.8 67.84
Baseline + Adversarial Training 72.6 68.89
Baseline + Adversarial Training +
Semi-supervised Learning
73.2 69.05

Updates

  • 18th Dec 2017 Finished Refactoring of the code, re-ran the experiments and achieved some improvement on the previous results by training the network longer.

  • 8th Dec 2017: Semi-supervised Learning with 1/2 of training data treated as unlabeled degrades the performance compare to baseline (68.05 mIoU) and baseline + adversarial training (70.31 mIoU). It might be related to one of the comments of the reviewer that initial predictions by the discriminator might be noisy which renders semi-supervised training unstable during early epochs. The authors have made a comment that semi-supervised training is only applied after 5k iterations. I'll include the results with this addition soon.

  • 4th Dec 2017: Started working on Semi-supervised training.

  • 2nd Dec 2017: Adversarial Training based on base105 improves mIoU from 68.86 to 69.93.

  • 30th Nov 2017: Managed to improve adversarial training performance. For base105, mIoU was improved from 68.86 to 69.33.

  • 28th Nov 2017: Started experiments with Imagenet-pretrained Resnet-101 segmentation network as the baseline. Best mIoU achieved is 65.97. So, moving forward to unsupervised training with the base104 (best baseline model) and base105 (baseline with best adversarial training results).

  • 27th Nov 2017: Finally managed to stabilize the GAN training. I couldn't reproduce any significant improvement over the baseline Segmentation Network. In fact, the best performing segmentation network (base104 with mIoU 69.78) was worse off with the adversarial training (mIoU dropped to 68.07). I have documented the details of the experiments performed for adversarial training. As GAN training is considered to be very sensitive towards weight initialization, I feel this is the right time to incorporate ImageNet pretrained network in the training.

  • 20th Nov 2017: Started working on adding adversarial learning for base-104 segmentation network.

  • 17th Nov 2017: Baseline model (base-104) achieved mean IoU of 69.78 on the full dataset. The model is still significantly away from the target mIoU of 73.6. Only significant component missing from the implementation is using Resnet-101 pre-trained on Imagenet (I am currently using MS-COCO pretrained Network as the baseline). Other minor additions (normalization of the input (included in base-105), number of iterations to wait before lr decay, etc) will also be included.

Journey

Baseline Model

Name Details mIoU
base-101 - No Normalization
- No gradient for batch norm
- Drop last batch if not complete
- Volatile = false for eval
- Poly Decay every 10 iterations
- learnable upsampling with transposed convolution
35.91
base102 Exactly like base-101, except
- no polynomial decay
- fixed bilinear upsampling layers
68.84
base103 Exactly like base-102, except
- with polynomial decay(every 10 iter))
68.88
base104 Exactly like base-103, except
-with poly decay (every iter)
69.78
base105 base-104, except
- with normalization of input to 0 mean and unit variance
68.86
base110 - ImageNet pretrained
- Normalization
- poly decay(eveyr iter)
same lr for all layers
65.97
base111 - Imagenent pretrained
- Normalization
- poly decay (every iter)
- 10x lr for classification module
65.67

Adversarial Models

Name Details miou
adv101 - base105 as G
- Optim(D): SGD lr 0.0001, momentum=0.5,decay= 0.0001
68.96
adv102 - base105
- 0.25 label smoothing for real labels in D
- Optim(D) SGD lr 0.0001, momentum=0.5,decay= 0.0001
67.14
adv103 - base105
- 0.25 label smoothing for real labels in D
- Optim(D) ADAM
68.07
adv104 - base104
- 0.25 label smoothing for real labels in D
- Optim(D) SGD lr 0.0001, momentum=0.5,decay= 0.0001
63.37
adv105 base104 as G
- everything else like adv103
Very poor (didn't finish training)
adv105-cuda - base105
- 0.25 label smoothing for real labels in D
- Optim(D) SGD lr 0.0001, momentum=0.5,decay= 0.0001
- batch size 21
Very poor (didn't finish training)
adv106 - base104
- optim(D) ADAM
- batch_size = 21
61.50
adv201 - base 105
- label smoothing 0.25
- Adam
69.33
adv202 - base105
- label smoothing 0.1
- d_optim Adam
69.93
adv203 - base105
- label smoothing 0.1
- Adam d_lr = 0.0001 and g_lr = 0.00025
69.72
adv204 - base105
- label smoothing 0.1
- Adam d_lr = 0.00001, g_lr = 0.00025
69.28
Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].