StarGAN - Official PyTorch Implementation (CVPR 2018)

Overview

StarGAN - Official PyTorch Implementation

***** New: StarGAN v2 is available at https://github.com/clovaai/stargan-v2 *****

This repository provides the official PyTorch implementation of the following paper:

StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation
Yunjey Choi1,2, Minje Choi1,2, Munyoung Kim2,3, Jung-Woo Ha2, Sung Kim2,4, Jaegul Choo1,2    
1Korea University, 2Clova AI Research, NAVER Corp.
3The College of New Jersey, 4Hong Kong University of Science and Technology
https://arxiv.org/abs/1711.09020

Abstract: Recent studies have shown remarkable success in image-to-image translation for two domains. However, existing approaches have limited scalability and robustness in handling more than two domains, since different models should be built independently for every pair of image domains. To address this limitation, we propose StarGAN, a novel and scalable approach that can perform image-to-image translations for multiple domains using only a single model. Such a unified model architecture of StarGAN allows simultaneous training of multiple datasets with different domains within a single network. This leads to StarGAN's superior quality of translated images compared to existing models as well as the novel capability of flexibly translating an input image to any desired target domain. We empirically demonstrate the effectiveness of our approach on a facial attribute transfer and a facial expression synthesis tasks.

Dependencies

Downloading datasets

To download the CelebA dataset:

git clone https://github.com/yunjey/StarGAN.git
cd StarGAN/
bash download.sh celeba

To download the RaFD dataset, you must request access to the dataset from the Radboud Faces Database website. Then, you need to create a folder structure as described here.

Training networks

To train StarGAN on CelebA, run the training script below. See here for a list of selectable attributes in the CelebA dataset. If you change the selected_attrs argument, you should also change the c_dim argument accordingly.

# Train StarGAN using the CelebA dataset
python main.py --mode train --dataset CelebA --image_size 128 --c_dim 5 \
               --sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs \
               --model_save_dir stargan_celeba/models --result_dir stargan_celeba/results \
               --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young

# Test StarGAN using the CelebA dataset
python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5 \
               --sample_dir stargan_celeba/samples --log_dir stargan_celeba/logs \
               --model_save_dir stargan_celeba/models --result_dir stargan_celeba/results \
               --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young

To train StarGAN on RaFD:

# Train StarGAN using the RaFD dataset
python main.py --mode train --dataset RaFD --image_size 128 \
               --c_dim 8 --rafd_image_dir data/RaFD/train \
               --sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs \
               --model_save_dir stargan_rafd/models --result_dir stargan_rafd/results

# Test StarGAN using the RaFD dataset
python main.py --mode test --dataset RaFD --image_size 128 \
               --c_dim 8 --rafd_image_dir data/RaFD/test \
               --sample_dir stargan_rafd/samples --log_dir stargan_rafd/logs \
               --model_save_dir stargan_rafd/models --result_dir stargan_rafd/results

To train StarGAN on both CelebA and RafD:

# Train StarGAN using both CelebA and RaFD datasets
python main.py --mode=train --dataset Both --image_size 256 --c_dim 5 --c2_dim 8 \
               --sample_dir stargan_both/samples --log_dir stargan_both/logs \
               --model_save_dir stargan_both/models --result_dir stargan_both/results

# Test StarGAN using both CelebA and RaFD datasets
python main.py --mode test --dataset Both --image_size 256 --c_dim 5 --c2_dim 8 \
               --sample_dir stargan_both/samples --log_dir stargan_both/logs \
               --model_save_dir stargan_both/models --result_dir stargan_both/results

To train StarGAN on your own dataset, create a folder structure in the same format as RaFD and run the command:

# Train StarGAN on custom datasets
python main.py --mode train --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE \
               --c_dim LABEL_DIM --rafd_image_dir TRAIN_IMG_DIR \
               --sample_dir stargan_custom/samples --log_dir stargan_custom/logs \
               --model_save_dir stargan_custom/models --result_dir stargan_custom/results

