GroundingDINO+SAM官方demo本地配置运行

grounded-sam官方demo本地部署,参照官方文档一步一步的操作发现还是有些问题,之后又参考了相关博客,基本已经能够运行,但有些细节还需指出。

安装包和依赖

123
在官方的github上安装部分的要求,python解释器版本3.8及以上,pytorch版本1.7及以上,torchvision为0.8及以上,确认好自己的版本能对上之后,开始安装相关包
在这里插入图片描述
再接着配置GPU环境,刚开始看到这的时候,我以为export是pycharm命令行能够直接识别的命令,发现没用后又直接cmd上输入还是不行,搜了一下才知道export好像是Linux命令,用于设置或显示环境变量的,我是windows系统,只好手动设置。而且这个第3个环境变量并不是直接复制,是要贴上自己的cuda安装路径,之前安装的cuda是在Anaconda的虚拟环境中,没法找到具体位置,又去官网下载cuda,这里选择的是cuda11.8。然后如果没有自己更改过安装位置的话,默认路径应该是:

C:\Program Files\NVIDIA GPU Computing Toolkit\CUDA\v11.8

安装SAM和GroundingdDINO以及其他模型,在pycharm命令行中安装,根据需要选择安装,这里安装GroundingDINO时可能会有些许问题,用国内源时需要把梯子关了,并且还会有找不到下载文件的情况,换了几次源,最后换了阿里源下好了。
在这里插入图片描述
再安装一下必要的依赖:
在这里插入图片描述
预训练模型权重下载
SAM
可根据需求选择版本下载,默认选vit_h
GroundingDINO
以上两个权重文件下载后加入项目主目录下,之后下载编码器bert:
bert-base-uncased
这里HuggingFace没有提供像GitHub那样的一键打包下载(也可能是我没找到),所以按照它的层级目录建好分别下载单个文件,最后结果如下:
在这里插入图片描述

运行代码

先试下GroundingDINO,在项目主目录找到grounding_dino_demo.py文件,其中参数

IMAGE_PATH 为输入图片的路径
TEXT_PROMPT 为提示文本,可自行修改
在最后一行代码cv2.imwrite(“annotated_image.jpg”, annotated_frame)可修改输出图片路径

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/demo7.jpg"
TEXT_PROMPT = "Horse. Clouds. Grasses. Sky. Hill."
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)

这里就用它自带的文件夹下的demo7,提示文本也不变,输出路径改为自己建立的result_image文件夹下,运行结果如下:
在这里插入图片描述
再来试下GroundingDINO+SAM,先在项目主目录下建立输入图片文件夹input_image和输出图片文件夹output_image,再找到grounded_sam_demo.py文件找到text_prompt这一行,可在这修改提示文本:

parser.add_argument("--text_prompt", type=str, required=True, help="text prompt")
#改为下面
parser.add_argument("--text_prompt", type=str,default="你的文本提示信息(用英文)", required=False, help="text prompt")

剩下几个参数,可以在像上面一样在代码中修改,也可以直接在命令行中给出,我这里选择后者,在pycharm命令行中输入:

python grounded_sam_demo.py --config GroundingDINO/groundingdino/config/GroundingDINO_SwinT_OGC.py --grounded_checkpoint ./groundingdino_swint_ogc.pth --sam_version vit_h --sam_checkpoint ./sam_vit_h_4b8939.pth --input_image ./input_image/car.jpg  --o output_image

在"./input_image/“后填入你需要输入的图片名,其他不需要改变,这里我选的原图如下,提示文本是"dog.bench.”
在这里插入图片描述
结果如下:
在这里插入图片描述
目前只使用了GroundingDINO+SAM,剩下几种组合还没用到

参考文章

Grounded-SAM(最强Zero-Shot视觉应用):本地部署及各个模块的全网最详细使用教程!

  • 33
    点赞
  • 36
    收藏
    觉得还不错? 一键收藏
  • 8
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 8
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值