Giter Site home page Giter Site logo

cranehzm / hoimotion Goto Github PK

View Code? Open in Web Editor NEW
0.0 1.0 0.0 139.75 MB

HOIMotion: Forecasting Human Motion During Human-Object Interactions Using Egocentric 3D Object Bounding Boxes

Home Page: https://zhiminghu.net/hu24_hoimotion

Python 93.09% Shell 6.91%

hoimotion's Introduction

HOIMotion: Forecasting Human Motion During Human-Object Interactions Using Egocentric 3D Object Bounding Boxes

Project homepage: https://zhiminghu.net/hu24_hoimotion.

Abstract

We present HOIMotion โ€“ a novel approach for human motion forecasting during human-object interactions that integrates information about past body poses and egocentric 3D object bounding boxes. 
Human motion forecasting is important in many augmented reality applications but most existing methods have only used past body poses to predict future motion. 
HOIMotion first uses an encoder-residual graph convolutional network (GCN) and multi-layer perceptrons to extract features from body poses and egocentric 3D object bounding boxes, respectively. 
Our method then fuses pose and object features into a novel pose-object graph and uses a residual-decoder GCN to forecast future body motion. 
We extensively evaluate our method on the Aria digital twin (ADT) and MoGaze datasets and show that HOIMotion consistently outperforms state-of-the-art methods by a large margin of up to 8.7% on ADT and 7.2% on MoGaze in terms of mean per joint position error. 
Complementing these evaluations, we report a human study (N=20) that shows that the improvements achieved by our method result in forecasted poses being perceived as both more precise and more realistic than those of existing methods. 
Taken together, these results reveal the significant information content available in egocentric 3D object bounding boxes for human motion forecasting and the effectiveness of our method in exploiting this information.

Environments:

Ubuntu 22.04 python 3.8+ pytorch 1.8.1 cudatoolkit 11.1

Usage:

Step 1: Create the environment

conda env create -f ./environments/hoimotion.yaml -n hoimotion
conda activate hoimotion

Step 2: Follow the instructions in './adt_processing/' and './mogaze_processing/' to process the datasets.

Step 3: Set 'data_dir' and 'cuda_idx' in 'train_mogaze_xx.sh' (xx for p1, p2, p4, p5, p6, or p7) to evaluate on different participants. By default, 'train_mogaze_xx.sh' first trains the model from scratch and then tests on different actions. If you only want to evaluate the pre-trained models, please comment the training commands (the commands without the 'is_eval' setting).

Step 4: Set 'data_dir' and 'cuda_idx' in 'train_adt.sh' to evaluate. By default, 'train_adt.sh' first trains the model from scratch and then tests on different actions. If you only want to evaluate the pre-trained models, please comment the training commands (the commands without the 'is_eval' setting).

Citation

@article{hu24_hoimotion,
	author={Hu, Zhiming and Yin, Zheming and Haeufle, Daniel and Schmitt, Syn and Bulling, Andreas},
	journal={IEEE Transactions on Visualization and Computer Graphics}, 
	title={HOIMotion: Forecasting Human Motion During Human-Object Interactions Using Egocentric 3D Object Bounding Boxes}, 
	year={2024}}

hoimotion's People

Contributors

cranehzm avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.