
关于Grounded-SAM的部署
Thu Aug 08 2024
该模型来自于
系统为:linux_x86_64
预装CUDA:12.1和11.7
当前该系统默认使用CUDA 12.1
由于Grouned-SAM要求使用CUDA≤11.8,故此处我需要切换到CUDA 11.7
配置步骤如下:
先conda create一个环境(python=3.10)
- PYTHON12345
export AM_I_DOCKER=False # 表示当前环境不是在Docker中 export BUILD_WITH_CUDA=True # 表示项目依赖于CUDA export CUDA_HOME=/usr/local/cuda-11.7/ # 设置CUDA11.7的安装路径 export PATH=$CUDA_HOME/bin:$PATH # 将CUDA的可执行文件路径添加在PATH环境变量 export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH # 将CUDA的库文件添加到LD_LIBRARY_PATH环境变量中
最后三句话是更换了服务器上CUDA版本,去/usr/local/可以看到已有的cuda版本
在别的环境中换CUDA版本就用最后三行代码即可
PYTHON123456export AM_I_DOCKER=False export BUILD_WITH_CUDA=True export CUDA_HOME=/public/software/cuda/cuda-11.8 export CUDA_PATH=$CUDA_HOME export PATH=$CUDA_HOME/bin:$PATH export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH
这个代码是新的服务器上的配置代码
- PYTHON1
pip install -r requirements.txt
PYTHON1python -m pip install -e segment_anything
PYTHON1pip install --no-build-isolation -e GroundingDINO
PYTHON1pip install --upgrade diffusers[torch]
- PYTHON12
git submodule update --init --recursive cd grounded-sam-osx && bash install.sh
第一行其实是更新这个仓库的子仓库

就是我图中圈的这两个,他们是别的仓库,不会在下载父仓库时直接下载,所以在这里用代码更新,但实际上,代码更新报错,建议删了第一行,手动下载填充。然后执行第二行
- PYTHON123
git clone https://github.com/xinyu1205/recognize-anything.git pip install -r ./recognize-anything/requirements.txt pip install -e ./recognize-anything/
自己git一下
Grounded-SAM: Detect and Segment Everything with Text Prompt
我们要跑的是这个,这个可以生mask
PYTHON1234567891011export CUDA_VISIBLE_DEVICES=0 # GPU编号指定,可以是0,1,2,3 python grounded_sam_demo.py \ --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py \ --grounded_checkpoint groundingdino_swint_ogc.pth \ # 记得下载,github说的很清楚 --sam_checkpoint sam_vit_h_4b8939.pth \ # 同样记得下载,也是直接摆文件夹 --input_image assets/demo1.jpg \ # 单个数据原图 --output_dir "outputs" \ --box_threshold 0.3 \ --text_threshold 0.25 \ --text_prompt "bear" \ # 传prompt --device "cuda"
另外,再次打开时有C++版本的报错,是因为安装时的CUDA版本和现在机器调用的CUDA版本不一致,切换版本即可