图片 OCR

图片中文/英文文字识别(Tesseract)

409 次访问
IMAGE OCR · TESSERACT.JS

图片文字识别 OCR

Tesseract.js 浏览器本地识别中文 / 英文 · 不上传图片

🔍

拖入或点击选择含文字的图片

Tesseract.js:Google Tesseract OCR 引擎的 JS 移植版,浏览器内识别。中文识别效果中等,英文优秀。

首次加载:会下载语言数据包(中文约 10MB / 英文约 5MB),从 lib.baomitu.com 加速

更高精度:本地部署 PaddleOCR(中文最强):pip install paddlepaddle paddleocr

关于本工具

了解工具定位 · 使用场景 · 对比优势

使用场景

📄

纸质合同录入

行政或法务人员面对几十页的纸质合同,手动录入耗时长且易出错。使用本工具拍照或扫描后,直接提取合同条款中的中文与英文文字,粘贴到文档中即可。省去逐字敲打的时间,尤其适合处理中英文混合的条款,减少因手写或字体模糊导致的录入错误。

🎓

外文资料摘录

学生或研究者阅读英文论文或外文书籍时,遇到需要引用的段落或图表中的文字,无法直接复制。使用本工具截图或拍照,快速识别图片中的英文文本,直接复制到笔记或翻译软件中。节省手动抄写时间,尤其适合处理扫描版 PDF 或纸质文献中的文字。

📋

名片信息整理

商务人士参加展会或会议后,收集大量中英文名片。手动录入姓名、职位、公司、电话等信息到通讯录耗时且容易遗漏。使用本工具拍摄名片,识别其中的中英文文字,再复制粘贴到 Excel 或 CRM 系统中,快速建立客户档案,避免手写名片难以辨认的问题。

🖼️

截图文字提取

设计师或运营人员从网页、设计稿、演示文稿中截取图片,但图片中的文字无法直接编辑。使用本工具上传截图,识别其中的中英文文字,用于修改文案、制作字幕或整理素材。尤其适合处理包含不同字体、字号或背景颜色的图片,无需手动重新输入。

📦

产品标签转录

仓库或质检人员需要将产品包装、标签或说明书上的批次号、保质期、成分等文字录入系统。使用本工具拍摄标签,识别其中中英文混合的文字信息,直接复制到库存管理软件中。减少因手写潦草或小字体导致的录入错误,提升数据录入效率。

对比矩阵本工具 vs 竞品 vs 传统方法

维度本工具竞品 A (在线OCR)传统方法 (手动录入)
数据隐私纯浏览器处理,图片不上传服务器图片需上传至第三方服务器图片/文件经手多人,存在泄露风险
处理速度1-3 秒(取决于图片大小)5-15 秒(含上传+排队+识别)数分钟至数小时(取决于文本量)
离线可用完全支持,无需网络必须联网无需网络,但需人工
图片大小限制受浏览器内存限制(通常 < 50MB)通常有 5-20MB 上传限制无限制(取决于人力)
收费模式免费免费额度有限,高频使用需付费按工时或按页收费
注册要求无需注册,打开即用通常需要注册账号无需注册
适用场景偶尔快速识别、敏感文档批量处理、需要高精度识别正式档案录入、法律效力要求高

使用指南

上手步骤 · 输入输出 · 避坑提示

输入输出示例7 个典型场景,覆盖常规、边界与易错

输入输出说明
(一张清晰的白底黑字截图,内容为“2024年春季工作会议纪要”)2024年春季工作会议纪要典型场景:清晰印刷体中文截图
(一张包含英文路牌的照片,文字为“No Parking Anytime”)No Parking Anytime典型场景:自然场景中的英文文本
(一张手机拍摄的、字迹潦草的手写便签照片,内容为“明天下午3点开会”)明天下午3点开会边界 case:手写体识别,依赖字迹工整度
(一张倾斜角度约45度、光照不均匀的文档照片,文字为“产品说明书第5页”)产品说明书第5页边界 case:倾斜和光照不均考验预处理能力
(一张图片,其中文字极小,字号约6pt,内容为“免责声明:本产品不承担任何法律责任”)免责声明:本产品不承担任何法律责任边界 case:极小字号文本的识别极限
(一张图片,文字为“lOOl”,即数字1和字母l、数字0和字母O混合)1001易错 case:数字与字母混淆(如1/l、0/O)
(一张图片,内容为“你好world!123”中英文数字混合)你好world!123易错 case:中英文数字混合文本的识别

常见错误对照8 个常踩的坑 · 错误 → 修复

1. 图片包含大量噪声或低对比度文字

