项目背景与目标
项目评价设备面板图片的结构化结果:指示灯颜色、可见文本、证据框和是否拒答。为了离线复现,仓库提供两张原创 SVG、人工标注和候选预测;接入视觉语言模型后只需输出同一 Schema。
完整项目位于 examples/09.12-vision-eval。
整体架构
text
原创设备图片 + annotations.json
│
视觉模型 → predictions.json
│
▼
evaluate.py
├── Schema 与枚举
├── 字段准确率
├── 证据框 IoU
├── 不可见文本幻觉
└── 拒答准确率
核心流程
每个样例包含图片尺寸、可见字段、标准证据框和 readable。模糊图片的目标不是猜对,而是输出 unknown。证据框使用 [x1, y1, x2, y2] 像素坐标,评估器先检查范围,再计算 IoU。
bash
python3 evaluate.py
预置预测包含一条故意猜测模糊文本的结果,因此报告不会满分。这比只展示成功截图更能验证幻觉指标是否有效。
关键实现
字段正确并不代表证据正确。评估器分别统计:
color_accuracy:指示灯颜色;text_accuracy:可见文本或unknown;evidence_iou_rate:证据框 IoU 是否达到阈值;hallucination_count:标注不可读时仍给出具体文本;schema_rate:字段和类型是否完整。
接入真实模型时保存未经修饰的原始输出和解析错误。不要人工修好 JSON 后再计算指标。
遇到的问题
SVG 是否能代表真实设备照片
它只能验证协议和评估代码。真实验收还要加入光照、遮挡、反光、旋转和不同设备,并保证图片获得合法授权。
模型描述正确但框偏移
确认模型使用原图、缩放图还是归一化坐标。把坐标映射写成单独函数并用角点样例测试。
OCR 与视觉问答结果冲突
分别记录 OCR 工具和视觉模型证据。硬编码铭牌可由专用 OCR 处理,VLM 负责上下文解释,不强迫一个模型完成所有任务。
结果、评估与阶段复盘
离线评估能稳定暴露“看不清却给答案”的错误。完成项目后,多模态效果不再用一句自然语言主观判断,而是拆成字段、证据、拒答和幻觉。
改进方向
- 增加真实拍摄条件和区域级标注;
- 比较整图、裁剪和多尺度输入;
- 增加 OCR、CLIP 与 VLM 的组合基线;
- 对图片做脱敏、哈希、访问控制和保留周期管理;
- 记录视觉 Token、P95 延迟和单次成本。
许可协议:CC BY-NC 4.0
更新于 1 小时前
觉得文章有帮助?点个赞吧!
0 条评论


