diff --git a/.cursor/rules/project-rules.mdc b/.cursor/rules/project-rules.mdc index 562e702..3d40dcf 100644 --- a/.cursor/rules/project-rules.mdc +++ b/.cursor/rules/project-rules.mdc @@ -6,9 +6,8 @@ globs: # 项目规则 - 使用中文回复 -- 先查看Reference文件夹下的代码参考, 参考虚拟环境的创建和管理和使用,并按照 Readme.md 来查Readme和install.sh和run.sh以及Reference路径下参考代码来协助用户完成项目 +- 并按照 Readme.md 来查Readme和install.sh和run.sh来协助用户完成项目 - 完善Readme.md -- Reference文件夹仅作为参考而不参与项目运行 - 将该项目改成Windows平台应用, 代码必须考虑可在windows运行, 使用micromamba.exe来拿新建和管理虚拟环境 - 对于不同的环境分别创建activate的bat文件,虚拟环境分别有:gaussian_splatting_hair, matte_anything, openpose, pixie-env对应的文件有:activate_gaussian_splatting_hair.bat, activate_matte_anything.bat, activate_openpose.bat, activate_pixie-env.bat - 将原本部署的install.sh改写成install.bat文件,不删除原本的install.sh文件 diff --git a/README.md b/README.md index 23d4d1b..5cd2034 100644 --- a/README.md +++ b/README.md @@ -71,6 +71,7 @@ 1. **安装 CUDA 11.8** - 从 https://developer.nvidia.com/cuda-11-8-0-download-archive 下载并安装 - 默认安装路径:C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8 + - 确保CUDA版本与系统兼容 2. **安装 Blender 3.6** - 从 https://www.blender.org/download/lts/3-6 下载并安装 @@ -83,33 +84,38 @@ 4. **安装 COLMAP** - 从 https://github.com/colmap/colmap/releases 下载并安装 - - 下载最新的Windows安装包(例如:COLMAP-3.8-windows-cuda.zip) - - 解压到一个不含空格的路径(例如:C:\COLMAP) - - 确保CUDA版本与系统安装的CUDA 11.8匹配 - - 将解压目录(C:\COLMAP)添加到系统环境变量PATH中: + - 下载CUDA版本的COLMAP (例如:COLMAP-3.8-windows-cuda.zip) + - 解压到不含空格的路径 (例如:C:\COLMAP) + - 将COLMAP目录添加到系统PATH: 1. 打开"系统属性" > "环境变量" 2. 在"系统变量"中找到"Path" 3. 点击"编辑" > "新建" - 4. 添加COLMAP目录路径(C:\COLMAP) - 5. 点击"确定"保存更改 - - 重启PowerShell或CMD以使PATH更改生效 - - 验证安装: - ```cmd - colmap -h - ``` - 如果显示帮助信息,则安装成功 + 4. 添加COLMAP目录路径 + 5. 点击"确定"保存 + - 重启终端使PATH生效 5. **安装 micromamba** - - 从 https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html 下载并安装 + - 从 https://mamba.readthedocs.io/en/latest/installation/micromamba-installation.html 下载 -6. **克隆仓库并运行安装脚本** +6. **下载预训练模型和资源** + ```cmd + # 在PowerShell中运行: + .\download_resource.bat + ``` + 这将下载并解压以下资源到resource目录: + ``` + resource/ + ├── NeuralHaircut/ # Neural Haircut预训练模型 + ├── Matte-Anything/ # SAM和GroundingDINO模型 + ├── openpose/ # OpenPose模型 + └── hyperIQA/ # 图像质量评估模型 + ``` +7. **克隆仓库并运行安装脚本** ```cmd git clone git@github.com:eth-ait/GaussianHaircut.git cd GaussianHaircut - # 在CMD中运行: - install.bat - # 或在PowerShell中运行: + # 在PowerShell中运行: .\install.bat ``` diff --git a/download_resource.bat b/download_resource.bat new file mode 100644 index 0000000..8713148 --- /dev/null +++ b/download_resource.bat @@ -0,0 +1,38 @@ +@echo off +setlocal enabledelayedexpansion + +REM 创建resource目录结构 +mkdir resource\NeuralHaircut\diffusion_prior 2>nul +mkdir resource\NeuralHaircut\PIXIE 2>nul +mkdir resource\Matte-Anything 2>nul +mkdir resource\openpose\models 2>nul +mkdir resource\hyperIQA\pretrained 2>nul + +REM 下载 Neural Haircut 文件 +cd resource\NeuralHaircut +gdown --folder https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8 +cd diffusion_prior +gdown 1_9EOUXHayKiGH5nkrayncln3d6m1uV7f +cd ..\PIXIE +gdown 1mPcGu62YPc4MdkT8FFiOCP629xsENHZf +tar -xf pixie_data.tar.gz +del pixie_data.tar.gz + +REM 下载 Matte-Anything 文件 +cd ..\..\Matte-Anything +curl -LO https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth +curl -LO https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth +gdown 1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW -O model.pth + +REM 下载 OpenPose 模型 +cd ..\openpose +gdown 1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV -O models.tar.gz +tar -xf models.tar.gz -C models +del models.tar.gz + +REM 下载 hyperIQA 模型 +cd ..\hyperIQA\pretrained +gdown 1OOUmnbvpGea0LIGpIWEbOyxfWx6UCiiE + +cd ..\.. +echo Download completed! diff --git a/install.bat b/install.bat index 9db56fc..65af20a 100644 --- a/install.bat +++ b/install.bat @@ -124,9 +124,9 @@ git clone https://github.com/SSL92/hyperIQA REM 创建环境 CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair python=3.8 pytorch=2.0.0 torchvision pytorch-cuda=11.8 cmake ninja setuptools=58.2.0 -c pytorch -c nvidia -c conda-forge -y -CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\matte_anything pytorch=2.0.0 pytorch-cuda=11.8 torchvision tensorboard timm=0.5.4 opencv=4.5.3 mkl=2024.0 setuptools=58.2.0 easydict wget scikit-image gradio=3.46.1 fairscale -c pytorch -c nvidia -c conda-forge -y +CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\matte_anything pytorch=2.0.0 pytorch-cuda=11.8 torchvision tensorboard timm=0.5.4 opencv=4.5.3 mkl=2024.0 setuptools=58.2.0 easydict wget scikit-image gradio=3.46.1 fairscale supervision==0.22.0 -c pytorch -c nvidia -c conda-forge -y CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\openpose python=3.8 cmake=3.20 -c conda-forge -y -CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\pixie-env python=3.8 pytorch=2.0.0 torchvision pytorch-cuda=11.8 fvcore pytorch3d==0.7.5 kornia matplotlib -c pytorch -c nvidia -c fvcore -c conda-forge -c pytorch3d -c bottler -c iopath -y +CALL "%MICROMAMBA_EXE%" create -p %MAMBA_ROOT_PREFIX%\envs\pixie-env python=3.8 pytorch=2.0.0 torchvision==0.15.0 torchaudio==2.0.0 pytorch-cuda=11.8 fvcore pytorch3d==0.7.5 kornia matplotlib -c pytorch -c nvidia -c fvcore -c conda-forge -c pytorch3d -c bottler -c iopath -y REM 安装 gaussian_splatting_hair 环境 CALL "%MICROMAMBA_EXE%" activate -p %MAMBA_ROOT_PREFIX%\envs\gaussian_splatting_hair @@ -143,55 +143,58 @@ cd %PROJECT_DIR%\ext\kaolin pip install -e . cd %PROJECT_DIR% +REM 检查resource目录 +IF NOT EXIST "%PROJECT_DIR%\resource" ( + echo ERROR: resource directory not found + echo Please ensure the resource directory exists with required files: + echo. + echo resource/ + echo ├── NeuralHaircut/ + echo │ ├── diffusion_prior/ + echo │ └── PIXIE/ + echo ├── Matte-Anything/ + echo │ ├── sam_vit_h_4b8939.pth + echo │ ├── groundingdino_swint_ogc.pth + echo │ └── model.pth + echo └── openpose/ + echo └── models/ + exit /b 1 +) + REM 下载 Neural Haircut 文件 cd %PROJECT_DIR%\ext\NeuralHaircut -gdown --folder https://drive.google.com/drive/folders/1TCdJ0CKR3Q6LviovndOkJaKm8S1T9F_8 +xcopy /E /I /Y "%PROJECT_DIR%\resource\NeuralHaircut\*" . cd pretrained_models\diffusion_prior -gdown 1_9EOUXHayKiGH5nkrayncln3d6m1uV7f +xcopy /Y "%PROJECT_DIR%\resource\NeuralHaircut\diffusion_prior\*" . cd ..\..\PIXIE -gdown 1mPcGu62YPc4MdkT8FFiOCP629xsENHZf -tar -xf pixie_data.tar.gz -del pixie_data.tar.gz +xcopy /E /I /Y "%PROJECT_DIR%\resource\NeuralHaircut\PIXIE\*" . REM 安装 Matte-Anything 环境 CALL activate_matte_anything.bat cd %PROJECT_DIR%\ext\Matte-Anything -REM 修改pytorch文件以支持Windows -IF EXIST "%CONDA_PREFIX%\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h" ( - echo Patching argument_spec.h... - powershell -Command "(gc '%CONDA_PREFIX%\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h') -replace 'static constexpr size_t DEPTH_LIMIT = 128;', 'static const size_t DEPTH_LIMIT = 128;' | Out-File -encoding ASCII '%CONDA_PREFIX%\Lib\site-packages\torch\include\torch\csrc\jit\runtime\argument_spec.h'" -) -IF EXIST "%CONDA_PREFIX%\Lib\site-packages\torch\include\pybind11\cast.h" ( - echo Patching cast.h... - powershell -Command "(gc '%CONDA_PREFIX%\Lib\site-packages\torch\include\pybind11\cast.h') -replace 'explicit operator type&\(\) { return \*\(this->value\); }', 'explicit operator type&() { return *((type*)this->value); }' | Out-File -encoding ASCII '%CONDA_PREFIX%\Lib\site-packages\torch\include\pybind11\cast.h'" -) - -REM 安装SAM +REM 安装SAM和detectron2 pip install git+https://github.com/facebookresearch/segment-anything.git - -REM 安装detectron2 -pip install 'git+https://github.com/facebookresearch/detectron2.git@v0.6' -pip install -e GroundingDINO -pip install supervision==0.22.0 -mkdir pretrained -cd pretrained -curl -LO https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth -curl -LO https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth +pip install 'git+https://github.com/facebookresearch/detectron2.git' +cd GroundingDINO +pip install -e . cd .. -gdown 1d97oKuITCeWgai2Tf3iNilt6rMSSYzkW +pip install supervision==0.22.0 -REM 安装 OpenPose -CALL activate_openpose.bat +mkdir pretrained 2>nul +cd pretrained +xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\*" . +cd .. +xcopy /Y "%PROJECT_DIR%\resource\Matte-Anything\model.pth" . + +REM 安装 OpenPose 模型 cd %PROJECT_DIR%\ext\openpose -gdown 1Yn03cKKfVOq4qXmgBMQD20UMRRRkd_tV -tar -xf models.tar.gz -del models.tar.gz -mkdir build -cd build -CALL "%VS2019_VCVARS%" -cmake .. -DBUILD_PYTHON=true -DUSE_CUDNN=off -G "Visual Studio 16 2019" -A x64 -cmake --build . --config Release +xcopy /E /I /Y "%PROJECT_DIR%\resource\openpose\models\*" models\ + +REM 复制 hyperIQA 模型 +cd %PROJECT_DIR%\ext\hyperIQA +mkdir pretrained 2>nul +xcopy /Y "%PROJECT_DIR%\resource\hyperIQA\pretrained\*" pretrained\ REM 安装 PIXIE 环境 CALL activate_pixie-env.bat