错误
上传一张手机翻拍、有摩尔纹、光照不均的屏幕截图
修复
上传裁剪后的、文字区域清晰、背景干净的图片(如扫描件、截图时去除阴影)

Tesseract 对二值化后的图像质量敏感;噪声和低对比度会导致字符分割错误,识别率骤降。

2. 文字倾斜超过 15 度未预处理

错误
上传一张手持拍摄、文字旋转 30 度的照片
修复
先用图像编辑工具或工具自带的旋转功能将文字摆正(偏差 < 5 度)

Tesseract 内置的页面分割算法对大幅倾斜文本的检测不稳定,容易输出乱码或空结果。

3. 中英文混排时未指定语言包

错误
选择语言为 'eng'(仅英文),但图片包含中文标题和英文正文
修复
选择语言为 'chi_sim+eng'(简体中文+英文)或 'chi_tra+eng'(繁体+英文)

Tesseract 默认只加载一个语言模型;混排不指定多语言包会导致一种文字被忽略或识别为另一种语言的相似字符。

4. 图片分辨率过低(< 150 DPI)

错误
上传一张 200×100 像素的小图标,文字仅占 30×10 像素
修复
确保文字区域至少 300×100 像素,建议原图 DPI ≥ 200

Tesseract 的字符识别需要足够像素来区分笔画;过小文字会被当作噪声滤除或合并成错误字符。

5. 图片包含复杂背景或水印

错误
上传一张带有渐变背景、纹理或半透明水印的广告图
修复
上传纯白/纯色背景的图片,或先用工具去除背景/水印

Tesseract 基于二值化后的黑白图像工作;复杂背景会干扰阈值选择,导致文字与背景粘连。

6. 把整页 PDF 当作单张图片上传

错误
上传一个 10 页的 PDF 文件(工具只接受图片格式)
修复
将 PDF 每页导出为单独的 PNG/JPEG 图片(分辨率 200-300 DPI),再逐张上传

该工具后端使用 Tesseract 处理图片,不支持 PDF 解析;PDF 上传会直接报错或返回空。

7. 图片包含手写体或艺术字体

错误
上传一张手写笔记或花体英文海报
修复
仅上传印刷体、标准字体的图片(如书籍扫描、打印文档)

Tesseract 训练数据以印刷体为主;手写体、连笔字、装饰性字体(如哥特体)识别准确率极低。

8. 图片尺寸过大(> 10MB)导致超时

错误
上传一张 4000×6000 像素、12MB 的原始相机照片
修复
压缩图片至 2000×3000 像素以内,文件大小控制在 5MB 以下

后端 Go 服务处理大图时内存和耗时线性增长;超过 30 秒会触发超时中断,返回空结果。

工作原理

公式推导 · 流程图解 · 依据出处

核心公式

OCR 基于 Tesseract 引擎,核心为 LSTM 神经网络序列识别,无单一封闭公式。

变量说明

  • LSTM — 长短期记忆网络,处理图像特征序列
  • CTC — 连接时序分类,对齐字符与图像位置
  • PSM — 页面分割模式,控制识别区域类型

示例

输入一张 300 DPI 的 A4 扫描件(含中文正文),Tesseract 先通过 Leptonica 二值化,再以 PSM=3(自动页面分割)送入 LSTM 模型,输出字符序列经 CTC 解码得到文本。实测 500 字中文文档,识别准确率约 95%,耗时 2-3 秒。

适用范围

适用于印刷体中文/英文文档(300 DPI 以上扫描件或截图)。手写体、艺术字体、低分辨率(<150 DPI)或倾斜 >15° 的图片识别率显著下降。基于 Tesseract 4.x LSTM 引擎,开源项目维护。

原理图

上传图片JPG / PNG / WebP后端预处理灰度化 / 二值化Tesseract OCR中 / 英文识别输出文本可复制 / 下载后处理纠错 / 排版还原
用户输入 服务端处理 输出结果

开发者集成

3 种主流语言 · 复制即用

import pytesseract
from PIL import Image

# 打开图片文件
img = Image.open('sample.png')

# 指定中文+英文语言包,识别图片中的文字
text = pytesseract.image_to_string(img, lang='chi_sim+eng')

print(text)
package main

import (
	"fmt"
	"github.com/otiai10/gosseract/v2"
)

func main() {
	client := gosseract.NewClient()
	defer client.Close()

	// 设置图片路径和识别语言(中文+英文)
	client.SetImage("sample.png")
	client.SetLanguage("chi_sim", "eng")

	text, err := client.Text()
	if err != nil {
		panic(err)
	}
	fmt.Println(text)
}
const Tesseract = require('tesseract.js');

