OCR (光学字符识别)

从图像或扫描文档中自动识别文字,并将其转换为可编辑文本数据的技术。广泛应用于纸质文档的数字化和图像中的文字提取。

OCR (Optical Character Recognition,光学字符识别) 是从图像中识别文字并转换为文本数据的技术。扫描纸质文件进行数字化、读取照片中招牌上的文字、从 PDF 的图像页面提取文本,这些都是 OCR 的应用场景。手机上用摄像头扫描名片的 App,内部也在运行 OCR。

OCR 的处理流程分为四个阶段:预处理、文字区域检测、文字识别、后处理。预处理包括图像倾斜校正、噪声去除、二值化 (黑白转换)。文字区域检测确定图像中哪些部分包含文字。文字识别将检测到的文字图像转换为文本。后处理利用词典和语言模型修正识别错误。

中文 OCR 的难度高于英文。汉字种类繁多 (GB 2312 收录 6,763 个汉字,GB 18030 更是超过 27,000 个),字形相似的汉字很多 ("未"与"末"、"土"与"士"),简体与繁体并存,横排与竖排共存,这些因素都会降低识别精度。当前基于深度学习的 OCR 引擎,印刷体识别准确率可达 99% 以上,手写体约为 90% 至 95%。

OCR 的识别精度直接影响字符计数的准确性。单个字符的识别错误不会改变字符数,但字符的合并 (将 2 个字符误识为 1 个) 或拆分 (将 1 个字符误识为 2 个) 会改变字符数。手写体尤其容易出现合并和拆分错误,因为字符间距不均匀。在信任 OCR 结果的字符数之前,需要先验证识别精度。

Google 的 Tesseract、Adobe Acrobat 的 OCR、百度 OCR、腾讯 OCR、阿里云文字识别等主流 OCR 引擎都支持多语言。云端 OCR 服务通常比本地引擎精度更高,但将机密文档发送到外部服务器存在安全隐患。需要根据使用场景在本地部署和云端服务之间做出选择。

OCR 是将"纸面字数"转换为"数字字数"的桥梁技术。将一份 400 字的手写稿件数字化时,OCR 识别结果不一定恰好是 400 个字符。识别错误、空白处理、换行解释都会导致字符数波动,因此 OCR 后的文本必须经过人工确认和修正。

分享这篇文章