Open-Vocabulary SAM,简称ovsam,项目对应论文:Open-Vocabulary SAM: Segment and Recognize Twenty-thousand Classes Interactively。该项目提供了在线使用的demo,也可以下载后本地运行。本文介绍ovsam本地部署运行。
一、项目下载
下载地址:GitHub - OpenXLab-APP/ovsam
注意!不要在论文中给的地址下载,内容不全,只能用来看参考文档。文档中给的地址是
https://huggingface.co/spaces/HarborYuan/ovsam ovsam_demo
这个地址经常被墙,不能直接用git拉取,也没有像github一样提供网站内一键下载的按钮。在github上搜索ovsam就能看到上述我成功下载项目的地址。
二、环境配置
用pycharm打开项目并创建conda环境
下载需要的库,可以参考文档给的python命令
python -m pip install gradio==4.7.1
python -m pip install -r requirements.txt
这里我用的是python3.8,torch和mmcv用的是CPU版,其他库的版本最好要按照requirements.txt来下载。如果电脑上安装了cuda也可以用GPU运行,只不过会麻烦一点。此处有三个问题需要注意:
1.如果在下载时遇到了ssh error或是编号为443的错误,大概率是在使用国内源的同时用了科学上网软件,可以尝试关掉软件重新下载,我用的是国内清华源。(然而访问huggingface又必须开软件,没办法,只好反复横跳)
2.库的版本号要对应。例如,torch==2.1.2可以对应torchvision==0.16.2,torchaudio==2.1.2。numpy==1.20.3可以对应pandas==2.0.3。对应关系不止一种,大家可以自行上网搜索。
3.如果遇到错误
ERROR: Could not build wheels for mmcv, which is required to install pyproject.toml-based projects
或者
ImportError: DLL load failed while importing _ext: 找不到指定的模块
大概率是你的mmcv安装有问题,在官网可以根据自己的电脑配置(一定要看清楚!)用对应的命令下载mmcv
官网地址:https://mmcv.readthedocs.io/zh-cn/latest/get_started/installation.html#pip
也可以参考这篇博客
https://blog.csdn.net/m0_73914600/article/details/127176961
三、项目运行
按照文档到这里我们就可以直接运行main.py成功启动项目了,然而事实并不是这样...我们还要对项目进行少许修改
1.直接运行会遇到类似于这样的错误(忘记截图了)
找不到路径:output='/home/xlab-app-center/models'
这是由于output路径必须是本地路径,我们把这一行,即main.py第14行注释掉
download(model_repo='openxlab-app/ovsam', model_name='sam2clip_vith_rn50.pth',output='/home/xlab-app-center/models')
换成
download(model_repo='openxlab-app/ovsam', model_name='sam2clip_vith_rn50.pth',output='models')
2.我们还会遇到第二个问题
BadGzipFile: Not a gzipped file (b‘ve‘)
这个问题通常和.gz后缀的压缩文件有关,经过排查,我发现项目里有一个压缩文件是损坏的,即ext/open_clip/bpe_simple_vocab_16e6.txt.gz。不过还好项目根目录下还有一个同名文件,我们用这个文件替换损坏的文件。
3.到这里会看到一个进度条,我们已经胜利在望了
但是我们仍有可能遇到以下错误
PytorchStreamReader failed reading zip archive: failed finding central
这个错误通常发生在模型文件被损坏或不完整的情况下,我们观察到项目需要在https://dl.fbaipublicfiles.com/segment_anything/sam_vit_h_4b8939.pth
下载模型文件sam_vit_h_4b8939.pth 到 C:\Users\你的用户名\.cache\torch\hub\checkpoints 中。
这个模型文件大小为2.4G,如果你发现你的这个模型文件太小,那么就是在下载过程中出现问题导致文件损坏,需要手动下载并放到指定目录中。
四、效果展示
项目提示,在浏览器打开 http://127.0.0.1:7860
运行成功,效果和在线demo一样。用box prompt分割出人的图像,并给出预测label:person,预测分数0.78.