RefineMask (CVPR 2021)

Overview

RefineMask: Towards High-Quality Instance Segmentation
with Fine-Grained Features (CVPR 2021)

This repo is the official implementation of RefineMask: Towards High-Quality Instance Segmentation with Fine-Grained Features.

Framework

image

Main Results

Results on COCO

Method Backbone Schedule AP AP* Checkpoint
Mask R-CNN R50-FPN 1x 34.7 36.8
RefineMask R50-FPN 1x 37.3 40.6 download
Mask R-CNN R50-FPN 2x 35.4 37.7
RefineMask R50-FPN 2x 37.8 41.2 download
Mask R-CNN R101-FPN 1x 36.1 38.4
RefineMask R101-FPN 1x 38.6 41.8 download
Mask R-CNN R101-FPN 2x 36.6 39.3
RefineMask R101-FPN 2x 39.0 42.4 download

Note: No data augmentations except standard horizontal flipping were used.

Results on LVIS

Method Backbone Schedule AP APr APc APf Checkpoint
Mask R-CNN R50-FPN 1x 22.1 10.1 21.7 30.0
RefineMask R50-FPN 1x 25.7 13.8 24.9 31.8 download
Mask R-CNN R101-FPN 1x 23.7 12.3 23.2 29.1
RefineMask R101-FPN 1x 27.1 15.6 26.2 33.1 download

Results on Cityscapes

Method Backbone Schedule AP APS APM APL Checkpoint
Mask R-CNN R50-FPN 1x 33.8 12.0 31.5 51.8
RefineMask R50-FPN 1x 37.6 14.0 35.4 57.9 download

Efficiency of RefineMask

Method AP AP* FPS
Mask R-CNN 34.7 36.8 15.7
PointRend 35.6 38.7 11.4
HTC 37.4 40.7 4.4
RefineMask 37.3 40.9 11.4

Usage

Requirements

  • Python 3.6+
  • Pytorch 1.5.0
  • mmcv-full 1.0.5

Datasets

data
  ├── coco
  |   ├── annotations
  │   │   │   ├── instances_train2017.json
  │   │   │   ├── instances_val2017.json
  │   │   │   ├── lvis_v0.5_val_cocofied.json
  │   ├── train2017
  │   │   ├── 000000004134.png
  │   │   ├── 000000031817.png
  │   │   ├── ......
  │   ├── val2017
  │   ├── test2017
  ├── lvis
  |   ├── annotations
  │   │   │   ├── lvis_v1_train.json
  │   │   │   ├── lvis_v1_val.json
  │   ├── train2017
  │   │   ├── 000000004134.png
  │   │   ├── 000000031817.png
  │   │   ├── ......
  │   ├── val2017
  │   ├── test2017
  ├── cityscapes
  |   ├── annotations
  │   │   │   ├── instancesonly_filtered_gtFine_train.json
  │   │   │   ├── instancesonly_filtered_gtFine_val.json
  │   ├── leftImg8bit
  │   |   ├── train
  │   │   ├── val
  │   │   ├── test

Note: We used the lvis-v1.0 dataset which consists of 1203 categories.

Training

./scripts/dist_train.sh ./configs/refinemask/coco/r50-refinemask-1x.py 8

Note: The codes only support batch size 1 per GPU, and we trained all models with a total batch size 16x1. If you train models with a total batch size 8x1, the performance may drop. We will support batch size 2 or more per GPU later. You can use ./scripts/slurm_train.sh for training with multi-nodes.

Inference

./scripts/dist_test.sh ./configs/refinemask/coco/r50-refinemask-1x.py xxxx.pth 8

Citation

