Model-based 3D Hand Reconstruction via Self-Supervised Learning, CVPR2021

Related tags

Deep Learning S2HAND
Overview

S2HAND: Model-based 3D Hand Reconstruction via Self-Supervised Learning

S2HAND presents a self-supervised 3D hand reconstruction network that can jointly estimate pose, shape, texture, and the camera viewpoint. Specifically, we obtain geometric cues from the input image through easily accessible 2D detected keypoints. To learn an accurate hand reconstruction model from these noisy geometric cues, we utilize the consistency between 2D and 3D representations and propose a set of novel losses to rationalize outputs of the neural network. For the first time, we demonstrate the feasibility of training an accurate 3D hand reconstruction network without relying on manual annotations. For more details, please see our paper, video, and project page.

Code

Environment

Training is implemented with PyTorch. This code was developed under Python 3.6 and Pytorch 1.1.

Please compile the extension modules by running:

pip install tqdm tensorboardX transforms3d chumpy scikit-image

git clone https://github.com/TerenceCYJ/neural_renderer.git
cd neural_renderer
python setup.py install
rm -r neural_renderer

Note that we modified the neural_renderer/lighting.py compared to daniilidis-group/neural_renderer.

Data

For example, for 3D hand reconstruction task on the FreiHAND dataset:

  • Download the FreiHAND dataset from the website.
  • Modify the input and output directory accordingly in examples/config/FreiHAND/*.json.

For HO3D dataset:

  • Download the HO3D dataset from the website.
  • Modify the input and output directory accordingly in examples/config/HO3D/*.json.

Offline 2D Detection

  • Offline 2D keypoint detection use a off-the-shelf detector like pytorch-openpose.
    • We also provide detected 2D keypoints for FreiHAND training set. You may downlad and change the self.open_2dj_lists in the examples/data/dataset.py accordingly.

    • Or Download the hand_pose_model.pth provided by pytorch-openpose, and put the file to examples/openpose_detector/src. Then use the following script and modify the input and output directory accordingly.

      python example/openpose_detector/hand_dectect.py

Training and Evaluation

HO3D

Evaluation: download the pretrained model [texturehand_ho3d.t7], and modify the "pretrain_model" in examples/config/HO3D/evaluation.json.

cd S2HAND
python3 ./examples/train.py --config_json examples/config/HO3D/evaluation.json

Training:

Stage-wise training:

python3 ./examples/train.py --config_json examples/config/HO3D/SSL-shape.json
python3 ./examples/train.py --config_json examples/config/HO3D/SSL-kp.json
python3 ./examples/train.py --config_json examples/config/HO3D/SSL-finetune.json

Or end-to-end training:

python3 ./examples/train.py --config_json examples/config/HO3D/SSL-e2e.json

Note: remember to check and inplace the dirs and files in the *.json files.

FreiHAND

Evaluation: download the pretrained model [texturehand_freihand.t7], and modify the "pretrain_model" in examples/config/FreiHAND/evaluation.json.

cd S2HAND
python3 ./examples/train.py --config_json examples/config/FreiHAND/evaluation.json

Training: refer to HO3D traing scripts.

Citation

If you find our work useful in your research, please consider citing:

@inproceedings{chen2021s2hand,
    title={Model-based 3D Hand Reconstruction via Self-Supervised Learning}, 
    author={Chen, Yujin and Tu, Zhigang and Kang, Di and Bao, Linchao and Zhang, Ying and Zhe, Xuefei and Chen, Ruizhi and Yuan, Junsong},
    booktitle={Conference on Computer Vision and Pattern Recognition},
    year={2021}
}
Comments
  • Question about GT and training parameters

    Question about GT and training parameters

    Hello Yujin,

    Thank you for sharing the great work!

    I'm confused about the generation of pseudo masks in ground truth and training.

    1. From this issue, some masks of samples in GT are not quite accurate and even complete black. How do you separate them, and why the results of some segmented GT are unacceptable?
    2. I noticed that in your code, you used textures whose shape were like (faces.shape[0], faces.shape[1], texture_size, texture_size, texture_size, 3). What's the mean of three 'texture_size'? And will a bigger texture_size induces better rendered RGB images?

    Thanks!

    opened by MooreManor 4
  • Did the 'Camera Intrinsic Parameter' predicted from networks?

    Did the 'Camera Intrinsic Parameter' predicted from networks?

    Hi, I have a question about the 'Camera Intrinsic Parameter' Ks. image In your paper, I think the Camera Intrinsic Parameters were predicted from networks. And I also found clues in line 210 'https://github.com/TerenceCYJ/S2HAND/blob/main/examples/utils/freihandnet.py' image

    But when it comes to the loss function. I find you used Camera Intrinsic Parameters 'Ks' from the dataset to project 3D coordinates into 2D. in line 48 'https://github.com/TerenceCYJ/S2HAND/blob/main/examples/train.py' image

    I was confused about the projection function. Why would you use the 'Ks' from the dataset? What is the relationship between those two operations?

    Best!

    opened by tlok666 4
  • The Projected 2D Joints seems collaps ?

    The Projected 2D Joints seems collaps ?

    Hi, Thank you for sharing this work.

    I try to reproduce the training process on FreiHAND dataset. So, I cloned the original code in this repo.

    Only changed: 1、the 'model = nn.DataParallel(model.cuda())' in 'train.py' into 'model = model.cuda()', since return a dict with nn.DataParallel returns error. 2、"train_batch":32, into "train_batch":32, in 'SSL-e2e.json'

    But, I find the 'Projected 2D Joints 𝑱𝒑𝒓' is collapsing into a point. As the figure2.1 show in the picture below. 0002_0001700

    Is there anything else I need to pay attention to?

    opened by tlok666 4
  • pytorch 1.1 torchvision 0.3.0,  Cant run this code.

    pytorch 1.1 torchvision 0.3.0, Cant run this code.

    error: zip argument #1 must support iteration code execution error when forward outout["render"]

    env: ubuntu16, python3.6, torch 1.1.0 torchvision 0.3.0

    opened by Greyman-Seu 1
  • detect.json and detect_all.json

    detect.json and detect_all.json

    Hi, Excuse me. You use detect.json and detect_all.json in training, can you show me how to modify the hand_detect.py to produce the detect.json, thanks. I means that i can't find where the input and output directory i can modify. 螢幕擷取畫面 2022-03-09 044642

    opened by wjhuang0113 1
  • How do you get the measurement results?

    How do you get the measurement results?

    Thanks for your work. Could you please show me how you get the values on the paper? I can not find where you use the get_measures() function in your code.

    opened by WeedsInML 1
  • Implementation Appendix

    Implementation Appendix

    In the 4.2 Implementation, There is a sentence "We provide more details in the Appendix". But I can't find any Appendix in this paper. Would you please provide the appendix? I would appreciate it so much.

    opened by Carlycjl 1
  • FreiHAND pretrained model

    FreiHAND pretrained model

    Hi, Thank you for sharing your interesting work!

    I have tried to reproduce the evaluation process on FreiHAND dataset using the pretrained model (texturehand_freihand.t7).

    The output hand models seem to be estimated by the model trained using "Average Pose Prior" rather than your pose prior proposed in the supplementary material, as shown below.

    • Example of the output image (0000_0000029.png) 0000_0000029

    • Images in the supplementary materials

    image from supplimentary material

    Is it possible to specify your proposed pose prior as the skeleton regularization when running the evaluation process? If not, could you please share the model trained with your proposed pose prior?

    opened by RyosukeHori 1
  • 2D detection output is not aligned to image

    2D detection output is not aligned to image

    Thank you for sharing your code.

    I have the issue that projected 2D detection output is not aligned to image when running the testing code without modifying anything.

    How can i solve this problem?

    Thank you.

    image image

    opened by CVStack 0
  • python setup.py install error in win10

    python setup.py install error in win10

    load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp_calloc load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_calloc load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp_strdup OLDNAMES.lib(strdup.obi) : error LNK2001: 无法解析的外部符号 __imp_strdup load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp_terminate load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp_strncmp load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp_free load_textures_cuda.obj : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter_noinfo_noreturn load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp__invalid_parameter_noinfo_noreturn load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_wcslen load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 strlen load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 labs load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 llabs load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 fabs load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_fminf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_fmaxf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_exp2f load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_expm1f load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_log2f load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_log1pf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_acoshf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_asinhf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_atanhf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_ldexp load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_logbf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_ilogbf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_scalblnf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_frexp load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_roundf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_lroundf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_llroundf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_rintf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_lrintf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_llrintf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_nearbyintf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_truncf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_fdimf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_cbrtf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 pow load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_remainderf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_remquof load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_erff load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_erfcf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_lgammaf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_tgammaf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_copysignf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_nextafterf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_fmaf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_acosf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_asinf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_atanf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_atan2f load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_cosf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_sinf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_tanf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_coshf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_sinhf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_tanhf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_expf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_logf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_log10f load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_modff load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_powf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_sqrtf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_ceilf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_floorf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp_fmodf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp__dsign load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp__ldsign load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp__fdsign load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp__hypotf load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp___acrt_iob_func load_textures_cuda_kernel.obj : error LNK2001: 无法解析的外部符号 __imp___stdio_common_vfprintf MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_CloseHandle MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_EnterCriticalSection MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_LeaveCriticalSection MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_InitializeCriticalSectionAndSpinCount MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_DeleteCriticalSection MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_SetEvent MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_ResetEvent MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_WaitForSingleObjectEx MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_CreateEventW MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_GetModuleHandleW MSVCRT.lib(utility_desktop.obj) : error LNK2001: 无法解析的外部符号 __imp_GetModuleHandleW MSVCRT.lib(thread_safe_statics.obj) : error LNK2001: 无法解析的外部符号 __imp_GetProcAddress MSVCRT.lib(tncleanup.obj) : error LNK2001: 无法解析的外部符号 __imp_InitializeSListHead MSVCRT.lib(new_scalar.obj) : error LNK2001: 无法解析的外部符号 _callnewh MSVCRT.lib(new_scalar.obj) : error LNK2001: 无法解析的外部符号 malloc MSVCRT.lib(ehvecdtr.obj) : error LNK2001: 无法解析的外部符号 terminate MSVCRT.lib(utility_desktop.obj) : error LNK2001: 无法解析的外部符号 terminate MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _seh_filter_dll MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _configure_narrow_argv MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _initialize_narrow_environment MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _initialize_onexit_table MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _register_onexit_function MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _execute_onexit_table MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _crt_atexit MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _crt_at_quick_exit MSVCRT.lib(utility.obj) : error LNK2001: 无法解析的外部符号 _cexit MSVCRT.lib(dll_dllmain.obj) : error LNK2001: 无法解析的外部符号 _initterm MSVCRT.lib(dll_dllmain.obj) : error LNK2001: 无法解析的外部符号 _initterm_e MSVCRT.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp_GetCurrentThreadId MSVCRT.lib(gs_support.obj) : error LNK2001: 无法解析的外部符号 __imp_GetSystemTimeAsFileTime MSVCRT.lib(dll_dllmain_stub.obj) : error LNK2001: 无法解析的外部符号 __imp_DisableThreadLibraryCalls OLDNAMES.lib(strdup.obi) : error LNK2001: 无法解析的外部符号 __imp__strdup build\lib.win-amd64-3.6\neural_renderer\cuda\load_textures.cp36-win_amd64.pyd : fatal error LNK1120: 113 个无法解析的外部命令 error: command 'C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.16.27023\bin\HostX86\x64\link.exe' failed with exit status 1120

    opened by lpx153623 3
  • Unable to reproduce the results and pretrained model loading failure

    Unable to reproduce the results and pretrained model loading failure

    Hi Yujin,

    Thank you so much for sharing the codes and also nice work on the CVPR paper! The idea really interests me a lot, but currently I come across troubles during reproducing the results, either evaluating the pretrained model or training from the start.

    I'm using Pytorch1.7.1 on CUDA 10.2 for running the codes. Therefore, the major changes I made is revising the non-static forward/backward methods in laplacianloss.py to static methods, since the non-static methods for autograd is deprecated after Pytorch1.5. And changes are shown in the pull request. The issues I have are described in the timeline of several attempts:

    1. Tried to directly evaluate the pretrained model, but got loading failure of module "renderer_NR". Seems that the module name of the neural renderer that is used in the open source codes("renderer_NR") is inconsistent with the one in 'load_model'/'save_model' function("renderer"), so that the pretrained NR module cannot be loaded saved in the current version. So I revised the module name in 'load model'/'save_model' for future loading and saving.

    2. Tried to used the pretrained model(without the NR module that is unable to load) to do the finetune training with parameters you've given in the paper (initial lr=0.00025, *0.5 every 30 epochs and all the hyper-parameters unchanged), but got rendered silhouette growing dramatically, as shown above and then collapsing to a point after only 3-4 epochs. image

    3. Tried to finetune the pretrained model with decreased the texture training hyper-parameter (lambda_texture 0.005-> 0.003, lambda_tex_reg 0.01-> 0.005) and without revised laplacian loss, and then got a more reasonable result with quantitative results shown below but this still didn't reach the presented results in paper. 0000000 0000100 image

    4. Tried to finetune along with the revised laplacian loss, got much worse results than 3. 0000000 0000100

    5. Tried to train without pretrained model with stage-wise training. First, train 3D reconstruction network only with initial lr=0.001(*0.5 every 30 epochs) for 90 epochs: 0000000 0000100 Then train only the neural renderer and encoder for using lr = 0.001 for 30 epochs: 0000000 0000100 But then after 60 epochs finetune, there exists joint output but there are no rendered images shown : 0000000 0000100

    Did I make some mistakes or have some misunderstanding on the paper? I would really appreciate it if you can help me out here by giving some insights.

    opened by YiLin32Wang 1
  • Some training error, I couldn't reproduce  the result.

    Some training error, I couldn't reproduce the result.

    Dear author, Your ideas in this paper are very interesting. I meet some training error when running your released code. This image shows visualization result when epoch 15. Although 2d keypoint prediction is correct, the render result isn't correct. image

    Here is log, image

    thank you

    opened by jianzfb 1
  • GT 3D joints of test set

    GT 3D joints of test set

    Hi, Sir. I note AUC and MPJPE of joints in your paper, however, I did not find GT 2D and 3D joints annotations in FreiHAND and HO3D evaluation set. How to get these data?

    opened by RainCoderJoe 2
Owner
Yujin Chen
Pose and shape estimation, 3D object and scene understanding.
Yujin Chen
[CVPR2021] The source code for our paper 《Removing the Background by Adding the Background: Towards Background Robust Self-supervised Video Representation Learning》.

TBE The source code for our paper "Removing the Background by Adding the Background: Towards Background Robust Self-supervised Video Representation Le

Jinpeng Wang 150 Dec 28, 2022
The Self-Supervised Learner can be used to train a classifier with fewer labeled examples needed using self-supervised learning.

Published by SpaceML • About SpaceML • Quick Colab Example Self-Supervised Learner The Self-Supervised Learner can be used to train a classifier with

SpaceML 92 Nov 30, 2022
A hand tracking demo made with mediapipe where you can control lights with pinching your fingers and moving your hand up/down.

HandTrackingBrightnessControl A hand tracking demo made with mediapipe where you can control lights with pinching your fingers and moving your hand up

Teemu Laurila 19 Feb 12, 2022
Hand-distance-measurement-game - Hand Distance Measurement Game

Hand Distance Measurement Game This is program is made to calculate the distance

Priyansh 2 Jan 12, 2022
A Planar RGB-D SLAM which utilizes Manhattan World structure to provide optimal camera pose trajectory while also providing a sparse reconstruction containing points, lines and planes, and a dense surfel-based reconstruction.

ManhattanSLAM Authors: Raza Yunus, Yanyan Li and Federico Tombari ManhattanSLAM is a real-time SLAM library for RGB-D cameras that computes the camera

null 117 Dec 28, 2022
Towards uncontrained hand-object reconstruction from RGB videos

Towards uncontrained hand-object reconstruction from RGB videos Yana Hasson, Gül Varol, Ivan Laptev and Cordelia Schmid Project page Paper Table of Co

Yana 69 Dec 27, 2022
Self-Supervised Monocular 3D Face Reconstruction by Occlusion-Aware Multi-view Geometry Consistency[ECCV 2020]

Self-Supervised Monocular 3D Face Reconstruction by Occlusion-Aware Multi-view Geometry Consistency(ECCV 2020) This is an official python implementati

null 304 Jan 3, 2023
Unified Pre-training for Self-Supervised Learning and Supervised Learning for ASR

UniSpeech The family of UniSpeech: UniSpeech (ICML 2021): Unified Pre-training for Self-Supervised Learning and Supervised Learning for ASR UniSpeech-

Microsoft 282 Jan 9, 2023
"MST++: Multi-stage Spectral-wise Transformer for Efficient Spectral Reconstruction" (CVPRW 2022) & (Winner of NTIRE 2022 Challenge on Spectral Reconstruction from RGB)

MST++: Multi-stage Spectral-wise Transformer for Efficient Spectral Reconstruction (CVPRW 2022) Yuanhao Cai, Jing Lin, Zudi Lin, Haoqian Wang, Yulun Z

Yuanhao Cai 274 Jan 5, 2023
Code for C2-Matching (CVPR2021). Paper: Robust Reference-based Super-Resolution via C2-Matching.

C2-Matching (CVPR2021) This repository contains the implementation of the following paper: Robust Reference-based Super-Resolution via C2-Matching Yum

Yuming Jiang 151 Dec 26, 2022
Public implementation of "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression" from CoRL'21

Self-Supervised Reward Regression (SSRR) Codebase for CoRL 2021 paper "Learning from Suboptimal Demonstration via Self-Supervised Reward Regression "

null 19 Dec 12, 2022
TensorFlow implementation of Barlow Twins (Barlow Twins: Self-Supervised Learning via Redundancy Reduction)

Barlow-Twins-TF This repository implements Barlow Twins (Barlow Twins: Self-Supervised Learning via Redundancy Reduction) in TensorFlow and demonstrat

Sayak Paul 36 Sep 14, 2022
An official PyTorch implementation of the TKDE paper "Self-Supervised Graph Representation Learning via Topology Transformations".

Self-Supervised Graph Representation Learning via Topology Transformations This repository is the official PyTorch implementation of the following pap

Hsiang Gao 2 Oct 31, 2022
This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Developed By Google!

Machine Learning Hand Detector This is a Machine Learning Based Hand Detector Project, It Uses Machine Learning Models and Modules Like Mediapipe, Dev

Popstar Idhant 3 Feb 25, 2022
Semi-Supervised 3D Hand-Object Poses Estimation with Interactions in Time

Semi Hand-Object Semi-Supervised 3D Hand-Object Poses Estimation with Interactions in Time (CVPR 2021).

null 96 Dec 27, 2022
Accurate 3D Face Reconstruction with Weakly-Supervised Learning: From Single Image to Image Set (CVPRW 2019). A PyTorch implementation.

Accurate 3D Face Reconstruction with Weakly-Supervised Learning: From Single Image to Image Set —— PyTorch implementation This is an unofficial offici

Sicheng Xu 833 Dec 28, 2022
CPF: Learning a Contact Potential Field to Model the Hand-object Interaction

Contact Potential Field This repo contains model, demo, and test codes of our paper: CPF: Learning a Contact Potential Field to Model the Hand-object

Lixin YANG 99 Dec 26, 2022
Pytorch implementation of CVPR2021 paper "MUST-GAN: Multi-level Statistics Transfer for Self-driven Person Image Generation"

MUST-GAN Code | paper The Pytorch implementation of our CVPR2021 paper "MUST-GAN: Multi-level Statistics Transfer for Self-driven Person Image Generat

TianxiangMa 46 Dec 26, 2022
A weakly-supervised scene graph generation codebase. The implementation of our CVPR2021 paper ``Linguistic Structures as Weak Supervision for Visual Scene Graph Generation''

README.md shall be finished soon. WSSGG 0 Overview 1 Installation 1.1 Faster-RCNN 1.2 Language Parser 1.3 GloVe Embeddings 2 Settings 2.1 VG-GT-Graph

Keren Ye 35 Nov 20, 2022