如何创建OCR数据集?

2024-05-16 02:58:11 发布

您现在位置:Python中文网/ 问答频道 /正文

我只是一个机器学习的初学者。到目前为止,我刚刚学习了监督机器学习,学习了一些基本的图像分类和回归问题。我刚刚用sklearn load_digits()做了一个图像分类问题,它有大约1800个0-9(description of the dataset)字符的图像。我想做的是制作自己的数据集,而不是从SKL加载数据集,如:

from sklearn.datasets import load_digits

我想使用我自己的数据集。那么,有人能指导我吗?我能用CSV或任何其他格式制作自己的数据集,以便在我的监督机器学习技术中使用它吗


Tags: ofthe数据from图像机器分类load
1条回答
网友
1楼 · 发布于 2024-05-16 02:58:11

第一件事是理解您的用例。OCR和图像分类任务之间存在差异。让我们看看这两种情况

  1. 图像分类:该任务类似于您可能在ML中看到的标准监督任务,仅在本例中,我们对图像进行分类,而不是对工作表中的数据进行分类。数据整理是图像分类涉及的主要任务之一,完全的准确性取决于处理数据的方式。假设给定一张你想识别的图像是狗还是猫。这将需要你收集至少500张不同类型的狗和猫的图片。您还可以通过拍摄狗的图像来人工创建图像,然后使用python OpenCV库添加一些噪波或旋转,并保存更新后的图像。这样,您可以在短时间内收集更多图像。一旦你有了所有你想要分类的类别(狗和猫)的图像,你就可以选择模型了。CNN(卷积神经网络)被认为是最好的图像分类任务,但从头开始创建和调整它们可能需要很长时间。我的建议是使用Tensorflow对象检测API。该API为初学者提供了一个很好的框架,可以使用许多经过预训练的模型构建自己的图像分类器或对象检测器https://github.com/tensorflow/models/tree/master/research/object_detection

  2. OCR:OCR是图像分类的一个复杂应用,它不容易从头开始构建。在您在问题中提到的示例中,虽然它看起来像OCR,但它或多或少是一个图像分类任务,因为您有一张您试图分类的每个字符的图像。在现实世界中,OCR将涉及手写笔记,并将手写笔记中的文本提取到系统中,这是一个复杂的过程。有一些预构建的库,如Tesseract,专门研究OCR,它获取输入图像并在其上写入文本,然后以字符串格式返回图像中的文本。然而,这些库在涉及手写文本时失败了,因为这些文本很难阅读。如果您对从头开始构建OCR系统感兴趣,则需要执行大量的图像处理任务。假设你有一张图片,上面有某人写的电话号码。OCR系统首先必须通过在图像中的每个数字周围绘制检测框来分别检测每个数字(您可以使用上面提到的tensorflow对象检测系统api),但假设您有一个字母、数字和符号的图像,这将是一项复杂的任务,首先要收集每个字母表、数字和符号的单独图像,这可能很困难。我的建议是再次使用API,这是免费的,也非常准确。我使用了MicrosoftCognitiveVisionAPI,该API具有OCR功能,可以检测图像中的任何类型的文本。这将减少您仅正确清理图像的工作量

相关问题 更多 >