当前位置: 首页 > news >正文

Grounding DINO实战:开放词汇目标检测上手指南

Grounding DINO实战:开放词汇目标检测上手指南

适合人群:需要检测新类别但不想重新训练模型的工程师
阅读时间:约12分钟
代码环境:Python 3.10+,PyTorch 2.x,transformers 4.x


前言

传统目标检测有个痛点:想检测新类别就得重新标注、重新训练。工厂换了产品,以前检测螺丝的模型对垫圈完全没用。

Grounding DINO解决了这个问题——你只需要用文字描述你要检测什么,它就能检测出来,不需要任何训练数据。

这在工业场景非常有价值:产品线经常切换,维护多个专用模型成本太高。


项目链接见:https://github.com/IDEA-Research/GroundingDINO

一、什么是开放词汇检测

传统检测: 训练数据(螺丝标注) → 训练 → 只能检测螺丝 想检测垫圈?→ 重新标注 → 重新训练 → 部署 开放词汇检测: 输入:图片 + "screw, washer, nut" 输出:直接检测出螺丝、垫圈、螺母 不需要任何训练数据!

但注意:开放词汇检测的精度通常比专用训练模型低10~15%。适合做初期验证产品线切换过渡期使用,最终还是要用专用模型替换。


二、环境安装

# 安装依赖pipinstalltorch torchvision pipinstalltransformers>=4.35.0 pipinstalltimm# Grounding DINO依赖# 安装Grounding DINOpipinstallgroundingdino-py# 或者从源码安装# git clone https://github.com/IDEA-Research/GroundingDINO.git# cd GroundingDINO && pip install -e .

三、快速上手

3.1 基本用法

importtorchimportnumpyasnpimportcv2fromPILimportImagefromgroundingdino.util.inferenceimportload_model,predictfromgroundingdino.util.utilsimportget_phrases_from_posmapclassGroundingDINO:"""Grounding DINO 快速上手封装"""def__init__(self,model_size="base",device="cuda"):""" model_size: "base" 或 "large" """self.device=deviceifmodel_size=="base":config="GroundingDINO_SwinT_OGC.py"weights="groundingdino_swint_ogc.pth"else:config="GroundingDINO_SwinB_cfg.py"weights="groundingdino_swinb_cogcoor.pth"self.model=load_model(config,weights,device=self.device)defdetect(self,image_path,text_prompt,box_threshold=0.25,text_threshold=0.2):""" 检测 image_path: 图片路径 text_prompt: 文字描述,用英文逗号分隔,如 "screw . washer . nut ." 注意:用句号 . 分隔不同类别(官方推荐格式) box_threshold: 检测框置信度阈值 text_threshold: 文字匹配阈值 """image=Image.open(image_path)image_np=np.array(image)# 运行检测boxes,logits,phrases=predict(model=self.model,image=image,caption=text_prompt,box_threshold=box_threshold,text_threshold=text_threshold,device=self.device)# 转换结果detections=[]h,w=image_np.shape[:2]forbox,logit,phraseinzip(boxes,logits,phrases):x1=int(box[0]*w)y1=int(box[1]*h)x2=int(box[2]*w)y2=int(box[3]*h)detections.append({"class":phrase.strip(),"confidence":float
http://www.jsqmd.com/news/988807/

相关文章:

  • 终于不用再“盲猜”了:一位硬件工程师的 SC2010 使用手记
  • 2026 湛江市 GEO 推广优化服务商 TOP5 权威排名完整新闻合集(含榜单表格) - 广东科技观察
  • 数据的加密与解密(23:55)
  • 品牌人,快去劝老板做GEO!告别被动营销,让品牌效果彻底可视化
  • Authlib:Python OAuth 与 OpenID Connect 服务端库
  • 代付分账核心方案:备付金直付 + 多层分账
  • 软考中级第3版教材怎么学?按这个顺序效率翻倍
  • 2026年 Geo优化服务商推荐排行榜:SEO本地化排名、Google地图排名与多语言站点Geo优化公司实力解析 - 品牌发掘
  • HttpPrinter的url地址或者说json过长的解决问题
  • TranslucentTB如何让Windows任务栏焕然一新?透明化美学的全面解析
  • 苹果秋季将推Siri AI更新,聚焦用户需求带来全新对话体验
  • 大模型API聚合平台技术架构深度对比:六大平台协议转换、路由调度与安全治理全解析 - 微元算力(weytoken)
  • 解决JDY-31蓝牙模块指令交互无响应问题:EN使能脚的关键作用
  • 微信网页版插件:5分钟解决无法访问问题,享受便捷网页聊天体验
  • 宇树科技,即将上市!
  • Balatro后端进阶(3):为什么机制设计比写代码更难
  • 2026年5月成都宠物航空托运靠谱服务商攻略|正规有氧舱 安全不踩坑 - TOP10品牌推荐榜单
  • IBM MQ特性-- 面向零停机世界的弹性
  • 我的 Agent 真的能提效 —— 深信服 FastGPT 平台赋能业务革新
  • 创新驱动中国制造业的智能化转型**
  • 对于工业相机的认识(对机械臂的,工业方面的也可以参考)
  • STM32L051K6U6 IAP要点记录-LL库
  • 2026年全球市场研究服务前3款推荐 高效匹配海外供应商的精选榜单
  • orjson:一个比标准库快 10 倍的 Python JSON 库
  • Claude Code 代码库迁移评估流程:目录扫描、依赖分析和风险清单
  • 数据的加密与解密(23:53)
  • 2026年 西安充电桩箱式变电站厂家推荐榜:新能源汽车充电桩变电站/交流充电桩配电房/高低压成套设备实力厂商深度解析 - 品牌发掘
  • ChatGPT / Codex 账号被封的 6 大原因与排查清单(2026)
  • 权威认证加持!融景科技斩获两项国家级一级行业资质、两项自研核心软著,服务中铁、华润置地等头部名企树立湛江 GEO 技术服务标杆 - 广东科技观察
  • 2026年 惠州变压器回收最新推荐:专业处置油式/干式/箱式废旧变压器及二手设备公司盘点 - 品牌发掘