Implementation of " SESS: Self-Ensembling Semi-Supervised 3D Object Detection" (CVPR2020 Oral)

Related tags

Deep Learning sess
Overview

SESS: Self-Ensembling Semi-Supervised 3D Object Detection

Created by Na Zhao from National University of Singapore

teaser

Introduction

This repository contains the PyTorch implementation for our CVPR 2020 Paper "SESS: Self-Ensembling Semi-Supervised 3D Object Detection" by Na Zhao, Tat Seng Chua, Gim Hee Lee [paper]

The performance of existing point cloud-based 3D object detection methods heavily relies on large-scale high-quality 3D annotations. However, such annotations are often tedious and expensive to collect. Semi-supervised learning is a good alternative to mitigate the data annotation issue, but has remained largely unexplored in 3D object detection. Inspired by the recent success of self-ensembling technique in semi-supervised image classification task, we propose SESS, a self-ensembling semi-supervised 3D object detection framework. Specifically, we design a thorough perturbation scheme to enhance generalization of the network on unlabeled and new unseen data. Furthermore, we propose three consistency losses to enforce the consistency between two sets of predicted 3D object proposals, to facilitate the learning of structure and semantic invariances of objects. Extensive experiments conducted on SUN RGB-D and ScanNet datasets demonstrate the effectiveness of SESS in both inductive and transductive semi-supervised 3D object detection. Our SESS achieves competitive performance compared to the state-of-the-art fully-supervised method by using only 50% labeled data.

Setup

  • Install python --This repo is tested with python 3.6.8.
  • Install pytorch with CUDA -- This repo is tested with torch 1.1, CUDA 9.0. It may wrk with newer versions, but that is not gauranteed.
  • Install tensorflow (for Tensorboard) -- This repo is tested with tensorflow 1.14.
  • Compile the CUDA layers for PointNet++, which is used in the backbone network:
    cd pointnet2
    python setup.py install
    
  • Install dependencies
    pip install -r requirements.txt
    

Usage

Data preparation

For SUNRGB-D, follow the README under sunrgbd folder.

For ScanNet, follow the README under scannet folder.

Running experiments

For SUNRGB-D, using the following command to train and evaluate:

python scripts/run_sess_sunrgbd.py

For ScanNet, using the following command to train and evaluate:

python scripts/run_sess_scannet.py

Note that we have included the pretaining phase, training phase, and two evaluation phases (inductive and transductive semi-supervised learning) as four functions in each script. You are free to uncomment any function execution line to skip the corresponding phase.

Citation

Please cite our paper if it is helpful to your research:

@inproceedings{zhao2020sess,
  title={SESS: Self-Ensembling Semi-Supervised 3D Object Detection},
  author={Zhao, Na and Chua, Tat-Seng and Lee, Gim Hee},
  booktitle={Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition},
  pages={11079--11087},
  year={2020}
}

Acknowledgement

Our implementation leverages on the source code from the following repositories:

