
MM_grounding_dino 安装部署报错记录
grounding_dino 是 23 年就已经推出的多模态目标检测模型,和过去的 Yolo 系列模型不同的是,YoloV 系列模型只能支持按固定的训练类别进行目标检测(Yolo World 现在也可以支持抽象文本),而 grounding dino 可以支持用户输入抽象文本(比如“the bottle handed by the man who worn white T-shirt”)进行目标检测,开放性更强。我本身不是做目标检测方向的,目前因实际需求需要用此模型帮助我完成一些简单任务,这里耗费半天安装成功了,在此做一下记录 😁。
1. 安装须知
需要注意的是,这里我询问了专门做目标检测方向的好友,并不推荐直接安装 grounding dino,而是先安装 mmdetection 这个框架,mmdetection 是一个训练流的工具,然后作者自己弄了一个 mm_grounding_dino 的模型,mm_grounding_dino 在原版的 grounding dino 模型上进行了微调。同时,借助 mmdetection,我们也可以很方便的 mm_grounding_dino 的基础上微调我们的数据集。
mmdetection_github 地址: open-mmlab/mmdetection
官方安装文档: mmdet 安装、mm_grounding_dino 安装
这里可以看到有点麻烦的是,你需要先安装这个 mmdet (mmdetection 的简写),然后才能安装 mm_grounding_dino。
然后这个模型吃的显存不多,消耗显存量和你上传的图片大小有关,我上传了一张 2k 的照片大概吃的是 2G 显存,我使用的显卡是 NVIDIA A6000,如果有 4090 的话运行速度会更快。系统是 Ubuntu 22.04,Windows 系统我暂时没有试过,建议安装 wsl2。
2. 开始安装
这里跟着官方文档一步一步来吧,先安装 mmdet 然后再安装 mm_grounding_dino。
2.1 安装 mmdet
首先创建 3.8 版本的 conda 环境:
1 | conda create --name openmmlab python=3.8 -y |
然后就是安装 pytorch 环节,服务器使用的 cuda 版本为 12.8,所以我使用了如下命令安装:
1 | pip3 install torch torchvision |
这个安装命令是按照 pytorch 官网文档来的:
然后安装 mim 工具,使用其继续安装 mmengine 和 mmcv:
1 | pip install -U openmim |
然后安装 mm_detection 这里官方给了源码安装和第三方 python 包的方式,这里我直接使用了源码安装:
1 | git clone https://github.com/open-mmlab/mmdetection.git |
其实这里源码安装你就可以看出,https://github.com/open-mmlab/mmdetection.git 既有测试代码,又有这个 mmdetection 包… 反正后续测试是否 mmdet 是否安装成功也还是需要 clone 此 git,还不如源码安装算了
验证是否安装成功
1 | mim download mmdet --config rtmdet_tiny_8xb32-300e_coco --dest . |
不出意外的话,会遇到这个错误:
1 | File "/mnt/e/EWorkspace/mmdetection/mmdet/init.py", line 17, in and mmcv_version < digit_version(mmcv_maximum_version)), |
这个错误是显示 MMCV2.2.0 和当前环境不适配,这里 https://github.com/open-mmlab/mmdetection/issues/12312 官方 issue 中给出了几个方法:
- go to line 17 and change “< digit_version(mmcv_maximum_version))” to "<=digit_version(mmcv_maximum_version))"这里去 line17 改成<=即可,实测可以运行;(我使用的就是这种方法)
- mmcv==2.1.0 is working fine for me as well so far.;(尝试过但没解决问题)
- change line 32 in the dockerfile from “mmcv>=2.0.0rc4” to “mmcv==2.0.0rc4”.
修复这个错误之后,就能正常看到运行结果了。你会在当前文件夹中的 outputs/vis 文件夹中看到一个新的图像 demo.jpg,图像中包含有网络预测的检测框。
我也有尝试过使用 uv 安装(不太喜欢 conda 中 pip 的 requirements 管理依赖方式),使用 uv add 命令安装基础包的时候都没出现太大问题,只是使用 mim 安装的时候要使用 uv run mim install mmengine。
不过,也是在验证的时候出现了 mmcv 的报错,换成 2.1.0 也还是没有成功。
2.2 安装 MM grounding dino
如果上面安装成功了,那么下面部署模型这一步就变得简单了。由于前面已经执行过 git clone 命令,这里不需要再重复执行如下命令:
1 | git clone https://github.com/open-mmlab/mmdetection.git |
只需要进入这个代码主目录,然后安装其他依赖包:
1 | pip install -r requirements/multimodal.txt |
之后,运行这两段代码提前下载 BERT 权重和 NTLK 权重:
BERT 是语言模型,可以对文本进行 embedding;而 NTLK 是语义解析库,作用和 jieba 接近,都可以进行文本分词、文本实体提取,由于 grounding dino 仅支持英文,这里 ntlk 就是专门解析英文的库。( Ragflow 中也用的是 ntlk 库 )
1 | from transformers import BertConfig, BertModel |
1 | import nltk |
然后直接下载 MM Grounding DINO-T 模型权重即可:
1 | wget load_from = 'https://download.openmmlab.com/mmdetection/v3.0/mm_grounding_dino/grounding_dino_swin-t_pretrain_obj365_goldg_grit9m_v3det/grounding_dino_swin-t_pretrain_obj365_goldg_grit9m_v3det_20231204_095047-b448804b.pth' # noqa |
为方便测试,请将 https://github.com/microsoft/X-Decoder/tree/main/inference_demo/images 下的图片下载到 images 文件夹中,然后运行:
1 | python demo/image_demo.py images/animals.png \ |
这个时候如果可以在outputs/vis/animals.png 中看到预测结果,就说明部署成功了。

我的需求是检测衬衫、裤子、鞋子这些物品,发现识别效果很不错。下面这张是一张4mb的超清图,我输入的文本是 the t-shirt of the man who is standing,发现找的还是挺准的

- 标题: MM_grounding_dino 安装部署报错记录
- 作者: fanz
- 创建于 : 2025-12-30 23:40:54
- 更新于 : 2025-12-31 13:13:51
- 链接: https://redefine.ohevan.com/t83a86/
- 版权声明: 本文章采用 CC BY-NC-SA 4.0 进行许可。