图片上的文字不能复制,手动敲一遍太慢——OCR 就是解决这个的。但同样一份文件,有人识别率九成九,有人错字连篇,差别几乎全在源图质量上。这篇讲怎么导入导出、OCR 内部到底做了什么,以及影响准确率最关键的那几个因素。
导入和导出
官方给的导入方式有三条:可「点击添加文件上传图片或文档,也可以直接拖拽文件到窗口中,或使用截图方式导入」。第三条最实用——网页上、聊天窗口里、PDF 阅读器里看到的内容,直接截图识别,不用先保存成文件。
识别完成后,官方说明结果可以「点击复制」直接粘到别处,或者「点击导出TXT文件保存到本地」。
官方 OCR 工具有八个分别对应单张识别、批量识别、PDF 识别、截图识别、转 Excel、转 Word、转 PDF、图片文字提取。纯粹要文字就用单张或截图识别;要保留版式或表格结构,见图片能直接转成 Word 和 Excel 吗。
OCR 内部做了什么
了解流程能帮你判断问题出在哪一步。传统 OCR 大致是这么一条链:
灰度化与二值化把彩色图变成黑白,通过阈值把文字和背景分开。背景有底纹或光照不均时,这一步就容易出错。
去噪清掉扫描产生的斑点和杂讯。
倾斜校正把歪掉的文本行转正。歪得厉害而没校正,后面的行切分会全乱。
版面分析区分文本区、图像区、表格区,判断分栏和阅读顺序。多栏排版、页眉页脚都在这里处理。
行切分与字切分把文本切成行、再切成单个字符。
特征提取与分类识别每个字符是什么。
语言模型纠错用词典和上下文修正明显不合理的结果,比如把「银行帐户」的错字修回来。
现代方案则用 CNN 提取视觉特征,配合 CRNN + CTC 或 Transformer 做序列识别,通常先用检测网络定位文本框,再对每个框做识别。这类端到端方法对复杂版面、弯曲文本和手写体的鲁棒性明显更好。
中文为什么更难三个原因:字符集大(数千常用字,英文只有几十个)、结构相似的字多(未/末、己/已/巳)、词与词之间没有空格,切分的判断难度比英文高得多。
识别不准:官方归因与展开
官方的说法是准确率「会受到图片清晰度、文字大小、背景复杂度等因素影响」。这三点展开讲,再补上实践中同样常见的几项:
| 因素 | 影响 | 怎么改善 |
|---|---|---|
| 字高 | 最关键。正文字高低于 20 像素基本救不回来 | 正文字高保持 20–30 像素以上;扫描件用 300DPI |
| 对焦与运动模糊 | 笔画糊在一起,无法切分 | 手机拍时点一下屏幕对焦,端稳或找支撑 |
| 光照不均、阴影、反光 | 二值化阈值失效,整片区域丢失 | 避开顶灯正下方,别让手或手机挡光;用均匀的侧光 |
| 透视畸变与倾斜 | 行切分错乱 | 正对拍摄;先做倾斜和透视校正再识别 |
| 背景纹理、底纹、水印 | 被误判成文字笔画 | 尽量选干净背景;必要时先提高对比度 |
| 低对比度、反白文字 | 白字黑底常被漏识 | 先做反相或对比增强 |
| 艺术字、手写体、竖排 | 识别率显著下降 | 这类内容预期要人工校对 |
| 密集表格、多栏混排 | 阅读顺序错乱 | 分区域截图分别识别 |
| 中英数混排、生僻字 | 易错 | 识别后重点复核 |
| JPEG 压缩伪影 | 低质量二次压缩的截图边缘全是杂讯 | 截图存 PNG,别用低质量 JPG |
提升准确率的做法
- 提高源图分辨率——扫描件按 300DPI 扫。已经拍好的低清图片,放大是没用的:插值不增加真实信息,只会把模糊放得更明显。
- 拍摄时正对、光线均匀——手机翻拍是最常见的场景,也是最容易出问题的。正对文件、避开阴影和反光,这一步做好,识别率提升往往比任何后处理都大。
- 先校正再识别——倾斜和透视变形先修正,见拍歪了能矫正吗;对比度不足先增强,见照片颜色发灰怎么调。
- 明确指定识别语种——多语种同时打开会降低准确率,只有中文就别勾英文以外的语言。
- 分区域识别——多栏排版或版面复杂时,分块截图分别识别,比整页一次识别更可靠。
关键字段必须人工复核OCR 对数字和形近字的错误代价最高:
0 和 O、1 和 l、8 和 B、rn 和 m。金额、日期、合同编号、身份证号、银行账号——这些字段一定要逐个核对原图。一个数字错了,整份资料就废了,而这类错误恰恰最不容易被肉眼扫过时发现。官方给的适用场景
官方提到的场景包括扫描件整理、资料录入、合同转写,以及网页截图、聊天截图这类日常需求。要注意的是,OCR 属于云端处理还是本地处理,官方协议的表述按产品线不同而不同,处理敏感文件前建议了解一下,见图片会被上传到云端吗。
‹ 返回常见问题资料参考:pic.2345.cc/ocrsingletool/、pic.2345.cc/ocrshottool/。本文所述界面路径、参数与权益以你所用版本的实际显示为准。
