目录
文章目录
语义分割——Grounded Segment Anything 环境配置和使用教程
- 【项目地址】:IDEA-Research/Grounded-Segment-Anything: Grounded-SAM: Marrying Grounding-DINO with Segment Anything & Stable Diffusion & Recognize Anything - Automatically Detect , Segment and Generate Anything (github.com)
- 【项目介绍文档】:Segment Anything(sam)项目整理汇总 - 知乎 (zhihu.com)
环境配置
下载项目
- 链接:https://pan.baidu.com/s/10Ei7WUVMTHOUhNQK3BZSag?pwd=rt4u
提取码:rt4u
下载引用库
- 链接:https://pan.baidu.com/s/1SNJTQBF75EmhyscJWkg4fw?pwd=0ds1
提取码:0ds1
注:放入项目对应文件夹即可.
配置环境变量
注:这一步一定要确保完成,CUDA_HOME 更换成你自己的路径,要不然就会出现NameError: name ‘_C’ is not defined,这个错误折磨作者将近两天了,终于解决了(哭~).
Pycharm 设置
- Settings > Terminal > Environment variables:
- 如何确保设置成功,在 Pycharm 终端中输入以下命令:
$env:CUDA_HOME
- 有输出,且 路径正确,就代表设置成功:
GitBash 中
注:虽说不知道在 GitBash 中再设置一次环境变量是否有必要,但作者是这样的,所以为了避免报错,建议大家做好这一步.
- 如何安装 Git 和 GitBash:【精选】Git 详细安装教程(详解 Git 安装过程的每一个步骤)_git安装_mukes的博客-CSDN博客
- 打开 GitBash 输入以下命令(记得 更换 CUDA_HOME 路径):
export AM_I_DOCKER=False
export BUILD_WITH_CUDA=True
export CUDA_HOME=/c/Program\ Files/NVIDIA\ GPU\ Computing\ Toolkit/CUDA/v12.2
注:在 Bash 终端中,路径中的空格需要用反斜杠
\
转义.
- 同样也要确保设置成功,输入以下命令:
echo $CUDA_HOME
- 有输出,且 路径正确,就算成功:
安装库
segment_anything
- 【命令】:
python -m pip install -e segment_anything
- 【参考我的另一篇博客】:语义分割——SAM 模型环境配置和使用教程-CSDN博客
GroundingDINO
安装包
- 【命令】:
python -m pip install -e GroundingDINO
- 【运行结果】:
安装依赖项
- 【命令】:
cd GroundingDINO
python setup.py build
python setup.py install
- 【运行结果】:
diffusers[torch]
- 【命令】:
pip install --upgrade diffusers[torch]
- 【运行结果】:
grounded-sam-osx
- 【命令】:
cd grounded-sam-osx
pip install openmim
mim install mmcv-full==1.7.1
pip install -r requirements.txt
cd transformer_utils
python setup.py install
注:其实可以在终端输入
./install.sh
命令的,但这样会导致运行完之后命令打开的 GitBash 窗口自动关闭,看不到到底有没有报错,所以这里建议 一步步手动 在终端运行 install.sh 中的命令.
Tag2Text
- 修改Tag2Text/requirements.txt中
transformers
的版本号为 4.29.0(4.15.0 会报错):
timm==0.4.12
transformers==4.29.0
fairscale==0.4.4
pycocoevalcap
torch
torchvision
Pillow
scipy
- 【命令】:
cd Tag2Text
pip install -r requirements.txt
- 【运行结果】:
其它依赖项
- 【命令】:
pip install opencv-python pycocotools matplotlib onnxruntime onnx ipykernel
- 【运行结果】:
运行 grounding_dino_demo.py
下载预训练模型
- 【官方下载地址】:https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
- 链接:https://pan.baidu.com/s/13bCwL-MtpptcwUbVY6-iKw?pwd=t6s5
提取码:t6s5
运行
- 作者更换了示例图片:
from groundingdino.util.inference import load_model, load_image, predict, annotate, Model
import cv2
CONFIG_PATH = "GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py"
CHECKPOINT_PATH = "./groundingdino_swint_ogc.pth"
DEVICE = "cuda"
IMAGE_PATH = "assets/demo1.jpg" # 修改
TEXT_PROMPT = "bear." # 修改
BOX_TRESHOLD = 0.35
TEXT_TRESHOLD = 0.25
image_source, image = load_image(IMAGE_PATH)
model = load_model(CONFIG_PATH, CHECKPOINT_PATH)
boxes, logits, phrases = predict(
model=model,
image=image,
caption=TEXT_PROMPT,
box_threshold=BOX_TRESHOLD,
text_threshold=TEXT_TRESHOLD,
device=DEVICE,
)
annotated_frame = annotate(image_source=image_source, boxes=boxes, logits=logits, phrases=phrases)
cv2.imwrite("annotated_image.jpg", annotated_frame)
- 终端运行:
python grounding_dino_demo.py
注:Connection to huggingface.co:需要科学上网,即可消除这个警告.
- 预测结果:
NameError: name ‘_C’ is not defined 报错
问题描述
原因
环境变量没有配置好
- 一定要严格按照作者在前面给出的环境配置方法配置那 3 个环境变量,确保配置成功,注意那两种方式不是二选一,而是都要配置!!!
- 虽然说不理解为什么两个都配置,但作者这样确实成功了,读者也可以试试只在 Pycharm 中配置.
安装出问题
- 在安装 GroundingDINO 的时候,仅仅依靠以下命令是不行的:
python -m pip install -e GroundingDINO
- 还需:
cd GroundingDINO
python setup.py build
python setup.py install
文件路径太长
- 这是作者遇到的,作者怎么也想不到是因为这个导致相关文件创建不了,在执行了
python setup.py build
和python setup.py install
命令后,才看见的报错信息(人麻了).
- 在安装 grounded-sam-osx 的时候,作者才用了手动执行一个个命令就是这个原因,不执行到 原子性的命令 之前,控制台根本不会显示任何报错信息(如果确实出现了问题).
解决办法
- 删除GroundingDINO 文件夹(特别是如果没有遗漏上述第二组命令还出现了这个报错,必须要删除生成的build、dist 文件夹,重新从项目压缩包里复制,重新安装.
- 一句话,重开 GroundingDINO!!!(真的是血泪教训啊 qwq)