# Test StarGAN on custom datasets
python main.py --mode test --dataset RaFD --rafd_crop_size CROP_SIZE --image_size IMG_SIZE \
               --c_dim LABEL_DIM --rafd_image_dir TEST_IMG_DIR \
               --sample_dir stargan_custom/samples --log_dir stargan_custom/logs \
               --model_save_dir stargan_custom/models --result_dir stargan_custom/results

Using pre-trained networks

To download a pre-trained model checkpoint, run the script below. The pre-trained model checkpoint will be downloaded and saved into ./stargan_celeba_128/models directory.

$ bash download.sh pretrained-celeba-128x128

To translate images using the pre-trained model, run the evaluation script below. The translated images will be saved into ./stargan_celeba_128/results directory.

$ python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5 \
                 --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young \
                 --model_save_dir='stargan_celeba_128/models' \
                 --result_dir='stargan_celeba_128/results'

Citation

If you find this work useful for your research, please cite our paper:

@inproceedings{choi2018stargan,
author={Yunjey Choi and Minje Choi and Munyoung Kim and Jung-Woo Ha and Sunghun Kim and Jaegul Choo},
title={StarGAN: Unified Generative Adversarial Networks for Multi-Domain Image-to-Image Translation},
booktitle={Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition},
year={2018}
}

Acknowledgements

This work was mainly done while the first author did a research internship at Clova AI Research, NAVER. We thank all the researchers at NAVER, especially Donghyun Kwak, for insightful discussions.

