mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4mobile wallpaper 5mobile wallpaper 6
1341 字
4 分钟
fruitNeRF++安装指南
2026-04-21

必要的资源#

文档说明链接
fruitNeRF++ Github源码fruitNeRF++的源码https://github.com/meyerls/FruitNeRFpp
Nerfstudio官方文档通用 NeRF 训练/渲染框架的文档https://docs.nerf.studio/quickstart/installation.html
GroundingDINO Github源码将DINO与Grounded预训练用于开放集对象检测结合https://github.com/IDEA-Research/GroundingDINO#install

第一步:安装VC环境#

1. 下载引导程序#

官方地址(只有几百 KB):

https://aka.ms/vs/17/release/vs_buildtools.exe

2. 双击运行,勾选组件#

打开安装器后,在 “工作负荷” 标签页勾选:

必须勾选说明
使用 C++ 的桌面开发包含 cl.exe(C++ 编译器)、链接器、头文件

然后在 “单个组件” 标签页确认以下两项已自动勾选(如果没勾,手动补上):

必须勾选说明
MSVC v143 - VS 2022 C++ x64/x86 生成工具最新版 C++ 编译器
Windows 11 SDK (10.0.22621.0)Windows 10 SDK系统 API 头文件和库

nerfstudio 文档提到:如果 MSVC 143 报错(版本 > 17.10),还需要额外安装 MSVC v142(VS 2019 工具集) 。建议两个都勾上,保险。

3. 安装路径#

默认在 C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools,建议别改,后续激活脚本路径固定。

第二步:激活VC环境#

nerfstudio 文档明确要求,每次新开终端都要激活,否则 tiny-cuda-nn 编译找不到编译器

CMD里面敲:

"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"

找到激活脚本#

默认路径(根据你实际安装版本调整):

# VS 2022 (MSVC 143)
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat
# 如果装了 VS 2019 工具集 (MSVC 142)
C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat x64 -vcvars_ver=14.29

每次开终端都执行#

# CMD 里跑这个(PowerShell 用 cmd /k 前缀)
"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvars64.bat"

激活成功后,终端会显示类似:

**********************************************************************
** Visual Studio 2022 Developer Command Prompt v17.x
** Copyright (c) 2022 Microsoft Corporation
**********************************************************************
[vcvarsall.bat] Environment initialized for: 'x64'

验证装好了没#

# 1. 检查 cl.exe 是否存在
where cl
# 应该输出:C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\...\cl.exe
# 2. 检查版本
cl
# 应该显示:Microsoft (R) C/C++ Optimizing Compiler Version 19.xx

如果 where cl 找不到,手动把路径加到系统环境变量 Path 里 :

C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Tools\MSVC\14.38.33130\bin\Hostx64\x64

(版本号 14.38.xxxx 以你实际安装的为准)

第三步:安装Nerfstudio#

  1. 切到 conda
conda create --name nerfstudio -y python=3.8
conda activate nerfstudio
python -m pip install --upgrade pip setuptools
  1. 装 PyTorch 2.1.2 + CUDA 11.8(nerfstudio 推荐版本)
pip install torch==2.1.2+cu118 torchvision==0.16.2+cu118 --extra-index-url https://download.pytorch.org/whl/cu118
conda install -c "nvidia/label/cuda-11.8.0" cuda-toolkit
  1. 装 tiny-cuda-nn(这一步必须在 VC 激活环境下跑!)
pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch
  1. 升级基础工具
pip install --upgrade pip setuptools wheel
  1. 装 nerfstudio 1.1.5(FruitNeRF++ 指定版本,不是最新版!)
pip install nerfstudio==1.1.5
  1. 装 FruitNeRF++ 的其他依赖
pip install pyntcloud==0.3.1
pip install hdbscan
pip install numba
pip install hausdorff
conda install docutils

第四步:安装FruitNeRF++#

FruitNeRF++ 用来**自动给照片里的果实生成分割掩码(mask)**的,是数据预处理的核心工具 。 nerfstudio==1.1.5 装好后,按 FruitNeRF++ README 的顺序继续:

  1. 克隆 FruitNeRF++ 仓库
git clone https://github.com/meyerls/FruitNeRFpp.git
cd FruitNeRFpp
  1. 把项目本身装成 Python 包(editable 模式,方便你二次开发改代码)
python -m pip install -e .
  1. 注册 nerfstudio 的 CLI 命令
ns-install-cli

装完验证:

ns-train -h

如果输出列表里有 fruit_nerffruit_nerfpp 之类的子命令,说明本体安装成功 。

第五步:安装Grounding-SAM#

