资讯详情

OWLv2 零样本目标检测完整教程:不画框、只输文字就能找到物体

📅 2026/9/14 10:18:45 | 华诺云谱 👁 阅读
OWLv2 零样本目标检测完整教程:不画框、只输文字就能找到物体
OWLv2 零样本目标检测完整教程不画框、只输文字就能找到物体【免费下载链接】Transformers-TutorialsThis repository contains demos I made with the Transformers library by HuggingFace.项目地址: https://gitcode.com/GitHub_Trending/tr/Transformers-TutorialsTransformers-Tutorials 是一个汇集 HuggingFace Transformers 库各类视觉模型演示的开源仓库其中 OWLv2 相关 notebook 展示了一种零样本目标检测zero-shot object detection方法无需人工标注 bounding box包围框仅凭文字描述或一张参考图就能在图像中定位目标省去了传统检测模型最耗时的数据集标注环节。 OWLv2 解决什么问题传统目标检测模型如 YOLO、DETR必须先收集大量带框标注的图像再训练每加一个新类别都要重新标注、重新训练。OWLv2 是 Google 推出的开放世界检测模型架构上对 CLIP 做了最小改动把图像切成一个一个的 patch小块每个 patch 同时预测这里有没有物体和它最像哪句查询描述。这带来两种用法用法输入说明零样本检测图像 文本查询如 a cat模型直接输出匹配的框和置信度图像引导检测one-shot目标图像 一张含该物体的参考图从参考图提取物体嵌入再在新图中找同类物体OWLv2/README.md 说明了该目录的定位用 notebook 演示 OWLv2 的零样本与单样本能力。完整演示在 Zero_and_one_shot_object_detection_with_OWLv2.ipynb。⚙️ 环境准备与加载模型依赖只有 Transformers 和基础 PyTorch 环境pip install -q transformers torch pillow加载模型时选 checkpoint 要留点心。OWLv2 作者发布了多种规格按训练方式分为 self-trained仅自训练、fine-tuned自训练 微调和 ensemble集成按 patch 大小分为 base 和 large 系列。官方 notebook 选择base-patch16-ensemble因为它是该系列中综合表现最好的集成权重from transformers import Owlv2Processor, Owlv2ForObjectDetection processor Owlv2Processor.from_pretrained(google/owlv2-base-patch16-ensemble) model Owlv2ForObjectDetection.from_pretrained(google/owlv2-base-patch16-ensemble)processor负责把图像 resize、padding 成方形并归一化同时编码文本查询model负责前向推理。 零样本检测3 步拿到边界框以 COCO 数据集中那张经典的客厅猫图为例检测猫和遥控器只需三步预处理、前向、后处理。image Image.open(requests.get(url, streamTrue).raw) texts [[a cat, remote control]] inputs processor(texttexts, imagesimage, return_tensorspt) outputs model(**inputs) target_sizes torch.tensor([image.size[::-1]]) results processor.post_process_object_detection( outputsoutputs, threshold0.2, target_sizestarget_sizes)results里是三个数组boxes框坐标、scores置信度、labels对应 texts 里的索引。用ImageDraw把红框和类别名画回图像即可完成可视化。有一个细节值得注意notebook 里在预处理后的图像上画框而不是原图上——因为 processor 会把图 padding 成方形直接按原图尺寸画框会错位。官方演示用pixel_values反归一化还原出这张预处理图再画框、标注置信度。️ 单样本检测用一张参考图代替文字当物体难以用文字描述时可以改用参考图。流程是用processor(imagestarget_image, query_imagessource_image)同时处理目标图和参考图调用model.image_guided_detection(**inputs)模型内部会从参考图中选出最可能含物体的 patch 作为查询嵌入这一步基于作者为 v1 版本开发的启发式方法用post_process_image_guided_detection输出最终框。inputs processor(imagestarget_image, query_imagessource_image, return_tensorspt) outputs model.image_guided_detection(**inputs) results processor.post_process_image_guided_detection( outputsoutputs, threshold0.98, nms_threshold1.0, target_sizestarget_sizes)除了这条快捷通道notebook 还提供了手动版本分别调用image_embedder、objectness_predictor、class_predictor自己挑 objectness 最高的 patch 作为查询嵌入再对目标图像做匹配。适合想理解内部机制、或需要自己控制用哪个 patch 当查询的读者。️ 关键参数怎么选后处理阶段只有两个参数但直接影响最终输出的框数量参数作用notebook 中的取值threshold置信度阈值低于此分数的框被丢弃调高可滤掉弱匹配零样本用 0.2图像引导用 0.98nms_threshold非极大值抑制NMS用于合并重叠重复框阈值设 1.0 表示不做 NMS1.0两种模式对 threshold 的要求差异很大文本查询的分数分布偏松散0.2 左右即可图像引导检测的分数普遍更高需要用 0.98 这类高值才能过滤噪声。调参建议先跑一遍打印所有scores再看分布决定阈值。另外 OWLv2 还带一个objectness物体性预测头它输出每个 patch 位置是否含物体的概率与文字查询无关。可以拿它单独给图像排序哪里最像有东西适合做无查询的通用前景发现。✅ 适合谁、怎么用起来不想标注、先验证想法零样本模式适合快速原型比如盘点货架上有哪些品类、监控里有没有特定物品输入一句描述就能看到结果。新类别频繁变化参考图方式可以低成本扩展类别无需重新训练。想学习 Transformer 视觉模型内部结构notebook 的手动前向部分把 patch 特征、框预测器、类别预测器拆开讲配合 项目 README 中的其他演示DETR、Grounding DINO、CLIPSeg 等可以串起整个视觉检测技术栈。注意它的定位是研究演示与轻量验证框的定位精度和推理速度都不如专门训练的检测模型生产环境建议先用零样本模式评估召回效果再决定是否值得为该类别投入标注。获取完整项目git clone https://gitcode.com/GitHub_Trending/tr/Transformers-Tutorials项目遵循 MIT 开源协议见 LICENSE。延伸阅读OWLv2 演示 notebook、DETR 系列教程目录传统检测模型的对照参考。【免费下载链接】Transformers-TutorialsThis repository contains demos I made with the Transformers library by HuggingFace.项目地址: https://gitcode.com/GitHub_Trending/tr/Transformers-Tutorials创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
📝

华诺云谱内容团队

资深建站顾问 · 行业研究员

10年+企业数字化服务经验,专注智能建站、SEO优化与品牌营销,持续输出建站技巧、行业洞察与营销干货,已帮助5000+企业实现数字化增长。

你可能需要的服务

订阅华诺云谱资讯周报

每周一封,精选建站技巧、SEO与营销干货,直达邮箱。已有 8,000+ 企业主订阅,助你少走弯路。