我有一个用于监督学习任务的数据集。
每行是一个向量,其像素图值在 [0,255] 的灰度颜色图范围内,每个向量都标有一个字符。我必须为每个向量分配一个字符。
我的问题:
我可以尝试哪些方法对数据进行预处理以获得更好的准确性?
我有一个用于监督学习任务的数据集。
每行是一个向量,其像素图值在 [0,255] 的灰度颜色图范围内,每个向量都标有一个字符。我必须为每个向量分配一个字符。
我的问题:
我可以尝试哪些方法对数据进行预处理以获得更好的准确性?
您可以进行图像阈值化,首先通过将向量的每个元素除以 255 来规范化数据,然后对每个元素进行阈值化 如果在哪里是您的数据向量,并且是向量的元素,可以根据实验选择阈值,也可以个人选择0.5。通过进行图像阈值处理,我们减少了图像的噪声,从而提高了准确性
将背景级别设置为 0 可能是有利的。
如果你的背景是一个常数值 (a),最好先减去这个值。这样,值就不会通过网络(或您使用的任何东西)传输。其次,最好标准化您的数据。
最后,搜索网络,因为“预处理数据”可能会为您提供所需的所有信息。
学习如何搜索网络;)
一个有趣的方法是使用能量测量对图像进行切片。这个想法是分开字母。您可以通过让线条在图像上“移动”来细分图像。
从某种意义上说,每条线都像一道“雷击”,它沿着阻力最小的路径前进。有一个大致的方向,例如从上到下。通过选择移动图像顶部的一个点来绘制它,然后向下。向下的每一步,它要么直接向下,要么向下一个像素,向左一个,或者向下一个像素,向右一个。它选择能量最少的步骤,这意味着颜色变化最小。您可以使用直线欧几里得距离,您会惊讶于它处理渐变背景等事物的效果,但使用信息度量会更好。通过在水平偏移上增加一点成本可以得到另一个轻微的改进,所以线条或多或少地直线下降,但不完全是直线下降。
您不断细分图像,然后再细分细分,直到您必须接受相当大的能量跳跃,同时强制执行最小细分大小。这应该“主要”为您提供单独的字母,并且这些字母很容易进行 OCR。