一款让OCR识别正确率趋近100%的库

2022-12-02 11:21:11 浏览数 (1)

大家好,我是前端实验室的大师兄!

今天大师兄给大家分享一个开源的 OCR 识别库:Tesseract.js

从此可以摆脱某些 OCR API 的调用次数限制问题了。

前言

Tesseract.js 一个 纯Javascript编程语言的 ocr 识别库,简单实用。

支持包括中英文等100多中语言的图片和视频文字识别,底层封装了Tesseract OCR引擎来实现。

实时OCR:

安装

Tesseract.js 已经迭代了很多版本了。它可以在在 html 页面上通过 script 标签引入CDN 外链使用

代码语言:javascript复制
<!-- v2 -->
<script src='https://unpkg.com/tesseract.js@v2.1.0/dist/tesseract.min.js'></script>

<!-- v1 -->
<script src='https://unpkg.com/tesseract.js@1.0.19/src/index.js'></script>

或者在 Node.js 中使用

代码语言:javascript复制
# For v3
npm install tesseract.js
yarn add tesseract.js

# For v2
npm install tesseract.js@2
yarn add tesseract.js@2

这里要注意下环境问题:Tesseract.js v3 要求 Node.js 的版本在 v14 及以上才行

使用

安装后,使用就非常简单了。

代码语言:javascript复制
import Tesseract from 'tesseract.js';

Tesseract.recognize(
  'https://xxx/img/eng_bw.png',
  'eng',
  { logger: m => console.log(m) }
).then(({ data: { text } }) => {
  console.log(text);
})

或者更加命令式编程的方式。

代码语言:javascript复制
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://xxx/img/eng_bw.png');
  console.log(text);
  await worker.terminate();
})();

使用命令式编程的好处就是自定义去构建一个 worker,实现一些简单配置,如语言配置、训练数据词库等。

扩展

Tesseract是一款优秀的开源OCR软件,目前由Google维护改进,已发展到5.0版本。从4.0版本起增加了基于LSTM神经网络的识别引擎。也就是说可以训练出自己的词库,让识别的错误率降到趋近于0!

更为友好的是,Tesseract 还提供了针对Vue, React, Angular 等主流框架的模板引用。同时,还提供主流浏览器的扩展引用。

官网地址 https://tesseract.projectnaptha.com/

github地址 https://github.com/naptha/tesseract.js

写在最后

欢迎加入前端实验室读者交流群,群里有不少技术大神,不定时会分享一些技术要点,更有一些资源收藏爱好者会分享一些优质的学习资料。吃瓜、摸鱼、白嫖技术就等你了~

进群方式:在下方公众号后台,回复 111 ,按提示操作即可进群。

如果该文章对你有帮助,那么就点击右下角的 [点赞]「在看」,给一个小小的鼓励吧~

0 人点赞