如何提高 EasyOCR 的准确性/预测?

Posted

技术标签:

【中文标题】如何提高 EasyOCR 的准确性/预测?【英文标题】:how to improve accuracy/prediction for 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/… 你能建议一些方法,以便它在任何情况下都能提供高精度提供的链接中的此类图片 【参考方案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://***.com/a/50053219/17233488。同样在增加亮度后,您可能会在图像上看到一些阴影,因此,您可以通过此链接,https://***.com/a/44752405/17233488。此外,对于其他任务,请尝试使用上述建议的纠偏和其他形态处理。

【讨论】:

虽然此链接可能会回答问题,但最好在此处包含答案的基本部分并提供链接以供参考。如果链接页面发生更改,仅链接答案可能会失效。 - From Review

以上是关于如何提高 EasyOCR 的准确性/预测?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 sklearn 从决策树模型中提高预测的准确性?

如何评估/提高来自具有不平衡数据集的神经网络的预测的准确性?

Keras DNN 预测模型准确率没有提高

将类划分为子类会提高图像分类的预测准确性吗?

spss模型预测准确率是哪个

随机森林算法怎么提高预测数据的准确率