如何在Linux服务器部署Grounding-Dino?
在linux服务器上部署grounding-dino遇到的问题及解决方案,希望能够帮到你
为什么写这篇博客
有一个项目需要部署grounding-dino,结果在部署过程中遇到了各种问题,几乎花费了一天的时间,所以做一下记录,希望能够帮到有缘人。
安装流程
我这里将官方的顺序重新写一遍,主要是为了说明在哪一步容易遇到什么问题,应该如何解决
1、检查cuda
检查cuda ,如果有问题,参考官方项目即可
echo $CUDA_HOME
2、拷贝项目
拷贝项目,这一步基本也没啥问题
git clone https://github.com/IDEA-Research/GroundingDINO.git
cd GroundingDINO/
3、安装环境
安装环境,重点就在这了
执行官方的代码
pip install -e.
如果到这里没有报错,就可以根据官方的文档进行测试了。
我遇到的第一个问题是gcc版本过低,我的gcc版本是7.4,根据报错显示,需要gcc9或以上的版本,解决方案可以参考:
我遇到的第二个问题是:
error: command '/usr/local/cuda-12.1/bin/nvcc' failed with exit code 2
明明我的cuda就是12.1的版本,为什么会报错呢?后来发现是,使用官方代码安装环境的时候,torch给我安装的是2.6.0 cuda安装的是12.4,导致出现错误,解决方案可以参考
还有一个问题是numpy版本的问题,我直接将numpy的版本降低到1.25.0,运行发现没有问题,不再赘述
4、下载模型
这里应该也没啥问题
mkdir weights
cd weights
wget -q https://github.com/IDEA-Research/GroundingDINO/releases/download/v0.1.0-alpha/groundingdino_swint_ogc.pth
cd ..
5、测试
官方给了两种测试方案,两种方案均可,我们就以官方给的代码为例
python demo/inference_on_a_image.py \
-c groundingdino/config/GroundingDINO_SwinT_OGC.py \
-p weights/groundingdino_swint_ogc.pth \
-i image_you_want_to_detect.jpg \
-o "dir you want to save the output" \
-t "chair"
[--cpu-only] # open it for cpu mode
到这里又出现了一个问题,这个问题是因为网络问题,国内无法从huggingface下载文件导致的
OSError: We couldn't connect to 'https://huggingface.co' to load this file, couldn't find it in the cached files and it looks like bert-base-uncased is not the path to a directory containing a file named config.json.
Checkout your internet connection or see how to run the library in offline mode at 'https://huggingface.co/docs/transformers/installation#offline-mode'.
具体的解决方案参考:
至此,再次运行代码就能成功运行了🤗。
问题整理
问题1、gcc版本过低的问题
这里我建议大家直接搜索网上的相关文档,然后根据文档安装gcc9或以上版本,我个人安装的是9。
不过我在安装gcc的时候,无论使用什么样的方法,都会获得这个错误:
E: Unable to locate package gcc-9
后来,通过chatgpt找到了解决方案,建议大家尝试网上找的方法,不行再尝试下面这个方法
sudo apt install software-properties-common
sudo add-apt-repository ppa:ubuntu-toolchain-r/test
sudo apt update
sudo apt install gcc-9 g++-9
之后需要切换gcc的版本,将低版本切换为高版本
sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-9 9
sudo update-alternatives --install /usr/bin/g++ g++ /usr/bin/g++-9 9
sudo update-alternatives --config gcc
sudo update-alternatives --config g++
gcc --version
如果输出的gcc版本为新安装的版本就说明OK了
问题2、cuda版本不匹配的问题
首先去pytorch官方安装和你cuda匹配的torch
安装完之后再运行
pip install -e .
问题3、网络问题
在官方项目的一个issue中给出了答案,为了方便大家理解,我这里就再赘述一遍。
issue链接:https://github.com/IDEA-Research/GroundingDINO/issues/218
首先,你需要去huggingface的bert-base-uncased项目中下载一些文件放到一个文件夹中,如下图所示
然后去修改grounding-dino.py代码,将 text_encoder_type 替换为文件的路径即可。
如下图所示:
之后再运行代码就OK了
更多推荐


所有评论(0)