Issues
  • Is it possible to test the data that isn't in the train-set? New images with pre-trained model.

    Is it possible to test the data that isn't in the train-set? New images with pre-trained model.

    Is it possible to test the data with pre-trained model?

    I am curious if there is any way to test new images with the model I trained in the past such as training with only celebA but later testing with custom datasets.

    opened by wjun0830 15
  • RuntimeError: dimension out of range

    RuntimeError: dimension out of range

    Hi,

    I am trying to train the model on RaFD using python3 and torch v3. I've already prepared the dataset but after one epoch, this is what I am getting. Can someone please help me solve this?

    I printed the size of out_cls, real_label.

    I also tried training on CelebA+RaFD but I got cuda memory error. My gpu has only 8Gb of memory space ( I have two of them). Any workaround?

    Thanks!

    D Discriminator( (main): Sequential( (0): Conv2d (3, 64, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (1): LeakyReLU(0.01, inplace) (2): Conv2d (64, 128, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (3): LeakyReLU(0.01, inplace) (4): Conv2d (128, 256, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (5): LeakyReLU(0.01, inplace) (6): Conv2d (256, 512, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (7): LeakyReLU(0.01, inplace) (8): Conv2d (512, 1024, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (9): LeakyReLU(0.01, inplace) (10): Conv2d (1024, 2048, kernel_size=(4, 4), stride=(2, 2), padding=(1, 1)) (11): LeakyReLU(0.01, inplace) ) (conv1): Conv2d (2048, 1, kernel_size=(3, 3), stride=(1, 1), padding=(1, 1), bias=False) (conv2): Conv2d (2048, 8, kernel_size=(2, 2), stride=(1, 1), bias=False) ) The number of parameters: 44786624 Classification Acc (8 emotional expressions): ['12.50']

    Elapsed

    Classification Acc (8 emotional expressions): ['12.50'] Elapsed [0:00:04.683473], Epoch [1/200], Iter [10/31], G/loss_cls: 2.1469, G/loss_rec: 0.6333, D/loss_fake: 2.5479, D/loss_cls: 6.0393, D/loss_real: -26.6812, G/loss_fake: -1.5794, D/loss_gp: 0.3869 torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) Classification Acc (8 emotional expressions): ['18.75'] Elapsed [0:00:07.881092], Epoch [1/200], Iter [20/31], G/loss_cls: 3.8383, G/loss_rec: 0.5828, D/loss_fake: -5.0278, D/loss_cls: 9.1143, D/loss_real: -30.6130, G/loss_fake: 4.7769, D/loss_gp: 0.7379 torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) torch.Size([16, 8]) torch.Size([16]) Classification Acc (8 emotional expressions): ['31.25'] Elapsed [0:00:11.084384], Epoch [1/200], Iter [30/31], G/loss_cls: 3.3109, G/loss_rec: 0.5486, D/loss_fake: 3.4921, D/loss_cls: 4.8124, D/loss_real: -38.8579, G/loss_fake: -0.7082, D/loss_gp: 0.6353 torch.Size([8]) torch.Size([1]) Traceback (most recent call last): File "main.py", line 106, in main(config) File "main.py", line 41, in main solver.train() File "/home/ramin/codes/StarGAN/solver.py", line 274, in train d_loss_cls = F.cross_entropy(out_cls, real_label) File "/usr/local/lib/python3.5/dist-packages/torch/nn/functional.py", line 1140, in cross_entropy return nll_loss(log_softmax(input, 1), target, weight, size_average, ignore_index, reduce) File "/usr/local/lib/python3.5/dist-packages/torch/nn/functional.py", line 786, in log_softmax return torch._C._nn.log_softmax(input, dim) RuntimeError: dimension out of range (expected to be in range of [-1, 0], but got 1)

    opened by rAm1n 10
  • Please help me to solve this

    Please help me to solve this

    image

    opened by warisha 8
  • AttributeError: module 'tensorboard.summary._tf.summary' has no attribute 'FileWriter'

    AttributeError: module 'tensorboard.summary._tf.summary' has no attribute 'FileWriter'

    Hi, I have tried setting up the project in my local system. But i am facing an issue with tensorboard.

    The number of parameters: 44762048 Traceback (most recent call last): File "main.py", line 110, in main(config) File "main.py", line 40, in main solver = Solver(celeba_loader, rafd_loader, config) File "/home/ubuntu/princess/StarGAN/solver.py", line 70, in init self.build_tensorboard() File "/home/ubuntu/princess/StarGAN/solver.py", line 109, in build_tensorboard self.logger = Logger(self.log_dir) File "/home/ubuntu/princess/StarGAN/logger.py", line 9, in init self.writer = tf.summary.FileWriter(log_dir) AttributeError: module 'tensorboard.summary._tf.summary' has no attribute 'FileWriter'

    Can you please help me out of the issue. I tried downgrading tensorboard as well as upgrade but none worked.

    Thanks in advance.

    opened by rameshd-ai 7
  • Out of memory on GPU Titan X

    Out of memory on GPU Titan X

    Hi,

    I set batch_size=3, and tried the code on GPU Titan X. The memory cost keeps on increasing, and soon causes out of memory. Must I use a GPU with 24 GB memory? Any suggestions are appreciated.

    Thanks!

    opened by tyshiwo 6
  • Pretrained model on RaFD

    Pretrained model on RaFD

    Your work is very interesting. Could you provide the pretrained model on RaFD about facial expression synthesis? Thanks!

    opened by leoliu37 6
  • AssertionError: MaskedFill can't differentiate the mask

    AssertionError: MaskedFill can't differentiate the mask

    hi, when i run the following command , i get a exception, can you help me? @yunjey

    python3 main.py --mode='train' --dataset='CelebA' --c_dim=5 --image_size=128 --sample_path='stargan_celebA/samples' --log_path='stargan_celebA/logs' --model_save_path='stargan_celebA/models' --result_path='stargan_celebA/results'

    The number of parameters: 44762048 Traceback (most recent call last): File "main.py", line 106, in main(config) File "main.py", line 41, in main solver.train() File "/data1/software/deeplearning/StarGAN/solver.py", line 279, in train accuracies = self.compute_accuracy(out_cls, real_label, self.dataset) File "/data1/software/deeplearning/StarGAN/solver.py", line 145, in compute_accuracy predicted = self.threshold(x) File "/data1/software/deeplearning/StarGAN/solver.py", line 138, in threshold x[x >= 0.5] = 1 File "/usr/local/lib/python3.5/dist-packages/torch/autograd/variable.py", line 85, in setitem return MaskedFill.apply(self, key, value, True) File "/usr/local/lib/python3.5/dist-packages/torch/autograd/_functions/tensor.py", line 440, in forward assert not ctx.needs_input_grad[1], "MaskedFill can't differentiate the mask" AssertionError: MaskedFill can't differentiate the mask

    opened by viekie 5
  • solver.py  problem

    solver.py problem

    In solver.py ,if you have no GPU, the .cuda() will be runtime error so you must judge the torch.cuda.is_available() first

    ` # Compute gradient penalty alpha = torch.rand(real_x.size(0), 1, 1, 1).cuda().expand_as(real_x) interpolated = Variable(alpha * real_x.data + (1 - alpha) * fake_x.data, requires_grad=True) out, out_cls = self.D(interpolated)

                grad = torch.autograd.grad(outputs=out,
                                           inputs=interpolated,
                                           grad_outputs=torch.ones(out.size()).cuda(),
                                           retain_graph=True,
                                           create_graph=True,
                                           only_inputs=True)[0]`
    
    opened by seanyuyuyu 4
  • No data_loader defined for 'test' mode, and small documentation issue

    No data_loader defined for 'test' mode, and small documentation issue

    At this point self.data_loader is not defined:

    https://github.com/yunjey/StarGAN/blob/master/solver.py#L671

    I solved it on my local machine doing:

            # Set dataloader
            if self.dataset == 'CelebA':
                self.data_loader = self.celebA_loader
            else:
                self.data_loader = self.rafd_loader
    
    

    at the start of test, but not sure how you want to handle 'Both' there so I didn't submit a PR.

    Finally, the application states that:

    Translated test images and saved into ./test/results..!                                                                                                                                                                                                                                                                       
    Translated test images and saved into ./test/results..!                                                                                                                                                                                                                                                                       
    Translated test images and saved into ./test/results..!                                                                                                                                                                                                                                                                       
    Translated test images and saved into ./test/results..!                                                                                                                                                                                                                                                                       
    Translated test images and saved into ./test/results..!  
    

    but it appears to actually be putting them into ./test/samples

    Thanks for releasing this.

    opened by benburkhart1 3
  • Where does the extra dimension come from in the target labels list?

    Where does the extra dimension come from in the target labels list?

    create_labels (in the solver) is called when generating target labels for network testing.

    The dimensions of the output (c_trg_list) is [c_dim x batch_size x c_dim]. Why is c_dim used for 2 dimensions, not just one? Why are the original (input) labels cloned?

    opened by aplumley 0
  • Hello, can you provide the multi-attribute translation task code of solver.py?

    Hello, can you provide the multi-attribute translation task code of solver.py?

    I want to reproduce your H + G, A + G and other multi-attribute translation images. So, Can you give me some help? Thank you very much, Your work is very nice.

    opened by zhangqian001 0
  • Reverse attribute value

    Reverse attribute value

    in line 168 in solver, why we do c_trg[:, i] = (c_trg[:, i] == 0) # Reverse attribute value ?

    opened by yy97831 0
  • zero vector order in the domain label vector

    zero vector order in the domain label vector

    Hi can i change the order of the zero vector in the domain label from : c_org = torch.cat([zero, c_org, mask], dim=1)
    c_trg = torch.cat([zero, c_trg, mask], dim=1)

    to

    c_org = torch.cat([c_org, zero, mask], dim=1)
    c_trg = torch.cat([ c_trg, zero, mask], dim=1)

    it should be the same as the network will ignore the zeros anyway, am I right?

    thanks

    opened by yy97831 0
  • how to save the generated images separated

    how to save the generated images separated

    How I can save all the generated images to single folder? I do not want to save all the images in one picture.

    opened by engineer-38 1
  • [Question] Mask vector in this paper

    [Question] Mask vector in this paper

    Thank you for your paper! I have a question about this paper.

    In the paper, It introduces multi-dataset and multi-domain I2I translation with CelebA and RaFD dataset. StarGAN takes the mask vector to create the desired domain for a particular dataset. Then, what should I do if I want to create a domain that corresponds to two datasets at the same time? For example, when I try to create an image with CelebA = [1, 0, 0, 1, 1] and RaFD = [0, 0, 1, 0, 0], can't I do it at the same time because of the mask vector? Do I have to proceed sequentially?

    Thank you!!

    opened by YoonSungLee 0
  • Can you share your pre-trained model on RaFD dataset?

    Can you share your pre-trained model on RaFD dataset?

    I'm citing your paper as a baseline method. Could you give me your pre-trained model on RaFD dataset? Thanks a lot.

    opened by realliujiaxu 1
  • Question about parameter adjustment when changing attributes

    Question about parameter adjustment when changing attributes

    Hi,

    I want to add more attributes to starGAN and I managed to change the attributes from 5 to 10. However, I found the results are not clear enough at 200000 iterations. I try to train for more iterations and get slight improvement. I wonder which parameter else should I adjust to get a better performance? Thank you.

    opened by Kirito0816 0
  • Disable tensorflow v2 behavior in logger.py

    Disable tensorflow v2 behavior in logger.py

    Tensorflow version 2 does not use FileWriter. This code is based on tensorflow version 1 so if we want to use the original code, we need to apply this commit (just disable tensorflow v2 behavior, use tensorflow v1)

    opened by Eun0 0
  • Error when testing

    Error when testing

    question: when i input:python main.py --mode test --dataset CelebA --image_size 128 --c_dim 5 --selected_attrs Black_Hair Blond_Hair Brown_Hair Male Young --model_save_dir=stargan_celeba\models --result_dir=stargan_celeba\results have a traceback: Traceback (most recent call last): File "main.py", line 115, in main(config) File "main.py", line 49, in main solver.test() File "C:\Users\HCZ\Desktop\stargan-master\solver.py", line 530, in test self.restore_model(self.test_iters) File "C:\Users\HCZ\Desktop\stargan-master\solver.py", line 107, in restore_model self.G.load_state_dict(torch.load(G_path, map_location=lambda storage, loc:storage)) File "E:\language\python\lib\site-packages\torch\serialization.py", line 593, in load return _legacy_load(opened_file, map_location, pickle_module, **pickle_load_args) File "E:\language\python\lib\site-packages\torch\serialization.py", line 763, in _legacy_load magic_number = pickle_module.load(f, **pickle_load_args) _pickle.UnpicklingError: invalid load key, '?'.

    opened by Hcz-up 0
Owner
Yunjey Choi
Yunjey Choi
Official Pytorch implementation of ICLR 2018 paper Deep Learning for Physical Processes: Integrating Prior Scientific Knowledge.

Deep Learning for Physical Processes: Integrating Prior Scientific Knowledge: Official Pytorch implementation of ICLR 2018 paper Deep Learning for Phy

emmanuel 42 Aug 11, 2021
3D ResNets for Action Recognition (CVPR 2018)

3D ResNets for Action Recognition Update (2020/4/13) We published a paper on arXiv. Hirokatsu Kataoka, Tenga Wakamiya, Kensho Hara, and Yutaka Satoh,

Kensho Hara 3.2k Jan 28, 2022
PointNetVLAD: Deep Point Cloud Based Retrieval for Large-Scale Place Recognition, CVPR 2018

PointNetVLAD: Deep Point Cloud Based Retrieval for Large-Scale Place Recognition PointNetVLAD: Deep Point Cloud Based Retrieval for Large-Scale Place

Mikaela Uy 260 Jan 26, 2022
Learning Pixel-level Semantic Affinity with Image-level Supervision for Weakly Supervised Semantic Segmentation, CVPR 2018

Learning Pixel-level Semantic Affinity with Image-level Supervision This code is deprecated. Please see https://github.com/jiwoon-ahn/irn instead. Int

Jiwoon Ahn 301 Jan 10, 2022
Official Keras Implementation for UNet++ in IEEE Transactions on Medical Imaging and DLMIA 2018

UNet++: A Nested U-Net Architecture for Medical Image Segmentation UNet++ is a new general purpose image segmentation architecture for more accurate i

Zongwei Zhou 1.6k Jan 22, 2022
A PyTorch implementation of "Graph Classification Using Structural Attention" (KDD 2018).

GAM ⠀⠀ A PyTorch implementation of Graph Classification Using Structural Attention (KDD 2018). Abstract Graph classification is a problem with practic

Benedek Rozemberczki 251 Jan 14, 2022
A PyTorch Implementation of "SINE: Scalable Incomplete Network Embedding" (ICDM 2018).

Scalable Incomplete Network Embedding ⠀⠀ A PyTorch implementation of Scalable Incomplete Network Embedding (ICDM 2018). Abstract Attributed network em

Benedek Rozemberczki 67 Dec 19, 2021
A PyTorch implementation of "Signed Graph Convolutional Network" (ICDM 2018).

SGCN ⠀ A PyTorch implementation of Signed Graph Convolutional Network (ICDM 2018). Abstract Due to the fact much of today's data can be represented as

Benedek Rozemberczki 233 Jan 23, 2022
A PyTorch Implementation of "Watch Your Step: Learning Node Embeddings via Graph Attention" (NeurIPS 2018).

Attention Walk ⠀⠀ A PyTorch Implementation of Watch Your Step: Learning Node Embeddings via Graph Attention (NIPS 2018). Abstract Graph embedding meth

Benedek Rozemberczki 290 Jan 20, 2022
PyTorch implementation of Wide Residual Networks with 1-bit weights by McDonnell (ICLR 2018)

1-bit Wide ResNet PyTorch implementation of training 1-bit Wide ResNets from this paper: Training wide residual networks for deployment using a single

Sergey Zagoruyko 121 Nov 12, 2021
Official code for Next Check-ins Prediction via History and Friendship on Location-Based Social Networks (MDM 2018)

MUC Next Check-ins Prediction via History and Friendship on Location-Based Social Networks (MDM 2018) Performance Details for Accuracy: | Dataset

Yijun Su 1 Dec 13, 2021
PyTorch code for our ECCV 2018 paper "Image Super-Resolution Using Very Deep Residual Channel Attention Networks"

PyTorch code for our ECCV 2018 paper "Image Super-Resolution Using Very Deep Residual Channel Attention Networks"

Yulun Zhang 1.1k Jan 23, 2022
Python implementation of Wu et al (2018)'s registration fusion

reg-fusion Projection of a central sulcus probability map using the RF-ANTs approach (right hemisphere shown). This is a Python implementation of Wu e

Dan Gale 26 Nov 12, 2021
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 61 Jan 11, 2022
An official implementation of "SFNet: Learning Object-aware Semantic Correspondence" (CVPR 2019, TPAMI 2020) in PyTorch.

PyTorch implementation of SFNet This is the implementation of the paper "SFNet: Learning Object-aware Semantic Correspondence". For more information,

CV Lab @ Yonsei University 72 Jan 22, 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 133 Jan 22, 2022
Official pytorch implementation of Rainbow Memory (CVPR 2021)

Rainbow Memory: Continual Learning with a Memory of Diverse Samples

Clova AI Research 68 Jan 24, 2022
Official Pytorch implementation of "Beyond Static Features for Temporally Consistent 3D Human Pose and Shape from a Video", CVPR 2021

TCMR: Beyond Static Features for Temporally Consistent 3D Human Pose and Shape from a Video Qualtitative result Paper teaser video Introduction This r

Hongsuk Choi 143 Jan 21, 2022
Official PyTorch Implementation of Embedding Transfer with Label Relaxation for Improved Metric Learning, CVPR 2021

Embedding Transfer with Label Relaxation for Improved Metric Learning Official PyTorch implementation of CVPR 2021 paper Embedding Transfer with Label

Sungyeon Kim 26 Jan 29, 2022