OCR前端插件-----Tesseract.Js

Tesseract.js 网站上所说,它支持 100 多种语言,自动文本定位和脚本检测,用于阅读段落、单词和字符边界框的简单界面。

Tesseract 的最新版本第 4 版于 2018 年 10 月发布,它包含一个新的 OCR 引擎,该引擎使用基于长短期记忆(LSTM) 的神经网络系统,旨在产生更准确的结果。

资源下载:https://download.csdn.net/download/liuhao9999/85824396

了解 Tesseract API  

要真正了解 Tesseract 的工作原理,我们需要分解它的一些 API 及其组件。根据 Tesseract.js 文档,有两种方法可以使用它。以下是第一种方法及其分解:

Tesseract.recognize(
  image,language,
  { 
    logger: m => console.log(m) 
  }
)
.catch (err => {
  console.error(err);
})
.then(result => {
 console.log(result);
})
}

recognize方法将图像作为第一个参数,语言(可以是多个)作为第二个参数,{ logger: m => console.log(me) }最后一个参数。Tesseract 支持的图像格式是 jpg、png、bmp 和 pbm,它们只能作为元素(img、视频或画布)、文件对象 ( <input>)、blob 对象、图像的路径或 URL 和 base64 编码图像提供。

语言以字符串形式提供,例如eng. 该+符号可用于连接多种语言,如eng+chi_tra. 语言参数用于确定要在图像处理中使用的训练语言数据。

{ logger: m => console.log(m) }对于获取有关正在处理的图像的进度的信息非常有用。logger 属性采用一个函数,该函数将在 Tesseract 处理图像时被多次调用。logger 函数的参数应该是一个具有workerIdjobId,statusprogress属性的对象:

{ workerId: ‘worker-200030’, jobId: ‘job-734747’, status: ‘recognizing text’, progress: ‘0.9’ }

progress是一个介于 0 和 1 之间的数字,以百分比表示图像识别过程的进度。

Tesseract 自动生成对象作为 logger 函数的参数,但也可以手动提供。随着识别过程的发生,每次调用函数时都会更新logger对象属性。因此,它可用于显示转换进度条、更改应用程序的某些部分或用于实现任何所需的结果。

上面代码中的result是图像识别过程的结果。的每个属性result都有属性 bbox 作为其边界框的 x/y 坐标。

以下是result对象的属性、含义或用途:

{
  text: "I am codingnninja from Nigeria..."
  hocr: "<div class='ocr_page' id= ..."
  tsv: "1 1 0 0 0 0 0 0 1486 ..."
  box: null
  unlv: null
  osd: null
  confidence: 90
  blocks: [{...}]
  psm: "SINGLE_BLOCK"
  oem: "DEFAULT"
  version: "4.0.0-825-g887c"
  paragraphs: [{...}]
  lines: (5) [{...}, ...]
  words: (47) [{...}, {...}, ...]
  symbols: (240) [{...}, {...}, ...]
}
  • text:所有识别的文本为字符串。
  • lines:每个已识别的文本行的数组。
  • words:每个已识别单词的数组。
  • symbols:每个识别的字符的数组。
  • paragraphs:每个已识别段落的数组。我们将在本文后面讨论“信心”。

Tesseract 也可以更强制地使用,如:

import { createWorker } from 'tesseract.js';

  const worker = createWorker({
  logger: m => console.log(m)
  });

  (async () => {
  await worker.load();
  await worker.loadLanguage('eng');
  await worker.initialize('eng');
  const { data: { text } } = await     worker.recognize('https://tesseract.projectnaptha.com/img/eng_bw.png');
 console.log(text);
 await worker.terminate();
})();

这种方法与第一种方法有关,但实现方式不同。

createWorker(options)创建一个创建 Tesseract 工作者的 Web 工作者或节点子进程。工作人员帮助设置 Tesseract OCR 引擎。该load()方法加载 Tesseract 核心脚本,loadLanguage()加载作为字符串提供给它的任何语言,initialize()确保 Tesseract 完全可以使用,然后使用识别方法处理提供的图像。terminate() 方法停止工作程序并清理所有内容。

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫微前端

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值