如何预处理 theano/lasagne 网络中的多页图像输入?

数据挖掘 神经网络 图像分类 预处理 西阿诺
2022-03-07 08:20:05

我正在尝试使用卷积神经网络 (CNN) 对多页文档进行分类。语料库中每一页的内容只包含文本(即没有照片或图标),不同的文档可能有不同的形状(高度和宽度)。我希望我的分类方法使用每个文档中的所有页面,而不仅仅是第一页。

据我所知,CNN(如 theano)的输入需要标准化的形状。我的第一个想法是创建一个连接所有页面的单个图像数组。但是然后我将不得不调整所有连接页面的大小/零填充以匹配具有最大页数的文档的长度,并将其用作连接页面集的最低高度和宽度。如果我不使用这种策略,我可能会失去图像中文字的分辨率,但这是一个巨大的输入向量。

我觉得将每个文档的页面分成单独的样本将是标准化输入预处理的更好方法,但是如果我只是在每个文档的松散页面上进行训练,我不知道如何对整个文档进行分类。任何人都可以在这方面给我建议吗?

1个回答

第一点是,卷积神经网络在这么大的图像上训练会非常昂贵。您可以允许的最小尺寸是num_pixels_per_letter x num_letters_per_row_or_col.

听起来您想要完成两个任务:OCR 然后是文档分类。鉴于您在这些文档中主要使用文本,几乎可以肯定的是,使用更传统的 OCR 方法会为您提供更好的服务。如果您想要或需要将 NN 用于 OCR 部分,您几乎肯定需要使用滑动窗口。有关如何做到这一点的灵感,您可以查看按顺序处理图像的循环神经网络

一旦你有了文本,还有比神经网络更简单的方法来处理文本,但它们可以取得很好的效果。要处理不同的文档长度,您可以使用像LSTM这样的 RNN 架构。或者您可以使用段落向量,它为您完成大部分繁重的工作,并为您提供文本的 N 维表示。