54 lines
2.1 KiB
Markdown
54 lines
2.1 KiB
Markdown
|
|
---
|
|||
|
|
name: damage-grounding
|
|||
|
|
description: 汽车旧伤视觉定位标注。用于 damage_grounding 能力:读取 damage-detector 生成的 workspace/damages.json,对每处损伤在时间窗口内调用豆包 grounding 获取 0-1000 bbox,并在图片上绘制红色标注框,输出 workspace/grounding.json 和 marked_frames;前置条件是已有 taskId 和 damages.json。
|
|||
|
|
license: MIT
|
|||
|
|
metadata:
|
|||
|
|
version: "1.0.0"
|
|||
|
|
category: vehicle-inspection
|
|||
|
|
skillType: compute-entry
|
|||
|
|
aliases: ["damage_grounding"]
|
|||
|
|
tags: ["vehicle", "grounding", "bbox", "doubao", "旧伤定位", "标注"]
|
|||
|
|
---
|
|||
|
|
|
|||
|
|
# 旧伤视觉定位标注
|
|||
|
|
|
|||
|
|
前置条件:已完成 `video-frame-extractor` 和 `damage-detector`,workspace 中存在 `damages.json`。
|
|||
|
|
|
|||
|
|
```json
|
|||
|
|
{
|
|||
|
|
"name": "damage-grounding",
|
|||
|
|
"input": {
|
|||
|
|
"taskId": "order_10001",
|
|||
|
|
"groundingWindow": 2
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
```
|
|||
|
|
|
|||
|
|
## 工作流程
|
|||
|
|
|
|||
|
|
1. 读取 `damages.json` 的损伤列表和 `video_info.json` 的帧列表。
|
|||
|
|
2. 对每处损伤选择 `timeSecond ± groundingWindow` 秒内的帧。
|
|||
|
|
3. 固定使用豆包/火山方舟模型进行 grounding,解析 `<bbox>x1 y1 x2 y2</bbox>`。
|
|||
|
|
4. 将 0-1000 归一化 bbox 转成像素坐标,在图片上绘制红色标注框。
|
|||
|
|
5. 写入 `workspace/grounding.json` 和 `marked_frames/`。
|
|||
|
|
|
|||
|
|
## 输入
|
|||
|
|
|
|||
|
|
- `taskId`: 必填。
|
|||
|
|
- `groundingWindow`: 可选,默认 `2` 秒。
|
|||
|
|
- `groundingResults`: 可选,外部豆包 grounding 结果;传入后本技能只解析 bbox 并画框。
|
|||
|
|
|
|||
|
|
## 输出
|
|||
|
|
|
|||
|
|
返回 `totalDamages` 和 `totalMarked`。
|
|||
|
|
|
|||
|
|
## 重要约束
|
|||
|
|
|
|||
|
|
- 需要 Node.js 18+。
|
|||
|
|
- 共享 workspace 根目录优先读取 `VEHICLE_SCRATCH_WORKSPACE_ROOT`,其次兼容 `RZYX_AI_WORKSPACE_ROOT`,否则使用 `RZYX_AI_DATA_DIR/workspace/vehicle-scratch-inspection`。
|
|||
|
|
- 本技能固定用于豆包 grounding;其他模型可用于检测,但 grounding 阶段按豆包输出格式解析。
|
|||
|
|
- bbox 坐标是 0-1000 归一化坐标,最终同时保存 normalized 和 pixel 两种坐标。
|
|||
|
|
- 标注优先使用 `sharp`,未安装时回退 `ffmpeg drawbox`;两者都不可用时生成 SVG 标注占位,保证 `grounding.json` 仍可被后续报告读取。
|
|||
|
|
- 不使用百度 OCR API。
|
|||
|
|
- 用中文回答所有内容。
|