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

NVIDA开源视觉定位神器:LocateAnything

LocateAnything全称为LocateAnything: Fast and High-Quality Vision-Language Grounding(并行框解码视觉语言定位模型)。开源了 LocateAnything-3B(30 亿参数)。

模型定位:通用开放词汇视觉定位基座,一句话文本指令→图像自动输出目标包围框,统一开放域检测、指代定位、UI 控件拾取、OCR 文字框选四大任务,主打高速 + 高精度,面向机器人抓取、AI 智能体、工控视觉、自动 GUI 操作场景。非商用免费开源,商用需联系英伟达授权。

1.传统VLM缺陷

主流 VLMs(GPT4V、Qwen-VL)自回归逐 Token 生成坐标:框[x1,y1,x2,y2]拆成 4 组数字逐个字符解码,串行生成:

1)速度慢:单个目标 4 次解码,多物体叠加时延暴涨

2)误差累积:第一个坐标出错,整框报废、几何失真

2.模型创新:PBD(Parallel Box Decoding 并行框解码)原理

把整框 (x1,y1,x2,y2) 当做 1 个不可拆分的原子单元,一步并行全量预测,不再拆分坐标 Token:

1)视觉编码器提取图像全局特征,文本编码器解析查询指令(自然语言);

2)解码器一次性批量输出所有目标完整包围框,单步输出 4 个坐标;

3)天然保留框几何约束,不会出现坐标错位、长宽畸形。性能提升:推理吞吐量≈传统自回归模型2.5~10 倍;H100 混合模式可达12.7 框 / 秒 (BPS),满足机器人实时毫秒级定位。

3.三种推理运行模式

如下表所示:

模式适用场景特点
Fast 快速机器人实时抓取、端侧工控、在线实时检测纯 PBD 并行解码,速度最优,牺牲极少量精度
Slow 高精度数据集标注、离线质检、高精度测量传统自回归解码,精度拉满、速度偏低
Hybrid 混合(默认)通用部署默认 Fast,场景歧义 / 识别异常自动切 Slow,兼顾速度 + 精度

4.训练数据集:LocateAnything-Data(业界超大定位数据集)

自研百万级多域标注库:1200 万张独立图像 + 1.38 亿条文本查询 + 7.85 亿标注包围框

覆盖 5 大领域:通用自然物体、机器人实操场景、手机 / 电脑 GUI 界面、文档 OCR、自动驾驶路面目标

优势:开箱即用零样本,不用微调即可识别任意新词、小众工业零件。

5.支持的任务和优势

1)开放词汇通用目标检测:输入 “图里所有黑色手机”,自动框出全部手机,不限预定义类别;

2)指代表达定位:“画面右侧胶带下方的绿色方格板”,精准框选指代物体(机器人抓取刚需);

3)GUI 界面元素定位:“屏幕所有按钮 / 输入框”,AI 自动化点控、键鼠自动化;

4)OCR 文本框选:“框出图片内所有汉字”,文字区域坐标提取;

5)点提示辅助定位:配合打点 + 文本混合 Prompt,疑难物体精准框选。

相比传统的优势如下:

1)定位 AP 精度>现有开源 VLMs(Qwen-VL、LLaVA)5%~12%;

2)同等精度下推理耗时仅传统方案 1/3;

3)密集杂物堆叠场景(多零件混放)零样本鲁棒性突出,适配工业杂乱工件定位。

6.和SAM/YOLO 区别

1)YOLO 系列:闭集预定义类别,新增工件必须重新标注训练;LocateAnything开放词汇,自然语言任意新词零样本识别;

2)SAM 分割:点 / 框提示做像素分割,不能文本指令;LocateAnything纯文本输入出检测框,侧重目标定位,推理更快;

互补方案:LocateAnything 出目标包围框→框内送入 SAM 做精细像素分割,工业视觉常用组合。

7.应用部署

使用 NVIDIA 官方开源 LocateAnything-3B,支持自然语言指令检测任意物体(人、车、工件、缺陷、零件、文字、按钮… 都可以)。

1)环境要求:

Python 3.9+;PyTorch 2.0+;CUDA 11.7+(必须有 NVIDIA 显卡);显存 ≥ 10GB(推荐 16GB 以上,如 RTX 3090/4090)。

2)环境配置:pip install torch torchvision transformers pillow opencv-python

模型下载:nvidia/LocateAnything-3B

3)目标检测:纯目标检测模式:输入图片 + 文本指令 → 输出所有目标框,代码如下:

