手机扫描一张名片,联系人信息自动填进通讯录;用相机对着英文菜单拍一下,翻译结果立刻出来;银行柜台把身份证往感应区一放,信息秒填表单……

这些场景背后,都是同一项技术在工作:OCR。

从”图片”到”文字”

OCR是Optical Character Recognition的缩写,中文叫光学字符识别。

简单说,就是让计算机”看懂”图片里的文字。

我们人类看一张写着字的纸,大脑会自动识别那些线条是”A”、是”你”、是”3”。计算机没有这种本能,它拿到的只是一堆像素点。OCR要解决的,就是怎么从像素点里”认出”文字。

这件事听起来简单,其实不容易。同一个字,手写的、印刷的、草书的、繁体的,图片亮度高低不同,字体粗细不同,倾斜角度不同——对计算机来说完全是不同的图案。

它是怎么工作的

OCR的处理过程大致分几步:

第一步,预处理。 把图片变清晰——去噪、调亮度、矫正倾斜,让文字轮廓更清晰。

第二步,版面分析。 找出哪里是文字区域,哪里是空白或图片,把文字区域圈出来。

第三步,字符切割。 把一行文字切成一个个独立的字符。这一步很关键,切割不好后面的识别就乱了。

第四步,特征提取和匹配。 把每个字符的”形状特征”提取出来,和字符库里的模板比对,找出最像的那个字符。

第五步,输出结果。 把识别出来的字符拼回去,输出可编辑的文本。

早期的OCR主要靠模板匹配,每种字体要单独训练。现在主流做法是深度学习,模型见过足够多的样本之后,识别准确率高很多,还能处理手写体。

一个日常能见到的例子

快递单识别是最典型的场景之一。

以前快递员收件要手动输入收件人信息,一天处理几百单,容易出错也很累。有了OCR之后,直接拍一张快递单,系统自动识别姓名、电话、地址,几秒钟完成。

同样的逻辑,也用在了发票录入、证件信息采集、合同内容提取等等场景里。

为什么现在这么多地方在用

有几个原因。

一是摄像头硬件越来越便宜,随便一台设备都带摄像头,图片采集的门槛低了。

二是算法能力提升了,现在的OCR在印刷体上准确率能到99%以上,实用门槛大幅降低。

三是大量业务需要”把纸质信息数字化”,OCR是最省人工的方式。

医院的病历扫描、政府的档案数字化、金融机构的单据录入……都有这个需求。

OCR不是新技术,上世纪60年代就有了商用产品,但真正大规模普及是最近十年的事。现在它已经静静嵌进了很多你每天用到的功能里,只是你可能没注意到。


Logo

汇聚全球AI编程工具,助力开发者即刻编程。

更多推荐