Files
storyteller-ml/animation/MocapNET/README.MD
T
2023-12-20 16:42:18 +05:30

150 lines
6.8 KiB
Markdown

# MocapNET V4 Documentation
Welcome to the MocapNET V4 documentation! 🎉 Immerse yourself in the world of advanced motion capture technology with ease.
🔗 **Find the Original Documentation** at [README_ORIGINAL.md](./README_ORIGINAL.md).
This version from the `tag mnet4` branch is sourced directly from the [official MocapNET repository](https://github.com/FORTH-ModelBasedTracker/MocapNET/tree/mnet4).
## 🚀 Getting Started: Developer Installation via docker (For Server Deployment Usage)
To install MocapNET V4 on a Linux system:
1. **Clone the MocapNET Repository**:
```sh
git clone https://github.com/storytold/storyteller-ml/master/animation/MocapNET.git
```
2. **Deployment**:
```sh
cd MocapNET/docker
bash build_and_deploy.sh
```
This script will build and run a Docker image, setting up the necessary environment for MocapNET V4.
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
### 🚀 Getting Started: Main Installation Process (Run locally)
For both Linux and Windows (via WSL), follow these steps:
1. **Install Dependencies**:
```sh
sudo apt-get install git build-essential cmake libopencv-dev libjpeg-dev libpng-dev libglew-dev libpthread-stubs0-dev
```
2. **Clone the MocapNET Repository**:
```sh
git clone https://github.com/storytold/storyteller-ml/master/animation/MocapNET.git
```
3. **Navigate to MocapNET Directory**:
```sh
cd MocapNET
```
4. **Run the Initialization Script**:
```sh
./initialize.sh
```
This will set up MocapNET V4 on your system, including all necessary dependencies.
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
### Additional Steps for Windows Users
For Windows users, using the Windows Subsystem for Linux (WSL) is recommended:
1. **Enable WSL on Windows**:
- Open PowerShell as Administrator and execute:
```powershell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
```
- Restart your computer when prompted.
2. **Install a Linux Distribution from the Microsoft Store**:
- Choose and install your preferred Linux distribution (e.g., Ubuntu, Debian, Fedora).
3. **Set Up Your Linux Distribution**:
- Launch the Linux distribution and complete the account setup.
4. **Update and Upgrade Your Linux Distribution**:
- Run `sudo apt update && sudo apt upgrade` in the Linux terminal.
For a detailed WSL setup guide, view [How to Set Up WSL](https://www.youtube.com/watch?v=1HzYU2_t3yc) on YouTube.
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
## 🎬 How to Use MocapNET V4
### Preparing for Usage
Before running MocapNET V4, navigate to the appropriate directory:
```sh
cd src/python/mnet4
```
### Quick Start with a Sample Video
Now you're ready to download and use a sample video:
1. **Download a Sample Video**:
```sh
wget http://ammar.gr/mocapnet/shuffle.webm -O shuffle.webm
```
2. **Process the Video**:
Execute the following command to run MocapNET on the downloaded video:
```sh
python3 -m mediapipeHolisticWebcamMocapNET --from shuffle.webm --ik 0.001 99 99 --smooth 60 10 --all --save --plot --headless 2
```
### Convert Output BVH
For further processing, such as generating a BVH file without face and toes bones, execute:
```sh
./GroundTruthDumper --from dependencies/RGBDAcquisition/opengl_acquisition_shared_library/opengl_depth_and_color_renderer/Motions/DAZFriendlyCGSPEED_ZXYAndHandsAxisBigHands.bvh --merge src/python/mnet4/out.bvh dependencies/RGBDAcquisition/opengl_acquisition_shared_library/opengl_depth_and_color_renderer/Motions//mergeDazFriendlyAndAddHead.profile --setPositionRotation 0 0 0 0 0 0 --bvh remade.bvh
```
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
### Notes:
- The output bvh file will be stored inside this directory ``MocapNET/src/python/mnet4`` with the filename ``out.bvh``
- The converted bvh file will be stored in the root directory ``MocapNET`` with the filename ``remade.bvh``
______________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________________
### Command-Line Options Explained
- `--headless`: Skip the live video display. Ideal for headless servers or GUI-less environments.
- `--live`: Launches a live demo. Functionalities may vary.
- `--mt`: Enable multi-threading for better performance on multi-core CPUs.
- `--calib [filename]`: Use a specific calibration file for camera adjustments.
- `--frameskip [number]`: Skip a set number of frames to reduce load or speed up processing.
- `--nnsubsample [number]`: Run the neural network at set intervals (e.g., every 2nd frame).
- `--ik [float int int]`: Set parameters for inverse kinematics optimization.
- `--smooth [float float]`: Apply smoothing to motion capture data.
- `--noik`: Turn off inverse kinematics processing.
- `--aspectCorrection [float]`: Adjust video or image aspect ratio.
- `--noise [float]`: Add noise to input for testing under varied conditions.
- `--size [int int]`: Define video/image dimensions.
- `--scale [float]`: Scale the output motion data.
- `--plot`: Plot BVH channels for skeletal animation visualization.
- `--all`: Activate all processing features (body, eyes, mouth, hands).
- `--nobody`: Disable body joint estimation.
- `--face`: Enable face joint estimation.
- `--eyes / --reye`: Estimate right eye joints.
- `--mouth`: Enable mouth joint estimation.
- `--hands`: Estimate hand joints.
- `--save`: Save outputs (images, videos, data, logs).
- `--engine [engine_name]`: Choose a specific neural network backend.
- `--from [filepath]`: Specify input source (video file or live feed).
- `--profile`: Activate performance profiling.
## THIS README IS A W.I.P