Skip to content

DavidZhang73/Manual-PA

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

13 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Manual-PA: Learning 3D Part Assembly from Instruction Diagrams

1The Australian National University 2Mitsubishi Electric Research Labs 3The Australian Institute for Machine Learning

ArXiv template License: MIT

Assembly.Demonstration.Video.V2.mp4

Abstract

Teaser

Assembling furniture amounts to solving the discrete-continuous optimization task of selecting the furniture parts to assemble and estimating their connecting poses in a physically realistic manner. The problem is hampered by its combinatorially large yet sparse solution space thus making learning to assemble a challenging task for current machine learning models. In this paper, we attempt to solve this task by leveraging the assembly instructions provided in diagrammatic manuals that typically accompany the furniture parts. Our key insight is to use the cues in these diagrams to split the problem into discrete and continuous phases. Specifically, we present Manual-PA, a transformer-based instruction Manual-guided 3D Part Assembly framework that learns to semantically align 3D parts with their illustrations in the manuals using a contrastive learning backbone towards predicting the assembly order and infers the 6D pose of each part via relating it to the final furniture depicted in the manual. To validate the efficacy of our method, we conduct experiments on the benchmark PartNet dataset. Our results show that using the diagrams and the order of the parts lead to significant improvements in assembly performance against the state of the art. Further, Manual-PA demonstrates strong generalization to real-world IKEA furniture assembly on the IKEA-Manual dataset.

Method

Method

Prerequisites

Installation

# clone project
git clone git@github.com:DavidZhang73/Manual-PA.git

# install uv, https://docs.astral.sh/uv/getting-started/installation/
curl -LsSf https://astral.sh/uv/install.sh | sh

# install dependencies
uv sync

Data Preparation

mkdir data/ikea-manual-assembly
huggingface-cli download --repo-type dataset DavidZhang73/ManualPADatasets --local-dir data/ikea-manual-assembly
cd data/ikea-manual-assembly
unzip ikea-manual.zip
unzip partnet.zip

Training Stage 1: Permutation Learning

Train on all categories

uv run src/main.py fit \
  -c configs/data/partnet_synthetic_stepwise.yaml \
  -c configs/model/manual_pa_order.yaml \
  --trainer.logger.name ManualPA_Order

Inference for all categories

uv run src/main.py test \
  -c configs/data/partnet_synthetic_stepwise.yaml \
  -c configs/model/manual_pa_order.yaml \
  --trainer.logger.name ManualPA_Order_Test \
  --ckpt_path logs/ManualPA/<run_id>/checkpoints/<best>.ckpt

Training Stage 2: Part Pose Estimation

Train on Chair

uv run src/main.py fit \
  -c configs/data/partnet_synthetic_stepwise_chair.yaml \
  -c configs/model/manual_pa.yaml \
  --trainer.logger.name ManualPA_Chair

Test on Chair

uv run src/main.py test \
  -c configs/data/partnet_synthetic_stepwise_table.yaml \
  -c configs/model/manual_pa.yaml \
  --trainer.logger.name ManualPA_Chair_Test \
  --data.order_pathname logs/ManualPA/<run_id>/pred_orders.json \
  --ckpt_path logs/ManualPA/<run_id>/checkpoints/<best>.ckpt

Citation

@inproceedings{Zhang2025Manual,
  author    = {Zhang, Jiahao and Cherian, Anoop and Rodriguez, Cristian and Deng, Weijian and Gould, Stephen},
  title     = {Manual-PA: Learning 3D Part Assembly from Instruction Diagrams},
  booktitle = {International Conference on Computer Vision (ICCV)},
  year      = {2025},
}

About

[ICCV'25] Manual-PA: Learning 3D Part Assembly from Instruction Diagrams

Resources

License

Stars

Watchers

Forks

Contributors

Languages