实验环境服务器NVIDIA GeForce RTX 3090 (24GB)系统Ubuntu 22.04代码仓库GauHuman第一步克隆仓库与创建环境官方要求git clone https://github.com/skhu101/GauHuman.git cd GauHuman conda create --name gauhuman python3.8 conda activate gauhuman没什么问题很顺利除了提前建了个GauHuman文件夹导致文件名冲突删了就没事了。第二步安装 PyTorch问题①Conda 安装 PyTorch 时网络 404官方推荐conda install pytorch2.0.0 torchvision0.15.0 torchaudio2.0.0 pytorch-cuda11.8 -c pytorch -c nvidia报错信息HTTP 404 Not Found for channel anaconda/cloud/nvidia原因分析配置的 conda 镜像源中nvidia频道地址失效或不可达。解决方案改用 pip 安装。pip install torch2.0.0 torchvision0.15.0 torchaudio2.0.0 --index-url https://download.pytorch.org/whl/cu118问题②PyTorch 版本与 CUDA 不匹配导致子模块编译失败现象执行pip install submodules/diff-gaussian-rasterization时报错ModuleNotFoundError: No module named torch和RuntimeError: The detected CUDA version mismatches the version that was used to compile PyTorch原因分析系统中有多个 CUDA 版本当前终端默认指向的是 11.6。解决方案切换到项目所需的 CUDA 11.8。export PATH/usr/local/cuda-11.8/bin:$PATH export LD_LIBRARY_PATH/usr/local/cuda-11.8/lib64:$LD_LIBRARY_PATH export CUDA_HOME/usr/local/cuda-11.8为确保环境没问题我pytouch也重装了一下。然后就没什么问题了。第三步安装子模块官方方法pip install submodules/diff-gaussian-rasterization pip install submodules/simple-knn pip install --upgrade https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl pip install -r requirement.txt问题③KNN_CUDA 下载超时报错信息ERROR: HTTP error 404 while getting https://github.com/unlimblue/KNN_CUDA/releases/download/0.2/KNN_CUDA-0.2-py3-none-any.whl解决方案在外面找到KNN_CUDA-0.2-py3-none-any.whl文件上传到服务器再使用本地安装pip install KNN_CUDA-0.2-py3-none-any.whl第四步下载与准备 SMPL 模型官方要求从 SMPL 官网 注册下载 SMPL_python_v.1.0.0.zip提取中性模型basicmodel_neutral_lbs_10_207_0_v1.0.0.pkl重命名为 SMPL_NEUTRAL.pkl。手动创建assets/文件夹后将重命名的文件放进里面问题④SMPL 版本不匹配现象由于更新我没注意版本号误下载了新版的v1.1.0模型使用 v1.1.0 模型时报错cannot reshape array of size 620100 into shape (6890,3)。原因分析v1.1.0 有 300 个形状主成分而代码基于 v1.0.010 个形状主成分编写。解决方案下载并使用 v1.0.0 版本的 SMPL 模型替换之前的v1.1.0版本。第五步准备数据集问题⑤数据集体积过大空间不足官方数据集 ZJU-Mocap-Refine 约 200GB服务器剩余空间仅 29GB。解决方案上次开会的时候问了一下发现在服务器的/mnt/disk001中统一存放了所需数据集只需使用软链接指向已下载的数据集对于 ZJU-Mocap-Refine 数据集ln -s /mnt/disk001/zju_mocap_refine data/zju_mocap_refine对于 MonoCap 数据集ln -s /mnt/disk001/MonoCap data/monocap到此为止基础环境配置与数据集准备都完成了可以进行模型训练。第六步训练与评估ZJU-Mocap 训练bash train_zju_mocap_refine.shZJU-Mocap 评估bash eval_zju_mocap_refine.shMonoCap 训练bash train_monocap.shMonoCap 评估bash eval_monocap.sh问题⑥评估monocap时报错FileNotFoundError: cfg_args原因分析通过查看代码可以得知ZJU的评估脚本只做渲染--skip_train参数且路径与训练时一致。MonoCap的评估脚本没有--skip_train参数而且它定义的dataset变量根本没有被render.py使用render.py通常通过-m参数自动推断数据集路径。导致训练结果位置命名与评估脚本中固定的命名不同。解决方案避免改动代码使用软链接来解决cd output ln -s monocap_test monocap实验结果ZJU-Mocap 数据集结果测试序列PSNR (dB) ↑SSIM ↑LPIPS ↓my_37732.240.97580.0189my_38633.720.96920.0286my_38728.180.95640.0392my_39232.260.96690.0302my_39330.200.95830.0350my_39431.400.96110.0307平均值31.200.96600.0299MonoCap 数据集结果测试序列PSNR (dB) ↑SSIM ↑LPIPS ↓lan34.460.98600.0106marc35.720.98640.0140olek35.470.98730.0100vlad28.550.98020.0169平均值33.550.98510.0129与论文对比数据集指标复现结果论文结果对比ZJU-MoCapPSNR ↑31.2031.34差距 0.14 dBSSIM ↑0.96600.965持平LPIPS* ↓29.930.51更优MonoCapPSNR ↑33.5533.45超越 0.1 dBSSIM ↑0.98510.985持平LPIPS* ↓12.913.35更优注论文中 LPIPS* 1000 × LPIPS上表已按此换算。总结经过多轮调试本次复现取得了以下成果成功配置了完整的 GauHuman 运行环境在 ZJU-Mocap 和 MonoCap 两个数据集上完成了训练和评估核心指标 PSNR 和 SSIM 与论文高度一致LPIPS 指标甚至优于论文报告值关键经验CUDA 版本一致性是核心PyTorch、系统 CUDA 和子模块编译必须使用同一版本。依赖安装顺序不可颠倒PyTorch → 子模块 → 其他依赖。SMPL 模型版本要匹配使用 v1.0.0 而非 v1.1.0。灵活使用软链接解决数据集路径和输出文件夹路径不一致的问题。后续任务拍摄身边现实人物视频并进行数据处理处理成gauhuman可用的数据集进行训练。思路一、数据采集拍摄一段人物在镜头前缓慢旋转一周的连续视频。视频中的动作最好能覆盖正面、侧面、背面手臂可以自然摆动。官方数据集中的动作也包含行走、转身等运动。可以参考官方数据集一个序列通常包含几百帧例如lan_images620_1300就是620到1300帧。对于实验目的可以先拍摄100-200帧约5-10秒视频进行测试这比盲猜需要多少数据更科学。二、数据处理问了AI他建议我使用一个现成的工具如ROMP、VIBE或PARE处理我拍摄的视频。这个工具会为每一帧输出一个包含姿态和体型参数的.pkl或.npy文件。然后编写少量脚本来整理数据格式。还需要知道拍摄视频的相机焦距等参数。如果使用手机拍摄去找可行的App记录或计算出相机内参。再模仿官方数据集的文件夹结构把自己的视频帧图片、提取的SMPL参数、相机参数组织起来。这通常需要参考data/monocap/下的具体格式并可能编写少量脚本。三、实验与确定数据量从少量数据开始比如从一个100帧约3-4秒的视频开始完成上述所有步骤训练一个模型。评估质量查看渲染结果评估模型在正面、侧面、背面的清晰度和完整度。逐步增加数据将视频长度增加到200帧、300帧重复训练观察质量提升的幅度。我可能会问问组内其他做过gauhuman换数据集的同学怎么操作。