Comments
  • an error when eval the model

    an error when eval the model

    Traceback (most recent call last): File "eval.py", line 100, in test_transductive = FLAGS.transductive) File "/root/sess-master/scannet/scannet_detection_dataset.py", line 67, in init os.path.join(self.raw_data_path, labeled_sample_list)).readlines()] AttributeError: 'ScannetDetectionDataset' object has no attribute 'raw_data_path'

    opened by zyoungDL 3
  • how to train with 100% label?

    how to train with 100% label?

    Hi @Na-Z,thanks for sharing this great work. how to train with 100% label? When I set labeled_ratio_list to [1. 0] for training,valueerror: num samples should be a positive integer value, but got num sample = 0.Then I set “shuffle” in dateloader to false, an error is still reported. I hope to get your suggestions

    opened by gehaoran-dev 2
  • Does the size consistency loss only affect the size residual?

    Does the size consistency loss only affect the size residual?

    Hi, thank you very much for your nice work.

    I have a question about the size consistency loss. The function compute_size_consistency_loss uses the following code to get the size of bounding boxes:

    size_class = torch.argmax(end_points['size_scores'], -1)
    ...
    size_base = torch.index_select(mean_size_arr, 0, size_class.view(-1))
    ...
    size = size_base + size_residual
    

    And the consistency loss is calculated using MSE. Since torch.argmax() is non-differentiable, this loss seems only to affect the prediction of size residual and has no direct influence on the prediction of the size class. From my point of view, the size consistency loss should use KL-divergence as an additional term to minimize the difference of size scores generated by the teacher and student (like the class consistency loss). But your code doesn't do it and still has great performance.

    Is it intended behavior? Are there any intuitions behind it?

    opened by lilanxiao 2
  • would it boost performence using non-labeled val data?

    would it boost performence using non-labeled val data?

    Hi @Na-Z,thanks for sharing this great work.

    According to tabel2 of the paper, SESS outperforms Votenet with a big margin with 100% training label, I'm wondering did SESS use non-labeled val data for semi-surpervised training? If not, would it boost performence using non-labeled val data?

    Looking forward for your reply

    opened by turboxin 2
  • Question about Autonomous Driving Datasets

    Question about Autonomous Driving Datasets

    Hi Na, congratulations on your nice work. Unfortunately, I missed attending your live Q&A at Virtual CVPR.

    I have a question regarding other datasets. Given your expertise on VoteNet, do you think their/your pipeline also works on outdoor 3D Object Detection Datasets like

    • KITTI
    • nuScenes
    • Waymo Open Dataset
    • ...

    or have you even tried it yourself on such a dataset?

    Greets, Martin

    opened by MartinHahner 2
  • why pretrain?

    why pretrain?

    Hi, @Na-Z ,thanks for opening source the code, I have two question after reading the paper. 1.I see that you say "Note that our SESS is initialized by the VoteNet weights pre-trained on the corresponding labeled data", I just wonder why you use pretrained weight, does the result that training from scratch is bad? Or using pretrained weight is a common method in semisupervised training? What's more, I just advise that you can use the pre-trained weight trained from SUN and train SESS with ScanNetV2 or reverse,I just think this is the right way to use pretrained weight, as we don't have a pretrained weight on a new collected dataset without label in reality. 2.Does more unlabeled data, more better performance? how is the performance if you training with all train,val,test data?

    opened by AndyYuan96 1
  • Some questions about Multi-GPUs

    Some questions about Multi-GPUs

    Thanks for sharing your excellent work, but I have a question if I want to run this code with multi-GPUs, how can I modify the code? By the way, what's your GPU using for training this network, Tesla V100 or others?

    opened by zyoungDL 1
  • A Parameter Is Missing in SunrgbdDetectionVotesDataset

    A Parameter Is Missing in SunrgbdDetectionVotesDataset

    Hello.

    There may be some mistakes in the initial function of the class SunrgbdDetectionVotesDataset.

    You use the test_transductive parameter in eval.py. https://github.com/Na-Z/sess/blob/653c90df4b39ee550f3e1ae98142e9245a81537e/eval.py#L97-L100

    But there is no such parameter in the class SunrgbdDetectionVotesDataset. https://github.com/Na-Z/sess/blob/653c90df4b39ee550f3e1ae98142e9245a81537e/sunrgbd/sunrgbd_detection_dataset.py#L42-L45

    Hope you can fix this issue as soon. Thanks.

    opened by XiwuChen 1
  • Bump tensorflow from 1.14 to 1.15.2

    Bump tensorflow from 1.14 to 1.15.2

    Bumps tensorflow from 1.14 to 1.15.2.

    Release notes

    Sourced from tensorflow's releases.

    TensorFlow 1.15.2

    Release 1.15.2

    Note that this release no longer has a single pip package for GPU and CPU. Please see #36347 for history and details

    Bug Fixes and Other Changes

    TensorFlow 1.15.0

    Release 1.15.0

    This is the last 1.x release for TensorFlow. We do not expect to update the 1.x branch with features, although we will issue patch releases to fix vulnerabilities for at least one year.

    Major Features and Improvements

    • As announced, tensorflow pip package will by default include GPU support (same as tensorflow-gpu now) for the platforms we currently have GPU support (Linux and Windows). It will work on machines with and without Nvidia GPUs. tensorflow-gpu will still be available, and CPU-only packages can be downloaded at tensorflow-cpu for users who are concerned about package size.
    • TensorFlow 1.15 contains a complete implementation of the 2.0 API in its compat.v2 module. It contains a copy of the 1.15 main module (without contrib) in the compat.v1 module. TensorFlow 1.15 is able to emulate 2.0 behavior using the enable_v2_behavior() function. This enables writing forward compatible code: by explicitly importing either tensorflow.compat.v1 or tensorflow.compat.v2, you can ensure that your code works without modifications against an installation of 1.15 or 2.0.
    • EagerTensor now supports numpy buffer interface for tensors.
    • Add toggles tf.enable_control_flow_v2() and tf.disable_control_flow_v2() for enabling/disabling v2 control flow.
    • Enable v2 control flow as part of tf.enable_v2_behavior() and TF2_BEHAVIOR=1.
    • AutoGraph translates Python control flow into TensorFlow expressions, allowing users to write regular Python inside tf.function-decorated functions. AutoGraph is also applied in functions used with tf.data, tf.distribute and tf.keras APIS.
    • Adds enable_tensor_equality(), which switches the behavior such that:
      • Tensors are no longer hashable.
      • Tensors can be compared with == and !=, yielding a Boolean Tensor with element-wise comparison results. This will be the default behavior in 2.0.
    • Auto Mixed-Precision graph optimizer simplifies converting models to float16 for acceleration on Volta and Turing Tensor Cores. This feature can be enabled by wrapping an optimizer class with tf.train.experimental.enable_mixed_precision_graph_rewrite().
    • Add environment variable TF_CUDNN_DETERMINISTIC. Setting to "true" or "1" forces the selection of deterministic cuDNN convolution and max-pooling algorithms. When this is enabled, the algorithm selection procedure itself is also deterministic.
    • TensorRT
      • Migrate TensorRT conversion sources from contrib to compiler directory in preparation for TF 2.0.
      • Add additional, user friendly TrtGraphConverter API for TensorRT conversion.
      • Expand support for TensorFlow operators in TensorRT conversion (e.g. Gather, Slice, Pack, Unpack, ArgMin, ArgMax,DepthSpaceShuffle).
      • Support TensorFlow operator CombinedNonMaxSuppression in TensorRT conversion which significantly accelerates object detection models.

    Breaking Changes

    • Tensorflow code now produces 2 different pip packages: tensorflow_core containing all the code (in the future it will contain only the private implementation) and tensorflow which is a virtual pip package doing forwarding to tensorflow_core (and in the future will contain only the public API of tensorflow). We don't expect this to be breaking, unless you were importing directly from the implementation.
    • TensorFlow 1.15 is built using devtoolset7 (GCC7) on Ubuntu 16. This may lead to ABI incompatibilities with extensions built against earlier versions of TensorFlow.
    • Deprecated the use of constraint= and .constraint with ResourceVariable.
    • tf.keras:
      • OMP_NUM_THREADS is no longer used by the default Keras config. To configure the number of threads, use tf.config.threading APIs.
      • tf.keras.model.save_model and model.save now defaults to saving a TensorFlow SavedModel.
      • keras.backend.resize_images (and consequently, keras.layers.Upsampling2D) behavior has changed, a bug in the resizing implementation was fixed.
      • Layers now default to float32, and automatically cast their inputs to the layer's dtype. If you had a model that used float64, it will probably silently use float32 in TensorFlow2, and a warning will be issued that starts with Layer "layer-name" is casting an input tensor from dtype float64 to the layer's dtype of float32. To fix, either set the default dtype to float64 with tf.keras.backend.set_floatx('float64'), or pass dtype='float64' to each of the Layer constructors. See tf.keras.layers.Layer for more information.
      • Some tf.assert_* methods now raise assertions at operation creation time (i.e. when this Python line executes) if the input tensors' values are known at that time, not during the session.run(). When this happens, a noop is returned and the input tensors are marked non-feedable. In other words, if they are used as keys in feed_dict argument to session.run(), an error will be raised. Also, because some assert ops don't make it into the graph, the graph structure changes. A different graph can result in different per-op random seeds when they are not given explicitly (most often).

    Bug Fixes and Other Changes

    • tf.estimator:
      • tf.keras.estimator.model_to_estimator now supports exporting to tf.train.Checkpoint format, which allows the saved checkpoints to be compatible with model.load_weights.
      • Fix tests in canned estimators.
    ... (truncated)
    Changelog

    Sourced from tensorflow's changelog.

    Release 1.15.2

    Bug Fixes and Other Changes

    Release 2.1.0

    TensorFlow 2.1 will be the last TF release supporting Python 2. Python 2 support officially ends an January 1, 2020. As announced earlier, TensorFlow will also stop supporting Python 2 starting January 1, 2020, and no more releases are expected in 2019.

    Major Features and Improvements

    • The tensorflow pip package now includes GPU support by default (same as tensorflow-gpu) for both Linux and Windows. This runs on machines with and without NVIDIA GPUs. tensorflow-gpu is still available, and CPU-only packages can be downloaded at tensorflow-cpu for users who are concerned about package size.
    • Windows users: Officially-released tensorflow Pip packages are now built with Visual Studio 2019 version 16.4 in order to take advantage of the new /d2ReducedOptimizeHugeFunctions compiler flag. To use these new packages, you must install "Microsoft Visual C++ Redistributable for Visual Studio 2015, 2017 and 2019", available from Microsoft's website here.
      • This does not change the minimum required version for building TensorFlow from source on Windows, but builds enabling EIGEN_STRONG_INLINE can take over 48 hours to compile without this flag. Refer to configure.py for more information about EIGEN_STRONG_INLINE and /d2ReducedOptimizeHugeFunctions.
      • If either of the required DLLs, msvcp140.dll (old) or msvcp140_1.dll (new), are missing on your machine, import tensorflow will print a warning message.
    • The tensorflow pip package is built with CUDA 10.1 and cuDNN 7.6.
    • tf.keras
      • Experimental support for mixed precision is available on GPUs and Cloud TPUs. See usage guide.
      • Introduced the TextVectorization layer, which takes as input raw strings and takes care of text standardization, tokenization, n-gram generation, and vocabulary indexing. See this end-to-end text classification example.
      • Keras .compile .fit .evaluate and .predict are allowed to be outside of the DistributionStrategy scope, as long as the model was constructed inside of a scope.
      • Experimental support for Keras .compile, .fit, .evaluate, and .predict is available for Cloud TPUs, Cloud TPU, for all types of Keras models (sequential, functional and subclassing models).
      • Automatic outside compilation is now enabled for Cloud TPUs. This allows tf.summary to be used more conveniently with Cloud TPUs.
      • Dynamic batch sizes with DistributionStrategy and Keras are supported on Cloud TPUs.
      • Support for .fit, .evaluate, .predict on TPU using numpy data, in addition to tf.data.Dataset.
      • Keras reference implementations for many popular models are available in the TensorFlow Model Garden.
    • tf.data
      • Changes rebatching for tf.data datasets + DistributionStrategy for better performance. Note that the dataset also behaves slightly differently, in that the rebatched dataset cardinality will always be a multiple of the number of replicas.
      • tf.data.Dataset now supports automatic data distribution and sharding in distributed environments, including on TPU pods.
      • Distribution policies for tf.data.Dataset can now be tuned with 1. tf.data.experimental.AutoShardPolicy(OFF, AUTO, FILE, DATA) 2. tf.data.experimental.ExternalStatePolicy(WARN, IGNORE, FAIL)
    • tf.debugging
      • Add tf.debugging.enable_check_numerics() and tf.debugging.disable_check_numerics() to help debugging the root causes of issues involving infinities and NaNs.
    • tf.distribute
      • Custom training loop support on TPUs and TPU pods is avaiable through strategy.experimental_distribute_dataset, strategy.experimental_distribute_datasets_from_function, strategy.experimental_run_v2, strategy.reduce.
      • Support for a global distribution strategy through tf.distribute.experimental_set_strategy(), in addition to strategy.scope().
    • TensorRT
      • TensorRT 6.0 is now supported and enabled by default. This adds support for more TensorFlow ops including Conv3D, Conv3DBackpropInputV2, AvgPool3D, MaxPool3D, ResizeBilinear, and ResizeNearestNeighbor. In addition, the TensorFlow-TensorRT python conversion API is exported as tf.experimental.tensorrt.Converter.
    • Environment variable TF_DETERMINISTIC_OPS has been added. When set to "true" or "1", this environment variable makes tf.nn.bias_add operate deterministically (i.e. reproducibly), but currently only when XLA JIT compilation is not enabled. Setting TF_DETERMINISTIC_OPS to "true" or "1" also makes cuDNN convolution and max-pooling operate deterministically. This makes Keras Conv*D and MaxPool*D layers operate deterministically in both the forward and backward directions when running on a CUDA-enabled GPU.

    Breaking Changes

    • Deletes Operation.traceback_with_start_lines for which we know of no usages.
    • Removed id from tf.Tensor.__repr__() as id is not useful other than internal debugging.
    • Some tf.assert_* methods now raise assertions at operation creation time if the input tensors' values are known at that time, not during the session.run(). This only changes behavior when the graph execution would have resulted in an error. When this happens, a noop is returned and the input tensors are marked non-feedable. In other words, if they are used as keys in feed_dict argument to session.run(), an error will be raised. Also, because some assert ops don't make it into the graph, the graph structure changes. A different graph can result in different per-op random seeds when they are not given explicitly (most often).
    • The following APIs are not longer experimental: tf.config.list_logical_devices, tf.config.list_physical_devices, tf.config.get_visible_devices, tf.config.set_visible_devices, tf.config.get_logical_device_configuration, tf.config.set_logical_device_configuration.
    • tf.config.experimentalVirtualDeviceConfiguration has been renamed to tf.config.LogicalDeviceConfiguration.
    • tf.config.experimental_list_devices has been removed, please use tf.config.list_logical_devices.

    Bug Fixes and Other Changes

    ... (truncated)
    Commits
    • 5d80e1e Merge pull request #36215 from tensorflow-jenkins/version-numbers-1.15.2-8214
    • 71e9d8f Update version numbers to 1.15.2
    • e50120e Merge pull request #36214 from tensorflow-jenkins/relnotes-1.15.2-2203
    • 1a7e9fb Releasing 1.15.2 instead of 1.15.1
    • 85f7aab Insert release notes place-fill
    • e75a6d6 Merge pull request #36190 from tensorflow/mm-r1.15-fix-v2-build
    • a6d8973 Use config=v1 as this is r1.15 branch.
    • fdb8589 Merge pull request #35912 from tensorflow-jenkins/relnotes-1.15.1-31298
    • a6051e8 Add CVE number for main patch
    • 360b2e3 Merge pull request #34532 from ROCmSoftwarePlatform/r1.15-rccl-upstream-patch
    • Additional commits viewable in compare view

    Dependabot compatibility score

    Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


    Dependabot commands and options

    You can trigger Dependabot actions by commenting on this PR:

    • @dependabot rebase will rebase this PR
    • @dependabot recreate will recreate this PR, overwriting any edits that have been made to it
    • @dependabot merge will merge this PR after your CI passes on it
    • @dependabot squash and merge will squash and merge this PR after your CI passes on it
    • @dependabot cancel merge will cancel a previously requested merge and block automerging
    • @dependabot reopen will reopen this PR if it is closed
    • @dependabot close will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually
    • @dependabot ignore this major version will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this minor version will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself)
    • @dependabot ignore this dependency will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself)
    • @dependabot use these labels will set the current labels as the default for future PRs for this repo and language
    • @dependabot use these reviewers will set the current reviewers as the default for future PRs for this repo and language
    • @dependabot use these assignees will set the current assignees as the default for future PRs for this repo and language
    • @dependabot use this milestone will set the current milestone as the default for future PRs for this repo and language

    You can disable automated security fix PRs for this repo from the Security Alerts page.

    dependencies 
    opened by dependabot[bot] 1
  • data ratio config

    data ratio config

    hi,nazhao,I‘m trying semi-supervised learning method on 3d object detection on outdoor dataset,I just wonder How did you think of using 100% trainset both as labeled data and unlabeled data,as in image object detection,for semi-supervised learning,I didn't see people using that data config。For the work 3DIoUMatch that following your work, they use same dataconfig with you,they also give outdoor dataset kitti‘s result,the result looks good,but I can’t reproduce the result。

    opened by AndyYuan96 0
