Tesseract.js 是一个基于浏览器的 OCR(光学字符识别)库,它可以从图片中提取文本。该库使用 WebAssembly 来运行 Tesseract OCR 引擎,允许在前端 JavaScript 环境中进行图像文字识别,无需依赖后端服务器处理。Tesseract.js 支持多种语言,具有良好的扩展性和易于使用的 API。
主要功能:
跨平台支持:在浏览器和 Node.js 中都可以运行,方便在前端应用中直接使用 OCR。
多语言识别:支持包括中文、英语、法语等在内的 100 多种语言的文本识别。
异步处理:提供 Promise 和回调的异步 API,可以轻松处理长时间的图像处理任务。
图片预处理:支持对图像进行一些预处理操作(如灰度化、二值化等),提高识别准确率。
进度反馈:提供识别进度信息,使用户能够看到处理的实时状态。
Tesseract.js 开源地址:https://github.com/naptha/tesseract.js
在线测试地址:https://tesseract.projectnaptha.com/
图像识别:
视频实时识别:
英文测试效果:
中文测试效果:
俄语测试:
安装
方法 1:npm 或 yarn
需要 Node.js v14 或更高版本。
安装最新版本:
npm install tesseract.js
yarn add tesseract.js
安装指定版本:
npm install tesseract.js@3.0.3
yarn add tesseract.js@3.0.3
方法 2:使用 CDN 库
tesseract.js 可以在本地浏览器直接使用,所以我们可以使用本地库或第三方 CDN 库来使用:
<script src="https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.min.js"></script>
另外,可以使用 ESM 构建(用于 import 语法)在以下链接找到:
https://cdn.jsdelivr.net/npm/tesseract.js@5/dist/tesseract.esm.min.js
安装完成后,我们就可以开始测试使用了:
import Tesseract from 'tesseract.js';
Tesseract.recognize(
'path_to_image.jpg', // 要识别的图像路径或 URL
'eng', // 语言代码,'eng' 代表英语
{
logger: m => console.log(m) // 用于输出识别进度
}
).then(({ data: { text } }) => {
console.log(text); // 输出识别出的文本
});
这个开源项目虽然识别率有待提高,但好处就是直接在前端浏览器中执行,无需后台服务,对一些特定场景还是非常有用的,比如应用于简单的验证码识别,帮助用户自动填写。