import cv2 import torch from PIL import Image from transformers import AutoModel, AutoTokenizer # ====================== 1. 加载模型 ====================== model_name = "nvidia/LocateAnything-3B" tokenizer = AutoTokenizer.from_pretrained(model_name) model = AutoModel.from_pretrained( model_name, torch_dtype=torch.float16, trust_remote_code=True ).cuda().eval() # ====================== 2. 加载图片 ====================== image_path = "test.jpg" # 你要检测的图片 image = Image.open(image_path).convert("RGB") # ====================== 3. 输入检测指令 ====================== # 想检测什么就写什么!!! prompt = "找出图中的所有杯子" # prompt = "框出所有轴承工件" # prompt = "找到图中的红色零件" # ====================== 4. 推理 ====================== with torch.no_grad(): boxes = model.predict_boxes( image=image, prompt=prompt, tokenizer=tokenizer, max_boxes=20, # 最多检测多少个物体 conf_thres=0.3, # 置信度阈值 device="cuda" ) # ====================== 5. 绘制结果 ====================== img = cv2.imread(image_path) for box in boxes: x1, y1, x2, y2 = map(int, box) cv2.rectangle(img, (x1, y1), (x2, y2), (0, 255, 0), 2) cv2.imwrite("result.jpg", img) print("检测完成!输出框坐标:", boxes)

4)检测应用技巧

(1)检测任意物体(开放词汇,不用训练):想检测什么,直接写自然语言就行

prompt = "找出图中的所有螺丝" prompt = "找到所有黑色橡胶圈" prompt = "框出所有金属工件" prompt = "找出图中的缺陷" prompt = "找到所有按钮"。

(2)控制检测数量

max_boxes=10 # 最多检测10个

conf_thres=0.5 # 置信度越高,框越少越准

(3)支持复杂描述(比 YOLO 强得多)

prompt = "找到桌子上的白色杯子"

prompt = "框出右上角的零件"

prompt = "找到图片中间最大的那个物体"

(4)支持多类别同时检测

prompt = "找出图中的杯子、瓶子、键盘"

检测效果如下图所示

http://www.zskr.cn/news/1457622.html

相关文章:

  • 纳米针基人机接口:微纳技术如何重塑生命信息交互
  • 华为锂电池安装指导
  • 如何彻底解决Zotero中文文献乱码:茉莉花插件3步完全指南
  • 从蔡斯博士案例看STEM教育:如何系统性推动女孩参与计算机科学
  • 用MATLAB给振动信号做‘体检’:手把手教你提取12个关键时域特征(附完整代码)
  • 2000年中国高速/国道/铁路线状GIS数据包(SHP格式,含完整坐标系)
  • Seraphine:英雄联盟智能辅助工具的终极完整指南
  • ROS节点自启动踩坑实录:从startup Application到robot_upstart,我为什么最终选择了后者?
  • 从扫地机到自动驾驶:聊聊SLAM技术如何用激光雷达和视觉传感器搞定室内外定位
  • 如何撰写高质量研究周报:从信息筛选到价值呈现的工程实践
  • MySQL 8.0在Docker里大小写敏感踩坑记:从‘表不存在’到彻底解决的完整复盘
  • 性价比高的全屋定制厂家直供门窗哪个靠谱
  • LabVIEW 2019 生成 .NET DLL 实战:手把手教你让C# WinForm调用LabVIEW加法函数
  • 别再乱用tinyint(1)了!详解MySQL、MyBatis与Java类型映射的“潜规则”与最佳实践
  • 2026年现阶段海珠区小规模代理记账企业推荐:如何甄选专业、合规、高价值的财税伙伴? - 2026年企业资讯
  • 绕过软件保护实战:不修改super_mega_protection.exe,如何暴力破解它的用户名?
  • 英伟达RTX Spark登场,端侧AI能否打破现状?
  • STM32在线升级时中断卡死?手把手教你用RAM运行中断函数(F0/F1通用)
  • Capstone:多架构支持的终极反汇编器,2025 - 2026 年多版本更新亮点多!
  • 智能运维不是加AI,而是重写SLO——基于172个真实SLI指标的AI驱动根因分析框架(附可审计的因果图谱生成代码)
  • 算法:最大子数组和
  • 避开这些坑,你的Nature Communications投稿就成功了一半:从格式到图表的保姆级自查清单
  • 2026年,成都口腔GEO优化秘诀大揭秘!
  • AI工具如何让拼团转化率飙升37.6%?揭秘3家独角兽私藏的智能分群与动态组队算法
  • 2026年近期河北不锈钢膨胀螺栓直销厂家有哪些?深度解析与安玖不锈钢选型指南 - 2026年企业资讯
  • 为什么老DBA都选“仅安装软件”?Oracle 11g安装模式深度解析与最佳实践
  • BQ4050电池管理芯片SMBus通信全解析:从数据手册到代码实现(附ATmega4809例程)
  • 如何快速使用TestDisk与PhotoRec:数据恢复完整教程
  • ESP8266 AP模式配置避坑指南:从IP地址冲突到稳定局域网搭建
  • HarmonyOS 6.1 云应用客户端适配实战(一):环境搭建与编译系统