(ICCV 2021) Official code of "Dressing in Order: Recurrent Person Image Generation for Pose Transfer, Virtual Try-on and Outfit Editing."

Overview

Dressing in Order (DiOr)

👚 [Paper] 👖 [Webpage] 👗 [Running this code]

The official implementation of "Dressing in Order: Recurrent Person Image Generation for Pose Transfer, Virtual Try-on and Outfit Editing". by Aiyu Cui, Daniel McKee and Svetlana Lazebnik. (ICCV 2021)

🔔 Updates

Supported Try-on Applications

Supported Editing Applications

More results

Play with demo.ipynb!


Get Started

Please follow the installation instruction in GFLA to install the environment.

Then run

pip install -r requirements.txt

If one wants to run inference only: You can use later version of PyTorch and you don't need to worry about how to install GFLA's cuda functions. Please specify --frozen_flownet.

Dataset

We run experiments on Deepfashion Dataset. To set up the dataset:

  1. Download and unzip img_highres.zip from the deepfashion inshop dataset at $DATA_ROOT
  2. Download the train/val split and pre-processed keypoints annotations from GFLA source or PATN source, and put the .csv and .lst files at $DATA_ROOT.
    • If one wants to extract the keypoints from scratch, please run OpenPose as the pose estimator. Please follow the instruction from PATN for how to generate the keypoints in desired format.
  3. Run python tools/generate_fashion_dataset.py to split the data. (Please specify the $DATA_ROOT accordingly.)
  4. Get human parsing. You can obtain the parsing by either:
    • Run off-the-shelf human parser SCHP (with LIP labels) on $DATA_ROOT/train and $DATA_ROOT/test. Name the output parses folder as $DATA_ROOT/trainM_lip and $DATA_ROOT/testM_lip respectively.
    • Download the preprocessed parsing from here and put it under $DATA_ROOT.
  5. Download standard_test_anns.txt for fast visualization.

After the processing, you should have the dataset folder formatted like:

+ $DATA_ROOT
|   + train (all training images)
|   |   - xxx.jpg
|   |     ...
|   + trainM_lip (human parse of all training images)
|   |   - xxx.png
|   |     ...
|   + test (all test images)
|   |   - xxx.jpg
|   |     ...
|   + testM_lip (human parse of all test images)
|   |   - xxx.png
|   |     ...
|   - fashion-pairs-train.csv (paired poses for training)
|   - fashion-pairs-test.csv (paired poses for test)
|   - fashion-annotation-train.csv (keypoints for training images)
|   - fashion-annotation-test.csv  (keypoints for test images)
|   - train.lst
|   - test.lst
|   - standard_test_anns.txt

Run Demo

Please download the pretrained weights from here and unzip at checkpoints/.

After downloading the pretrained model and setting the data, you can try out our applications in notebook demo.ipynb.

(The checkpoints above are reproduced, so there could be slightly difference in quantitative evaluation from the reported results. To get the original results, please check our released generated images here.)

(DIORv1_64 was trained with a minor difference in code, but it may give better visual results in some applications. If one wants to try it, specify --netG diorv1.)


Training

Warmup the Global Flow Field Estimator

Note, if you don't want to warmup the Global Flow Field Estimator, you can extract its weights from GFLA by downloading the pretrained weights GFLA from here.

Otherwise, run

sh scripts/run_pose.sh

Training

After warming up the flownet, train the pipeline by

sh scripts/run_train.sh

Run tensorboard --logdir checkpoints/$EXP_NAME/train to check tensorboard. Resetting discriminators may help training when it stucks at local minimals.

Evaluations

To download our generated images (256x176 reported in paper): here.

SSIM, FID and LPIPS

To run evaluation (SSIM, FID and LPIPS) on pose transfer task:

sh scripts/run_eval.sh

Cite us!

If you find this work is helpful, please consider to star 🌟 this repo and cite us as

@article{cui2021dressing,
  title={Dressing in Order: Recurrent Person Image Generation for Pose Transfer, Virtual Try-on and Outfit Editing},
  author={Cui, Aiyu and McKee, Daniel and Lazebnik, Svetlana},
  journal={arXiv preprint arXiv:2104.07021},
  year={2021}
}

