图片文字识别 OCR
Tesseract.js 浏览器本地识别中文 / 英文 · 不上传图片
图片中文/英文文字识别(Tesseract)
Tesseract.js 浏览器本地识别中文 / 英文 · 不上传图片
Tesseract.js:Google Tesseract OCR 引擎的 JS 移植版,浏览器内识别。中文识别效果中等,英文优秀。
首次加载:会下载语言数据包(中文约 10MB / 英文约 5MB),从 lib.baomitu.com 加速。
更高精度:本地部署 PaddleOCR(中文最强):pip install paddlepaddle paddleocr
了解工具定位 · 使用场景 · 对比优势
行政或法务人员面对几十页的纸质合同,手动录入耗时长且易出错。使用本工具拍照或扫描后,直接提取合同条款中的中文与英文文字,粘贴到文档中即可。省去逐字敲打的时间,尤其适合处理中英文混合的条款,减少因手写或字体模糊导致的录入错误。
学生或研究者阅读英文论文或外文书籍时,遇到需要引用的段落或图表中的文字,无法直接复制。使用本工具截图或拍照,快速识别图片中的英文文本,直接复制到笔记或翻译软件中。节省手动抄写时间,尤其适合处理扫描版 PDF 或纸质文献中的文字。
商务人士参加展会或会议后,收集大量中英文名片。手动录入姓名、职位、公司、电话等信息到通讯录耗时且容易遗漏。使用本工具拍摄名片,识别其中的中英文文字,再复制粘贴到 Excel 或 CRM 系统中,快速建立客户档案,避免手写名片难以辨认的问题。
设计师或运营人员从网页、设计稿、演示文稿中截取图片,但图片中的文字无法直接编辑。使用本工具上传截图,识别其中的中英文文字,用于修改文案、制作字幕或整理素材。尤其适合处理包含不同字体、字号或背景颜色的图片,无需手动重新输入。
仓库或质检人员需要将产品包装、标签或说明书上的批次号、保质期、成分等文字录入系统。使用本工具拍摄标签,识别其中中英文混合的文字信息,直接复制到库存管理软件中。减少因手写潦草或小字体导致的录入错误,提升数据录入效率。
| 维度 | 本工具 | 竞品 A (在线OCR) | 传统方法 (手动录入) |
|---|---|---|---|
| 数据隐私 | 纯浏览器处理,图片不上传服务器 | 图片需上传至第三方服务器 | 图片/文件经手多人,存在泄露风险 |
| 处理速度 | 1-3 秒(取决于图片大小) | 5-15 秒(含上传+排队+识别) | 数分钟至数小时(取决于文本量) |
| 离线可用 | 完全支持,无需网络 | 必须联网 | 无需网络,但需人工 |
| 图片大小限制 | 受浏览器内存限制(通常 < 50MB) | 通常有 5-20MB 上传限制 | 无限制(取决于人力) |
| 收费模式 | 免费 | 免费额度有限,高频使用需付费 | 按工时或按页收费 |
| 注册要求 | 无需注册,打开即用 | 通常需要注册账号 | 无需注册 |
| 适用场景 | 偶尔快速识别、敏感文档 | 批量处理、需要高精度识别 | 正式档案录入、法律效力要求高 |
上手步骤 · 输入输出 · 避坑提示
| 输入 | 输出 | 说明 |
|---|---|---|
| (一张清晰的白底黑字截图,内容为“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:中英文数字混合文本的识别 |
上传一张手机翻拍、有摩尔纹、光照不均的屏幕截图上传裁剪后的、文字区域清晰、背景干净的图片(如扫描件、截图时去除阴影)Tesseract 对二值化后的图像质量敏感;噪声和低对比度会导致字符分割错误,识别率骤降。
上传一张手持拍摄、文字旋转 30 度的照片先用图像编辑工具或工具自带的旋转功能将文字摆正(偏差 < 5 度)Tesseract 内置的页面分割算法对大幅倾斜文本的检测不稳定,容易输出乱码或空结果。
选择语言为 'eng'(仅英文),但图片包含中文标题和英文正文选择语言为 'chi_sim+eng'(简体中文+英文)或 'chi_tra+eng'(繁体+英文)Tesseract 默认只加载一个语言模型;混排不指定多语言包会导致一种文字被忽略或识别为另一种语言的相似字符。
上传一张 200×100 像素的小图标,文字仅占 30×10 像素确保文字区域至少 300×100 像素,建议原图 DPI ≥ 200Tesseract 的字符识别需要足够像素来区分笔画;过小文字会被当作噪声滤除或合并成错误字符。
上传一张带有渐变背景、纹理或半透明水印的广告图上传纯白/纯色背景的图片,或先用工具去除背景/水印Tesseract 基于二值化后的黑白图像工作;复杂背景会干扰阈值选择,导致文字与背景粘连。
上传一个 10 页的 PDF 文件(工具只接受图片格式)将 PDF 每页导出为单独的 PNG/JPEG 图片(分辨率 200-300 DPI),再逐张上传该工具后端使用 Tesseract 处理图片,不支持 PDF 解析;PDF 上传会直接报错或返回空。
上传一张手写笔记或花体英文海报仅上传印刷体、标准字体的图片(如书籍扫描、打印文档)Tesseract 训练数据以印刷体为主;手写体、连笔字、装饰性字体(如哥特体)识别准确率极低。
上传一张 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 引擎,开源项目维护。
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 个高频疑问
「AI 处理」下的其他工具