Kosmos-2
Kosmos-2 是微软的视觉定位(grounding)模型:它先给图像生成一段描述,再用检测框把描述里的每个名词短语定位出来。LibreYOLO 把它包装成一个开放词汇目标检测器:在预测时提供类别列表即可。
- 任务
- detection
- 尺寸
- 224 at 224 px
- 安装
pip install libreyolo- 支持层级
- 兄弟层级,自 v 起。一个独立的产品面,有自己的工厂和契约。
- 许可
- 代码采用 MIT,权重采用 MIT。商用
安装
Kosmos-2 属于 LibreYOLO 的 VLM-as-detector 这一档,是和基于检查点(checkpoint)
的家族分开的另一块产品面,有自己的工厂函数。它需要 vlm 这个 extra。
pip install "libreyolo[vlm]"预测
权重在首次使用时从 Hugging Face 下载,并缓存在本地。LibreYOLO 直接加载微软自己的
microsoft/kosmos-2-patch14-224 仓库;和 Florence-2 不同,这里不需要社区的二次
上传。
from libreyolo import LibreVLM, SAMPLE_IMAGE model = LibreVLM("kosmos-2")model.set_classes(["boat", "person"])result = model.predict(SAMPLE_IMAGE, save=True) for box in result.boxes: print(box.cls, box.conf, box.xyxy)from libreyolo import LibreVLM model = LibreVLM("kosmos-2")model.set_classes(["boat", "person"]) # 库接受的任何输入源:文件、文件夹、URL、摄像头索引、# RTSP 流,或者一个 .streams 列表for result in model.predict("clip.mp4", stream=True, save=True): print(len(result.boxes))这个家族通过 LibreVLM() 工厂函数加载,而不是 LibreYOLO():VLM 家族没有声明
检查点加载器,所以其他模型页上讲的按文件后缀分发在这里不适用。set_classes()
设定要求 Kosmos-2 去找的词汇;它是粘性的,会在之后每一次 predict()/track()
调用中持续生效,直到你再次设定。Kosmos-2 定位的是名词短语,而不是精确匹配一个
标签,所以 LibreYOLO 的包装层接受部分匹配:一个名为 "boat" 的类别也能匹配到
「the boats」这样生成出来的短语。每个检测结果带的都是同一个占位置信度,所以 conf
过滤是全有或全无,而不是一个排序;iou 在这里也没有作用,因为包装层直接用定位到
的实体构建检测列表,没有去重这一步。chat() 会抛出 NotImplementedError,因为
驱动 Kosmos-2 的是一个 <grounding> 提示词,而不是聊天模板。LibreYOLO 的 CLI
不覆盖这一档:没有对应的 libreyolo predict model=... 形式。输入源、流式处理和
结果处理见预测。
变体
只有一个尺寸:kosmos-2-patch14-224,输入 224 px,用 LibreVLM("kosmos-2")
加载。它是 2023 年前后的模型,LibreYOLO 自己的包装层也注明,它的定位比这一档里
更新的那些检测器要粗。
LibreYOLO 不训练、不验证、也不导出 Kosmos-2:对这一档里的每个家族,train()、
val() 和 export() 都会抛出 NotImplementedError(见上面的支持档位)。如果
你需要把自定义词汇固化进模型,请在上游微调 Kosmos-2,再加载得到的权重;由于每个
检测结果带的都是同一个占位置信度,用眼睛看 predict() 的输出,而不是跑一遍 COCO
式的验证。
许可
请检查你所下载的具体权重在 Hugging Face 仓库中的许可。LibreYOLO 组织里的每个检查点都附有许可,同一家族内也不一定相同。该仓库是权威来源;以下摘要说明本页上次验证时适用的情况。
这里只说明涉及的许可证,不构成法律意见。如果答案对商用很重要,请自行阅读许可证并咨询法律顾问。
- 原始工作
- Kosmos-2, Microsoft
- 上游许可
- MIT
- LibreYOLO 代码
- MIT
- 权重
- 采用 MIT 许可,由作者分发。LibreYOLO 不托管或镜像这些权重。
- 解读
- MIT is a permissive license, so these weights can be used in commercial and closed-source products, provided the copyright notice and license text travel with any copy you redistribute. LibreYOLO downloads Microsoft's own microsoft/kosmos-2-patch14-224 repository directly; unlike Florence-2, no community re-upload is needed for it to load on current transformers.
引用
@article{kosmos-2,
title={Kosmos-2: Grounding Multimodal Large Language Models to the World},
author={Zhiliang Peng and Wenhui Wang and Li Dong and Yaru Hao and Shaohan Huang and Shuming Ma and Furu Wei},
journal={ArXiv},
year={2023},
volume={abs/2306}
}复制自作者在 github.com/microsoft/unilm/blob/master/kosmos-2/README.md#citation 上提供的引用块。