| name | extractor-img-feature-judge-202607 |
| description | 凭证图像特征维度分析和元素等级判断技能,评估6个质量维度和15种元素类型,等级L1-L4。触发词:图像质量分析、元素检测、凭证质量评估、特征维度 |
| version | 1.0.0 |
图像特征维度分析和元素等级判断
角色定义
扮演凭证图像质量与元素分析专家。通过 VL 视觉语言模型对凭证图像进行多维度特征分析,包括6个图像质量属性评估、15种元素类型检测和 L1-L4 等级判断,输出 bbox 坐标和质量评估报告。
所属领域
银行凭证智能提取
触发条件
当用户提及或需要进行以下场景时触发:
- 凭证图像质量分析/评估
- 元素类型检测(印章、表格、手写体等)
- 特征维度分析、凭证质量评估
- L1-L4 等级判断、元素等级评定
前置条件
在开始工作前,确认以下条件满足:
- 提供单张凭证图片(文件路径或 base64 编码)
- VL 视觉模型配置可用
目标
对凭证图像进行6个质量维度评估、15种元素类型检测和 L1-L4 等级判断,输出结构化的分析报告(含 bbox 坐标和裁剪 base64)。
金融属性
| 属性 | 值 |
| 任务类型 | 凭证图像质量分析 |
| 风险等级 | 低(质量评估影响下游提取效率) |
| 数据依赖 | 原始凭证图片 + VL 视觉模型 |
| 决策类型 | 评估判断(L1-L4 等级) |
合规要求
| 要求项 | 状态 |
| 监管合规 | 不涉及个人金融信息输出 |
| 免责声明 | 分析结果仅供参考 |
| 审计日志 | 记录调用链、入参摘要、模型版本、时间戳 |
| 引用来源 | 元素等级标准文档 |
输入参数
| 参数名 | 类型 | 必填 | 说明 |
| image_input | str | 是 | 图像文件路径或 base64 编码 |
| include_crop_base64 | bool | 否 | 是否返回裁剪图像 base64(默认 true) |
| output_format | str | 否 | 输出格式:json 或 summary(默认 json) |
模型配置:vl_config 可选传递。不传时服务端自动注入;传递时使用调用方指定的配置。
输出参数
| 输出名 | 类型 | 说明 |
| image_size | Dict | 图片尺寸 {宽度, 高度} |
| image_quality | Dict | 6维质量评估 {清晰度, 倾斜角度, 完整性, 有效信息占比, 元素种类混合度, 拍摄角度} |
| element_types | Dict | 15种元素类型检测结果 {印章, 表格, ...} |
| element_grade_results | List[Dict] | 元素等级判断 [{元素类型, 等级(L1-L4), bbox}] |
| statistics | Dict | 统计信息 {总bbox数, 等级分布} |
| errors | List[str] | 错误列表 |
能力清单
-
- 6维图像质量评估(清晰度、倾斜角度、完整性、有效信息占比、元素种类混合度、拍摄角度)
-
- 15种元素类型检测(页眉页脚、标题、段落、表格、印章、手写体等)
-
- L1-L4 等级判断(L1优秀 ~ L4较差)
-
- 二次裁剪验证 bbox 正确性
-
- 支持返回裁剪图像 base64
工作流程
# Role
你是凭证图像质量与元素分析专家
# Tool Routing 规则(按 priority)
1. VL 视觉模型 → 元素检测 + 质量评估(优先)
2. 二次裁剪验证 → bbox 精度确认(辅助)
# Selection 策略
- output_format=json: 完整结构化分析报告
- output_format=summary: 简要摘要
# Fallback
VL 模型调用失败 → 返回空分析结果,标注"分析失败"
工作流节点
| 节点 | 模块 | 任务 | 状态 | 检查点 |
| N1-输入校验 | 输入模块 | 校验图片可访问 | 必须 | 图片非空 |
| N2-VL质量评估 | VL模型模块 | 6维质量评估 | 核心 | 质量指标齐全 |
| N3-元素检测 | VL模型模块 | 15种元素类型检测 | 核心 | 元素列表 |
| N4-等级判断 | VL模型模块 | L1-L4等级判断 | 核心 | 每元素有等级 |
| N5-bbox裁剪验证 | 后处理模块 | 二次裁剪验证bbox | 辅助 | bbox精度 |
| N6-输出组装 | 输出模块 | 组装标准输出 | 必须 | JSON格式 |
功能说明
- 图像质量:清晰度、倾斜角度、完整性、有效信息占比、元素种类混合度、拍摄角度
- 元素类型:15 种元素(页眉页脚、标题、段落、表格、印章、手写体等)
- 等级判断:L1(优秀)~ L4(较差),二次裁剪验证 bbox 正确性
输出格式
{
"image_size": {"宽度": 1920, "高度": 1080},
"image_quality": {"清晰度": {...}, "倾斜角度": {...}, ...},
"element_types": {"印章": {...}, "表格": {...}, ...},
"element_grade_results": [{"元素类型": "印章", "等级": "L1", ...}],
"statistics":
系统依赖
| 依赖系统 | 作用 | 必需 |
| VL 视觉语言模型 | 元素检测+质量评估 | 是 |
| Python 3.8+ | 运行环境 | 是 |
MCP 工具调用
| 模块名 | 类型 | 优先级 | 降级策略 |
| VL视觉模型 | MCP tool | P0 | 返回空分析结果,标注"分析失败" |
| HTTP REST API | HTTP | P1 | MCP不可用时通过HTTP调用 |
关联技能
合规约束
- 分析结果不涉及个人金融信息输出
- bbox 坐标仅供下游提取参考
降级策略
VL 模型调用失败: 返回空分析结果,标注"分析失败"
图片解码失败: 返回错误
二次裁剪验证失败: 保留原始 bbox,标注"未验证"
记忆管理
会话级缓存:同一图片的分析结果缓存至会话结束,TTL = 会话生命周期
评估指标
| 指标 | 目标 |
| 元素检测准确率 | ≥ 85% |
| 等级判断一致性 | ≥ 80%(与人工标注对比) |
| 单次调用延迟 | ≤ 10s |
审计日志
记录工具调用链、入参(图片来源/尺寸)、出参摘要(元素数/等级分布)、数据源(模型名称)、时间戳、模型版本
免责声明
本分析结果由 AI Agent 自动生成,仅供参考,不保证100%准确。
注意事项
- 单张图片输入,不支持批量
- L1-L4 等级标准见 元素等级标准
- include_crop_base64=true 时返回裁剪图像 base64,数据量较大
结束条件
满足以下任一条件时,结束技能执行:
- 成功输出图像分析报告
- 图片不可访问(返回错误)
- VL 模型调用失败(返回空分析结果)
- 超出分析范围
输入输出示例
输入:
{ "image_input": "<IMAGE_INPUT_PATH>", "include_crop_base64": true }
输出:
{
"image_size": {"宽度": 1920, "高度": 1080},
"image_quality": {"清晰度": {"评分": 8, "描述": "清晰"}},
"element_grade_results": [{"元素类型": "印章", "等级": "L1", "bbox": [100,200,300,400]}],
"statistics": {"总bbox数": 3
Python 直接调用
from scripts.analyzer import analyze_image, VLModelConfig
vl_config = VLModelConfig(
api_key="${your-api-key}",
model="${your-model-name}",
base_url="${your-base-url}"
)
result = analyze_image(
image_input="D:/path/to/image.jpg",
vl_config=vl_config,
include_crop_base64=True
)
print(result.to_dict())
CLI 调用
python scripts/analyzer.py <IMAGE_INPUT_PATH> \
--api-key ${your-api-key} \
--model ${your-vl-model} \
--base-url ${your-base-url} \
--output json \
--save result.json
边缘场景
- 图片路径不存在:返回错误
- 图片 base64 解码失败:返回错误
- 图片尺寸过大:建议裁剪后分析
- VL 返回非结构化结果:解析失败时返回错误
- 无检测到元素:statistics.总bbox数=0
文件引用