All Projects → jyhjinghwang → Segsort

jyhjinghwang / Segsort

Licence: mit
SegSort: Segmentation by Discriminative Sorting of Segments

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to Segsort

SPML
Universal Weakly Supervised Segmentation by Pixel-to-Segment Contrastive Learning
Stars: ✭ 81 (-37.69%)
Mutual labels:  metric-learning, semantic-segmentation
Nas Segm Pytorch
Code for Fast Neural Architecture Search of Compact Semantic Segmentation Models via Auxiliary Cells, CVPR '19
Stars: ✭ 126 (-3.08%)
Mutual labels:  semantic-segmentation
Crfasrnn pytorch
CRF-RNN PyTorch version http://crfasrnn.torr.vision
Stars: ✭ 102 (-21.54%)
Mutual labels:  semantic-segmentation
Pytorch Semantic Segmentation
PyTorch for Semantic Segmentation
Stars: ✭ 1,580 (+1115.38%)
Mutual labels:  semantic-segmentation
Autoannotationtool
A label tool aim to reduce semantic segmentation label time, rectangle and polygon annotation is supported
Stars: ✭ 113 (-13.08%)
Mutual labels:  semantic-segmentation
Real Time Semantic Segmentation
lightweight and efficient cnn for semantic segmentation, my blog address:
Stars: ✭ 118 (-9.23%)
Mutual labels:  semantic-segmentation
Segmentation
Tensorflow implementation : U-net and FCN with global convolution
Stars: ✭ 101 (-22.31%)
Mutual labels:  semantic-segmentation
Sunrgbd Meta Data
train test labels for sunrgbd
Stars: ✭ 127 (-2.31%)
Mutual labels:  semantic-segmentation
Refinenet Pytorch
RefineNet-101 VOC in PyTorch
Stars: ✭ 125 (-3.85%)
Mutual labels:  semantic-segmentation
Mmsegmentation
OpenMMLab Semantic Segmentation Toolbox and Benchmark.
Stars: ✭ 2,875 (+2111.54%)
Mutual labels:  semantic-segmentation
Declutr
The corresponding code from our paper "DeCLUTR: Deep Contrastive Learning for Unsupervised Textual Representations". Do not hesitate to open an issue if you run into any trouble!
Stars: ✭ 111 (-14.62%)
Mutual labels:  metric-learning
Cen
[NeurIPS 2020] Code release for paper "Deep Multimodal Fusion by Channel Exchanging" (In PyTorch)
Stars: ✭ 112 (-13.85%)
Mutual labels:  semantic-segmentation
Openvehiclevision
An opensource lib. for vehicle vision applications (written by MATLAB), lane marking detection, road segmentation
Stars: ✭ 120 (-7.69%)
Mutual labels:  semantic-segmentation
Dabnet
Depth-wise Asymmetric Bottleneck for Real-time Semantic Segmentation (BMVC2019)
Stars: ✭ 109 (-16.15%)
Mutual labels:  semantic-segmentation
Semantic Segmentation Of Remote Sensing Images
遥感图像的语义分割,基于深度学习,在Tensorflow框架下,利用TF.Keras,运行环境TF2.0+
Stars: ✭ 125 (-3.85%)
Mutual labels:  semantic-segmentation
Semanticsegpapercollection
Stars: ✭ 102 (-21.54%)
Mutual labels:  semantic-segmentation
Fpconv
FPConv: Learning Local Flattening for Point Convolution, CVPR 2020
Stars: ✭ 114 (-12.31%)
Mutual labels:  semantic-segmentation
Dml cross entropy
Code for the paper "A unifying mutual information view of metric learning: cross-entropy vs. pairwise losses" (ECCV 2020 - Spotlight)
Stars: ✭ 117 (-10%)
Mutual labels:  metric-learning
Dise Domain Invariant Structure Extraction
Pytorch Implementation -- All about Structure: Adapting Structural Information across Domains for Boosting Semantic Segmentation, CVPR 2019
Stars: ✭ 129 (-0.77%)
Mutual labels:  semantic-segmentation
Semsegpipeline
A simpler way of reading and augmenting image segmentation data into TensorFlow
Stars: ✭ 126 (-3.08%)
Mutual labels:  semantic-segmentation

