https://github.com/ptrvilya/tridi
[ICCV'25] Method for generating static human-object interactions
https://github.com/ptrvilya/tridi
3d-human human-object human-object-interaction iccv iccv2025 iccv25
Last synced: 5 months ago
JSON representation
[ICCV'25] Method for generating static human-object interactions
- Host: GitHub
- URL: https://github.com/ptrvilya/tridi
- Owner: ptrvilya
- License: mit
- Created: 2025-10-18T11:30:30.000Z (8 months ago)
- Default Branch: main
- Last Pushed: 2025-10-28T20:15:22.000Z (8 months ago)
- Last Synced: 2025-10-28T22:22:19.528Z (8 months ago)
- Topics: 3d-human, human-object, human-object-interaction, iccv, iccv2025, iccv25
- Language: Python
- Homepage: https://virtualhumans.mpi-inf.mpg.de/tridi/
- Size: 3.85 MB
- Stars: 22
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
TriDi: Trilateral Diffusion of 3D Humans, Objects and Interactions
Ilya A. Petrov
Riccardo Marin
Julian Chibane
Gerard Pons-Moll
ICCV 2025
## Environment
The code was tested under `Ubuntu 24.04, Python 3.10, CUDA 13.0, PyTorch 2.9.0`.
Use the following command to create a conda environment with necessary dependencies:
```bash
conda env create -f environment.yml
```
## Data downloading and processing
The steps are described in [docs/data.md](./docs/data.md).
## Pre-trained models and evaluation
Pre-trained model can be obtained from the [link](https://nc.mlcloud.uni-tuebingen.de/index.php/s/bmsRACRqzCQ4QPq).
With the commands:
```bash
wget https://nc.mlcloud.uni-tuebingen.de/public.php/dav/files/bmsRACRqzCQ4QPq/gb_main.pth -O ./assets/gb_main.pth
wget https://nc.mlcloud.uni-tuebingen.de/public.php/dav/files/bmsRACRqzCQ4QPq/gb_contacts.pth -O ./assets/gb_contacts.pth
```
The command below is used to run sampling. Prameter `sample.mode` controls the choice of modalities, i.e.:
three numbers correspond to human, object, and interaction, respectively;
`1` means the modality is sampled, `0` means it is conditioned on.
For example, `sample.mode="sample_101"` means sampling human and interaction conditioned on the object.
```bash
python main.py -c config/env.yaml scenarios/gb_main.yaml -- \
run.job=sample run.name=001_gb_main sample.target=hdf5 \
resume.checkpoint="./assets/gb_main.pth" \
dataloader.batch_size=1024 sample.mode="sample_101" \
run.datasets=["grab","behave"] sample.dataset=normal sample.repetitions=3 \
model.cg_apply=True model.cg_scale=2.0
```
Use the command below to run evaluation on the generated samples. The `eval.sampling_target` parameter controls
which modalities are evaluated (possible values: `sbj_contact`, `obj_contact`,):
```bash
python main.py -c config/env.yaml scenarios/gb_main.yaml -- \
run.job=eval run.name=001_gb_main resume.step=-1 \
eval.sampling_target=['sbj_contact']
```
## Training
Use the following command to run the training:
```bash
python main.py -c config/env.yaml scenarios/gb_main.yaml -- \
run.name=001_gb_main run.job=train
```
## Citation
```bibtex
@inproceedings{petrov2025tridi,
title={TriDi: Trilateral Diffusion of 3D Humans, Objects and Interactions},
author={Petrov, Ilya A and Marin, Riccardo and Chibane, Julian and Pons-Moll, Gerard},
booktitle={Proceedings of the IEEE/CVF International Conference on Computer Vision},
year={2025}
}
```
## Acknowledgements
This project benefited from the following resources:
* [BEHAVE](https://virtualhumans.mpi-inf.mpg.de/behave/license.html), [GRAB](https://grab.is.tue.mpg.de/),
[OMOMO](https://github.com/lijiaman/omomo_release), and [InterCap](https://intercap.is.tue.mpg.de/) datasets;
* [grab](https://github.com/otaheri/GRAB) preprocessing code;
* [smplx](https://github.com/vchoutas/smplx) repository: SMPL-X to SMPL+H conversion;
* [PC^2 diffusion](https://github.com/lukemelas/projection-conditioned-point-cloud-diffusion): diffusion implementation;
* [PointNeXt](https://github.com/guochengqian/PointNeXt): point cloud encoder;
* [blendify](https://github.com/ptrvilya/blendify/): all visualizations;
* [blogpost](http://danshiebler.com/2016-09-14-parallel-progress-bar/): parallel map implementation.