繁体   English   中英

如何提高 tesseract.js 的准确性?

[英]How to improve tesseract.js accuracy?

我正在使用网站上的这段代码,但它不够准确

 const worker1 = createWorker();
  const worker2 = createWorker();

  await worker1.load();
  await worker2.load();
  await worker1.loadLanguage("eng");
  await worker2.loadLanguage("eng");
  await worker1.initialize("eng");
  await worker2.initialize("eng");

  scheduler.addWorker(worker1);
  scheduler.addWorker(worker2);

  /** Add 10 recognition jobs */
  const {
    data: { text }
  } = await scheduler.addJob("recognize", image);

这是我正在尝试阅读其文本的图像类型:

在此处输入图像描述

你看起来简单易行,有时 tesseract 无法阅读它。 有没有比 tesseract.js 更好的替代品或任何提高准确性的方法?

使用 Tesseract 应用 OCR 时,重要的是对图像进行预处理,以便检测到的所需文本为黑色,背景为白色 为此,您可以应用一个简单的阈值来获得二值图像。 这是预处理后的图像:

在此处输入图像描述

来自 Tesseract 的结果

52024

我在 Python OpenCV 中实现了这种方法,但您可以将类似的策略应用到 Javascript 中!

import cv2
import pytesseract

pytesseract.pytesseract.tesseract_cmd = r"C:\Program Files\Tesseract-OCR\tesseract.exe"

# Load image and Otsu's Threshold to get a binary image
image = cv2.imread('1.png', 0)
thresh = cv2.threshold(image, 0, 255, cv2.THRESH_BINARY_INV + cv2.THRESH_OTSU)[1]

# Perform OCR
data = pytesseract.image_to_string(thresh, lang='eng', config='--psm 6')
print(data)

cv2.imshow('thresh', thresh)
cv2.waitKey()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM