在 OCR 中预处理数据有哪些方法?

数据挖掘 监督学习 预处理 方法
2022-03-06 13:00:58

我有一个用于监督学习任务的数据集。

每行是一个向量,其像素图值在 [0,255] 的灰度颜色图范围内,每个向量都标有一个字符。我必须为每个向量分配一个字符。

我的问题:

我可以尝试哪些方法对数据进行预处理以获得更好的准确性?

3个回答

您可以进行图像阈值化,首先通过将向量的每个元素除以 255 来规范化数据,然后对每个元素进行阈值化xix xi=1如果thresholdxi在哪里x是您的数据向量,并且xi是向量的元素,可以根据实验选择阈值,也可以个人选择0.5。通过进行图像阈值处理,我们减少了图像的噪声,从而提高了准确性

将背景级别设置为 0 可能是有利的。

如果你的背景是一个常数值 (a),最好先减去这个值。这样,值就不会通过网络(或您使用的任何东西)传输。其次,最好标准化您的数据。

最后,搜索网络,因为“预处理数据”可能会为您提供所需的所有信息。

学习如何搜索网络;)

一个有趣的方法是使用能量测量对图像进行切片。这个想法是分开字母。您可以通过让线条在图像上“移动”来细分图像。

从某种意义上说,每条线都像一道“雷击”,它沿着阻力最小的路径前进。有一个大致的方向,例如从上到下。通过选择移动图像顶部的一个点来绘制它,然后向下。向下的每一步,它要么直接向下,要么向下一个像素,向左一个,或者向下一个像素,向右一个。它选择能量最少的步骤,这意味着颜色变化最小。您可以使用直线欧几里得距离,您会惊讶于它处理渐变背景等事物的效果,但使用信息度量会更好。通过在水平偏移上增加一点成本可以得到另一个轻微的改进,所以线条或多或少地直线下降,但不完全是直线下降。

您不断细分图像,然后再细分细分,直到您必须接受相当大的能量跳跃,同时强制执行最小细分大小。这应该“主要”为您提供单独的字母,并且这些字母很容易进行 OCR。