先判断问题出在哪一层
- 图像质量:模糊、倾斜、光照不均、分辨率过低;
- 版面结构:多栏、表格、发票、竖排;
- 语言与字体:中英混排、繁体、手写、艺术字。
对症下药比反复更换引擎有效得多——多数“识别率低”其实卡在第一层。
7 个可立即执行的技巧
- 分辨率至少 300 DPI:手机拍摄时保证文字高度不低于 20 像素,过小会直接丢失笔画;
- 摆正、去倾斜:倾斜超过 5° 识别率明显下降,扫描件尤其先做旋转校正;
- 提高对比度、统一光照:避免阴影与反光,必要时先转灰度再增强对比;
- 干净文档做二值化:黑白化对印刷体效果显著;但照片慎用,容易丢失浅色细节;
- 裁剪到有效区域:去掉页眉页脚、水印、装订阴影,能显著减少“凭空多出来的字符”;
- 选对语言:中英混排要启用多语言组合,繁体、日文、韩文需对应的语言包;
- 分块识别:长文档按页、表格按单元格分别识别,比整页通吃更准。
手写与复杂版面
手写体、艺术字、竖排文本、数学公式目前仍是难点,建议识别后人工校对。表格类文档先做框线检测、再逐格识别,能避免行列串行;票据类可先定位关键字区域(如“金额”“日期”)再做定向识别。
别忘了隐私
OCR 处理的往往是证件、合同、票据这类高敏感材料。优先选择本地识别的方案——模型在你的浏览器里运行,图片不上传服务器;确需云端处理时,先遮盖身份证号、银行卡号等字段。判断一个在线工具是否真的本地处理,可以断开网络后再试一次。
实战场景:三类图片的优化套路
- 屏幕截图:清晰度高但常有细字,放大 2 倍再识别通常更准,并务必裁掉无关边框。
- 手机拍文档:先去透视畸变、增强对比度、转灰度,再识别;倾斜与阴影是主要误差源。
- 表格 / 票据:按列裁剪分段识别,再拼装,比整张识别后整理省力得多;金额与编号务必人工复核。
常见问题
识别结果换行很乱?多按视觉行切分导致,可后处理合并过短的行。数字 0 与字母 O 混淆?选对语言包,并对金额、编号等关键字段做人工校验。为什么同一张图换工具结果不同?模型、预处理与后处理策略都不同,按上面的方法优化输入图像收益最大。
不同场景的参数建议
| 素材类型 | 预处理 | 预期效果 |
|---|---|---|
| 扫描件、PDF 转图 | 300 DPI、去倾斜、轻微二值化 | 效果最好,接近无损 |
| 手机拍摄文档 | 裁到文档边界、增强对比、校正透视 | 较好,注意阴影与反光 |
| 截图 | 原始分辨率、不要放大 | 文字清晰时准确率很高 |
| 表格与票据 | 先分块,按单元格或字段识别 | 需要后处理对齐行列 |
| 手写、艺术字、公式 | 尽量提高清晰度 | 效果有限,建议人工校对 |
后处理同样重要
- 合并被切断的行:视觉换行常导致结果出现大量短行,可按标点与长度合并;
- 统一全半角与空格:中英混排时常见多余空格,可用规则清洗;
- 关键字段人工复核:金额、编号、日期这类容错的代价很高,务必抽查;
- 保留原图与结果对照:便于回溯错误来源,也能帮助后续优化预处理参数。
动手试试:OCR 文字识别
预处理清单
- 转灰度:去色可减少噪声干扰,除非颜色本身承载语义;
- 二值化:对扫描件做自适应阈值二值化,能明显改善低对比度文本;
- 去倾斜:微小旋转即可让识别率明显下降,先做倾斜校正;
- 切白边:去掉无关边框,避免模型把注意力浪费在空白区域;
- 放大到合适字号:文字高度过小时先放大到 30px 以上再识别,通常比直接识别效果好。