OCR软件使用扫描仪将纸质文档重新处理成可编辑的数字文本。OCR软件可以作为独立程序、OCR应用程序编程接口或基于Web的服务运行。

图像采集:所有文档页面都被复制,然后OCR引擎将数字文档转换为双色或黑白版本。扫描的图像或位图会被分析,以识别其中的明暗部分。程序会将暗部识别为需要识别的字符,而将亮部识别为背景。

预处理:对数字图像进行清理,去除多余的像素。此预处理可能包括校正倾斜(以修正扫描过程中图像的未对齐)、去除印刷图像中的图形规则和方框,以及确定图像中是否包含文字。

文本识别:对图像中较暗的部分进行处理,以识别字母、数字或符号。此阶段通常一次处理一个字符、一个单词或一段文本。然后使用两种算法之一来识别字符:模式识别或特征识别。

模式识别(或模式匹配):OCR程序事先已使用各种字体和格式的文本示例进行训练,通过与扫描文档或图像文件中的模板进行比较来识别字符。形状、大小和字体的每种独特组合称为一个字形。为了使识别成功,字符必须使用OCR程序已训练过的字体。考虑到全球字体数量众多,以及使用不同字符的语言(例如阿拉伯语、中文、英语、法语、德语、希腊语、日语、韩语或西班牙语),对每种字体和语言组合进行训练将极大地消耗系统资源。

特征识别(检测或提取): 当 OCR 程序分析未经训练的字体时,会使用此功能。OCR 应用特定字母或数字的特征规则来识别扫描文档中的字符。这些特征包括字符中斜线的数量、线条交叉点、环或曲线。例如,大写字母“A”由两条对角线组成,中间有一条水平线。识别出字符后,它会被转换为美国信息交换标准代码 (ASCII),供计算机系统进行后续处理。
布局识别:更完善的OCR程序还会分析文档图像的结构。它将页面分割成文本块、表格或图像等元素。文本行被分割成单词,单词再分割成字符。字符被识别出来后,程序会将它们与一组模式图像进行比较。处理完所有可能的匹配项后,程序会返回识别出的文本。

后处理: 收集到的信息以数字文件的形式存储,可以是可编辑格式或PDF格式。一些系统会同时保留输入图像和OCR识别后的版本,以便于比较和更完整地 管理文档。