跳到正文

绝不保留您图片的OCR文字识别

六款工具,从图片中读取文字、二维码和条形码。语言包来自本站,您的图片绝不存储。

6个工具,无需注册,无水印

这些工具大多只对一张图片做一件事。想把照片里的文字复制出来,请从图片转文字开始;想取出屏幕上无法选中的文字,请用截图文字识别;想让扫描件可以搜索而又不改变外观,请用PDF文字识别(OCR)。列表下方的说明讲的是常让人意外的地方——为什么分辨率比文件大小更重要,以及浏览器在哪些场景并不合适。

二维码与条形码

2个工具

打开二维码之前先看清它的内容,读出条形码数字并校验其校验位。

OCR到底做什么,又做不到什么

OCR识别形状并返回字符。它不会“阅读”。它不理解背后的词义,所以把“1”误认成“l”时,看起来和周围每个正确的字符一样确定无疑。正因如此,这些页面会在文字旁边显示识别器自己的置信度,而不是给您一个看似干净的结果、让您自己去找错。对于清晰的印刷文字,拍得方正且对焦清楚时,错误率是千分之几个字符。遇到反光、阴影或少见的字体,结果可能差得多,而输出看上去却毫无异样。

这些页面背后有两个识别器。一个不管文字是什么书写体系,都能在页面任何位置找到文字,并用一套词典识别五十来种语言。另一个针对每种语言单独训练,排在它后面,覆盖120多种语言。把语言保持为“自动”,就会让第一个识别器先试,这很重要,因为指定了错误的语言是什么都识别不出来的典型原因——一份波兰语菜单被判定为西里尔字母、按俄语识别,就会信心十足地返回一页空白。自己指定语言,会把任务固定交给该语言的识别器,当您确切知道手上是什么时,这正是您想要的。

重要的是分辨率,不是文件大小。识别器需要特定的字母高度,所有内容都会缩放到这个高度:扫描版PDF的页面以300 DPI渲染后再识别,图片则根据墨迹本身而不是图片尺寸来测量,再相应放大或缩小。屏幕文字是人们最常弄错的情况——正常大小下一个字母约十像素高,大约只有识别器所需的三分之一,所以截图会先放大再识别。字母低于约八像素时,已经没有细节可放大,再怎么处理也凭空变不出来。反过来,一张4800万像素的菜单照片并不比一张清晰的小照片更准确;超过一定程度,更多像素只会多花时间,什么也换不来。

倾斜和光照不均造成的破坏比看上去大得多。拍摄的页面往往歪一两度,光线也从一侧照来,所以图片转文字和文档扫描会在整页范围内测出这个角度并校正,再分块估计墨迹背后纸张的亮度,把它提升为均匀的白色。这不是为了好看。笔直的表格线是能把表格识别为网格的前提,均匀的对比度则能避免把您手的影子当成墨迹。截图刻意不做这两项处理:它本来就方正、光照均匀,把它当照片来处理只会增加错误。

表格和多栏排版才是真正的难点,具体数字值得了解。把一张带框线的表单当作整页正文来识别时,单元格文字串到了下一列,三分之一的标签丢失——字符错误率达15%到20%。先找出表格线、再逐个单元格单独识别,错误率降到约5%。所以有可见框线的表格会被识别为网格,以制表符分隔的行输出,可直接粘贴进电子表格;多栏正文按阅读顺序识别,而不是横穿整页。仅靠空格排版的表格没有框线可找,粘贴后能否对齐全凭运气,而不是设计使然。

可搜索的PDF和提取出的文字是两回事。PDF文字识别(OCR)和文档扫描让图片保持原样,把识别出的文字隐形地叠在上面:页面看起来完全一样,Ctrl+F能搜到内容了,也可以选中和复制。任何内容都不会画到页面上——这也意味着识别错误会藏在一份看起来完美的文档里。图片转文字和截图文字识别则正好相反:您得到的只有字符,没有字体、没有颜色、没有加粗,也没有图片。关于文字层有一点容易忽略——它只能包含内置字体能写出的字符,所以在相应字体上线之前,中文、日文和韩文的文字只会为您计数,而不会写入。

浏览器确实不适合的场景

图片从不离开您的设备,这是在这里识别的全部理由,而代价是处理难度大的文档时准确率会下降。这个取舍是真实存在的,值得直说,而不是藏起来。

连笔手写无法识别——这里不行,任何通用OCR工具也不行。这些是印刷体识别器:它们识别字母形状,而连笔字没有可以单独识别的字母形状。手写的印刷体字母往往识别得足够好,改一改比重新打字省事——大写字母、手填的表格、一笔一画写的便条——这就是手写文字识别存在的原因,也是它把置信度放在文字旁边的原因。要真正识别连笔字,需要专门用手写体训练的识别器,而好的那些都运行在服务器上,而不是标签页里。

处理难度大的文档,云端OCR会胜过这里。Google、Amazon和Microsoft运行的识别器,训练数据远超浏览器标签页能容纳的量,面对质量差的照片、密集的多栏页面、少见的字体或填好的表格,它们会明显更准确。ABBYY FineReader这样的付费桌面软件也一样。如果难处理文档的准确率比文档留在您自己的电脑上更重要,就用它们——这才是诚实的比较,也是您该据以做选择的标准。

