All Projects → w-hc → pcv

w-hc / pcv

Licence: MIT License
Pixel Consensus Voting for Panoptic Segmentation (CVPR 2020)

Programming Languages

python
139335 projects - #7 most used programming language

Projects that are alternatives of or similar to pcv

Cvpr2021 Papers With Code
CVPR 2021 论文和开源项目合集
Stars: ✭ 7,138 (+30934.78%)
Mutual labels:  cvpr, cvpr2020
deep cage
code for "Neural Cages for Detail-Preserving 3D Deformations"
Stars: ✭ 115 (+400%)
Mutual labels:  cvpr, cvpr2020
Meta-Fine-Tuning
[CVPR 2020 VL3] The repository for meta fine-tuning in cross-domain few-shot learning.
Stars: ✭ 29 (+26.09%)
Mutual labels:  cvpr, cvpr2020
CVPR-2020-point-cloud-analysis
CVPR 2020 papers focusing on point cloud analysis
Stars: ✭ 48 (+108.7%)
Mutual labels:  cvpr, cvpr2020
SCT
SCT: Set Constrained Temporal Transformer for Set Supervised Action Segmentation (CVPR2020) https://arxiv.org/abs/2003.14266
Stars: ✭ 35 (+52.17%)
Mutual labels:  cvpr, cvpr2020
Vibe
Official implementation of CVPR2020 paper "VIBE: Video Inference for Human Body Pose and Shape Estimation"
Stars: ✭ 2,080 (+8943.48%)
Mutual labels:  cvpr, cvpr2020
HiCMD
[CVPR2020] Hi-CMD: Hierarchical Cross-Modality Disentanglement for Visible-Infrared Person Re-Identification
Stars: ✭ 64 (+178.26%)
Mutual labels:  cvpr, cvpr2020
pytorch-psetae
PyTorch implementation of the model presented in "Satellite Image Time Series Classification with Pixel-Set Encoders and Temporal Self-Attention"
Stars: ✭ 117 (+408.7%)
Mutual labels:  cvpr, cvpr2020
LUVLi
[CVPR 2020] Re-hosting of the LUVLi Face Alignment codebase. Please download the codebase from the original MERL website by agreeing to all terms and conditions. By using this code, you agree to MERL's research-only licensing terms.
Stars: ✭ 24 (+4.35%)
Mutual labels:  cvpr, cvpr2020
attention-target-detection
[CVPR2020] "Detecting Attended Visual Targets in Video"
Stars: ✭ 105 (+356.52%)
Mutual labels:  cvpr, cvpr2020
cvpr clvision challenge
CVPR 2020 Continual Learning Challenge - Submit your CL algorithm today!
Stars: ✭ 57 (+147.83%)
Mutual labels:  cvpr2020
AODA
Official implementation of "Adversarial Open Domain Adaptation for Sketch-to-Photo Synthesis"(WACV 2022/CVPRW 2021)
Stars: ✭ 44 (+91.3%)
Mutual labels:  cvpr
meta-interpolation
Source code for CVPR 2020 paper "Scene-Adaptive Video Frame Interpolation via Meta-Learning"
Stars: ✭ 75 (+226.09%)
Mutual labels:  cvpr2020
PASS
Panoramic Annular Semantic Segmentation
Stars: ✭ 25 (+8.7%)
Mutual labels:  panoptic-segmentation
Voice2Mesh
CVPR 2022: Cross-Modal Perceptionist: Can Face Geometry be Gleaned from Voices?
Stars: ✭ 67 (+191.3%)
Mutual labels:  cvpr
CoMoGAN
CoMoGAN: continuous model-guided image-to-image translation. CVPR 2021 oral.
Stars: ✭ 139 (+504.35%)
Mutual labels:  cvpr
MonoRUn
[CVPR'21] MonoRUn: Monocular 3D Object Detection by Reconstruction and Uncertainty Propagation
Stars: ✭ 85 (+269.57%)
Mutual labels:  cvpr
learning2hash.github.io
Website for "A survey of learning to hash for Computer Vision" https://learning2hash.github.io
Stars: ✭ 14 (-39.13%)
Mutual labels:  cvpr
CADA
Attending to Discriminative Certainty for Domain Adaptation
Stars: ✭ 17 (-26.09%)
Mutual labels:  cvpr
systolic-array-dataflow-optimizer
A general framework for optimizing DNN dataflow on systolic array
Stars: ✭ 21 (-8.7%)
Mutual labels:  deconvolution

Pixel Consensus Voting (CVPR 2020)

backproj panel

The core of our approach, Pixel Consensus Voting, is a framework for instance segmentation based on the Generalized Hough transform. Pixels cast discretized, probabilistic votes for the likely regions that contain instance centroids. At the detected peaks that emerge in the voting heatmap, backprojection is applied to collect pixels and produce instance masks. Unlike a sliding window detector that densely enumerates object proposals, our method detects instances as a result of the consensus among pixel-wise votes. We implement vote aggregation and backprojection using native operators of a convolutional neural network. The discretization of centroid voting reduces the training of instance segmentation to pixel labeling, analogous and complementary to FCN-style semantic segmentation, leading to an efficient and unified architecture that jointly models things and stuff. We demonstrate the effectiveness of our pipeline on COCO and Cityscapes Panoptic Segmentation and obtain competitive results.

Quick Intro

  • The codebase contains the essential ingredients of PCV, including various spatial discretization schemes and convolutional backprojection inference. The network backbone is a simple FPN on ResNet.

  • Visualzier 1 (vis.py): loads a single image into a dynamic, interacive interface that allows users to click on pixels to inspect model prediction. It is built on matplotlib interactive API and jupyter widgets. Under the hood it's React.

  • Visualizer 2 (pan_vis.py): A global inspector that take panoptic segmentation prediction and displays prediction segments against ground truth. Useful to track down which images make the most serious error and how.

  • The core of PCV is contained in src/pcv. The results reported in the paper uses src/pcv/pcv_basic. There are also a few modification ideas that didn't work out e.g. "inner grid collapse" (src/pcv/pcv_igc), erasing boundary loss src/pcv/pcv_boundless, smoothened gt assignment src/pcv/pcv_smooth.

  • The deconv voting filter weight intializaiton is in src/pcv/components/ballot.py. Different deconv discretization schemes can be found in src/pcv/components/grid_specs.py. src/pcv/components/snake.py manages the generation of snake grid on which pcv operates.

  • The backprojection code is in src/pcv/inference/mask_from_vote.py. Since this is a non-standard procedure of convolving a filter to do equality comparison, I implemented a simple conv using advanced indexing. See the function src/pcv/inference/mask_from_vote.py:unroll_img_inds. For a fun side-project, I am thinking about rewriting the backprojection in Julia and generate GPU code (ptx) directly through LLVM. That way we don't have to deal with CUDA kernels that are hard to maintain.

  • The main entry point is run.py and src/entry.py

Getting Started

Dependencies

  • pytorch==1.4.0
  • fabric (personal toolkit that needs to be re-factored in)
  • pycocotools
python run.py -c train
python run.py -c evaluate

runs the default PCV configuration reported in Table 3 of the paper.

Bibtex

@inproceedings{pcv2020,
  title={Pixel consensus voting for panoptic segmentation},
  author={Wang, Haochen and Luo, Ruotian and Maire, Michael and Shakhnarovich, Greg},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={9464--9473},
  year={2020}
}
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].