SAM2 安装与运行问题解决方案

SAM2

昨天,Facebook发布了SAM2,支持更好的图像分割和视频分割,正好业务上存在视频分割+Mask追踪的需求,所以clone一下试试

安装方法

参考官方文档,直接将sam2作为pip包安装。

也许也可以使用python -m pip install git+https://github.com/facebookresearch/segment-anything-2.git

踩坑记录

环境说明:Win10+py3.10+pytorch2.4.0+cu12.1

1 安装时

官方环境需求python>=3.10pytorch>=2.3.1torchvision>=0.18.1

2 安装时

CUDA_HOME 环境变量问题,参考 Issue 41

OSError: CUDA_HOME environment variable is not set. Please set it to your CUDA install root.

尝试添加环境变量 $env:CUDA_HOME = C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.1 (仅为示例,请根据实际添加) 到系统环境变量中,并未生效,因此查找issues,发现需要为pip指定 --no-build-isolation 参数

完整解决方案:

  1. 安装CUDA Toolkit,如 CUDA 12.4
  2. 添加新环境变量,名称为CUDA_HOME,值为C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v12.4
  3. 执行 nvcc -V,测试nvcc是否正确安装
  4. 执行安装流程(已完成pytorch等依赖安装的话,直接从 pip install 开始)
cd \segment-anything-2
conda create -n sam2 python=3.10

pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu124

pip install --no-build-isolation -e .
pip install --no-build-isolation -e ".[demo]"

3 安装时

VS Studio 需求问题

由于正版VS在公司电脑上需要申请,所以只安装了开发工具包,会显示需要支持的编译器,因此,为setup.py中的nvcc项目添加"-allow-unsupported-compiler"这一编译选项

在48行后(https://github.com/facebookresearch/segment-anything-2/blob/86827e2fbae8a293f61d51caa70a4b0602c04454/setup.py#L48)添加:

            "-allow-unsupported-compiler",

添加完毕后应为:

    compile_args = {
        "cxx": [],
        "nvcc": [
            "-DCUDA_HAS_FP16=1",
            "-D__CUDA_NO_HALF_OPERATORS__",
            "-D__CUDA_NO_HALF_CONVERSIONS__",
            "-D__CUDA_NO_HALF2_OPERATORS__",
            "-allow-unsupported-compiler",
        ],
    }

然后重新执行上面的安装流程。

2 运行时

问题相关Issue

segment-anything-2\sam2\modeling\sam\transformer.py", line 255, in forward
out = F.scaled_dot_product_attention(q, k, v, dropout_p=dropout_p)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
RuntimeError: No available kernel. Aborting execution.

解决方法:

禁用flash_attention

Adding some lines after L22 in sam2\modeling\sam\transformer.py

将下面的行添加到sam2\modeling\sam\transformer.py22行

USE_FLASH_ATTN = False
MATH_KERNEL_ON = True
OLD_GPU = True
### SAM2 部署所需硬件要求 对于SAM2(假设指的是Segment Anything Model 2或类似的高级视觉模型)的部署,具体的硬件需求取决于应用的具体情况以及期望的性能水平。通常情况下,这类先进的机器学习模型对计算资源有较高要求。 #### 处理器(CPU/GPU) - **CPU**: 虽然理论上可以在仅配备多核高性能CPU的环境中运行,但这不是推荐的方式。因为复杂的推理过程可能会非常耗时。 - **GPU**: 推荐使用NVIDIA GPU,特别是那些支持CUDA和Tensor Cores技术的产品,比如Tesla V100、A100 或者消费级的RTX系列显卡。这能显著加速模型推断速度[^1]。 #### 内存(RAM/VRAM) - **RAM**: 至少需要32GB以上的系统内存来处理较大的输入数据集并保持系统的流畅度。 - **VRAM**: 如果采用GPU加速,则至少需8GB VRAM;对于更复杂的应用场景建议配置更高容量如16GB甚至更多。 #### 存储空间 - 模型文件本身可能占用数GB的空间,并且还需要额外的工作目录用于缓存中间结果和其他临时文件。因此应该预留足够的SSD存储空间以确保快速读写访问。 #### 网络带宽 如果涉及到云端部署或者分布式训练环境的话,稳定高速互联网连接也是必不可少的一部分,以便能够及时上传下载必要的资料。 ```bash # 示例命令行检查当前Linux服务器上的硬件信息 lscpu # 查看CPU详情 nvidia-smi # 显示已安装NVIDIA驱动程序版本及GPU状态 free -h # 展示物理内存大小 df -H / # 获取根分区剩余磁盘空间 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值