Skip to content

ZenGengChin/ARDHOI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

[Official] Auto-Regressive Diffusion for Generating 3D Human-Object Interactions

AAAI 2025

alt text

This is the redistribution of the original link.

1. Environment Setup

Create and activate the conda environment:

conda env create -n ardhoi -f envs.yml
conda activate ardhoi

If you already created the env before and want to sync it with envs.yml:

conda env update -n ardhoi -f envs.yml --prune

2. Data and External Checkpoints

2.1 OMOMO raw data

Download the original OMOMO dataset from OMOMO, then place it under ./dataset/omomo.

mkdir -p ckpt dataset deps
mv ${OMOMO_PATH} ./dataset/omomo

./dataset/omomo must contain at least:

  • train_diffusion_manip_seq_joints24.p
  • test_diffusion_manip_seq_joints24.p
  • captured_objects/
  • omomo_text_anno/

2.2 Required third-party model files

  1. Download clip-vit-large-patch14 and place it at:
deps/clip-vit-large-patch14/
  1. Download pretrained pointnet and place it so this file exists:
deps/pointnet/classification/pointnet2_ssg_wo_normals/checkpoints/best_model.pth
  1. Download feature-extractor checkpoints and place:

Note: omomo_moementencoder follows the current config spelling.

  1. Download pretrained VAE and ARDHOI place them in ./ckpt/

3. OMOMO Preprocessing

Run preprocessing scripts (from repository root):

python src/dataloader/hoidataset/prepare/omomo/omomo_file.py
python src/dataloader/hoidataset/prepare/omomo/rescale_obj.py

After preprocessing, these should exist:

  • dataset/omomo/train/*.npy
  • dataset/omomo/test/*.npy
  • dataset/omomo/Mean.npy
  • dataset/omomo/Std.npy
  • dataset/omomo/rescaled_objects/*.obj

4. Training

The pipeline is two-stage:

  1. train HOIVAE
  2. train latent AR-diffusion using the trained HOIVAE

All main hyperparameters are in cfg/diffusion/ardiff_omomo.yaml.

4.1 Stage 1: train HOIVAE

python train/diffusion/train_hoivae_omomo.py

This creates:

  • ckpt/<VAE.name>/best.ckpt
  • ckpt/<VAE.name>/<VAE.name>.yaml

4.2 Stage 2: train AR-diffusion

python train/diffusion/train_lardiff_omomo.py

You can override config values from command line (dotlist style), for example:

python train/diffusion/train_lardiff_omomo.py \

Important: if ckpt/<ardiff.name>/<ardiff.name>.yaml already exists, the script reloads that saved config. Use a new ardiff.name (or remove that folder) if you want new hyperparameters to take effect.

5. Evaluation

Run:

python test/eval/eval_ardhoi.py

Prerequisites:

  • ckpt/<ardiff.name>/last.ckpt exists
  • all dependencies in Sections 2 and 3 are ready

The script evaluates 20 repetitions and prints averaged metrics as a Python dictionary (including keys such as FID, Diversity, Matching_score, R_precision_top_k).

About

[AAAI 2025] Auto-Regressive Diffusion for Generating 3D Human-Object Interactions (Redistribution)

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages