Community图像github.com

clip-box — 图像中的物体定位

在图像中定位指定物体。通过 h2oai/h2o-lightning-4b 模型,根据引用短语(如“总金额”、“红色方块”、“咖啡杯”)返回边界框,并提供图像坐标、校准置信度(IoU ≥ 0.5 的概率)以及控制答案是否有效的“存在”概率。

clip-box — 图像中的物体定位 是什么?

`clip-box` 是一个基于 h2o-lightning-4B 决策模型的 AI 技能,专门用于在图像中定位和识别物体。它通过自然语言描述(如“红色方块”或“总金额”)返回边界框的像素坐标、重叠 IoU 置信度,以及一个关键的“存在”概率(P(物体可见)),有效过滤掉无关的误检。 该技能支持 CLI 命令方式调用,兼容多平台(CPU/CUDA/Vulkan),并提供了丰富的选项如 `--json` 输出、`--crop` 裁剪框选区域、以及可调阈值(`--min-present`, `--min-confidence`)。对于简单形状和显著物体表现优异,但在密集小文本(如收据)上可能失效,此时可通过决策模型的其他问题类型(如 `choice`)来弥补。 `clip-box` 设计为决策模型的前端入口,能根据模型能力自动切换,避免向不支持边界框的终端发送无效请求。同时,该技能内在解决了 Pillow 依赖陷阱——若无 Pillow,置信度会降为零,而启动脚本 `h2o-serve` 会自动检查并确保环境正确。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/rodritimecoder/agent-skills/tree/HEAD/multimodal/clip-box

Installed? Explore more 图像 skills: steipete/songsee, affaan-m/frontend-design, mattpocock/improve-codebase-architecture · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

clip-box — 这个东西在图像的哪里?

这是 “X 在哪里” 功能的前门。其实现位于 decision-model 中:同一个客户端可以回答 bool、choice、score 和 box 四种问题,而 clip-box 是一个轻量化的入口点,使这些词汇保持可路由,并且在其他模型占据决策槽位时可以指向一个独立的垫片(shim)。

clip-box --image scene.png --target "the red square"          # 槽位垫片,端口 :8083
clip-box --image scene.png --target "the red square" --port 8761   # 独立垫片
decision-model box --image scene.png --target "the red square"     # 同一功能

h2o-lightning 是一个 4B 参数的决策模型:它回答带概率值的类型化问题,从不生成文本。它的 box 问题返回一个矩形而非标签,以及三个比矩形更重要的数值:

字段含义
boxleft、top、right、bottom,以图像尺寸的分数表示,坐标原点在左上角
confidenceP(IoU ≥ 0.5)——在绘制了边界框的图像上进行的决策读出值,不是模型叙述的数字
presentP(目标在图像中可见)——在未修改的图像上进行的独立读出值
found是否生成了任何边界框;若未找到则返回整张图像且置信度为 0

依据 present 而非 found 做门控。 当询问一个场景中不存在的蓝色自行车时,模型会返回一个看起来自信的边界框,框住其他物体,且 found: true,但 present: 0.111。present 才是说“不”的那个值。

用法

# 启动 API(box 问题已开启;槽位前端口为 :8083)
h2o-serve --port 8083          # CPU,Q8_0 量化
h2o-serve --backend vulkan     # AMD GPU:一次性构建锁定的 Vulkan 后端
h2o-serve --status
h2o-serve --stop

# 提问
clip-box --image scene.png --target "the red square"
# ACCEPT  box=(0.247, 0.247) -> (0.753, 0.753)  confidence=0.651  present=0.885

clip-box --image scene.png --target "the blue bicycle"   # 不存在 -> 退出码 2
clip-box --image receipt.png --target "the total amount" # confidence 0.163 < 0.30 -> 被拒绝
clip-box --image scene.png --target "the red square" --json --crop /tmp/square.png

--json 返回 accepted、reason、box、pixels(根据实际图像尺寸计算)、confidence、present、found 以及回答的 model。退出码 0 表示接受,2 表示拒绝,1 表示请求错误。

--min-present(默认 0.5)和 --min-confidence(默认 0.30)设置门控阈值;它们也可以通过环境变量设置(BOX_MIN_PRESENT、BOX_MIN_CONFIDENCE)。--crop 写入已接受的边界框区域;需要安装 Pillow。

能力,而非假设

box 是一个垫片功能,而非协议功能:llama.cpp 自身的 /v1/systemone 仅接受 choice、score 和 noul。决策槽位在五个候选模型之间轮换,因此:

decision-model caps
# model       /models/h2o-lightning-4b-Q4_K_M.gguf
# slot        :8083  (box 在 :8083 端口)
# primitives  bool, choice, score, box

如果当前占位模型不是 h2o,那么 caps 不会列出 box,而 box 将以当前服务模型的名字拒绝请求——而不是向端点发送其无法回答的问题。

实际擅长之处

在本工作站(Q8_0,CPU 后端)上对有已知真实值的合成场景进行测量:

目标IoUconfidencepresent
红色方块,512×512 居中0.9760.6510.885
红色长方形,512×1024 高0.8770.6690.897
红色长方形,1024×512 宽0.8480.7220.895
密集场景中的小红色方块0.6030.3590.896
“蓝色自行车”(不存在)—0.1880.111
收据上的“总金额”未命中(框选在总金额下方)0.1440.899

显著物体、图标、形状、单张图像:效果良好,能正确处理宽高比。收据上的密集小文本:会失败,且低置信度值表明了这一点。如需获取收据上的数值,请裁剪出总金额附近的区域,或使用决策 API 的 choice 问题(“总金额是多少?小计/合计/税额”),该问题在同一图像上能正确评分。

本技能存在即为了解决的一个陷阱

Pillow。 垫片在读取紧密度值之前绘制边界框,并在发生 ImportError 时返回 None,因此一个没有安装 Pillow 的 Python 环境对每个边界框都会回答 confidence: 0.0。h2o-serve 会构建自己的虚拟环境并检查导入。

文件

路径角色
scripts/clip_box.py入口点——处理 --port/--host 参数,委托给 decision-model box
../hardware/decision-model/scripts/decision_model.py客户端:一个 box 问题、两个门控阈值、裁剪功能、退出码
../hardware/decision-model/scripts/h2o_serve.py启动器:按哈希锁定引导、Pillow 安全的虚拟环境、CPU/CUDA/Vulkan 后端、--status、--stop

状态数据存储在 ~/.cache/h2o_lightning_gguf(权重 + 锁定的后端)和 ~/.local/share/h2o-lightning/venv。不会触及这两个路径之外的任何位置。

协议说明

  • 垫片的 box.mode 在此处为 generate:在 Qwen 的 bbox_2d 约定(0–1000,x 优先)下进行一次受约束的生成,然后解析并钳位。edges/hybrid 模式需要一个在边缘读出上训练过的模型;此版本请继续使用 generate。
  • confidence 是一个带有独立温度参数的概率值,在尚未拟合时默认为 1.0,因此它是保守的:一个大方块上近乎完美的边界框读数为 0.65,而不是 0.95。
  • 默认情况下每次请求处理一张图像;垫片通过 images: 参数最多接受 8 张图像,后端启动时应带有 --image-max-tokens 1024。
  • 同一服务器的决策侧在 /v1/systemone 上回答针对文本和图像的 choice/noul/score;对于文本上的校准决策,优先使用 pplx-decider(这里决策指数 60.06 对比 51.38)。此模型应用于几何问题,而非路由选择。

相关技能