python如何寻找两个相似的文件_找到相似的文件

与从文本中度量文档相比,从图像度量文档的相似性比较复杂,原因有两个。在这些图像可能在亮度、文本背景、图表或符号方面具有相似性。在

与文本信息相比,从文档包含的图像中找到文档的表示形式通常比较困难。在

解决方案

我的解决方案是使用机器学习来查找文档的表示形式,并使用此表示对文档进行分类。

在这里,我将给Keras实现我提出的解决方案。在

网络类型

我建议使用卷积层进行特征提取,然后使用递归层进行序列分类。我选择keras是因为我很熟悉,它有简单的API来定义一个结合了卷积层和递归层的网络。但代码可以很容易地更改为其他库,如Pytorch、Tensorflow等

图像预处理

神经网络对文档图像进行预处理的方法很多。我在做假设。在图像包含水平文本而不是垂直文本。在

文档图像大小是固定的。如果图像大小不固定,可以使用opencv's resize方法调整大小。在

垂直拆分图像,以便将行作为序列进行馈送(如果可以在空行上生成拆分行,则效率更高)。我将在单个文档中使用Numpy来显示这个。在下面的实现中,我假设单个文档的图像形状是(100,100,3)。

首先,让我们定义图像形状文档图像的形状import numpy as np

image_shape = (100, 100, 3)

split_size = 25 # this should be factor of the image_shape[0]

doc_images = [] #

doc_image = np.zeros(image_shape)

splitted_images = np.split(doc_image,[split_size], axis=0)

doc_images.extend(splitted_images)

doc_images = np.array(doc_images)

网络实现

Keras有ConvLSTM2D层来处理序列图像。网络的输入是通过分割文档图像而产生的图像序列的列表。在

^{pr2}$

理想情况下,这个模型可以工作,因为模型可以从图像中学习文档的层次表示(字符、单词、句子、上下文、符号)。在

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值