Giter Club home page Giter Club logo

mmmesh's Introduction

mmMesh


Last Update Date: Sep 12 2021

mmMesh Model Image

This repository includes:

  • The UDP-based real-time TI mmWave radar data capture code of mmMesh system.
  • The code for the point cloud generation from binary file of mmWave radar (Note that the binary file should not have packet head).
  • The Pytorch implementation of mmMesh deep model.

The structure of the repository is listed as following:

├── 0.preliminary
│   └── extract_SMPL_model.py
├── 1.mmWave_data_capture
│   ├── capture.py
│   ├── steaming.py
│   └── DataCaptureDemo_1843new.lua
├── 2.point_cloud_generation
│   ├── configuration.py
│   └── pc_generation.py
├── 3.deep_model
│   ├── data.py
│   ├── infer_model.py
│   ├── network.py
│   ├── smpl_utils_extend.py
│   └── train_model.py
├── HISTORY.md
├── LICENSE
├── README.md
└── .gitignore

0. Preliminary

Due to the copyright issue, the SMPL model file cannot be provided. You need to access https://smpl.is.tue.mpg.de/ to access the SMPL model download page. Then, dowload the model package: version 1.0.0 for Python 2.7 (10 shape PCs) and extract the file. You need to use extract_SMPL_model.py (use Python 3 to run the code) in 0.preliminary to generate SMPL model used in the training of mmMesh. For example, if you extract the file in the same folder with extract_SMPL_model.py, you can use:

python extract_SMPL_model.py ./SMPL_python_v.1.0.0/smpl/models/

to generate two files: smpl_f.pkl and smpl_m.pkl. Note: you need to install Chumpy to run the code.

1. Real-time mmWave Data Capturing

To enable real-time data capturing, the first step is to start the radar in Windows. The softwave used in the paper is mmWave Studio 2.0.0.2. Just load DataCaptureDemo_1843new.lua and click the Run! button on the left bottom corner of the softwave as show in the image. mmWave Studio Then the radar will keep sending the chirps and steaming the data through networking cables.

Then, change the operating system of the computer to Ubuntu, or unplug the cable on the Windows machine (you used to start the radar) and connect the cable to a Ubuntu machine. (Note: all the Python files are executed on a Ubuntu machine during our experiments.)

In Ubuntu, you will use steaming.py. The methods in the class will automatically collect the packets from the radar and assemble them into frames. It also allows you to access these frames using getFrame method. As an example, if you want to capture the data from the mmWave radar for 5 mins and store them, just run:

python capture.py 5

2. Point Cloud Generation from Binary mmWave Data

The methods in pc_generation allows you to generate the point cloud from the binary mmWave radar.For example, if you want to generate the point cloud data from test.bin for 10 frames, try:

python pc_generation.py test.bin 10

Note: to successfully read the data from the binary file, you should change the radar configuration to generate the binary file without the packet head.

3. mmMesh Deep Model

Model training:

python train_model.py

Model inference:

python infer_model.py

Note: to run the code, you need to move the smpl_f.pkl and smpl_m.pkl generated in step 0.Preliminary to the current folder.

Citation

If you find our work useful in your research, please cite:

@inproceedings{xue2021mmmesh,
  title={mmMesh: towards 3D real-time dynamic human mesh construction using millimeter-wave},
  author={Xue, Hongfei and Ju, Yan and Miao, Chenglin and Wang, Yijiang and Wang, Shiyang and Zhang, Aidong and Su, Lu},
  booktitle={Proceedings of the 19th Annual International Conference on Mobile Systems, Applications, and Services},
  pages={269--282},
  year={2021}
}

Acknowledgements

mmmesh's People

Contributors

havocfixer 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.