InteractVLM:基于2D基础模型的3D交互推理技术

一、引言

在计算机视觉和人工智能领域,如何从二维图像中准确推理出三维交互信息一直是一个具有挑战性的问题。InteractVLM的出现为解决这一问题提供了新的思路和方法。它能够从单张自然图像中估计人体和物体上的3D接触点,实现准确的人体 – 物体联合3D重建。本文将详细介绍InteractVLM的相关内容,包括其核心概念、模型架构、安装使用方法、训练评估过程等。

InteractVLM的整体效果

二、InteractVLM简介

2.1 研究团队与背景

InteractVLM是由来自多个知名机构的研究人员共同开发的。其中包括Max Planck Institute for Intelligent Systems的Sai Kumar Dwivedi、Shashank Tripathi、Omid Taheri和Michael J. Black,University of Amsterdam的Dimitrije Antić和Dimitrios Tzionas,以及Inria的Cordelia Schmid。该项目相关成果计划在CVPR 2025会议上展示。

2.2 核心功能与创新点

InteractVLM的核心功能是从单张自然图像中估计人体和物体上的3D接触点,从而实现准确的人体 – 物体联合3D重建。它引入了一个新颖的任务——语义人体接触(Semantic Human Contact),该任务超越了传统的二进制人体接触,能够推断人体上特定物体的接触情况。

通过利用大型视觉 – 语言模型(Vision – Language Models)丰富的视觉知识,InteractVLM解决了训练所需的真实3D交互数据有限的问题,从而能够更好地泛化到各种真实世界的交互场景中。

三、InteractVLM的应用场景

3.1 人体 – 物体联合重建

在人体 – 物体联合重建方面,InteractVLM表现出色。通过输入单张自然图像,它可以准确地估计人体和物体的3D接触点,进而实现人体和物体的联合3D重建。从README文件中的示例图片可以看到,输入的原始图像经过InteractVLM处理后,能够生成高质量的人体 – 物体联合重建结果。

人体 – 物体联合重建示例

3.2 语义人体接触

语义人体接触是InteractVLM引入的一个重要任务。传统的二进制人体接触只能判断人体是否与物体接触,而语义人体接触能够推断人体上特定物体的接触情况。例如,在一张人拿着瓶子的图片中,语义人体接触可以准确地指出人体哪些部位与瓶子接触。这一功能在许多领域都有潜在的应用,如人机交互、虚拟现实等。

四、模型库介绍

4.1 模型列表

InteractVLM提供了多个预训练模型,每个模型都有其特定的用途和训练数据集。以下是模型库中的部分模型:

# Model Type Training Datasets Comment Status
1 interactvlm - 3d - hcontact - damon hcontact DAMON Winner of RHOBIN Human Contact Challenge (CVPR 2025) Available
2 interactvlm - 3d - hcontact - wScene - damon - lemon - rich hcontact DAMON + LEMON – HU + RICH Best in – the – wild 3D Human Contact Estimation (with foot ground contact) Available
3 interactvlm - 3d - oafford - lemon - piad oafford LEMON – OBJ + PIAD Estimates Object Affordance Available
4 interactvlm - 2d - hcontact h2dcontact Extended LISA by projecting DAMON contact on images 2D Human Contact Segmentation via Referring Segmentation Available
5 interactvlm - 3d - hcontact - ocontact hcontact + ocontact DAMON + LEMON – HU + RICH + LEMON – OBJ + PIAD + PICO + HOI – VQA Single Model for Joint 3D Human Object Contact Estimation Available

4.2 模型特点与用途

  • interactvlm - 3d - hcontact - damon:该模型在RHOBIN人体接触挑战(CVPR 2025)中获胜,主要用于3D人体接触估计,使用DAMON数据集进行训练。
  • interactvlm - 3d - hcontact - wScene - damon - lemon - rich:适用于野外3D人体接触估计,考虑了脚部与地面的接触情况,使用DAMON、LEMON – HU和RICH数据集进行训练。
  • interactvlm - 3d - oafford - lemon - piad:用于估计物体的功能属性,使用LEMON – OBJ和PIAD数据集进行训练。
  • interactvlm - 2d - hcontact:通过引用分割实现2D人体接触分割,其训练数据是通过将DAMON接触投影到图像上扩展的LISA数据集。
  • interactvlm - 3d - hcontact - ocontact:是一个用于联合3D人体 – 物体接触估计的单模型,使用多个数据集进行训练,包括DAMON、LEMON – HU、RICH、LEMON – OBJ、PIAD、PICO和HOI – VQA。

