🐸 青蛙编程网
首页 / AI / 文字识别 OCR / 1. OCR 是什么

1. OCR 是什么

这是什么:OCR(Optical Character Recognition,光学字符识别) = 把图片里的文字变成电脑能读懂的字符串的技术。

为什么用:截图里的字复制不出来,扫描件存进去也搜不到,内容全被锁在图片里。OCR 就是那把钥匙,让「只能看」的图片变成「能复制、能搜索」的文本。

如何用:本章先看懂它的两步原理:文本检测负责找到字在哪,文字识别负责认出这是什么字。

1.1 一眼看清两步原理

现代 OCR(深度学习时代)基本是「两步走」:

原图 → ① 文本检测(找到文字在哪)
        → ② 文字识别(认出每个框里写的是啥)
                → 输出「文本 + 位置 + 置信度」
  • 检测(Detection):用计算机视觉模型框出文字区域,像画框框
  • 识别(Recognition):把每个框送进序列模型读出字符(CRNN 系经典架构)

你手里的库(EasyOCR、PaddleOCR)这两步都内置好了,一行 API 出全套结果——理解两步的概念,是为了看懂输出里的坐标和置信度,而不是自己造轮子。

1.2 输出长什么样

result = reader.readtext('screenshot.png')

你会看到(示例):

[[[12, 18], [231, 18], [231, 45], [12, 45]], '青蛙编程网', 0.953]

一图多行文字就是多个三元组:位置框 + 文本 + 可信程度。置信度(0~1)低的那行,多半是图糊了,或者字体太艺术。

输出内容 用途
文本 直接进数据库 / 搜索 / 翻译
坐标 排版还原、表格还原、水印定位
置信度 低分送人工复核(工程必备技巧)

1.3 到处都在用它

场景 例子
办公自动化 扫描合同、发票批量录入
学习助手 截图生词、字幕提取、纸质书全文检索
写代码 把截图里的报错信息一键变成可复制的文本
通行世界 车牌识别、快递单号、身份证 / 银行卡

1.4 为什么现在「人人可做」

  • 没有训练成本:各式预训练模型开箱即用,下一章装好就能跑
  • 中文不愁:PaddleOCR 在中文场景常年第一梯队
  • CPU 也能跑:几张图的小任务无需显卡(GPU 只是提速)

记忆口诀:检测先圈出文字在哪,识别再读出写了什么;文本、坐标、置信度,三样一起交到手。

1.5 OCR 会被多模态大模型取代吗

不会,而且短期内不会。多模态大模型确实能「看图说话」,但和专用 OCR 相比有三处硬伤:

对比项 专用 OCR 多模态大模型
成本 本地跑,一分钱不花 每张图都要调 API、按量付费
速度 小图毫秒级 秒级起步
精确度 逐字输出 + 坐标 + 置信度 擅长「总结」,逐字转录反而容易出错、改写

大模型擅长理解(这段文字在讲什么),OCR 擅长转录(一个字都不差)。工程上常常是 OCR 转录、再喂给大模型理解,各干各的活。

1.6 OCR 也有搞不定的时候

  • 手写体、潦草字:通用模型识别率会明显下降
  • 文字严重变形:弯曲招牌、艺术字、印章叠印
  • 低质量翻拍:手抖、反光、阴影压住文字

碰到这些别硬扛——先做预处理(第 5 章),不行就换更强的模型或走人工复核流程。

1.7 动手改

  1. 找一张含文字的截图(最好中英文都有),存成 test.png 备用
  2. 想一想:识别出「文字」之后,你打算拿它做什么?存数据库、做搜索,还是直接喂给 AI?

1.8 小结

  • OCR = 检测(文字在哪)+ 识别(写了什么),输出文本 / 坐标 / 置信度
  • 场景遍地,预训练模型开箱即用,CPU 就能跑
  • 下一章就把你的截图「读」出来

下一章:环境搭建与第一次识别 🐸

📥 下载本章代码

ZIP 内含本章全部代码文件与说明,解压即用,与教程内容同步生成。