GroundingDINO环境配置

记录一下配置GroundingDINO的环境的时候遇到的问题

Grounding DINO:GitHub - IDEA-Research/GroundingDINO: [ECCV 2024] Official implementation of the paper "Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection"

首先需要注意,要下载GPU版本的DINO

判断自己下载的DINO是不是GPU版本的,看系统文件里有没有_C开头的文件

没有的话,运行的时候会出现如下报错:

NameError: name '_C' is not defined

安装步骤

下面的安装步骤和github中给的步骤一致。

1. 设置CUDA_HOME

1. 使用命令行which nvcc 查看自己的CUDA版本和位置

2. export CUDA_HOME=/usr/local/cuda-xx.x

3.echo $CUDA_HOME 查看是否设置成功

设置正确的CUDA_HOME,在运行setup.py的时候,才能下载GPU版本

2. 从GitHub上克隆GroundingDINO的项目

git clone https://github.com/IDEA-Research/GroundingDINO.git

在github issues中,有人表示,自己无法下载正确的GPU版本,从这个路径下载解决了问题。

https://codeload.github.com/IDEA-Research/GroundingDINO/tar.gz/refs/tags/v0.1.0-alpha2

我在配置环境的时候直接采用了这个路径,大家可以自行选择和尝试

3. 安装

这里有两种安装方式

python setup.py build

python setup.py install

pip install -e .

我在安装的过程中出现了nvcc和gcc版本不匹配的问题,报错信息如下:

unsupported GNU version! gcc versions later than 10 are not supported! The nvcc flag '-allow-unsupported-compiler' can be used to override this version check; however, using an unsupported host compiler may cause compilation failure or incorrect run time execution. Use at your own risk.

这是因为我的CUDA版本不支持10以上版本的gcc。

我得解决方案如下:

1. ls /usr/bin/gcc-*  查看服务器上是否有小于10的gcc

我的服务器上有gcc-8和gcc-9,不用重新下载低版本了,死里逃生!

2. export CC=/usr/bin/gcc-9  设置合适版本的CC路径

3. echo  $CC 检查是否设置成功

4. 再次执行pip install -e .  成功安装了groundingdino,注意-e后的要有 .

4. 运行Demo

运行grounding_dino_demo.py

我这里还遇到了两个问题

1. ImportError: cannot import name 'get_full_repo_name' from 'huggingface_hub' 

执行conda install chardet,安装后解决问题

2. requests.exceptions.ConnectTimeout: (MaxRetryError("HTTPSConnectionPool(host='huggingface.co', port=443): Max retries exceeded with url: /bert-base-uncased/resolve/main/config.json (Caused by ConnectTimeoutError(<urllib3.connection.HTTPSConnection object at 0x7f7bb5149130>, 'Connection to huggingface.co timed out. (connect timeout=10)'))"), '(Request ID: e3ce50f3-814e-4351-a70c-e0412ba967b1)')

这里我直接下载了bert-base-uncased的源文件

https://huggingface.co/google-bert/bert-base-uncased/tree/main

在config文件里将text_encoder_type改为文件路径

改完后运行还会有一些命名造成的错误,对着报错,索引到相关位置更改就行。

例如:ValueError: Unknown text_encoder_type /extern2/zmy/A_ConceptGraphs/bert-base-uncased

总之,get_tokenlizer是可以读文件路径,从本地载入模型的。

 

以上就是我在配置DINO环境的时候遇到的全部问题,虽然都不复杂,但是一个一个弄下来还是挺烦人的,所以记录一下,希望可以对大家有所帮助!!

最后码一下github issue

Issues · IDEA-Research/Grounded-Segment-Anything · GitHub

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值