Acknowledgements

This repository is built up on GFLA, pytorch-CycleGAN-and-pix2pix, PATN and MUNIT. Please be aware of their licenses when using the code.

Thanks a lot for the great work to the pioneer researchers!

Comments
  • Testing on Custom Image

    Testing on Custom Image

    Hi @cuiaiyu , Thanks a lot for this great work. I'm working on Cloth Virtual Try-On as my Final Year Project. The demo worked fine for me but currently I'm facing some issues in performing virtual try-on on my own image. Steps I followed:

    1. Resized by full size image .jpg to 750x1101 pixels (as all the images in test folder are of this dimension) and added it to test folder.

    2. Ran openpose on the image and obtained the keypoints in .json file, manually separated x and y keypoints as (x0, y0, c0, x1, y1, c1, ....) and added the file name along with 2D_pose_keypoint y and x keypoints respectively in fasion-annotation-test.csv .

    3. Using SCHP found the human parsing and added it to testM_lip.

    4. Added image name in test.lip and standard_test_anns.txt under print just for testing.

    5. After that I just ran the demo.ipynb and got the following error in data loading step. image

    I tried a lot to resolve this error but I'm unable to get it also I'm approaching the deadline. Kindly help me to test the model on custom image.

    Also I'm unable to understand the use of fasion-pairs-test.csv while running demo.

    Hopeful for your kind reply. Thanks a lot Cuiaiyu !!!

    Originally posted by @Djvnit in https://github.com/cuiaiyu/dressing-in-order/issues/21#issuecomment-1033883697

    opened by Djvnit 15
  • Error in model = DIORModel(opt)

    Error in model = DIORModel(opt)

    Hi Aiyu Cui, I have been following the topic since 2017 and dressing-in-order brings a lot of new features like tuck-in into the picture. Cheers for that. However, I have tried to recreate this framework on Google Colab & not been able to figure my way out. The notebook that I've used: link_to_nb

    Tesla K80 NVIDIA-SMI 510.39.01 Driver Version: 460.32.03 CUDA Version: 11.2

    While building custom CUDA modules was smooth, I am not sure about CUDA 11.2 along with torch 1.0.0

    When setting up the dior_mdoel, the below error pops.

    load vgg ckpt from torchvision dict.
    [init] init pre-trained model vgg.
    initialize network with orthogonal
    
    ---------------------------------------------------------------------------
    
    RuntimeError                              Traceback (most recent call last)
    
    <ipython-input-14-81abdc6faa32> in <module>
         29 
         30 # create model
    ---> 31 model = DIORModel(opt)
         32 model.setup(opt)
    
    14 frames
    
    /content/dressing-in-order/models/dior_model.py in __init__(self, opt)
          9 class DIORModel(DIORBaseModel):
         10     def __init__(self, opt):
    ---> 11         DIORBaseModel.__init__(self, opt)
         12         self.netE_opt = opt.netE
         13         self.frozen_flownet = opt.frozen_flownet
    
    /content/dressing-in-order/models/dior_base_model.py in __init__(self, opt)
         21         self.n_style_blocks = opt.n_style_blocks
         22         # init_models
    ---> 23         self._init_models(opt)
         24 
         25         # loss
    
    /content/dressing-in-order/models/dior_model.py in _init_models(self, opt)
         59 
         60     def _init_models(self, opt):
    ---> 61         super()._init_models(opt)
         62         self.model_names += ["Flow"]
         63         if opt.frozen_flownet:
    
    /content/dressing-in-order/models/dior_base_model.py in _init_models(self, opt)
         72                                       n_style_blocks=opt.n_style_blocks, n_human_parts=opt.n_human_parts, netG=opt.netG,
         73                                       norm=opt.norm_type, relu_type=opt.relu_type,
    ---> 74                                       init_type=opt.init_type, init_gain=opt.init_gain, gpu_ids=self.gpu_ids)
         75 
         76         self.netE_attr = networks.define_E(input_nc=3, output_nc=opt.style_nc, netE=opt.netE, ngf=opt.ngf, n_downsample=2,
    
    /content/dressing-in-order/models/networks/__init__.py in define_G(input_nc, output_nc, ngf, latent_nc, style_nc, n_downsampling, n_style_blocks, n_human_parts, netG, norm, relu_type, init_type, init_gain, gpu_ids, **kwargs)
         82             norm_type=norm, relu_type=relu_type, **kwargs
         83             )
    ---> 84     return init_net(net, init_type, init_gain, gpu_ids)
         85 
         86 def define_D(input_nc, ndf, netD, n_layers_D=3, norm='batch', use_dropout=True, use_sigmoid=False, init_type='normal', init_gain=0.02, gpu_ids=[]):
    
    /content/dressing-in-order/models/networks/base_networks.py in init_net(net, init_type, init_gain, gpu_ids, do_init_weight)
        107         net = torch.nn.DataParallel(net, gpu_ids)  # multi-GPUs
        108     if do_init_weight:
    --> 109         init_weights(net, init_type, init_gain=init_gain)
        110     return net
        111 
    
    /content/dressing-in-order/models/networks/base_networks.py in init_weights(net, init_type, init_gain)
         88 
         89     print('initialize network with %s' % init_type)
    ---> 90     net.apply(init_func)  # apply the initialization function <init_func>
         91 
         92 def init_net(net, init_type='normal', init_gain=0.02, gpu_ids=[], do_init_weight=True):
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        240         """
        241         for module in self.children():
    --> 242             module.apply(fn)
        243         fn(self)
        244         return self
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        240         """
        241         for module in self.children():
    --> 242             module.apply(fn)
        243         fn(self)
        244         return self
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        240         """
        241         for module in self.children():
    --> 242             module.apply(fn)
        243         fn(self)
        244         return self
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        240         """
        241         for module in self.children():
    --> 242             module.apply(fn)
        243         fn(self)
        244         return self
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        240         """
        241         for module in self.children():
    --> 242             module.apply(fn)
        243         fn(self)
        244         return self
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/modules/module.py in apply(self, fn)
        241         for module in self.children():
        242             module.apply(fn)
    --> 243         fn(self)
        244         return self
        245 
    
    /content/dressing-in-order/models/networks/base_networks.py in init_func(m)
         78                 init.kaiming_normal_(m.weight.data, a=0, mode='fan_in')
         79             elif init_type == 'orthogonal':
    ---> 80                 init.orthogonal_(m.weight.data, gain=init_gain)
         81             else:
         82                 raise NotImplementedError('initialization method [%s] is not implemented' % init_type)
    
    /usr/local/lib/python3.7/dist-packages/torch/nn/init.py in orthogonal_(tensor, gain)
        354 
        355     # Compute the qr factorization
    --> 356     q, r = torch.qr(flattened)
        357     # Make Q uniform according to https://arxiv.org/pdf/math-ph/0609050.pdf
        358     d = torch.diag(r, 0)
    
    RuntimeError: cuda runtime error (11) : invalid argument at /pytorch/aten/src/THC/generic/THCTensorMathPairwise.cu:225
    

    link_to_cell Please look into this, Thanks :)

    opened by preetshah7 13
  • All sections below Setup produce errors in the demo

    All sections below Setup produce errors in the demo

    Hello, I have reached the sections below "Setup" in the demo, but they produce an error when I try to run them.

    "Pose Transfer" produces the following: TypeError Traceback (most recent call last) in () 5 # generate 6 pimg, gimgs, oimgs, gen_img, pose = dress_in_order(model, pid, pose_id=pose_id) ----> 7 plot_img(pimg, gimgs, oimgs, gen_img, pose)

    in plot_img(pimg, gimgs, oimgs, gen_img, pose) 41 42 def plot_img(pimg=[], gimgs=[], oimgs=[], gen_img=[], pose=None): ---> 43 if pose != None: 44 import utils.pose_utils as pose_utils 45 print(pose.size())

    TypeError: ne() received an invalid combination of arguments - got (NoneType), but expected one of:

    • (Tensor other) didn't match because some of the arguments have invalid types: (!NoneType!)
    • (Number other) didn't match because some of the arguments have invalid types: (!NoneType!)

    "Try-On: Tucking in" produces the following: RuntimeError Traceback (most recent call last) in () 6 7 # tuck in (dressing order: hair, top, bottom) ----> 8 pimg, gimgs, oimgs, gen_img, pose = dress_in_order(model, pid, gids=gids, order=[2,5,1]) 9 plot_img(pimg, gimgs, gen_img=gen_img, pose=pose) 10

    in dress_in_order(model, pid, pose_id, gids, ogids, order, perturb) 89 seg = model.encode_single_attr(gimg[None], gparse[None], pose[None], to_pose[None], i=gid[2]) 90 gsegs[gid[2]] = seg ---> 91 gimgs += [gimg * (gparse == gid[2])] 92 93 # encode garment (overlay)

    RuntimeError: expected type torch.cuda.FloatTensor but got torch.cuda.ByteTensor "Layering - Single (dress in order)" produces the following error: RuntimeError Traceback (most recent call last) in () 2 ogids = [('print', 2, 5)] 3 # tuck in ----> 4 pimg, gimgs, oimgs, gen_img, pose = dress_in_order(model, pid, ogids=ogids) 5 plot_img(pimg, gimgs, oimgs, gen_img, pose)

    in dress_in_order(model, pid, pose_id, gids, ogids, order, perturb) 97 for gid in ogids: 98 oimg, oparse, pose = load_img(gid, ds) ---> 99 oimgs += [oimg * (oparse == gid[2])] 100 seg = model.encode_single_attr(oimg[None], oparse[None], pose[None], to_pose[None], i=gid[2]) 101 over_gsegs += [seg]

    RuntimeError: expected type torch.cuda.FloatTensor but got torch.cuda.ByteTensor

    "Layering - Multiple (dress in order)", "Texture Transfer", "Reshaping", "Content Removal" also produces the similar runtime error, I expect if one of them is fixed, the others will be as well, but I'm not sure what is causing the issue

    opened by AhmedHashish123 7
  • python generate_fashion_datasets.py creates empty directories

    python generate_fashion_datasets.py creates empty directories

    Hi, when I run python generate_fashion_datasets.py. Two empty directories called train and test are created. No images are added inside them. I changed the data root folder to the one I made. My folder contains these files:

    • testM_lip
    • trainM_lip
    • fashion-annotation-test.csv
    • fashion-annotation-train.csv
    • fashion-pairs-test.csv
    • fashion-pairs-train.csv
    • standard_test_anns.text
    • test.lst
    • train.lst

    I don't think I'm missing any files, so I don't know why generate_fashion_datasets.py doesn't add images to the two folders it creates.

    opened by AhmedHashish123 6
  • Suspicious flownet warmup logs

    Suspicious flownet warmup logs

    During the flow net warm up. I am getting the following logs. I am not understanding why all the values are zero.

    [flownet_warmup][iter-50]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-100]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-150]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-200]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-250]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-300]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-350]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-400]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-450]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-500]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-550]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-600]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-650]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-700]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-750]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-800]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-850]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-900]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-950]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1000]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1050]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1100]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1150]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1200]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1250]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1300]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1350]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1400]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1450]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1500]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1550]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1600]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1650]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1700]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1750]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1800]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1850]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1900]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-1950]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    [flownet_warmup][iter-2000]G_GAN_pose: 0.0000, G_GAN_content: 0.0000, D_real_pose: 0.0000, D_fake_pose: 0.0000, D_real_content: 0.0000, D_fake_content: 0.0000, rec: 0.0000, per: 0.0000, sty: 0.0000, seg: 0.0000, flow_reg: 0.0000, flow_cor: 2.5285, 
    saving the latest model (total_iters 2000)
    End of iter 2000 / 120000        Time Taken: 1220 sec
    at 2000, compute visuals
    

    These are my training parameters.

    ----------------- Options ---------------
                   batch_size: 32                             
                        beta1: 0.5                           
                        beta2: 0.999                         
              checkpoints_dir: checkpoints                   
               continue_train: True                          	[default: False]
                    crop_size: 256                           
                     dataroot: data/fashion/                 	[default: data]
                 display_freq: 2000                          
                        epoch: latest                        
                  epoch_count: 1                             
                 flownet_path:                               
                   frozen_enc: False                         
               frozen_flownet: False                         
                frozen_models:                               
                    g2d_ratio: 0.1                           
                     gan_mode: lsgan                         
                      gpu_ids: 0,1,2,3                         	[default: 0]
                      img_dir: img_highres                   
                    init_gain: 0.02                          
                    init_type: orthogonal                    	[default: kaiming]
                      isTrain: True                          	[default: None]
                    load_iter: 0                             	[default: 0]
                 loss_coe_GAN: 1                             
            loss_coe_flow_cor: 2.0                           
            loss_coe_flow_reg: 0.001                         
                 loss_coe_per: 0.0                           	[default: 0.2]
                 loss_coe_rec: 0.0                           	[default: 2]
                 loss_coe_seg: 0.1                           
                 loss_coe_sty: 0.0                           	[default: 200]
                           lr: 0.0001                        	[default: 0.001]
               lr_decay_iters: 50                            
                    lr_policy: linear                        
               lr_update_unit: 10000                         
               max_batch_size: 16                            
                        model: flow                          	[default: adgan]
                       n_cpus: 8                             	[default: 4]
                 n_downsample: 2                             
                     n_epochs: 60000                         
               n_epochs_decay: 60000                         
                n_human_parts: 8                             
                       n_kpts: 18                            
                   n_layers_D: 3                             
               n_style_blocks: 4                             
                         name: flownet_warmup                	[default: experiment_name]
                          ndf: 64                            
                         netD: resnet                        
                         netE: adgan                         
                         netG: adgan                         
                          ngf: 64                            
                   no_dropout: False                         
                no_trial_test: True                          	[default: False]
                    norm_type: instance                      
                      perturb: False                         
                        phase: train                         
                    pool_size: 50                            
                   print_freq: 50                            	[default: 100]
                  progressive: False                         
                  random_rate: 1                             
                    relu_type: leakyrelu                     
                 save_by_iter: False                         
              save_epoch_freq: 20000                         
             save_latest_freq: 2000                          
                 segm_dataset:                               
                       square: False                         
                     style_nc: 64                            
                       suffix:                               
                      tex_dir: dtd/images                    
                      verbose: False                         
                       warmup: False                         
    ----------------- End -------------------
    
    opened by LeftAttention 6
  • Excuse me, where can i find the

    Excuse me, where can i find the "pretrained_models/flownet.pt" ? In demo.ipynb

    i can find the other three weights, but i can't find the "flownet.pt". I also go to the github of GFLA, there is no flownet.pt. So can you tell me where/how can i get this weights? thanks

    opened by little-misfit 5
  • Testing on CPU

    Testing on CPU

    Hi @cuiaiyu, Thank you so much for your work. I am running demo.ipynb on CPU machine for virtual tryon. Facing AttributeError: 'ADGANEncoder' object has no attribute 'module'

    Can you help me on the same.

    opened by vinodbukya6 4
  • FID value less than paper

    FID value less than paper

    Hi @cuiaiyu ,

    Thanks for sharing your work. I was trying to reproduce the FID values for 256*256 images given in the paper using your code. However, I got a lesser FID value of 12.25 instead of 13.10 mentioned in paper.

    For glfa also, I am getting a value of 9.87 instead of 10.57 which you also mentioned in gfla comment. Can you let me know how was that issue solved?

    opened by rishabhjain9619 4
  • got NoneType during running the demo.ipynb

    got NoneType during running the demo.ipynb

    Hi Aiyu Cui, When I was running the pose transfer part of demo.ipynb file, I found something wrong with the pose tensor. (I finished the training process and no error occured.)

    Traceback (most recent call last):
      File "demo.py", line 158, in <module>
        plot_img(pimg, gimgs, oimgs, gen_img, pose)
      File "demo.py", line 86, in plot_img
        if pose != None:
    TypeError: ne() received an invalid combination of arguments - got (NoneType), but expected one of:
     * (Tensor other)
          didn't match because some of the arguments have invalid types: (NoneType)
     * (Number other)
          didn't match because some of the arguments have invalid types: (NoneType)
    

    Then I printed the 'pose', and found it was mostly invalid.

    tensor([[[0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]],
    
            [[0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]],
    
            [[0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]],
    
            ...,
    
            [[0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 9.8091e-45,
              1.4013e-45, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 2.6625e-44,
              2.8026e-45, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 7.0065e-44,
              8.4078e-45, 1.4013e-45],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]],
    
            [[4.8051e-42, 3.6002e-41, 2.6235e-40,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [1.4000e-41, 1.0490e-40, 7.6443e-40,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [3.9678e-41, 2.9728e-40, 2.1663e-39,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]],
    
            [[0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 5.6037e-37,
              8.5935e-38, 1.2818e-38],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 1.6328e-36,
              2.5040e-37, 3.7347e-38],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 4.6272e-36,
              7.0960e-37, 1.0584e-37],
             ...,
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00],
             [0.0000e+00, 0.0000e+00, 0.0000e+00,  ..., 0.0000e+00,
              0.0000e+00, 0.0000e+00]]], device='cuda:0')
    

    Sorry for distrubing you, and look forward to your suggestion.

    opened by Arvohy 4
  •  Results of demo output

    Results of demo output

    The results of demo output are as follows: 图片1 图片2 图片3 图片4 Hello, how to improve the above effect?

    1. The semantic model adopted has no mask information of the neck. What do you suggest to do with the neck mask?

    2. The code distinguishes hair from hat, which is set as background information. Would it be better to combine hat and hair information?

    3. The resolution of the result is low and the image quality is not clear. Is there any magnification to improve the resolution?

    4. From the test results, the face information is inconsistent; Is it recommended to add facial information when changing hair?

    opened by fanchunpeng 4
  • Testing with custom images of garment only

    Testing with custom images of garment only

    First of all, thanks for the amazing project!

    My teammates and I are using your work in part of our course project, and we are using the FashionIQ dataset, which is mostly consisted of garment-only images, for inference on your pretrained model Can you give us a more detailed explanation of how to preprocess the dataset and run the inference in the case of garment-only images?

    We found you mentioned that P_{g_k} is going to be an empty heatmap when the image is garment only, but I'm not really sure how can we implement it. And it seems like the parser does not work well on garment-only images, so if there are any other methods we can try to parse the garment from the background.

    Also, we are struggling with the face overfitting issue and would like to ask if using garment-only images will help resolve the issue since the pose is not transferred.

    opened by dain5832 3
  • correct dimension for testing on custom dataset

    correct dimension for testing on custom dataset

    I am trying to run the try on module on my own dataset however I am not sure about the correct dimension of the input images and masks etc. what should be the target and also dataset dimnesion in demo file (ds = Dataset(dataroot=dataroot, dim=(?,?), n_human_part=8)

    with my own dimensions that I set org_size = 750,110, like sample images and target_size=256,176 as the template is I get following output on my own images image Please help me figure out the issue It would be great if you provide a more detailed manual for preparing the custom dataset. like if resizing is needed and how to bring keypoints from 25 to 18. I have followed and read all the issues and I saw the template you provided for loading from pose.json file however even if I load from json I still need to set kepoints in the standard_test_anns.txt. it is confusing how to get the correct 18 keypoints out of 25 and how to set that file . your input is appreciated.

    Thanks

    opened by maryamag85 2
  • Texture transfer results

    Texture transfer results

    Hi @cuiaiyu I am working on texture transfer demo. Results are not same as given in demo notebook.

    Result I got: result_tex

    Demo Result: texture_trans

    How can I improve the performance?

    opened by vinodbukya6 0
  • Traninig models on Viton datasets

    Traninig models on Viton datasets

    Hi there,

    Thank you for your great work. I would like to ask if it is possible to use Viton to train Dior. In your work, you have used the Deepfashion dataset, there are multiple images of each wearer in different poses whereas in Viton each wearer has only pairs of images of the person's image and its cloth. If it is possible to use Viton dataset to train your work while only changing the dataloader? I'm not so sure that global flow will work in the Viton case.

    Thanks a lot for the great work again!

    opened by ml1652 1
  • Bad results by the pre-trained model when tested on an unseen image

    Bad results by the pre-trained model when tested on an unseen image

    Hello,

    I run the "Try-On" task inference with the pre-trained model on the following image which is not in the dataset.

    a

    As you can see the below output generated is not good. Face and hands are not rendered properly.

    Screenshot from 2022-09-23 12-56-06

    But for the images in the datasets, I am getting good results.

    Any suggestions?

    Regards, Surendra

    opened by onchiptech 2
  • Dataset password required to run inference in demo?

    Dataset password required to run inference in demo?

    Hello, this is amazing work you have here.

    I wanted to know is it absolutely necessary to have the imshop dataset to run inference? And to use it i'd have to ask the dataset owner for the password? or is there an alternate way of runnning inference without downloading the 7.7 Gb dataset?

    Regards,

    opened by gaurav-95 1
  • The Categories

    The Categories

    Hello again If i want to change the categories used for visualization(pattern,plaid,...) and work with new ones, can you help me with the procedure i need to follow ?

    opened by maziqueen79 1
Owner
Aiyu Cui
PhD student at CS@UIUC.
Aiyu Cui
Official code release for ICCV 2021 paper SNARF: Differentiable Forward Skinning for Animating Non-rigid Neural Implicit Shapes.

Official code release for ICCV 2021 paper SNARF: Differentiable Forward Skinning for Animating Non-rigid Neural Implicit Shapes.

null 235 Dec 26, 2022
Official code release for "Learned Spatial Representations for Few-shot Talking-Head Synthesis" ICCV 2021

Official code release for "Learned Spatial Representations for Few-shot Talking-Head Synthesis" ICCV 2021

Moustafa Meshry 16 Oct 5, 2022
Official pytorch code for SSC-GAN: Semi-Supervised Single-Stage Controllable GANs for Conditional Fine-Grained Image Generation(ICCV 2021)

SSC-GAN_repo Pytorch implementation for 'Semi-Supervised Single-Stage Controllable GANs for Conditional Fine-Grained Image Generation'.PDF SSC-GAN:Sem

tyty 4 Aug 28, 2022
Official implementation of NPMs: Neural Parametric Models for 3D Deformable Shapes - ICCV 2021

NPMs: Neural Parametric Models Project Page | Paper | ArXiv | Video NPMs: Neural Parametric Models for 3D Deformable Shapes Pablo Palafox, Aljaz Bozic

PabloPalafox 109 Nov 22, 2022
Official implementation of the paper Vision Transformer with Progressive Sampling, ICCV 2021.

Vision Transformer with Progressive Sampling This is the official implementation of the paper Vision Transformer with Progressive Sampling, ICCV 2021.

yuexy 123 Jan 1, 2023
Official Repository for the ICCV 2021 paper "PixelSynth: Generating a 3D-Consistent Experience from a Single Image"

PixelSynth: Generating a 3D-Consistent Experience from a Single Image (ICCV 2021) Chris Rockwell, David F. Fouhey, and Justin Johnson [Project Website

Chris Rockwell 95 Nov 22, 2022
Official repository for "On Generating Transferable Targeted Perturbations" (ICCV 2021)

On Generating Transferable Targeted Perturbations (ICCV'21) Muzammal Naseer, Salman Khan, Munawar Hayat, Fahad Shahbaz Khan, and Fatih Porikli Paper:

Muzammal Naseer 46 Nov 17, 2022
Official implementation of the ICCV 2021 paper "Conditional DETR for Fast Training Convergence".

The DETR approach applies the transformer encoder and decoder architecture to object detection and achieves promising performance. In this paper, we handle the critical issue, slow training convergence, and present a conditional cross-attention mechanism for fast DETR training. Our approach is motivated by that the cross-attention in DETR relies highly on the content embeddings and that the spatial embeddings make minor contributions, increasing the need for high-quality content embeddings and thus increasing the training difficulty.

null 281 Dec 30, 2022
An official implementation of "Exploiting a Joint Embedding Space for Generalized Zero-Shot Semantic Segmentation" (ICCV 2021) in PyTorch.

Exploiting a Joint Embedding Space for Generalized Zero-Shot Semantic Segmentation This is an official implementation of the paper "Exploiting a Joint

CV Lab @ Yonsei University 35 Oct 26, 2022
[ICCV 2021] Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages

Discriminative Region-based Multi-Label Zero-Shot Learning (ICCV 2021) [arXiv][Project page >> coming soon] Sanath Narayan*, Akshita Gupta*, Salman Kh

Akshita Gupta 54 Nov 21, 2022
[ICCV 2021] Official Pytorch implementation for Discriminative Region-based Multi-Label Zero-Shot Learning SOTA results on NUS-WIDE and OpenImages

Discriminative Region-based Multi-Label Zero-Shot Learning (ICCV 2021) [arXiv][Project page >> coming soon] Sanath Narayan*, Akshita Gupta*, Salman Kh

Akshita Gupta 54 Nov 21, 2022
The Official Implementation of the ICCV-2021 Paper: Semantically Coherent Out-of-Distribution Detection.

SCOOD-UDG (ICCV 2021) This repository is the official implementation of the paper: Semantically Coherent Out-of-Distribution Detection Jingkang Yang,

Jake YANG 62 Nov 21, 2022
[ICCV 2021] Official PyTorch implementation for Deep Relational Metric Learning.

Deep Relational Metric Learning This repository is the official PyTorch implementation of Deep Relational Metric Learning. Framework Datasets CUB-200-

Borui Zhang 39 Dec 10, 2022
Official implementation of the ICCV 2021 paper: "The Power of Points for Modeling Humans in Clothing".

The Power of Points for Modeling Humans in Clothing (ICCV 2021) This repository contains the official PyTorch implementation of the ICCV 2021 paper: T

Qianli Ma 158 Nov 24, 2022
official Pytorch implementation of ICCV 2021 paper FuseFormer: Fusing Fine-Grained Information in Transformers for Video Inpainting.

FuseFormer: Fusing Fine-Grained Information in Transformers for Video Inpainting By Rui Liu, Hanming Deng, Yangyi Huang, Xiaoyu Shi, Lewei Lu, Wenxiu

null 77 Dec 27, 2022
[Official] Exploring Temporal Coherence for More General Video Face Forgery Detection(ICCV 2021)

Exploring Temporal Coherence for More General Video Face Forgery Detection(FTCN) Yinglin Zheng, Jianmin Bao, Dong Chen, Ming Zeng, Fang Wen Accepted b

null 57 Dec 28, 2022
Official implementation of the ICCV 2021 paper "Joint Inductive and Transductive Learning for Video Object Segmentation"

JOINT This is the official implementation of Joint Inductive and Transductive learning for Video Object Segmentation, to appear in ICCV 2021. @inproce

Yunyao 35 Oct 16, 2022
[ICCV 2021] Official Tensorflow Implementation for "Single Image Defocus Deblurring Using Kernel-Sharing Parallel Atrous Convolutions"

KPAC: Kernel-Sharing Parallel Atrous Convolutional block This repository contains the official Tensorflow implementation of the following paper: Singl

Hyeongseok Son 50 Dec 29, 2022
Official pytorch implementation of "Scaling-up Disentanglement for Image Translation", ICCV 2021.

Official pytorch implementation of "Scaling-up Disentanglement for Image Translation", ICCV 2021.

Aviv Gabbay 41 Nov 29, 2022