【问题标题】:how to improve accuracy/prediction for EasyOCR?如何提高 EasyOCR 的准确性/预测?
【发布时间】:2021-09-16 13:31:33
【问题描述】:

我正在尝试从车牌中获取字符。 但是很少得到像

这样的错误预测

我得到的输出是UP74 BD 3465,这是错误的。有很多示例将B 预测为8 等等。

  • 如何提高其准确性?
  • 如何预处理图像以获得正确的预测或任何其他方法?
import matplotlib.pyplot as plt
import cv2
import easyocr
from pylab import rcParams
from IPython.display import Image

rcParams['figure.figsize'] = 8, 16
reader = easyocr.Reader(['en'])

output = reader.readtext(path)
for i in range(len(output)):
    print(output[i][-2])

【问题讨论】:

  • 查看有关为该字体训练 OCR 的信息。即使图片的对比度很差,它似乎也能很好地“看到”字形。
  • @ChristophRackwitz 嗨,我已经经历了一年的过程,但仍然没有得到正确的结果..我的车牌数据为 drive.google.com/drive/folders/… 你能建议一些方法,以便它在任何情况下都能提供高精度提供的链接中的此类图片

标签: python opencv image-processing ocr text-extraction


【解决方案1】:
  • 首先,我建议您阅读有关 OCR 图像增强的主题:LINK

  • 其次,在与上述主题相同的意义上,您可以在裁剪感兴趣区域(ROI),因此输出图像将如下所示:

输出将是:

UP14 BD 3465

import cv2
import easyocr
from pylab import rcParams
# import numpy library
import numpy as np

# define the path
path = 'input.png'

# read the image
img = cv2.imread(path, 0)

# find the white rectangle
th = img.copy()
th[th<200] = 0

bbox = np.where(th>0)
y0 = bbox[0].min()
y1 = bbox[0].max()
x0 = bbox[1].min()
x1 = bbox[1].max()

# crop the region of interest (ROI)
img = img[y0:y1, x0:x1]

# histogram equalization
equ = cv2.equalizeHist(img)
# Gaussian blur
blur = cv2.GaussianBlur(equ, (5, 5), 1)

# manual thresholding
th2 = 60 # this threshold might vary!
equ[equ>=th2] = 255
equ[equ<th2]  = 0

# Now apply the OCR on the processed image
rcParams['figure.figsize'] = 8, 16
reader = easyocr.Reader(['en'])

output = reader.readtext(equ)

for i in range(len(output)):
    print(output[i][-2])

【讨论】:

  • 嗨,我已经完成了一年的过程,但仍然没有得到正确的结果..我的车牌数据为 drive.google.com/drive/folders/… 你能建议一些方法,以便它在任何此类图像上提供高精度在提供的链接中。我被困在这一点上谢谢
  • @k_p "仍然没有得到正确的结果" 对于这张图片或你的意思是其余的数据集?因为我只用给定的图像测试了这段代码!
  • 嗨,我想要任何通用代码,以便它可以在任何车牌(链接中提供)上工作,这应该在我们的自动车牌识别用例中工作,对每个图像进行图像处理将是困难......你能帮我写一个通用代码,它应该在链接中的最大图像上工作,我已经尝试了很多,但没有得到正确的代码提前谢谢
  • @k_p 我不确定是否有不使用深度学习的通用解决方案。
  • 我已经尝试过深度学习..建立一个用于识别字符的 CNN 模型......但没有得到一个强大的方法来分离每个字符,因此我应用了字符识别方法。有什么想法吗?
【解决方案2】:

您提供的图像太暗,所以如果您愿意,可以点击此链接https://stackoverflow.com/a/50053219/17233488。同样在增加亮度后,您可能会在图像上看到一些阴影,因此,您可以通过此链接,https://stackoverflow.com/a/44752405/17233488。此外,对于其他任务,请尝试使用上述建议的纠偏和其他形态处理。

【讨论】:

  • 虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review
猜你喜欢
  • 2020-02-12
  • 2020-01-25
  • 2019-06-07
  • 2020-09-26
  • 1970-01-01
  • 2018-11-28
  • 1970-01-01
  • 1970-01-01
  • 2020-12-08
相关资源
最近更新 更多