零样本目标检测技术是一种先进的人工智能领域应用,它允许模型在没有预先标记数据的情况下,通过文本提示识别图像中的目标。这种技术的核心在于能够利用文本提示来搜索智能手机和其他设备上的图像,帮助用户查找特定地点、城市、动物等对象。此外,零样本分类模型还可以在单个图像中统计特定对象的数量,以及在视频中进行目标跟踪。
Grounding DINO基础模型工作原理
Grounding DINO基础模型不依赖于标记数据,而是通过文本提示与图像匹配来寻找概率得分。模型首先识别文本中提到的对象,然后生成一个基于颜色、形状和其他特征的“对象提议”来识别图像中的对象。对于每个文本提示,Grounding DINO处理图像并通过得分来识别对象。每个对象都有一个带有概率得分的标签,表明文本输入中的对象已在图像中被检测到。
Grounding DINO基础模型架构
运行Grounding DINO模型
import requests
import torch
from PIL import Image
from transformers import AutoProcessor, AutoModelForZeroShotObjectDetection
model_id = "IDEA-Research/grounding-dino-base"
device = "cuda" if torch.cuda.is_available() else "cpu"
processor = AutoProcessor.from_pretrained(model_id)
model = AutoModelForZeroShotObjectDetection.from_pretrained(model_id).to(device)
image_url = "http://images.cocodataset.org/val2017/000000039769.jpg"
image = Image.open(requests.get(image_url, stream=True).raw)
# 检查图像中的猫和遥控器
# 非常重要的提示:文本查询需要小写并以句号结尾
text = "a cat. a remote control."
inputs = processor(images=image, text=text, return_tensors="pt").to(device)
with torch.no_grad():
outputs = model(**inputs)
results = processor.post_process_grounded_object_detection(
outputs,
inputs.input_ids,
box_threshold=0.4,
text_threshold=0.3,
target_sizes=[image.size[::-1]]
)
results
- 作为机器人助手,它们可以识别任何对象,只要它们有更大的图像数据集可用。
- 自动驾驶汽车是这项技术的另一个宝贵用途。自动驾驶汽车可以使用此模型来检测汽车、交通灯和其他对象。
- 该模型还可以用作图像分析工具,以识别图像中的对象、人员和其他事物。