五、安装与环境配置

5.1 安装Micromamba

如果尚未安装Micromamba,可以使用以下命令进行安装:

curl -Ls https://micro.mamba.pm/api/download/linux - 64/latest | tar -xvj bin/micromamba
sudo mv bin/micromamba /usr/local/bin/

5.2 创建和激活环境

使用Micromamba创建一个名为interactvlm的环境,并激活该环境:

micromamba create -n interactvlm python = 3.10 -c conda - forge
micromamba activate interactvlm

5.3 安装PyTorch

安装带有CUDA 12.1的PyTorch:

pip install torch==2.1.0 torchvision==0.16.0 torchaudio==2.1.0 --index - url https://download.pytorch.org/whl/cu121

5.4 克隆仓库

克隆InteractVLM的代码仓库并进入目录:

git clone https://github.com/saidwivedi/InteractVLM.git
cd InteractVLM

5.5 安装依赖

安装项目所需的依赖:

pip install -r requirements.txt
pip install flash - attn --no - build - isolation
DS_BUILD_FUSED_ADAM = 1 pip install deepspeed==0.15.1

5.6 环境设置

在运行演示、训练或评估脚本之前,确保CUDA已正确配置:

export CUDA_HOME=/usr/local/cuda  # or your CUDA installation path
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

六、代码结构

InteractVLM的代码结构清晰,各个模块分工明确。以下是代码结构的详细介绍:

InteractVLM/
├── 📁 model/                         # Core model implementation
├── 📁 datasets/                      # Data loading and processing
├── 📁 utils/                         # Utility functions
├── 📁 preprocess_data/               # Data preprocessing scripts
├── 📁 scripts/                       # Execution scripts
├── 📁 data/                          # Dataset folders, Body models, Demo samples
├── 📁 trained_models/                # Trained models
├── 📄 train.py                       # Main training script
├── 📄 evaluate.py                    # Main evaluation script
├── 📄 run_demo.py                    # Run Demo
└── 📄 requirements.txt               # Python dependencies
  • model/:核心模型实现模块,包含了InteractVLM的主要模型代码。
  • datasets/:数据加载和处理模块,负责读取和处理训练、测试和演示所需的数据。
  • utils/:实用工具函数模块,包含了一些常用的辅助函数。
  • preprocess_data/:数据预处理脚本模块,用于对原始数据进行预处理。
  • scripts/:执行脚本模块,包含了训练、评估和演示的脚本。
  • data/:数据集文件夹,包含了各种数据集、人体模型和演示样本。
  • trained_models/:训练好的模型存储目录。
  • train.py:主训练脚本,用于训练InteractVLM模型。
  • evaluate.py:主评估脚本,用于评估训练好的模型的性能。
  • run_demo.py:运行演示脚本,用于在自己的图像上进行演示。
  • requirements.txt:Python依赖文件,列出了项目所需的所有Python库。

七、数据和模型下载

7.1 基本数据文件

要运行InteractVLM,需要下载基本数据文件和预训练模型。项目提供了一个方便的脚本fetch_data.sh来处理这个过程。

7.2 下载脚本使用方法

  1. 首先,在https://interactvlm.is.tue.mpg.de/login.php上注册以获取访问凭证。
  2. 然后,运行下载脚本:
bash fetch_data.sh

八、演示运行

8.1 演示命令

可以在自己的图像上运行演示,支持人体或物体交互估计模式:

# For 3D human contact estimation
bash scripts/run_demo.sh hcontact data/demo_samples folder

# For 2D human contact segmentation
bash scripts/run_demo.sh h2dcontact data/demo_samples file

# For 3D object affordance estimation  
bash scripts/run_demo.sh oafford data/demo_samples folder

8.2 演示要求

  • 人体接触演示:已经提供了规范的人体网格和渲染输入。只需运行脚本即可估计人体上的3D接触点。现在还支持使用最新发布的模型进行带场景(如地面或未定义物体)的人体接触估计。使用fetch_data.sh脚本中的hcontact - wScene参数下载最新模型,并在运行演示脚本时使用相同的参数。图像文件名中的物体名称作为接触估计的查询对象(例如,“bottle” 或 “chair”)。要估计与场景或地面的接触,使用 “scene” 作为查询或在文件名前加上 “scene”。
  • 2D人体接触演示:直接在输入图像上使用引用分割进行2D接触分割。这扩展了LISA在2D空间中人体 – 物体接触检测的能力。图像文件名中的物体名称作为接触估计的查询对象。
  • 物体功能属性演示:代码期望输入一个物体网格。脚本将自动渲染物体的多个视图以进行功能属性预测。

