首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >自然场景下数字识别的深度学习解决方案

自然场景下数字识别的深度学习解决方案
EN

Stack Overflow用户
提问于 2021-01-19 11:05:26
回答 2查看 770关注 0票数 5

我正在处理一个问题,我想自动读取图像上的数字,如下所示:

可以看到,图像是相当具有挑战性的!不仅在所有情况下这些线路都没有连接,而且对比也有很大的不同。我的第一次尝试是在预处理之后使用pytesseract。我还创建了一个StackOverflow post 这里

虽然这种方法可以很好地处理单个图像,但并不是通用的,因为预处理需要太多的手动信息。到目前为止,我得到的最好的解决方案是迭代一些超参数,例如阈值、侵蚀/膨胀的过滤器大小等。然而,这在计算上是很昂贵的!

因此,我开始相信,我正在寻找的解决方案必须以深入学习为基础。我在这里有两个想法:

  • 在类似的任务中使用预先训练过的网络
  • 将输入图像分割成单独的数字,并以MNIST方式自己训练/整理网络。

关于第一种方法,我还没有找到好的东西。有人对此有想法吗?

关于第二种方法,我首先需要一种方法来自动生成单独数字的图像。我想这也应该是基于深度学习的。之后,我可以通过一些数据增强来取得一些好的结果。

有人有想法吗?)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-02-26 02:12:33

关于你的第一种方法,

有两个综合准备的数据集:

  1. 文本识别数据由9M幅图像组成。
  2. 野地的SynthText由8M图像组成。

我已经使用上述数据集来识别板坯图像上的文本。图像是相当具有挑战性的,但现在我达到了90%以上的准确性。我已经实现了以下模型来解决这一任务。它们是:

  1. 用于文本本地化的工艺
  2. 用于文本识别的深层文本识别

如果你在工作

各种图片,我强烈鼓励您尝试深层文本识别。它是四个阶段的框架。

  1. 对于转换,可以选择TPSNone。使用TPS,它显示了更高的性能。他们实现了空间变压器网络
  2. 在特征提取阶段,您可以选择:ResNetVGG
  3. 序贯阶段,BiLSTM
  4. 处理CTC作为预测阶段。

它们在TPS-ResNet-BiLSTM-Attn版本上获得了最好的精度。你可以轻松微调这个网络,我希望它能解决你的任务。该模型使用上述数据集进行培训。

票数 2
EN

Stack Overflow用户

发布于 2021-02-22 22:33:04

你的任务很有挑战性。我有几个想法,也许会在路上帮你。首先,如果您得到了正确的图像,您可以使用EasyOCR。它使用了一种复杂的算法来检测图像中的字母,称为工艺,然后使用CRNN识别它们。它提供了非常细粒度的控制符号检测和识别部分。例如,在对图像进行手动处理(灰度缩放、对比度增强和锐化)之后,我得到了

并使用以下代码

代码语言:javascript
复制
import easyocr
reader = easyocr.Reader(['en']) # need to run only once to load model into memory
reader.readtext(path_to_file, allowlist='0123456789')

结果为3119743231197396

现在,对于对比度恢复部分,opencv有一个名为CLAHE的工具。如果运行以下代码

代码语言:javascript
复制
img = cv2.imread(fileName)
gray = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
blurred = cv2.GaussianBlur(gray, (25, 25), 0)
grayscaleImage = gray * ((gray / blurred) > 0.01)  
clahe = cv2.createCLAHE(clipLimit=6.0, tileGridSize=(16,6))
contrasted = clahe.apply(grayscaleImage)

在原始图像上,您将得到

它们在视觉上和上面的非常相似。我相信,经过一些清洁,你可以让它是可识别的,而不是太多的摆弄超参数。

最后,如果您想培训自己的深度学习OCR,我建议您使用角光机。它使用与EasyOCR相同的算法,但提供了一个端到端的训练管道来建立新的OCR模型。它涵盖了所有必要步骤:数据集下载、数据生成、增强、培训和推断。

考虑到深造解决方案在计算上是非常繁重的。祝好运!

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65790276

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档