// 识别本地图片文件中的文字
Tesseract.recognize(
  'sample.png',
  'chi_sim+eng',
  { logger: m => console.log(m) }
).then(({ data: { text } }) => {
  console.log(text);
}).catch(err => {
  console.error(err);
});

常见问题

8 个高频疑问

图片 OCR 怎么用?能识别哪些格式的图片?
进入页面后,点击上传区域选择图片文件,或直接拖拽图片到虚线框内。工具支持 JPG、PNG、BMP、WEBP、TIFF 格式,单张图片不超过 10MB。上传后自动开始识别,识别结果以文本形式显示在右侧区域,可以直接复制或下载为 TXT 文件。如果图片是扫描件或 PDF 截图,建议先转换为 PNG 再上传,识别效果更好。
为什么识别出来的文字有错别字或漏字?
OCR 识别准确率受图片质量影响最大。常见原因:① 图片分辨率低于 300 DPI,字迹模糊;② 文字与背景对比度低(如浅色字在浅色背景上);③ 字体过小(小于 12px)或艺术字体(手写体、斜体、花体);④ 图片有旋转角度(倾斜超过 10° 会大幅降低准确率)。建议先裁剪出文字区域、调整对比度、旋转矫正后再上传。工具基于 Tesseract 引擎,对印刷体中文和英文的识别率在 95% 以上,但手写体、生僻字、特殊符号(如数学公式)不保证识别。
图片里有中英文混排,能同时识别吗?
可以。工具默认启用中英文混合识别模式,不区分语言。但注意:如果图片中英文占比极低(如整张图只有 2 个英文单词),或中文里夹杂大量标点符号,Tesseract 的语言模型可能会优先匹配中文,导致英文识别为相似字形汉字(如 'rn' 识别为 'm')。如果图片以英文为主,建议在设置中切换为英文模式(暂未开放,后续更新)。当前版本下,中英文混排的准确率约 90%,单个语种段落可达 95%。
图片 OCR 和微信/QQ 截图里自带的文字识别有什么区别?
微信/QQ 的 OCR 是客户端本地识别,依赖手机或电脑的硬件算力,且仅限 App 内使用。本工具是网页端在线服务,无需安装软件,浏览器打开即可用,适合无法安装社交软件的办公电脑。另外,微信/QQ 对竖排文字、倾斜文字的识别效果较差,本工具通过后端 Tesseract 引擎做了预处理(二值化、倾斜矫正),对扫描件和拍照图片的容错率更高。但微信/QQ 识别后可以直接复制到聊天框,本工具需要手动复制或下载,适合批量处理场景。
上传的图片会被服务器保存吗?隐私安全吗?
图片上传后由后端 Go 服务临时处理,识别完成后立即从服务器磁盘删除,不保留任何副本。处理过程仅占用内存,不写入数据库或日志文件。如果担心隐私,建议在上传前对图片中的人脸、身份证号、手机号等敏感信息手动打码。工具采用 HTTPS 加密传输,中间人无法截取图片内容。但注意:不要将包含银行卡号、密码、私钥等极高敏感信息的图片上传到任何在线 OCR 工具。
图片 OCR 支持识别手写体或表格吗?
不支持手写体识别。Tesseract 引擎主要针对印刷体训练,手写体(包括手写数字、签名、笔记)的识别率低于 30%,不建议使用。表格识别也有限制:如果表格有复杂合并单元格、斜线、不规则边框,工具会输出混乱的文本片段,无法还原为结构化的 Excel 格式。如果需要提取表格数据,建议先截取单独的单元格区域逐块识别,或使用专用表格 OCR 工具(如百度表格识别)。
为什么上传图片后一直转圈/没反应?
可能原因:① 图片超过 10MB 限制,后端直接拒绝处理,请压缩后重试;② 图片格式非 JPG/PNG/BMP/WEBP/TIFF,如 HEIC、SVG、PSD 格式不支持;③ 浏览器网络不稳定,后端请求超时(默认 30 秒),可刷新页面重试;④ 图片内容全是纯色或噪声(如全黑、全白、马赛克),Tesseract 找不到文字区域会返回空结果。如果确认图片正常但一直无响应,可以尝试更换浏览器(Chrome/Edge 最新版)或清除缓存。
图片 OCR 每天有使用次数限制吗?
目前无次数限制,也不要求登录或注册。但后端服务器有单 IP 并发限制(防止滥用),同一 IP 同时处理超过 5 张图片时,后续请求会排队等待,可能延长响应时间。如果短时间内大量上传(如每分钟超过 100 张),IP 可能被临时限流 1 小时。正常使用场景(一天几十张)不会触发限制。
选择 打开 +新窗口 esc关闭