查看 Markdown

OMDet-Turbo

OMDet-Turbo 是一个实时开放词汇目标检测器,由 Om AI Lab 开发,它把类别嵌入向量和语言任务提示词解耦。LibreYOLO 把它包装成开放词汇检测器层里一个仅支持预测的家族。

任务
detection
尺寸
t at 640 px
安装
pip install libreyolo
支持层级
兄弟层级,自 v 起。一个独立的产品面,有自己的工厂和契约。
上游
OMDet-Turbo,由 Om AI Lab 发布,采用 Apache-2.0 许可。论文源码
许可
代码采用 MIT,权重采用 Apache-2.0。商用

安装

OMDet-Turbo 通过 LibreYOLO 的开放词汇检测器层加载,这一层需要 openvocab extra:

bash
pip install "libreyolo[openvocab]"

这个 extra 会装上 transformerstimm,也就是这一层调用的那两个 Hugging Face 库;OMDet-Turbo 的 Swin 骨干通过 transformersTimmBackbone 封装加载。

预测

OMDet-Turbo 不是 LibreYOLO 通过 LibreYOLO() 加载的检查点(checkpoint)。它通过 同级的 LibreOpenVocab 工厂加载,后者在首次使用时下载一份 Hugging Face 快照,并 缓存在 weights/ 下。

Python
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["person", "dog", "skateboard"]) result = model.predict(SAMPLE_IMAGE, conf=0.3)for box in result.boxes:    print(box.cls, box.conf, box.xyxy)
自定义 NMS 阈值
from libreyolo import LibreOpenVocab, SAMPLE_IMAGE model = LibreOpenVocab("omdet-turbo")model.set_classes(["traffic light", "bicycle"]) # OMDet-Turbo 是这一层里唯一真正采纳 iou= 的家族:它自己的# 后处理把抑制阈值当成一个参数,iou= 不设置时默认为 0.5result = model.predict(SAMPLE_IMAGE, conf=0.3, iou=0.7)print(result.names, len(result))

set_classes() 设定一个粘住不放的文本词汇表:再调用一次就能整个替换这个列表,不 调用则保留默认的 COCO-80 标签,而空结果是一个有效的结果,不是错误。和 Grounding DINO 不同,OMDet-Turbo 把类别嵌入向量和语言任务提示词解耦,所以 transformers 的后处理返回的标签能直接映射回查询用的那个类别列表,不需要短语消歧这一步。

OMDet-Turbo 没有文本 token 阈值:只有 conf 过滤检测结果,传入 text_threshold 会抛错。它是这一层里唯一在 post_process_grounded_object_detection 内部跑自己的 非极大值抑制的家族,所以 iou 在这里会被真正采纳,而不是被警告忽略。imgszaugment=True 会被直接拒绝:缩放由 transformers 的 processor 负责,而测试时增 强不在这一层的范围内。对单张图像调用 predict() 返回的是一个 Results,不是列 表;传入一个目录、一个图像列表,或者对视频源用 stream=True,才会得到多个。这个 家族没有 CLI 路径,libreyolo predict 只通过 LibreYOLO() 加载 .pt 检查点,所 以 LibreOpenVocab 家族从 Python 里运行。数据源类型和流式处理见预测

变体

一个检查点,t,这一层唯一的尺寸。它通过 transformersOmDetTurboForObjectDetection,在一个固定住的上游 revision 上镜像 omlab/omdet-turbo-swin-tiny-hf;镜像的权重文件和那份上游快照逐字节一致。这个家 族目前还没有发布任何精度或延迟数字。

训练、数据集验证和导出都不在这一层的范围内:train()val()export() 都无 条件抛出 NotImplementedError。这是一个围绕已发布检查点的、仅支持预测的封装。

检查点

这个家族已发布的全部权重文件。

文件输入(px)权重许可
Detection
LibreOMDetTurbot.pt640apache-2.0

上面的每个文件目前都在 LibreYOLO 组织中,并会在首次使用时下载。

许可证

请检查你所下载的具体权重在 Hugging Face 仓库中的许可。LibreYOLO 组织里的每个检查点都附有许可,同一家族内也不一定相同。该仓库是权威来源;以下摘要说明本页上次验证时适用的情况。

这里只说明涉及的许可证,不构成法律意见。如果答案对商用很重要,请自行阅读许可证并咨询法律顾问。

原始工作
OMDet-Turbo, Om AI Lab
上游许可
Apache-2.0
LibreYOLO 代码
MIT
权重
采用 Apache-2.0 许可,重新发布在 huggingface.co/LibreYOLO
解读
Apache-2.0 is a permissive license, so this checkpoint can be used in commercial and closed-source products. It asks you to keep the license text and attribution notices with any copy of the weights you redistribute, and it grants a patent license. LibreYOLO vendors no OMDet-Turbo model source of its own: LibreOMDetTurbo calls the Apache-2.0 `transformers` implementation, `OmDetTurboForObjectDetection`, directly. The mirrored checkpoint is a byte-identical copy of `omlab/omdet-turbo-swin-tiny-hf` at a pinned upstream revision, verified against a recorded SHA-256 checksum before it is used.

引用

@article{zhao2024real,
  title={Real-time Transformer-based Open-Vocabulary Detection with Efficient Fusion Head},
  author={Zhao, Tiancheng and Liu, Peng and He, Xuan and Zhang, Lu and Lee, Kyusong},
  journal={arXiv preprint arXiv:2403.06892},
  year={2024}
}

复制自作者在 github.com/om-ai-lab/OmDet#citation 上提供的引用块。

已针对 LibreYOLO v1.5.0 验证。本页的支持表、检查点和基准测试数据由已发布的库和权重生成,并非手工编写。