关于Grounded-SAM的部署

关于Grounded-SAM的部署

Thu Aug 08 2024
tech AI Project

该模型来自于

Grounded-Segment-Anything

系统为:linux_x86_64

预装CUDA:12.1和11.7

当前该系统默认使用CUDA 12.1

由于Grouned-SAM要求使用CUDA≤11.8,故此处我需要切换到CUDA 11.7

配置步骤如下:

  • 先conda create一个环境(python=3.10)

  • PYTHON
    1
    2
    3
    4
    5
    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版本就用最后三行代码即可

    PYTHON
    1
    2
    3
    4
    5
    6
    export 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
    

    这个代码是新的服务器上的配置代码

  • PYTHON
    1
    pip install -r requirements.txt
    
    PYTHON
    1
    python -m pip install -e segment_anything
    
    PYTHON
    1
    pip install --no-build-isolation -e GroundingDINO
    
    PYTHON
    1
    pip install --upgrade diffusers[torch]
    
  • PYTHON
    1
    2
    git submodule update --init --recursive
    cd grounded-sam-osx && bash install.sh
    

    第一行其实是更新这个仓库的子仓库

img

​ 就是我图中圈的这两个,他们是别的仓库,不会在下载父仓库时直接下载,所以在这里用代码更新,但实际上,代码更新报错,建议删了第一行,手动下载填充。然后执行第二行

  • PYTHON
    1
    2
    3
    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

    PYTHON
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    export 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版本不一致,切换版本即可