同一段文字,有人识别全对,有人识别出来一半是别字。差别几乎不在工具 —— 用的是同一套识别接口,差距全在送进去的那张图。按影响从大到小排六个因素,前三个在你按下快门前就已经决定了结果。
一、有效分辨率:字有多少像素可用
不是图片多大,是一个字占多少像素。站点给的口径是单行文字高度 10~50 像素、图片长边不小于 1000 像素。一张 4000 像素的整页照片里,正文可能只有 18 像素高,完全够用;一张 800 像素宽的缩略图里,正文只有 6 像素,神仙也认不出。
补救只有一个方向:靠近再拍,或者让对方发原图。放大已经压缩过的图不会增加信息,只会把锯齿摊开。
二、倾斜与形变:字被拉歪了
手机斜着拍,同一行字的两端高度不一样,笔画被透视压缩。这类错误的典型表现不是错字,而是整行漏识。
能救的办法:拍的时候正对纸面;已经拍歪的,先在手机上裁正,或用 手机拍的文件歪、有阴影、发灰:怎么弄成平整白底的扫描件 里的做法处理成平整白底再识别。
三、对比度:淡字、反光、阴影
识别靠的是前景与背景的差别。铅笔淡字、复印件的第三代、纸面反光、手影盖住一角,都会让局部区域的字和背景糊在一起。热敏纸小票放半年字迹变淡,也是同一类问题。
补救:换个角度避开反光、开闪光灯反而常常更糟(会在纸上打出一块白斑),正确做法是在均匀光线下、从稍高的位置垂直拍。
四、压缩与二次传图
微信传图、网页下载、截图再截图,每一轮有损压缩都会在笔画边缘留下块状噪点。肉眼看着没问题,识别时容易把「未」认成「末」、把「0」认成「O」。
能拿原图就不要拿转发图。这条在报价格式、合同条款这类细节多的内容上尤其明显。
五、内容类型:走对入口比调参数重要
这是最常被忽略的一条。手写、印刷体、表格是三套不同的模型:
- 手写笔记撞印刷体入口,通常直接返回空白,请改用 手写文字识别
- 有表格线的图走普通图片识别,行列结构会全部丢失,应该用 表格识别转Excel
- 每页一张图的 PDF 要逐页识别,入口是 扫描件PDF转Word
六、本来就认不了的东西
印章压住的字、数学公式、竖排古文、艺术字、手写签名。这几项不是准确率高低的问题,是不支持。不要指望换个工具就能成,该手工录就手工录。
一个 30 秒的定位法
识别不理想时,先做这件事:把图片放大到 100%,用肉眼盯着出错的那一行看。如果你自己都要辨认一下才确定是什么字,识别出错就是正常的;如果你一眼就看得清清楚楚而机器认错了,才轮到怀疑入口选错或者内容属于第六类。
最后要说实话:印刷体、对比度正常的文档截图通常可用,但没有任何 OCR 能保证全对。金额、编号、姓名、日期这四类内容,无论识别得多漂亮都要逐字核对。