@article{zhang2021refinemask,
  title={RefineMask: Towards High-Quality Instance Segmentation with Fine-Grained Features},
  author={Gang, Zhang and Xin, Lu and Jingru, Tan and Jianmin, Li and Zhaoxiang, Zhang and Quanquan, Li and Xiaolin, Hu},
  journal={arXiv preprint arXiv:2104.08569},
  year={2021}
}
Comments
  • Attribute error: list object has no attribute shape (occur during the evaluation after 12 epochs)

    Attribute error: list object has no attribute shape (occur during the evaluation after 12 epochs)

    Hello, I'm able to run refine mask successfully using mmcv-full 1.3.12 and mmdet - 2.6.0 on windows. It runs fine for training and giving the below error during evaluation after 12 epochs. If possible then can you help me out on this and let me know what mistake I'm doing particularly? Thank you in advance.

    File "tools/test.py", line 241, in main() File "tools/test.py", line 206, in main outputs = single_gpu_test(model, data_loader, args.show, args.show_dir, File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\apis\test.py", line 28, in single_gpu_test result = model(return_loss=False, rescale=True, **data) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl return forward_call(*input, **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmcv\parallel\data_parallel.py", line 42, in forward return super().forward(*inputs, **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\torch\nn\parallel\data_parallel.py", line 166, in forward return self.module(*inputs[0], **kwargs[0]) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\torch\nn\modules\module.py", line 1051, in _call_impl return forward_call(*input, **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmcv\runner\fp16_utils.py", line 98, in new_func return old_func(*args, **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\models\detectors\base.py", line 174, in forward return self.forward_test(img, img_metas, **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\models\detectors\base.py", line 147, in forward_test return self.simple_test(imgs[0], img_metas[0], **kwargs) File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\models\detectors\two_stage.py", line 182, in simple_test return self.roi_head.simple_test( File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\models\roi_heads\standard_roi_head.py", line 264, in simple_test segm_results = self.simple_test_mask( File "C:\Users\anaconda3\envs\mmcv\lib\site-packages\mmdet\models\roi_heads\refine_roi_head.py", line 92, in simple_test_mask if det_bboxes.shape[0] == 0: AttributeError: 'list' object has no attribute 'shape'

    opened by apanand14 17
  • mmcv-full 1.3.12 is used but imcompatible

    mmcv-full 1.3.12 is used but imcompatible

    Hello,

    I'm trying to run RefineMask repository. I have a question regarding this. Is it only run with torch 1.5.0 and mmcv-full 1.5.0 versions? Because I have higher version of torch (1.8.1+cu102) and mmcv-full (1.3.12) and when I run it then it gives an error mmcv 1.3.12 is used but incompatible. I try to install mmcv-full 1.5.0 but it throws an error. Can you guide me how should I proceed further? Thank you in advance.

    opened by apanand14 10
  • loss nan in Lvis and coco

    loss nan in Lvis and coco

    I use 8GPU training the model, the lr is set to 0.02 following your config, but the loss is nan; when I set the lr to 0.0025 in another issue you answered, the loss is normal. can you give me some help, thanks

    opened by niecongchong 9
  • TypeError: init_weights() missing 1 required positional argument: 'pretrained'

    TypeError: init_weights() missing 1 required positional argument: 'pretrained'

    Traceback (most recent call last): File "tools/train.py", line 188, in main() File "tools/train.py", line 162, in main model.init_weights() File "/home/ubuntu/.conda/envs/open-mmlab/lib/python3.8/site-packages/mmcv/runner/base_module.py", line 55, in init_weights m.init_weights() TypeError: init_weights() missing 1 required positional argument: 'pretrained'

    opened by sanmulab 9
  • About simplehead

    About simplehead

    nice work ! I have a question about SimpleRefineMaskHead in refine_mask_head.py There is not mentioned in the article and README. May I ask how its performance is different from the normal model? What changes have been made to the simple model Looking forward to your reply!

    opened by torchmyheart 5
  • how to apply refine mask in cascade mask rcnn / HTC?

    how to apply refine mask in cascade mask rcnn / HTC?

    hello! thanks for your beautiful work. I have a question that how to apply refine mask in cascade mask rcnn / HTC? Cause there are three stage in HTC, should I apply refine mask in the last stage or all the three stage? thanks for your reply~

    opened by fuweifu-vtoo 4
  • The loss suddenly boom

    The loss suddenly boom

    Hi, @zhanggang001 ,I‘m still a beginning level learner and I have a question that don't know how to fix it. Without changing the RefineMask config(except DataRoot and num_classes),the loss suddenly boom in epoch1 or epoch2

    2021-05-25 09:52:39,591 - mmdet - INFO - Epoch [1][550/1445] lr: 2.000e-02, eta: 3:27:36, time: 0.354, data_time: 0.002, memory: 5616, loss_rpn_cls: 0.1940, loss_rpn_bbox: 0.1124, loss_cls: 0.6903, acc: 89.3125, loss_bbox: 0.7711, loss_instance: 1.7145, loss_semantic: 1.1350, loss: 4.6172, grad_norm: 49.7330 2021-05-25 09:52:58,284 - mmdet - INFO - Epoch [1][600/1445] lr: 2.000e-02, eta: 3:27:43, time: 0.374, data_time: 0.003, memory: 5616, loss_rpn_cls: 0.1819, loss_rpn_bbox: 0.1232, loss_cls: 0.7582, acc: 88.1094, loss_bbox: 0.8542, loss_instance: 1.6824, loss_semantic: 0.7272, loss: 4.3272, grad_norm: 6.2210 2021-05-25 09:53:13,881 - mmdet - INFO - Epoch [1][650/1445] lr: 2.000e-02, eta: 3:25:04, time: 0.312, data_time: 0.003, memory: 5616, loss_rpn_cls: 10.1637, loss_rpn_bbox: 6.9990, loss_cls: 34.9405, acc: 91.4102, loss_bbox: 13.7452, loss_instance: 234.7180, loss_semantic: 7664.2850, loss: 7964.8515, grad_norm: 340497.7997 2021-05-25 09:53:27,481 - mmdet - INFO - Epoch [1][700/1445] lr: 2.000e-02, eta: 3:21:08, time: 0.272, data_time: 0.003, memory: 5616, loss_rpn_cls: 35289.9099, loss_rpn_bbox: 44193.1067, loss_cls: 875153.7309, acc: 94.6094, loss_bbox: 1115768.8280, loss_instance: 22061.8204, loss_semantic: 499100.5092, loss: 2591567.9840, grad_norm: 112257859.0582 2021-05-25 09:53:41,763 - mmdet - INFO - Epoch [1][750/1445] lr: 2.000e-02, eta: 3:18:13, time: 0.286, data_time: 0.003, memory: 5616, loss_rpn_cls: 20893164722860.7344, loss_rpn_bbox: 7885642268278.1553, loss_cls: 1349368483407166.5000, acc: 86.1094, loss_bbox: 627283726521955.8750, loss_instance: 4757506602120.5703, loss_semantic: 3351921805304.0806, loss: 2013540377899481.0000, grad_norm: 117931859697361120.0000 2021-05-25 09:53:56,211 - mmdet - INFO - Epoch [1][800/1445] lr: 2.000e-02, eta: 3:15:45, time: 0.289, data_time: 0.003, memory: 5616, loss_rpn_cls: 52192068187424022801154048.0000, loss_rpn_bbox: 61156605795124256318685184.0000, loss_cls: 12385031694969291828216463360.0000, acc: 27.7930, loss_bbox: 2810178410764419893789982720.0000, loss_instance: 320446566729177349750784.0000, loss_semantic: 7193256245805316776656896.0000, loss: 15316072270766823574903717888.0000, grad_norm: inf

    Thanks for your watching, I'm looking forward for your answering :)

    opened by Zhang2016521 4
  • The adjustment of learning rate

    The adjustment of learning rate

    Thanks for the nice work. I have a question for you. Your default is 8 cards, and you set the learning rate to 0.02. If I conduct the experiment from multiple cards to single card, does the learning rate need to be adjusted? I have tried to adjust the learning rate to 0.0025 and 0.005 for experiments, but the results are not satisfactory. May I ask if you have any suggestions on the adjustment of learning rate when switching from multiple cards to single cards? Looking forward to your reply.

    opened by cici-999 3
  • Train refinemask witth resnet 18 backbone

    Train refinemask witth resnet 18 backbone

    Hello,

    I would like to train refinemask with resnet18 and I'm trying it but I'm getting the below error. Please help me to fix this issue. Thank you in advance!

    File "tools/train.py", line 165, in main() File "tools/train.py", line 161, in main meta=meta) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/apis/train.py", line 150, in train_detector runner.run(data_loaders, cfg.workflow, cfg.total_epochs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 125, in run epoch_runner(data_loaders[i], **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 50, in train self.run_iter(data_batch, train_mode=True) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/runner/epoch_based_runner.py", line 30, in run_iter **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/parallel/data_parallel.py", line 67, in train_step return self.module.train_step(*inputs[0], **kwargs[0]) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/detectors/base.py", line 246, in train_step losses = self(**data) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl result = self.forward(*input, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/runner/fp16_utils.py", line 84, in new_func return old_func(*args, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/detectors/base.py", line 180, in forward return self.forward_train(img, img_metas, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/detectors/two_stage.py", line 142, in forward_train x = self.extract_feat(img) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/detectors/two_stage.py", line 84, in extract_feat x = self.neck(x) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl result = self.forward(*input, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/runner/fp16_utils.py", line 84, in new_func return old_func(*args, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/necks/fpn.py", line 172, in forward for i, lateral_conv in enumerate(self.lateral_convs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmdet/models/necks/fpn.py", line 172, in for i, lateral_conv in enumerate(self.lateral_convs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl result = self.forward(*input, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/mmcv/cnn/bricks/conv_module.py", line 185, in forward x = self.conv(x) File "/home/ec2-user/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/module.py", line 722, in _call_impl result = self.forward(*input, **kwargs) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 419, in forward return self._conv_forward(input, self.weight) File "/home/Anaconda3/envs/openmmlab/lib/python3.7/site-packages/torch/nn/modules/conv.py", line 416, in _conv_forward self.padding, self.dilation, self.groups) RuntimeError: Given groups=1, weight of size [256, 256, 1, 1], expected input[1, 64, 200, 272] to have 256 channels, but got 64 channels instead

    opened by apanand14 3
  • About the samples_per_gpu and learning rate of Cityscapes dataset

    About the samples_per_gpu and learning rate of Cityscapes dataset

    I see the samples_per_gpu of Cityscapes is change to 2, but the learning rate is still set to 0.01. I understand the modification of samples_per_gpu of COCO dataset, for the batchsize is 16 (8 GPU * 2 samples_per_gpu) and corresponding to learning rate of 0.02. But I wonder when the samples_per_gpu of Cityscapes dataset is 2, the learning rate should also change?

    opened by AGanPoi 2
  • The testing results of the whole dataset is empty.

    The testing results of the whole dataset is empty.

    First of all, thank you very much for sharing your work. I tested on coco dataset, but the test result showed that the whole dataset was empty. May I ask how to solve this problem? thanks.

    [>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>] 5000/5000, 18.3 task/s, elapsed: 273s, ETA: 0s writing results to work_dirs/r50-refinemask-1x/result.pkl

    Evaluating bbox... Loading and preparing results... The testing results of the whole dataset is empty. load gt json load pred json Traceback (most recent call last): File "/data/user-njf86/ding/RefineMask-main/tools/test.py", line 153, in main() File "/data/user-njf86/ding/RefineMask-main/tools/test.py", line 149, in main dataset.evaluate(outputs, args.eval, classwise=True, **kwargs) File "/data/user-njf86/ding/RefineMask-main/mmdet/datasets/coco.py", line 556, in evaluate metric='segm', File "/data/user-njf86/ding/RefineMask-main/mmdet/datasets/coco.py", line 655, in eval_cocofied_lvis_result lvis_dt = LVISResults(lvis_gt, result_file) File "/home/user-njf/anaconda3/envs/mmdet_test/lib/python3.6/site-packages/lvis/results.py", line 44, in init if 'bbox' in result_anns[0]: IndexError: list index out of range Traceback (most recent call last): File "/home/user-njf/anaconda3/envs/mmdet_test/lib/python3.6/runpy.py", line 193, in _run_module_as_main "main", mod_spec) File "/home/user-njf/anaconda3/envs/mmdet_test/lib/python3.6/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/user-njf/anaconda3/envs/mmdet_test/lib/python3.6/site-packages/torch/distributed/launch.py", line 260, in main() File "/home/user-njf/anaconda3/envs/mmdet_test/lib/python3.6/site-packages/torch/distributed/launch.py", line 256, in main cmd=cmd) subprocess.CalledProcessError: Command '['/home/user-njf/anaconda3/envs/mmdet_test/bin/python', '-u', '/data/user-njf86/ding/RefineMask-main/tools/test.py', '--local_rank=0', './configs/refinemask/coco/r50-refinemask-1x.py', 'work_dirs/r50-refinemask-1x/latest.pth', '--launcher', 'none', '--eval', 'bbox', 'segm', '--out', 'work_dirs/r50-refinemask-1x/result.pkl', '--tmpdir', 'work_dirs/r50-refinemask-1x/tmpdir']' returned non-zero exit status 1.

    opened by cici-999 2
  • About get flops

    About get flops

    I would like to know how to get the flops of the model When using get_flops.py in tools to get flops, there is an error here

      File "/mmdet/models/detectors/two_stage.py", line 88, in forward_dummy
        roi_outs = self.roi_head.forward_dummy(x, proposals)
    TypeError: forward_dummy() missing 1 required positional argument: 'roi_labels'
    
    This is def forward_dummy in two_stage.py:
        def forward_dummy(self, img):
            """Used for computing network flops.
    
            See `mmdetection/tools/analysis_tools/get_flops.py`
            """
            outs = ()
            # backbone
            x = self.extract_feat(img)
            # rpn
            if self.with_rpn:
                rpn_outs = self.rpn_head(x)
                outs = outs + (rpn_outs, )
            proposals = torch.randn(1000, 4).to(img.device)
            # roi_head
            # roi_labels = torch.zeros(1000)
            roi_outs = self.roi_head.forward_dummy(x, proposals)  # roi_labels
            outs = outs + (roi_outs, )
            return outs
    

    refinemask adds roi_labels in def _mask_forward, refine_roi_head.py during training I tried defining roi_labels with all 0

            roi_labels = torch.zeros(1000)
            roi_outs = self.roi_head.forward_dummy(x, proposals, roi_labels)
    

    but have error

      File "/mmdet/mmdet/models/roi_heads/mask_heads/refine_mask_head.py", line 561, in forward
        instance_logits = self.stage_instance_logits[idx](instance_feats)[torch.arange(len(rois)), roi_labels][:, None]
    IndexError: tensors used as indices must be long, byte or bool tensors
    

    when I change the type to bool

      File "/mmdet/mmdet/models/roi_heads/mask_heads/refine_mask_head.py", line 561, in forward
        instance_logits = self.stage_instance_logits[idx](instance_feats)[torch.arange(len(rois)), roi_labels][:, None]
    IndexError: The shape of the mask [1000] at index 0 does not match the shape of the indexed tensor [100, 1, 14, 14] at index 1
    

    How to implement the calculation, hope you can help me! I don't understand the dimension and type of the roi_labels

    # this is forward_dummy in mmdet/models/roi_heads/standard_roi_head.py
        def forward_dummy(self, x, proposals):
            """Dummy forward function."""
            # bbox head
            outs = ()
            rois = bbox2roi([proposals])
            if self.with_bbox:
                bbox_results = self._bbox_forward(x, rois)
                outs = outs + (bbox_results['cls_score'],
                               bbox_results['bbox_pred'])
            # mask head
            if self.with_mask:
                mask_rois = rois[:100]
                mask_results = self._mask_forward(x, mask_rois)
                outs = outs + (mask_results['mask_pred'], )
            return outs
    
    opened by torchmyheart 3
Owner
Gang Zhang
Ph.D. student in Tsinghua University [email protected]
Gang Zhang
[CVPR 21] Vectorization and Rasterization: Self-Supervised Learning for Sketch and Handwriting, IEEE Conf. on Computer Vision and Pattern Recognition (CVPR), 2021.

Vectorization and Rasterization: Self-Supervised Learning for Sketch and Handwriting, CVPR 2021. Ayan Kumar Bhunia, Pinaki nath Chowdhury, Yongxin Yan

Ayan Kumar Bhunia 44 Dec 12, 2022
[CVPR 2022] CoTTA Code for our CVPR 2022 paper Continual Test-Time Domain Adaptation

CoTTA Code for our CVPR 2022 paper Continual Test-Time Domain Adaptation Prerequisite Please create and activate the following conda envrionment. To r

Qin Wang 87 Jan 8, 2023
CVPR 2021 Challenge on Super-Resolution Space

Learning the Super-Resolution Space Challenge NTIRE 2021 at CVPR Learning the Super-Resolution Space challenge is held as a part of the 6th edition of

andreas 104 Oct 26, 2022
[CVPR 2021] Released code for Counterfactual Zero-Shot and Open-Set Visual Recognition

Counterfactual Zero-Shot and Open-Set Visual Recognition This project provides implementations for our CVPR 2021 paper Counterfactual Zero-S

null 144 Dec 24, 2022
PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 2021

Neural Scene Flow Fields PyTorch implementation of paper "Neural Scene Flow Fields for Space-Time View Synthesis of Dynamic Scenes", CVPR 20

Zhengqi Li 585 Jan 4, 2023
Dense Contrastive Learning (DenseCL) for self-supervised representation learning, CVPR 2021.

Dense Contrastive Learning for Self-Supervised Visual Pre-Training This project hosts the code for implementing the DenseCL algorithm for se

Xinlong Wang 491 Jan 3, 2023
Code for Multiple Instance Active Learning for Object Detection, CVPR 2021

Language: 简体中文 | English Introduction This is the code for Multiple Instance Active Learning for Object Detection, CVPR 2021. Installation A Linux pla

Tianning Yuan 269 Dec 21, 2022
Propagate Yourself: Exploring Pixel-Level Consistency for Unsupervised Visual Representation Learning, CVPR 2021

Propagate Yourself: Exploring Pixel-Level Consistency for Unsupervised Visual Representation Learning By Zhenda Xie*, Yutong Lin*, Zheng Zhang, Yue Ca

Zhenda Xie 293 Dec 20, 2022
Official pytorch implementation of paper "Inception Convolution with Efficient Dilation Search" (CVPR 2021 Oral).

IC-Conv This repository is an official implementation of the paper Inception Convolution with Efficient Dilation Search. Getting Started Download Imag

Jie Liu 111 Dec 31, 2022
Code for our CVPR 2021 paper "MetaCam+DSCE"

Joint Noise-Tolerant Learning and Meta Camera Shift Adaptation for Unsupervised Person Re-Identification (CVPR'21) Introduction Code for our CVPR 2021

FlyingRoastDuck 59 Oct 31, 2022
[CVPR 2021] Anycost GANs for Interactive Image Synthesis and Editing

Anycost GAN video | paper | website Anycost GANs for Interactive Image Synthesis and Editing Ji Lin, Richard Zhang, Frieder Ganz, Song Han, Jun-Yan Zh

MIT HAN Lab 726 Dec 28, 2022
[CVPR 2021] Involution: Inverting the Inherence of Convolution for Visual Recognition, a brand new neural operator

involution Official implementation of a neural operator as described in Involution: Inverting the Inherence of Convolution for Visual Recognition (CVP

Duo Li 1.3k Dec 28, 2022
DeFMO: Deblurring and Shape Recovery of Fast Moving Objects (CVPR 2021)

Evaluation, Training, Demo, and Inference of DeFMO DeFMO: Deblurring and Shape Recovery of Fast Moving Objects (CVPR 2021) Denys Rozumnyi, Martin R. O

Denys Rozumnyi 139 Dec 26, 2022
[CVPR 2021] 'Searching by Generating: Flexible and Efficient One-Shot NAS with Architecture Generator'

[CVPR2021] Searching by Generating: Flexible and Efficient One-Shot NAS with Architecture Generator Overview This is the entire codebase for the paper

null 35 Dec 1, 2022
Official code of the paper "ReDet: A Rotation-equivariant Detector for Aerial Object Detection" (CVPR 2021)

ReDet: A Rotation-equivariant Detector for Aerial Object Detection ReDet: A Rotation-equivariant Detector for Aerial Object Detection (CVPR2021), Jiam

csuhan 334 Dec 23, 2022
Back to the Feature: Learning Robust Camera Localization from Pixels to Pose (CVPR 2021)

Back to the Feature with PixLoc We introduce PixLoc, a neural network for end-to-end learning of camera localization from an image and a 3D model via

Computer Vision and Geometry Lab 610 Jan 5, 2023
Repository for "Exploring Sparsity in Image Super-Resolution for Efficient Inference", CVPR 2021

SMSR Reposity for "Exploring Sparsity in Image Super-Resolution for Efficient Inference" [arXiv] Highlights Locate and skip redundant computation in S

Longguang Wang 225 Dec 26, 2022
[CVPR 2021] Modular Interactive Video Object Segmentation: Interaction-to-Mask, Propagation and Difference-Aware Fusion

[CVPR 2021] Modular Interactive Video Object Segmentation: Interaction-to-Mask, Propagation and Difference-Aware Fusion

Rex Cheng 364 Jan 3, 2023
CVPR 2021: "Generating Diverse Structure for Image Inpainting With Hierarchical VQ-VAE"

Diverse Structure Inpainting ArXiv | Papar | Supplementary Material | BibTex This repository is for the CVPR 2021 paper, "Generating Diverse Structure

null 152 Nov 4, 2022