只识别印刷体。语言选择最关键;第一次运行会下载识别引擎和模型,之后可离线使用。
这个 OCR 工具能做什么
拖入文档照片、截图、扫描页或一张招牌的照片,里面的文字会以可选中的文本出现在图片旁边。可选 12 种语言:简体中文、繁体中文、英文、日文、韩文、西班牙文、法文、德文、葡萄牙文、俄文、意大利文、越南文。选了哪种语言,都会同时识别英文,夹杂英文名和数字的中文合同一次读完。每张图片单独选语言、单独出结果;结果框可编辑,复制前顺手改掉个别错字。
识别由两个引擎分担,按你选的语言自动切换。英文、简体中文、西班牙文、法文、德文、葡萄牙文、意大利文交给 PaddleOCR 的 PP-OCRv6:一个网络先找出图里每一行字,另一个网络逐行读出,两个模型合计 6.3 MB。繁体中文、日文、韩文、俄文、越南文交给 Tesseract,因为这个 PP-OCR 模型的字符集里没有假名、韩文和西里尔字母,常用繁体字也缺不少。两个引擎都在浏览器的 Worker 线程里运行,只下载一次,之后缓存。图片本身从不离开设备,这对身份证、合同、病历很重要。
怎么用
添加、拖入或粘贴图片。在每张图片下方选择文字的语言,这是影响准确率最大的单一因素,然后点「识别」;第一次运行还要下载引擎。想对比,换一种语言再点一次「识别」。结果可就地修改,然后「复制」或下载为 .txt。有两张及以上图片时,底部会出现「复制全部文字」和「合并下载成一个 .txt」。
英文、简体中文、西班牙文、法文、德文、葡萄牙文、意大利文的结果里,指向某一行,原图上对应的框会高亮;点原图上的框,会选中对应那一行。行按整页的倾斜方向归并,双栏页面按栏读。「保留换行」按原文分行;「合并成段落」把行接成连续的文字,方便贴进文档。文档是 PDF 的话,先用PDF 转图片,一键把页面送到这里。歪斜的照片先过图片旋转和图片裁剪识别效果更好。
常见坑
OCR 识别的是印刷体;手写、花体字和杂乱背景上的文字会识别成乱码,任何浏览器工具都改变不了这一点。准确率主要取决于照片:让页面填满画面、放平、放正,光线均匀,避免阴影和反光,拖入前不要缩小图片——1200 万像素拍的 A4 页最理想,600 像素的缩略图没有希望。语言选错是产生乱码的另一大原因:日文页面按中文读、法文按英文读,都会得到看似合理的垃圾。
表格会变成没有格线的文字行。周围没什么文字的数字(发票、水表读数)识别得不错,但永远值得核对,因为 6 和 8 对机器来说也很像。设备第一次使用要下载引擎和语言模型,需要联网一次;之后离线可用。手机上处理大批量会慢,每页几秒是正常的。
背景知识:文字是怎么被识别的
PP-OCR 分两步。一个小的检测网络先标出属于文字的像素,每块标出的区域转成一个可以倾斜的矩形,所以拍歪几度的照片也能得到整齐的行。每一行被单独切出、缩放到 48 像素高,交给识别网络逐字读出;它认识 6905 个字符:简体中文、带重音的拉丁字母、数字和标点。最后把各行按阅读顺序拼回去:行沿整页的倾斜方向归并,两侧都是长行的竖向空白当作分栏,明显大于常规行距的间隔当作分段。
换引擎之前,我们用 28 张测试图把两个引擎各跑了一遍:13 段文字的干净截图,同样的图缩小、倾斜 2.5°、加噪点并存成低质量 JPEG,再加两整页 A4。中文的平均字符错误率从 Tesseract 的 18.6% 降到 PP-OCR 的 1.3%,仿照片的那组从 22.2% 降到 2.0%。橙色渐变底上的白色标题,Tesseract 一个字也没读出,PP-OCR 全对。干净的英文、法文、德文、西班牙文两者都几乎全对。在我们的测试机上,用单线程 WebAssembly,一张截图 0.3 到 0.7 秒,一整页密排的 A4 6 到 8 秒。其余五种语言仍用 Tesseract:它是按语言分别训练的 LSTM 网络,这里用的是 tessdata_best 量化到 8 位整数的模型;识别前图片会转灰度并放大到长边约 2000 像素。
哪些场景需要图片转文字
从别人发来的截图里复制一段话。把拍下的白板、幻灯片或书页变成笔记。从扫描的信件或只有图片的老 PDF 里取出文字。从照片里提取地址、订单号或序列号。把收据和发票数字化做账。读出另一种文字的菜单、招牌或标签,粘贴进翻译器。让报错信息的截图可以搜索。从只有照片的论文里摘引文。
本站的流程是:需要的话先旋转、裁剪照片,在这里识别文字;PDF 先过PDF 转图片。文字核对完,照片可以用图片转 PDF合成文档。
常见问题
我的图片会上传吗?
不会。识别在浏览器里运行,按语言使用 PP-OCR 或 Tesseract,两者都编译成 WebAssembly。图片不离开设备。引擎和模型下载一次并缓存,之后离线可用。
支持哪些语言?
简体中文、繁体中文、英文、日文、韩文、西班牙文、法文、德文、葡萄牙文、俄文、意大利文、越南文。中日韩可与英文一次同时识别。
能识别手写吗?
不能——只识别印刷体。手写、花体字和杂乱背景上的文字,本工具和任何浏览器 OCR 都无法可靠识别。
怎么提高准确率?
选对语言,用清晰、光线均匀、摆正的全分辨率照片,并裁到文字区域。小图或模糊图会自动放大,但无法变清晰。
能识别 PDF 吗?
先用 PDF 转图片工具把页面转成图片送到这里,每页得到一个可编辑的文本块。