图片转文字(OCR)

把文字的图片变成可编辑、可搜索的文字。

拖入图片、点击选择,或直接粘贴截图JPG、PNG、WebP、HEIC、BMP · 多文件 · 不上传
版面

只识别印刷体。语言选择最关键;第一次运行会下载引擎(约 4 MB)和一个语言模型。

这个 OCR 工具能做什么

拖入文档照片、截图、扫描页或一张招牌的照片,里面的文字会以真正可选中的文本出现在图片下方。可选 12 种语言——简体中文、繁体中文、英文、日文、韩文、西班牙文、法文、德文、葡萄牙文、俄文、意大利文、越南文——中日韩文档还可勾选"同时识别英文",夹杂英文名和数字的中文合同一次读完。多张图片可以一起拖入,逐张识别并显示进度;结果框可编辑,复制前顺手改掉个别错字。

识别用的是 Tesseract——HP 和 Google 先后开发的开源 OCR 引擎——编译成 WebAssembly,在浏览器的 Worker 线程里运行。识别前每张图会自动整理:转灰度、小图放大(手机截图和低分辨率扫描件受益最大)、透明底铺白。引擎和你选的语言模型只下载一次——约 4 MB 加每种语言 1–3 MB——之后缓存;图片本身从不离开设备,这对身份证、合同、病历很重要。

怎么用

先选文字的语言——这是影响准确率最大的单一因素——中日韩文档里有拉丁文字的话保持勾选"同时识别英文"。拖入、粘贴或选择图片。等进度条走完;第一次运行还要加载引擎。看结果框:旁边的置信度是引擎自己的估计,低于 80% 左右的值得检查一下。需要就地修改,然后"复制"文字或"下载"为 .txt;"复制全部"和"全部下载"处理整批(多个文件打包成 ZIP)。

版面:"自动"检测栏和区块,适合扫描页和照片;"单栏"把整张图当作一列文字,对聊天记录截图、代码和简单列表更稳。文档是 PDF 的话,先用PDF 转图片,一键把页面送到这里。歪斜的照片先过图片旋转图片裁剪识别效果更好。

常见坑

OCR 识别的是印刷体;手写、花体字和杂乱背景上的文字会识别成乱码,任何浏览器工具都改变不了这一点。准确率主要取决于照片:让页面填满画面、放平、放正,光线均匀,避免阴影和反光,拖入前不要缩小图片——1200 万像素拍的 A4 页最理想,600 像素的缩略图没有希望。语言选错是产生乱码的另一大原因:日文页面按中文读、法文按英文读,都会得到看似合理的垃圾。

表格会变成没有格线的文字行;双栏排版在"单栏"模式下可能交错——这类用"自动"。周围没什么文字的数字(发票、水表读数)识别得不错,但永远值得核对,因为 6 和 8 对机器来说也很像。设备第一次使用要下载引擎和一个语言模型,需要联网一次;之后离线可用。手机上处理大批量会慢——每页几秒是正常的。

背景知识:文字是怎么被识别的

Tesseract 当前的引擎是一个 LSTM 神经网络,把一行像素当作序列读入、输出字符,每种语言分别用数百万行印刷文字训练。页面先做版面分析——文字块、行、词在哪里——再把每一行归一化到固定高度送进网络。这里用的模型是 tessdata_best 量化到 8 位整数的版本:准确率与全精度模型相同,体积只有几分之一,这才让自托管全部 12 种语言可行。

一切在 WebAssembly 里运行,浏览器支持时启用 SIMD 加速(当前所有浏览器都支持),放在 Worker 里页面依然流畅。预处理在页面的 canvas 上完成:转灰度去掉颜色噪声,小图放大到长边约 2000 像素,让字母落入网络训练时的尺寸范围。像素不发送到任何地方;引擎和模型缓存后页面离线也能用。

哪些场景需要图片转文字

从别人发来的截图里复制一段话。把拍下的白板、幻灯片或书页变成笔记。从扫描的信件或只有图片的老 PDF 里取出文字。从照片里提取地址、订单号或序列号。把收据和发票数字化做账。读出另一种文字的菜单、招牌或标签,粘贴进翻译器。让报错信息的截图可以搜索。从只有照片的论文里摘引文。

本站的流程是:需要的话先旋转裁剪照片,在这里识别文字;PDF 先过PDF 转图片。文字核对完,照片可以用图片转 PDF合成文档。

常见问题

我的图片会上传吗?

不会。识别由编译成 WebAssembly 的 Tesseract 在浏览器里运行,图片不离开设备。引擎和语言模型下载一次并缓存,之后离线可用。

支持哪些语言?

简体中文、繁体中文、英文、日文、韩文、西班牙文、法文、德文、葡萄牙文、俄文、意大利文、越南文。中日韩可与英文一次同时识别。

能识别手写吗?

不能——只识别印刷体。手写、花体字和杂乱背景上的文字,本工具和任何浏览器 OCR 都无法可靠识别。

怎么提高准确率?

选对语言,用清晰、光线均匀、摆正的全分辨率照片,并裁到文字区域。小图或模糊图会自动放大,但无法变清晰。

能识别 PDF 吗?

先用 PDF 转图片工具把页面转成图片送到这里,每页得到一个可编辑的文本块。