Official implementation of the paper
UDAPose: Unsupervised Domain Adaptation for Low-Light Human Pose Estimation, CVPR 2026
![]()
-
If you use uv, you can directly
uv sync
Or you can still use
pipas followingpip install -r requirements.txt
-
After that, you should compile and install the CUDA kernel for
deformable attention.cd models/edpose/ops python setup.py build install -
Test installation.
python test.py
-
Download ExLPose dataset and put it under
data. -
Organize the dataset as following:
data |- ExLPose |- Annotations | |- ExLPose_test_WL.json | |- ExLPose-OC_test_A7M3.json | |- ... |- bright | |- (bright images)... |- dark | |- (paired dark images)... |- ExLPose-OCN | |- A7M3 | | |- (A7M3 images)... | |- RICOH3 | | |- (RICOH3 images)...
-
Download checkpoints from 🤗.
hf download arsity/UDAPose-model-weights --local-dir ckpts
-
Run inference
sh test.sh
You may also want to edit test.sh to evaluate on one subset.
Our full framework involves 3 steps in total. You can start from any step with our provided checkpoints or from the very beginning.
-
Download SD 2.1 checkpoints from 🤗.
hf download arsity/UDAPose-model-weights --local-dir ckpts
-
Start training LCIM
cd data-pipeline accelerate launch train_vae.py
Results would be under ckpts/vae_train_outputs.
-
Download checkpoints from 🤗.
hf download arsity/UDAPose-model-weights --local-dir ckpts
-
Start generating training data
cd data-pipeline accelerate launch style_transfer.py
Synthetic training data would be under data/synthetic.
-
Download checkpoints from 🤗.
hf download arsity/UDAPose-model-weights --local-dir ckpts
-
Download synthetic data from 🤗.
hf download arsity/UDAPose-synthetic-data images.zip mapping_list.json --type dataset --local-dir data
-
Unzip and organize as following
data |- mapping_list.json |- synthetic |- 0 |- 1 |- (image id directories)... -
then
sh train.sh
to start training (for low-light). If you want to start from scratch (well-lit), you can edit
train.sh.
UDAPose is released under the Apache License 2.0 for our original contributions, unless otherwise noted.
This project builds upon several open-source projects. We preserve their original license notices, including:
- ED-Pose: Apache License 2.0, with the original ED-Pose license notices retained
- StyleID: MIT License
Some optional components, pretrained models, or external checkpoints may be subject to their own licenses, such as Stable Diffusion / Swin-Transformer. These are not covered by the Apache-2.0 license of our original code.
Please see LICENSES/ for details.
If you find this work useful, please consider cite our paper
@InProceedings{chen2026udapose,
author = {Chen, Haopeng and Ai, Yihao and Kim, Kabeen and Tan, Robby T. and Chen, Yixin and Wang, Bo},
title = {UDAPose: Unsupervised Domain Adaptation for Low-Light Human Pose Estimation},
booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
month = {June},
year = {2026},
pages = {13781-13792}
}