You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

Node.js环境下Tesseract.js无法加载语言包,OCR识别失败求助

解决tesseract.js语言包加载失败的问题

我之前也碰到过一模一样的问题!这通常是因为tesseract.js默认尝试从远程下载语言包,但网络或者路径配置问题导致加载失败。结合你已经通过Homebrew安装了正常工作的Tesseract,试试下面这些方案:

方案1:直接使用本地已有的语言包

既然你的系统里已经有Homebrew安装的Tesseract,它的语言包默认放在/usr/local/share/tessdata/(macOS环境)。你只需要在代码里指定这个路径,让tesseract.js直接调用本地的语言包:

const Tesseract = require('tesseract.js');
const filename = 'Screen Shot 2018-01-13 at 16.51.06.png';

Tesseract.recognize(
  filename,
  'eng',
  {
    langPath: '/usr/local/share/tessdata/', // 指向Homebrew安装的tessdata目录
    logger: m => console.log(m) // 可选,输出更详细的日志信息
  }
)
.progress(p => { console.log('progress', p) })
.catch(err => console.error(err) )
.then(result => { console.log(result.text); process.exit(0); });

这个思路能跳过远程下载步骤,直接复用你已经验证可用的语言包,大概率能解决“Failed loading language 'eng'”的报错。

方案2:手动下载语言包到项目目录

如果你不想依赖系统级的Tesseract,可以手动下载英文语言包,放到项目的专属目录中:

  • 创建一个./tessdata/文件夹在你的项目根目录
  • 下载英文训练数据文件(eng.traineddata),放到这个文件夹里
  • 修改代码中的langPath./tessdata/

方案3:更新tesseract.js到最新版本

部分旧版本的tesseract.js存在语言包加载的兼容性问题,尝试更新到最新版本:

npm uninstall tesseract.js
npm install tesseract.js@latest

我当时用方案1就顺利解决了问题,你可以优先试试这个!

内容的提问来源于stack exchange,提问作者user3310334

火山引擎 最新活动