Owner
null
An unofficial implementation of "Unpaired Image Super-Resolution using Pseudo-Supervision." CVPR2020

UnpairedSR An unofficial implementation of "Unpaired Image Super-Resolution using Pseudo-Supervision." CVPR2020 turn RCAN(modified) --> xmodel(xilinx

JiaKui Hu 10 Oct 28, 2022
PyTorch reimplementation of minimal-hand (CVPR2020)

Minimal Hand Pytorch Unofficial PyTorch reimplementation of minimal-hand (CVPR2020). you can also find in youtube or bilibili bare hand youtube or bil

Hao Meng 228 Dec 29, 2022
Code for the Active Speakers in Context Paper (CVPR2020)

Active Speakers in Context This repo contains the official code and models for the "Active Speakers in Context" CVPR 2020 paper. Before Training The c

null 43 Oct 14, 2022
Code for Referring Image Segmentation via Cross-Modal Progressive Comprehension, CVPR2020.

CMPC-Refseg Code of our CVPR 2020 paper Referring Image Segmentation via Cross-Modal Progressive Comprehension. Shaofei Huang*, Tianrui Hui*, Si Liu,

spyflying 55 Dec 1, 2022
Densely Connected Search Space for More Flexible Neural Architecture Search (CVPR2020)

DenseNAS The code of the CVPR2020 paper Densely Connected Search Space for More Flexible Neural Architecture Search. Neural architecture search (NAS)

Jamin Fong 291 Nov 18, 2022
RCDNet: A Model-driven Deep Neural Network for Single Image Rain Removal (CVPR2020)

RCDNet: A Model-driven Deep Neural Network for Single Image Rain Removal (CVPR2020) Hong Wang, Qi Xie, Qian Zhao, and Deyu Meng [PDF] [Supplementary M

Hong Wang 6 Sep 27, 2022
Super Pix Adv - Offical implemention of Robust Superpixel-Guided Attentional Adversarial Attack (CVPR2020)

Super_Pix_Adv Offical implemention of Robust Superpixel-Guided Attentional Adver

DLight 8 Oct 26, 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
Official PyTorch implementation of RobustNet (CVPR 2021 Oral)

RobustNet (CVPR 2021 Oral): Official Project Webpage Codes and pretrained models will be released soon. This repository provides the official PyTorch

Sungha Choi 173 Dec 21, 2022
Implementation of "Fast and Flexible Temporal Point Processes with Triangular Maps" (Oral @ NeurIPS 2020)

Fast and Flexible Temporal Point Processes with Triangular Maps This repository includes a reference implementation of the algorithms described in "Fa

Oleksandr Shchur 20 Dec 2, 2022
Pytorch implementation for "Adversarial Robustness under Long-Tailed Distribution" (CVPR 2021 Oral)

Adversarial Long-Tail This repository contains the PyTorch implementation of the paper: Adversarial Robustness under Long-Tailed Distribution, CVPR 20

Tong WU 89 Dec 15, 2022
This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures

Introduction This Repo is the official CUDA implementation of ICCV 2019 Oral paper for CARAFE: Content-Aware ReAssembly of FEatures. @inproceedings{Wa

Jiaqi Wang 42 Jan 7, 2023
Official PyTorch Implementation of Convolutional Hough Matching Networks, CVPR 2021 (oral)

Convolutional Hough Matching Networks This is the implementation of the paper "Convolutional Hough Matching Network" by J. Min and M. Cho. Implemented

Juhong Min 70 Nov 22, 2022
Implementation of "Bidirectional Projection Network for Cross Dimension Scene Understanding" CVPR 2021 (Oral)

Bidirectional Projection Network for Cross Dimension Scene Understanding CVPR 2021 (Oral) [ Project Webpage ] [ arXiv ] [ Video ] Existing segmentatio

Hu Wenbo 135 Dec 26, 2022
PyTorch implementation of our Adam-NSCL algorithm from our CVPR2021 (oral) paper "Training Networks in Null Space for Continual Learning"

Adam-NSCL This is a PyTorch implementation of Adam-NSCL algorithm for continual learning from our CVPR2021 (oral) paper: Title: Training Networks in N

Shipeng Wang 34 Dec 21, 2022
Implementation of ICCV2021(Oral) paper - VMNet: Voxel-Mesh Network for Geodesic-aware 3D Semantic Segmentation

VMNet: Voxel-Mesh Network for Geodesic-Aware 3D Semantic Segmentation Created by Zeyu HU Introduction This work is based on our paper VMNet: Voxel-Mes

HU Zeyu 82 Dec 27, 2022
Pytorch Implementation for NeurIPS (oral) paper: Pixel Level Cycle Association: A New Perspective for Domain Adaptive Semantic Segmentation

Pixel-Level Cycle Association This is the Pytorch implementation of our NeurIPS 2020 Oral paper Pixel-Level Cycle Association: A New Perspective for D

null 87 Oct 19, 2022
Official implementation of "A Unified Objective for Novel Class Discovery", ICCV2021 (Oral)

A Unified Objective for Novel Class Discovery This is the official repository for the paper: A Unified Objective for Novel Class Discovery Enrico Fini

Enrico Fini 118 Dec 26, 2022
Official Pytorch Implementation of 'Learning Action Completeness from Points for Weakly-supervised Temporal Action Localization' (ICCV-21 Oral)

Learning-Action-Completeness-from-Points Official Pytorch Implementation of 'Learning Action Completeness from Points for Weakly-supervised Temporal A

Pilhyeon Lee 67 Jan 3, 2023