批量工作属于命令行。这些工具在有人点击时识别一份文档。按计划处理两千份扫描件,应交给OCRmyPDF这样的桌面OCR工具,它一条命令就能给整个文件夹的PDF加上文字层——免费,识别方式同类,而且不用点来点去。

有些事就是不做。不做透视校正:从侧面拍的页面保持梯形,只校正旋转角度,所以从正上方拍摄值得多花一秒。严重的折痕,或书脊附近的弯曲,会保持弯曲。这里也没有摄像头功能——码识别工具解码的是您已有的图片,而不是实时画面。

在本地运行有一个实际代价:第一次使用某种语言时,识别器和语言包要从本站下载,只有几MB,但会让第一次运行比之后慢。不从任何第三方CDN获取任何内容,也不回传任何内容。

名字相近的工具怎么选

图片转文字与截图文字识别。同一个识别器,预处理不同,而这个差别不是表面上的。照片会被扶正并均衡光照;截图则只放大、其余不动,因为它没有倾斜也没有光照不均,当成有来处理反而更差。截图文字识别还支持粘贴——Ctrl+V,Mac上是Cmd+V,直接从剪贴板读取,无需先保存到磁盘。

图片转文字与文档扫描。图片转文字给您文字,丢掉图片。文档扫描保留图片,把它扶正,把墨迹后面的纸张变白,给您一个看起来像扫描件的PDF——还可以选择在后面隐形地放上文字。如果您要把文字粘贴到别处,选前者。如果您要把文档发给别人,选后者。

文档扫描与PDF文字识别(OCR)。文档扫描从照片开始,生成PDF。PDF文字识别(OCR)从已有的PDF开始,为它加上文字层。两者都不改变页面外观。拍了一份合同,您需要前者;邮件收到一份扫描件,您需要后者。

手写文字识别与图片转文字。同一个识别器,关闭了表格查找,并把置信度放在应有的显著位置,因为对于手写内容,这个数字才是结果中有用的部分。如果是连笔字,两个页面都识别不了,而手写页面会直说,而不是返回看似合理的乱码。

二维码识别与条形码识别。方形码对条纹码,值得弄清楚您手上的是哪种。二维码页面识别QR、Micro QR、Data Matrix、Aztec和PDF417——涵盖登机牌和驾照,它们的码即使看起来像一团点,也是方形格式。条形码页面识别零售和物流用的条纹格式——EAN、UPC、Code 128、Code 39、ITF——并验证校验位,即由其他数字计算出的最后一位,这决定了一个数字是可信的,还是只是看起来对。两者都不是OCR:码是几何结构已知的符号,所以解码是算术,而不是对字母形状的猜测。它们失败的方式也不同。方形码带纠错,能扛住划痕或印在中间的Logo;条纹码完全没有纠错,所以条纹上有反光就意味着读不出来,而不是读出错误的数字。

这些工具的技术基础

真正完成处理工作的开源引擎,以及它们所实现的技术规范。

  • TesseractApache-2.0 — 识别120多种语言的文字,语言包由本站提供.
  • ZXingApache-2.0 — 识别二维码和条形码.
  • QR code specification (Denso Wave)Specification — 公布各版本尺寸和纠错等级,出自该格式的发明者.

常见问题

我的图片或文档会被存储在什么地方吗?

不会。第一次使用某种语言时,识别器和语言包由本站提供,而图片本身从不发送到任何地方——所以首次加载之后,即使断开Wi-Fi也能使用,也不会在任何地方存储任何文件。这一点在码识别页面上最重要,因为一个二维码可能包含Wi-Fi密码、付款请求或双重验证密钥。

识别准确吗?

对于清晰的印刷文字,拍得方正且对焦清楚时,错误是千分之几个字符。模糊、反光、对比度低、少见的字体以及印在图片上的文字,都会降低准确率。置信度会显示在文字旁边,而不是让您去猜;置信度低时,几乎总是图片的问题:光线更足、角度更正、让文字填满画面,大部分问题就解决了。

能识别手写吗?

一个个分开的手写印刷体字母通常可以,连笔字不行。这不是本站的局限:通用OCR工具以印刷体训练,识别的是字母形状,而连笔字没有可以单独识别的字母形状。手写文字识别这个页面会直说这一点,并给您看它识别出了什么,这比一个自信满满的错误答案有用得多。

能识别哪些语言?

120多种,包括英语、孟加拉语、印地语、乌尔都语、阿拉伯语、西班牙语、法语、德语、葡萄牙语、俄语、中文、日语和韩语。书写体系由图片本身判断;多种语言共用同一书写体系时——拉丁字母、西里尔字母、阿拉伯字母、天城文——由您浏览器的语言设置决定,您也随时可以更改。

会使用我的摄像头吗?

不会,也不需要授予任何权限。这里的每个工具读取的都是您已有的图片——相册里的照片、截图、别人发给您的文件。如果码或页面就在您面前,请先拍下来,再把照片拖进来。

表格识别出来还是表格吗?

如果有可见的框线,是的:先找出网格,再逐个单元格单独识别,这样标签不会串到它的值里,结果是以制表符分隔的行,可直接粘贴进电子表格。仅靠空格排版、没有框线的表格,会按阅读顺序识别为几列文字,粘贴后通常能对齐,但不作保证。