问题答案
是什么视觉基础模型组合:Grounding DINO(用文本提示检测果实位置)+ SAM(把检测框精细分割成掩码)
干嘛用你拍了一堆果树照片,它能自动给每张照片生成”果实掩码”,告诉 FruitNeRF++ “这里有个苹果/梨/桃子”
要不要装强烈建议装。除非你只跑官方提供的合成数据集(已经自带掩码),否则用自己的照片训练时必须靠它生成掩码

论文里说得很清楚:FruitNeRF++ 的训练需要 2D 掩码作为监督信号,而 Grounding-SAM 的优势是零样本(zero-shot)——你不需要人工标注,直接输入水果名字(如 "apple")就能自动分割 。

如果要装 Grounding-SAM#

FruitNeRF++ README 里有详细步骤,核心流程是: 从 FruitNeRF++ 根目录进入 segmentation 文件夹

Terminal window
cd cf_nerf/segmentation

(或 segmentation,看你下的是 FruitNeRF 还是 FruitNeRF++)

克隆 Grounded-SAM

Terminal window
git clone https://github.com/IDEA-Research/Grounded-Segment-Anything.git groundedSAM
cd groundedSAM
git checkout fe24

fe24 ← FruitNeRF++ 指定兼容版本

设置环境变量(Windows 用 set,Linux 用 export)

Terminal window
set AM_I_DOCKER=False
set BUILD_WITH_CUDA=True
set CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

装 Segment Anything

Terminal window
python -m pip install -e segment_anything

装 Grounding DINO

Terminal window
pip install --no-build-isolation -e GroundingDINO

装其他依赖

Terminal window
pip install --upgrade diffusers[torch]
pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel

下载预训练权重(wget 在 Windows 可以用,或者用浏览器下好拷进来)放在 groundedSAM 文件夹根目录

Terminal window
wget https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
wget https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

方案二:curl(Windows 10/11 自带)#

在当前的 CMD 里直接:

Terminal window
curl -L -o sam_vit_h_4b8939.pth https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
curl -L -o groundingdino_swint_ogc.pth https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth

装 SAM-HQ(高精度版 SAM)

Terminal window
pip install segment-anything-hq

⚠️ 注意:README 里写的 export CUDA_HOME=/path/to/cuda-11.3/ 是示例路径,你要改成自己实际的路径 C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

Detic 是什么?要装吗?#

Detic 是 Facebook 的开放词汇目标检测器,能检测上万个类别,基于 Detectron2 。

FruitNeRF++ 的 README 里 Detic 是单独一个章节,和 Grounding-SAM 并列 。但从论文来看,FruitNeRF++ 的核心分割管线用的是 Grounded-SAM,没有提到 Detic 。

结论:暂时不用装。 Detic 更像是作者预留的备选检测方案(比如 Grounding DINO 对某些水果效果不好时,换 Detic 试试)。如果你后续跑自己的果树数据,发现 Grounding-SAM 漏检严重,再回来装 Detic 也不迟。

安装问题#

subprocess.CalledProcessError: Command ’[‘ninja’, ‘-v’]’ returned non-zero exit status 1#

3090 的 compute capability 就是 86,nerfstudio FAQ 明确说如果 tiny-cuda-nn 没自动编译对应架构,就要手动指定 TCNN_CUDA_ARCHITECTURES

  1. 先卸载之前失败的残留

    pip uninstall tinycudann -y
  2. 指定 3090 的 CUDA 架构(86),重新装

    set TCNN_CUDA_ARCHITECTURES=86
    pip install ninja git+https://github.com/NVlabs/tiny-cuda-nn/#subdirectory=bindings/torch

先清掉当前的 14.44 环境,重新用 14.29 激活

"C:\Program Files (x86)\Microsoft Visual Studio\2022\BuildTools\VC\Auxiliary\Build\vcvarsall.bat" x64 -vcvars_ver=14.29

UserWarning: It seems that the VC environment is activated but DISTUTILS_USE_SDK is not set. This may lead to multiple activations of the VC env. Please set DISTUTILS_USE_SDK=1 and try again.#

问题很明确:DISTUTILS_USE_SDK 没设置。 PyTorch 在 Windows 上编译 C++ 扩展时,如果检测到 VC 环境已激活,必须设这个环境变量,否则 distutils 会重复激活导致冲突 。

Terminal window
:: 1. 设置环境变量(这三条缺一不可)
set DISTUTILS_USE_SDK=1
set CUDA_HOME=C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8
set AM_I_DOCKER=False
分享

如果这篇文章对你有帮助,欢迎分享给更多人!

fruitNeRF++安装指南
https://fredsblog-2dc.pages.dev/posts/guide-fruitnerf-build/
作者
Fredzhe
发布于
2026-04-21
许可协议
CC BY-NC-SA 4.0

部分信息可能已经过时