Fading Coder

One Final Commit for the Last Sprint

Home > Tech > Content

Setting Up and Executing GauHuman on Windows Environments

Tech 1

Repository Initialization

Clone the upstream project directory and navigate into it:

git clone https://github.com/skhu101/GauHuman.git
cd GauHuman

Environment Configuration

Ensure Visual Studio 2019 toolchains are installed and referenced within the system PATH variable. Additionally, provision a pre-compiled Windows binary for Ninja. Extract version 1.11.1 from the official repository releases and append its root directory to PATH.

Provision a isolated Conda runtime:

conda create -n gauhuman_env python=3.8
conda activate gauhuman_env

Install PyTorch components that align with your local CUDA toolkit. Assuming CUDA 12.1 is detected:

conda install pytorch==2.1.1 torchvision==0.16.1 torchaudio==2.1.1 pytorch-cuda=12.1 -c pytorch -c nvidia

Verify version compatibility at the official archive before continuing.

Compile core rasterization utilities:

pip install ./submodules/diff-gaussian-rasterization
pip install ./submodules/simple-knn

Platform-Specific Compilation

The knn_cuda extension requires manual construction due to cross-platform constraints. Fetch the Windows-adapted branch:

git clone --branch windows https://github.com/blukaz/KNN_CUDA
cd KNN_CUDA

Initialize Chocolatey via elevated PowerShell:

Get-ExecutionPolicy
Set-ExecutionPolicy Bypass -Scope Process -Force
[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072
iex ((New-Object System.Net.WebClient).DownloadString('https://community.chocolatey.org/install.ps1'))

Launch an administrative Command Prompt, return to the cloned source, activate the environment, and trigger compilation:

conda activate gauhuman_env
make

If the build terminates during file transfer, open the Makefile and comment out the target responsible for copying ninja.exe. Manually place the executable into %WINDIR%\System32, then resume with:

make install

Third-Party Module Integration

The mmhuman3d package frequently fails during standard ingestion. Isolate its entry in requirements.txt, then execute:

git clone https://github.com/Wei-Chen-hub/mmhuman3d.git
cd mmhuman3d
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple
pip install -v -e . -i https://pypi.tuna.tsinghua.edu.cn/simple

Return to the parent workspace and install residual dependencies:

cd ../..
pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

Asset and Model Preparation

Acquire the motion capture sequences following upstream documentation. For the skeletal rig, rename the extracted definition file to SMPL_NEUTRAL.pkl.

Sanitize mesh assets using the SMPL-X utility suite:

git clone https://github.com/vchoutas/smplx.git
cd smplx
pip install chumpy
python tools/clean_ch.py --input-models <path-to-pkl>/*.pkl --output-folder <temp-output-dir>

Replace placeholders with actual paths. Because the cleanup script targets Python 2 syntax, inject encoding='utf-8' parameters during serialization if operating with in a Python 3 runtime. Transfer the cleaned artfiacts into GauHuman/assets.

Execution Workflow

Shell scripts require conversion to Windows batch format to operate correctly. The following launcher adapts the original training sequence for cmd.exe:

@echo off
setlocal enabledelayedexpansion

:: Target sequence identifiers
set TARGET_SEQS=my_377 my_386 my_387 my_392 my_393 my_394

:: Iterate and launch optimization loops
for %%A in (%TARGET_SEQS%) do (
    set ACTUAL=%%A
    set RUN_PATH=data\zju_mocap_refine\!ACTUAL!
    call python train.py ^
        -s !RUN_PATH! ^
        --eval ^
        --exp_name zju_mocap_refine\!ACTUAL!_100_pose_correction_lbs_offset_split_clone_merge_prune ^
        --motion_offset_flag ^
        --smpl_type smpl ^
        --actor_gender neutral ^
        --iterations 1200
)

endlocal

Save this configuration as launch_training.bat and invoke it from the project root terminal. The orchestrator will sequentially process each annotated capture sequence through the refinement pipeline.

Reference Implementations

  • GauHuman: CVPR 2024 Articulated Gaussian Splatting Framework
  • HumanNeRF: Monocular Video to Free-Viewpoint Reconstruction
  • MMHuman3D: Single-View Motion Capture Toolkit
  • Windows-KNN-CUDA Build Instructions

Related Articles

Understanding Strong and Weak References in Java

Strong References Strong reference are the most prevalent type of object referencing in Java. When an object has a strong reference pointing to it, the garbage collector will not reclaim its memory. F...

Comprehensive Guide to SSTI Explained with Payload Bypass Techniques

Introduction Server-Side Template Injection (SSTI) is a vulnerability in web applications where user input is improper handled within the template engine and executed on the server. This exploit can r...

Implement Image Upload Functionality for Django Integrated TinyMCE Editor

Django’s Admin panel is highly user-friendly, and pairing it with TinyMCE, an effective rich text editor, simplifies content management significantly. Combining the two is particular useful for bloggi...

Leave a Comment

Anonymous

◎Feel free to join the discussion and share your thoughts.