SegSort: Segmentation by Discriminative Sorting of Segments

By Jyh-Jing Hwang, Stella X. Yu, Jianbo Shi, Maxwell D. Collins, Tien-Ju Yang, Xiao Zhang, and Liang-Chieh Chen

Almost all existing deep learning approaches for semantic segmentation tackle this task as a pixel-wise classification problem. Yet humans understand a scene not in terms of pixels, but by decomposing it into perceptual groups and structures that are the basic building blocks of recognition. This motivates us to propose an end-to-end pixel-wise metric learning approach that mimics this process. In our approach, the optimal visual representation determines the right segmentation within individual images and associates segments with the same semantic classes across images. The core visual learning problem is therefore to maximize the similarity within segments and minimize the similarity between segments. Given a model trained this way, inference is performed consistently by extracting pixel-wise embeddings and clustering, with the semantic label determined by the majority vote of its nearest neighbors from an annotated set.

As a result, we present the SegSort, as a first attempt using deep learning for unsupervised semantic segmentation, achieving 76% performance of its supervised counterpart. When supervision is available, SegSort shows consistent improvements over conventional approaches based on pixel-wise softmax training. Additionally, our approach produces more precise boundaries and consistent region predictions. The proposed SegSort further produces an interpretable result, as each choice of label can be easily understood from the retrieved nearest segments.

SegSort is published in ICCV 2019, see our paper for more details.

Codebase

This release of SegSort is based on our previous published codebase AAF in ECCV 2018. It is also easy to integrate SegSort modules network/segsort/ with the popular codebase DeepLab.

Prerequisites

  1. Linux
  2. Python2.7 or Python3 (>=3.5)
  3. Cuda 8.0 and Cudnn 6

Required Python Packages

  1. tensorflow 1.X
  2. numpy
  3. scipy
  4. tqdm
  5. PIL
  6. opencv

Data Preparation

  • PASCAL VOC 2012

  • Augmented PASCAL VOC training set by SBD. We process the ground truth masks, which are placed as SegSort/dataset/voc12/sbd_clsimg.zip. Please unzip it and put it besides the VOC2012/ folder as sbd/dataset/clsimg/.

  • The ground truth semantic segmentation masks are reformatted as grayscale images, or you can download them here. Please put them under the VOC2012/ folder.

  • The oversegmentation masks (from contours) can be produced by combining any contour detectors with gPb-owt-ucm. We provide the HED-owt-ucm masks here. Please put them under the VOC2012/ folder.

  • Dataset folder structure:

    sbd/

    • dataset/
      • clsimg/

    VOC2012/

    • JPEGImages/
    • segcls/
    • hed/

ImageNet Pre-Trained Models

Download ResNet101.v1 from Tensorflow-Slim. Please put it under a new directory SegSort/snapshots/imagenet/trained/.

We also provide our SegSort models (supervised/unsupervised) trained on PASCAL VOC and results here.

Bashscripts to Get Started

  • SegSort (Single-GPU and fast training)
source bashscripts/voc12/train_segsort.sh
  • SegSort (Multi-GPUs)
source bashscripts/voc12/train_segsort_mgpu.sh
  • Unsupervised SegSort (Single-GPU)
source bashscripts/voc12/train_segsort_unsup.sh
  • Baseline Models: Please refer to our previous codebase AAF.

Citation

If you find this code useful for your research, please consider citing our paper SegSort: Segmentation by Discriminative Sorting of Segments.

@inproceedings{hwang2019segsort,
  title={SegSort: Segmentation by Discriminative Sorting of Segments},
  author={Hwang, Jyh-Jing and Yu, Stella X and Shi, Jianbo and Collins, Maxwell D and Yang, Tien-Ju and Zhang, Xiao and Chen, Liang-Chieh},
  booktitle={Proceedings of the IEEE International Conference on Computer Vision},
  pages={7334--7344},
  year={2019}
}

License

SegSort is released under the MIT License (refer to the LICENSE file for details).

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].