玩了下 tesseract.js,自动识别文字的库,Nodejs环境下发现识别不准

发布于 1周前 作者 gougou168 来自 nodejs/Nestjs

玩了下 tesseract.js,自动识别文字的库,Nodejs环境下发现识别不准

就测了下中文,发现不准啊,只用浏览器测了, npm 还装不了,报错

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

5 回复

自己训练一下字库,准确率高很多


这个得自己训练。自带的库太弱了。识别英文和数字到没问题。

玩过这个库的 C 版本,要自己训练的。以前做过彩票内容自动识别的

训练完识别率还可以

你好!在使用 Tesseract.js 进行文字识别时,确实可能会遇到识别不准确的问题。这通常是由于图像质量、预处理不足或语言模型不匹配等原因造成的。以下是一些改进识别准确性的建议:

  1. 图像预处理: 在识别前对图像进行预处理可以显著提高准确性。例如,可以调整图像的亮度、对比度,或进行二值化处理。

    const Jimp = require('jimp');
    
    async function preprocessImage(imagePath, outputPath) {
        const image = await Jimp.read(imagePath);
        image.grayscale(); // 转为灰度图
        image.contrast(1); // 增强对比度
        image.writeAsync(outputPath);
    }
    
    preprocessImage('input.png', 'output.png').then(() => {
        // 调用 Tesseract.js 进行识别
    });
    
  2. 使用正确的语言包: Tesseract.js 支持多种语言,确保你使用了与图像内容匹配的语言包。

    const Tesseract = require('tesseract.js');
    
    Tesseract.recognize(
        'output.png',
        'eng', // 假设图像是英文
        {
            logger: m => console.log(m)
        }
    ).then(({ data: { text } }) => {
        console.log(text);
    });
    
  3. 调整 Tesseract.js 配置: 你可以尝试调整 Tesseract.js 的其他配置选项,如 OCR 引擎模式等,以进一步优化识别效果。

通过上述方法,你应该能够显著提高 Tesseract.js 在 Node.js 环境下的文字识别准确性。如果问题仍然存在,可能需要考虑使用更高质量的图像或更先进的 OCR 技术。

回到顶部