使用神经网络进行旋转不变 OCR

信息处理 机器学习 ocr 文本识别 knn
2022-02-06 21:13:48

我有可以向任何方向旋转的带有文本的视频。如果我在每个字母的所有可能旋转度数的图像上训练一个神经网络,是否有可能准确地对字符进行分类?或者,像 HAAR 或 KNN 这样的另一种技术会更好吗?

3个回答

啊哈,这是我听说过的关于 CV 的一个非常有趣的故事。你是生物吗?无论如何,这是我的建议。

  1. 如果您是生物专家并且只想完成这个项目(我的意思是成功识别视频帧中的每只昆虫),请选择条形码、QR 等。它们是标签,尽管它们的内容不能直接被眼睛读取。但是,您将有更好的机会来处理您在使用手动标签时可能遇到的各种问题,例如遮挡、纠错、照明等。有库可以解码这些标签,您只需调用它们即可。

通过这种方式,您将节省大量精力,而不是从事您缺乏经验的事情,而是使用最先进的技术。

  1. 如果您不是生物人或这些手动标签无法更改,您应该首先找到这些标签然后识别它们。不要把这两件事搞砸。第一个任务是检测,第二个任务是识别。换句话说,你需要做两件事:a)。训练文本/非文本分类器。在这个分类器中,您可以使用那些旋转不变的特征。乙)。训练一个字符分类器(例如使用 NN)来决定您从 (a) 中找到的字符候选的类别。

顺便说一句,我认为您不需要以任意角度训练 NN 接受字符。相反,您只需要训练一个接受正常字符的 NN,并在将候选对象输入分类器之前使用图像矩或其他技术对其进行规范化。或者简单地将您的候选人旋转到一定程度(例如每 10 度),然后将它们输入您的分类器并选择具有最高置信度的结果。

如果你能找到文本的中心,那么你可以应用极坐标变换来获得一个特征,其中输入中的旋转变成特征空间中的平移。这可能更容易使用。

如果您可以选择用作标记的符号类型并且不必是字母,请考虑使用旋转不变符号。您可以从每个旋转角度看起来都相同的环和圆圈制作许多图案。

训练神经网络依赖于用适当的特征来表示你的图像。如果您的标签是二进制的(您可以强制执行),我建议使用不变的傅立叶描述符或 Zernike 矩,它们可以对旋转或缩放变化保持不变。简单地说,用这些特征训练你的分类器,你就可以识别旋转的文本。但是请注意,完全旋转不变性是一个强有力的假设,并且会导致您失去判别力,例如“3”与“E”。