verification
用边界框验证 OCR 输出结果
置信度分数只能告诉你模型有多没把握,而边界框能直接告诉你该去哪里核对。本文教你用逐字段的边界框和匹配率来验证提取出的数据,而不是盲目相信识别结果。
5 分钟阅读· 2026-06-25
验证 OCR 通常意味着你得自己把整份文档再读一遍——既慢,又恰恰是你本想省掉的活儿。边界框改变了这个流程:你不必逐列对照两栏文字,而是让目光直接跳到图像上读取每个值的那个位置。对还是错,一眼就能看出来。
每个值都自带的两个信号
space-ocr 在每个字段上返回的不只是文本:
- 边界框 + 方向顶点(oriented vertices)——标明这个值是从哪里读出来的。如果边界框落在页面上不该出现的位置,那么即便这个值看起来合理,也值得怀疑。
- 一个
match_ratio(0–1)——标明这个值的字符有多少确实在页面上被定位到了。引擎把 ≥ 0.85 视为可信匹配;低于这个值的,就是你需要逐一过目的字段队列。
两者结合,把验证变成了分诊:按匹配率排序,只看低分的那些,再通过它的边界框逐个确认。
为什么边界框值得信任
边界框并不是语言模型给出的。引擎会把提取出的每个值,逐字符地与视觉 OCR 在页面上实际检测到的符号进行匹配——match_ratio 就是它在那里找到了该值文本的多少比例。(当模型同时提示它用到了哪些词元 word token 时,这些提示也会拿来和列、行的一致性做交叉核对,而不是盲目采信。)因此,边界框是这些字符确实存在于页面上的证据,而不是围绕它们本应出现的位置画出来的猜测。完整的推理过程请参见带审计追踪的文档 OCR。
- 拉取带边界框的结果调用 GET /view(默认就包含边界框)或 POST /ocr/fields——每个值都带有 bbox 和 match_ratio。
- 按匹配率排序先把低于 0.85 的字段排在前面;这些值最值得人工过目一眼。
- 通过位置确认点击或悬停在被标记的值上,即可看到它在源图像上被读取的确切区域。
- 覆盖修正后继续在原地修正任何识别错误;原始的 OCR 值会被保留以供存档。
边界框是怎么帮助验证 OCR 的?
边界框标出一个值是从哪个具体区域读出来的,因此你只需看一个位置就能核对,而不必把整份文档重读一遍。再配合匹配率,你就能做分诊:只检查那些低置信度的字段,并通过各自的位置逐个确认。
匹配率达到多少才算可靠?
space-ocr 把 0.85 或更高的 match_ratio 视为可信匹配;1.0 表示该值的每一个字符都在页面上被定位到了。任何低于 0.85 的值都应当作待复核的字段对待。
验证时需要重新跑一遍 OCR 吗?
不需要。边界框和匹配率本就是标准响应的一部分,而用 GET /view 查询已存储的表格永远不会重新跑 OCR,也不会消耗点数。
相关文章