8.3 输入模式

演示支持两种输入结构:

  1. 基于文件夹的模式(默认):每个样本放在自己的文件夹中(适用于3D人体接触和物体功能属性估计)。
  2. 基于文件的模式:所有样本作为文件放在一个文件夹中。支持以下情况:

    • 2D人体接触(h2dcontact:直接在输入图像上进行分割。
    • 3D人体接触(hcontact:估计视频帧的人体接触。

8.4 示例数据

data/demo_samples/目录包含了用于测试人体接触和物体功能属性估计的现成样本。运行演示后,应该能够得到类似README文件中展示的结果。

演示结果示例

九、训练和评估

9.1 数据生成

要生成训练所需的数据,运行以下脚本。目前,仅提供了DAMON的预处理数据集,未来将发布LEMON、PIAD和PICO的数据集。

# Generate preprocessed data
bash scripts/run_datagen.sh

9.2 训练

要使用DAMON数据集训练3D人体接触估计模型,首先使用以下命令下载预处理的数据集,并将其放在data/damon目录下,然后运行训练脚本:

# Download preprocessed DAMON dataset
bash fetch_data.sh damon - dataset

# Train human contact with DAMON dataset
bash scripts/run_train.sh hcontact - damon

9.3 评估

模型权重准备

如果训练了新的模型,需要准备权重进行评估:

# Prepare weights for model 0 (adjust number as needed)
bash scripts/run_prepare_weights.sh 0

运行评估

在预训练模型上运行评估:

# Evaluate the model on either DAMON or PIAD. Adjust the congfiguration accordingly
bash scripts/run_eval.sh

十、代码发布状态

10.1 已发布部分

  • 3D人体接触估计:训练、评估和演示代码均已发布。
  • 3D物体接触/功能属性估计:训练、评估和演示代码均已发布。

10.2 待发布部分

  • 从单张图像中进行物体形状检索:代码发布待完成。
  • 联合重建的优化管道:代码发布待完成。

十一、致谢与引用

11.1 致谢

研究团队感谢Alpár Cseke在评估人体 – 物体联合重建方面的帮助,感谢Tsvetelina Alexiadis、Taylor Obersat进行的MTurk评估,感谢Yao Feng、Peter Kulits、Markos Diomataris的宝贵反馈,以及Benjamin Pellkofer的IT支持。SKD得到了International Max Planck Research School for Intelligent Systems (IMPRS – IS)的支持,UvA团队部分得到了ERC Starting Grant (STRIPES, 101165317, PI: D. Tzionas)的支持。

11.2 引用

如果在研究中使用了InteractVLM的代码,请引用以下论文:

@inproceedings{dwivedi_interactvlm_2025,
    title     = {{InteractVLM}: {3D} Interaction Reasoning from {2D} Foundational Models},
    author    = {Dwivedi, Sai Kumar and Antić, Dimitrije and Tripathi, Shashank and Taheri, Omid and Schmid, Cordelia and Black, Michael J. and Tzionas, Dimitrios},
    booktitle = {Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CVPR)},
    month     = {June},
    year      = {2025},
}

十二、许可证与联系方式

12.1 许可证

该代码仅用于非商业科学研究目的,具体定义见LICENSE文件。下载和使用该代码即表示同意LICENSE中的条款。第三方数据集和软件受其各自的许可证约束。

12.2 联系方式

  • 对于代码相关问题,请联系sai.dwivedi@tuebingen.mpg.de。
  • 对于商业许可(以及所有与商业应用相关的问题),请联系ps – licensing@tue.mpg.de。

十三、总结

InteractVLM为从二维图像中进行三维交互推理提供了一种强大的解决方案。通过引入语义人体接触任务和利用视觉 – 语言模型的知识,它在人体 – 物体联合重建和接触估计方面取得了出色的成果。本文详细介绍了InteractVLM的各个方面,包括其功能、模型库、安装使用、训练评估等,希望能帮助读者更好地理解和应用这一技术。

随着计算机视觉和人工智能技术的不断发展,我们期待InteractVLM在更多领域得到应用,为相关研究和应用带来新的突破。同时,也希望研究团队能够尽快发布待完成的代码部分,进一步完善这一技术体系。

– END –