大家好,我是前端实验室的大师兄!
今天大师兄给大家分享一个开源的 OCR 识别库:Tesseract.js
。
从此可以摆脱某些 OCR API 的调用次数限制问题了。
前言
Tesseract.js
一个 纯Javascript编程语言的 ocr 识别库,简单实用。
支持包括中英文等100多中语言的图片和视频文字识别,底层封装了Tesseract OCR引擎来实现。
实时OCR:
安装
Tesseract.js
已经迭代了很多版本了。它可以在在 html 页面上通过 script 标签引入CDN 外链使用
<!-- 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
,按提示操作即可进群。
如果该文章对你有帮助,那么就点击右下角的 [点赞]「在看」,给一个小小的鼓励吧~