✋SRHand: Super-Resolving Hand Images and 3D Shapes via View/Pose-aware Neural Image Representations and Explicit 3D Meshes
Reconstructing detailed hand avatars plays a crucial role in various applications. While prior works have focused on capturing high-fidelity hand geometry, they heavily rely on high-resolution multi-view image inputs and struggle to generalize on low-resolution images. Multi-view image super-resolution methods have been proposed to enforce 3D view consistency. These methods, however, are limited to static objects/scenes with fixed resolutions and are not applicable to articulated deformable hands. In this paper, we propose SRHand (Super-Resolution Hand), the method for reconstructing detailed 3D geometry as well as textured images of hands from low-resolution images. SRHand leverages the advantages of implicit image representation with explicit hand meshes. Specifically, we introduce a geometric-aware implicit image function (GIIF) that learns detailed hand prior by upsampling the coarse input images. By jointly optimizing the implicit image function and explicit 3D hand shapes, our method preserves multi-view and pose consistency among upsampled hand images, and achieves fine-detailed 3D reconstruction (wrinkles, nails). In experiments using the InterHand2.6M and Goliath datasets, our method significantly outperforms state-of-the-art image upsampling methods adapted to hand datasets, and 3D hand reconstruction methods, quantitatively and qualitatively. The code will be publicly available.
conda create -n srhand python=3.9
- Install torch.
pip install torch==1.13.1+cu116 torchvision==0.14.1+cu116 --extra-index-url https://download.pytorch.org/whl/cu116
- Install pytorch3d.
pip install "git+https://github.com/facebookresearch/pytorch3d.git"
- Install additional requirements.
pip install -r requirements.txt
- Download Interhand2.6M (5 fps) dataset and set the dataset paths in config file in conf folder.
First train giif with main_giif.py, and then enhance its quality with main_disc.py file.
python main_giif.py --conf conf/giif_16_256_128.conf
python main_disc.py --conf conf/disc_16_256_128.conf --model_path {PATH_TO_GIIF}
You can download the GIIF checkpoint here!
Put giif.pth and disc.pth in ./interhand_out/Capture0_ROM03_RT_No_Occlusion/Disc_GIIF_16_256/.
python main_disc.py --conf conf/disc_16_256_128.conf --eval --model_path {PATH_TO_GIIF(Disc)} --model_path_disc {PATH_TO_DISCRIMINATOR}
(e.g)
python main_disc.py --conf conf/disc_16_256_128.conf --eval --model_path ./interhand_out/Capture0_ROM03_RT_No_Occlusion/Disc_GIIF_16_256/giif.pth --model_path_disc ./interhand_out/Capture0_ROM03_RT_No_Occlusion/Disc_GIIF_16_256/disc.pth
After you have finished training GIIF, you can now train SRHand.
python main.py --conf conf/ih_GIIF_16_256.conf
To validate SRHand, use the code below.
python main.py --conf conf/ih_GIIF_test.conf --eval --r --model_path {FOLDER_PATH_EXPERIMENT}
(e.g)
python main.py --conf conf/ih_GIIF_test.conf --eval --r --model_path ./interhand_out/Capture0_ROM03_RT_No_Occlusion/SRHand_16
To save the visualization result, give the —save_vis option.
If you find this work useful, please consider citing our paper.
@InProceedings{kim2025srhand,
author = {Kim, Minje and Kim, Tae-Kyun},
title = {SRHand: Super-Resolving Hand Images and 3D Shapes via View/Pose-aware Nueral Image Representations and Explicit 3D Meshes},
booktitle = {Advances in Neural Information Processing Systems (NIPS)},
year = {2025}
}
- Our code is based on XHand.
- We also thank the authors of InterHand2.6M, Goliath for the useful dataset.
- The renderer are based on the renderer from nvdiffrast.
