计算机视觉对扫描文件分类 OCR

通过计算机视觉对扫描文件分类

一种解决扫描文档分类问题的深度学习方法

在数字经济时代, 银行、保险、治理、医疗、法律等部门仍在处理各种手写票据和扫描文件。在业务生命周期的后期, 手动维护和分类这些文档变得非常繁琐。

对这些非机密文档进行简单而有意义的自动化处理,将使维护和利用信息变得容易的多,并显著减少手工工作。
在这里插入图片描述

本案例研究的目的是开发一个基于深度学习的解决方案,可以自动分类的文件

Data:
在这个案例研究中,我们将使用RVL-CDIP (Ryerson Vision Lab Complex Document Information Processing)数据集,该数据集包含16个类中的400,000张灰度图像,每个类包含25,000张图像。有32万张训练图像、4万张验证图像和4万张测试图像。图像的大小,使他们的最大尺寸不超过1000像素。这个数据集的大小超过200 GB。

Business-ML问题映射:
我们可以将业务问题映射为一个多类分类问题。当前的数据集中有16个类,我们需要根据被扫描文档的像素值来预测文档的类,这使得问题更加困难。但是等等,**为什么我们不能使用OCR来提取文本并应用NLP技术呢?**是的,我们对这个想法也很兴奋,但是低质量的扫描导致了文本提取的低质量。在实际的业务场景中,我们也无法控制扫描的质量,因此依赖OCR的模型可能会在适当的预处理后泛化能力较差。

KPI和业务约束:
数据集相当平衡。因此,我们选择准确性作为主要指标,微平均F1分数作为次要指标来惩罚分类错误的数据点。我们还使用了混淆度量来验证模型的性能。有一个中等的延迟需求,没有特定的可解释性需求。

我们能从文档的像素强度和大小中得到任何信息吗?

让我们尝试使用箱形图来可视化文档的平均像素强度和大小
在这里插入图片描述
从box plot中我们可以观察到,某些类型的扫描文档的大小与其他类型的非常不同,但是也存在重叠。例如,类13和类9的文件大小差别很大,但是类9的大小与类4和类6、类7重叠。
在这里插入图片描述
我们可以观察到75%的案例中,class 4的平均像素强度在160-230像素之间。但是对于大约50%的情况,它也与类6的平均像素值重叠。对于其他类,平均像素值重叠。

分析方法

为了解决这个问题,我们对扩充数据进行卷积神经网络(CNN)训练。我们尝试在有和没有数据扩充的情况下训练模型,两种结果进行比较。

在这里插入图片描述
太棒了!但是如何确定网络架构呢?你是如何训练网络的,因为数据不能一次放入内存?

从零开始训练神经网络需要大量的时间和集中计算资源,为了避免这种情况,我们采用了转移学习。我们从在ImageNet数据集上训练的预训练网络的权值开始,然后在我们的数据集上重新训练。针对这类问题的当前SOTA模型使用域内和域内转移学习,其中图像被分成四个部分:页眉、页脚、左身体和右身体。首先利用预先训练好的VGG16模型对整个图像(域内)进行训练,然后利用该模型对部分图像(域内)进行训练。

在这个实验中,我们采用了一种稍微不同的方法。我们没有使用VGG16进行域内转移学习,而是训练了两个并行模型VGG16和InceptionResNetV2,并使用它们的堆栈作为我们的最终模型。我们的假设是,由于这两种模型的架构不同,它们会学习图像的不同方面,将它们叠加起来会得到很好的泛化效果。但是我们如何选择这些模型呢?这基本上来自交叉验证的结果。我们尝试了各种网络架构,如VGG16、VGG19、DenseNet、ResNet、InceptionNet,并选出了最好的两个。

我们使用keras的ImageDataGenerator类对训练数据进行预处理和加载,而不是在内存中加载整个数据。

在这里插入图片描述
好的, 但是如何处理超参数呢?

对于任何CNN,超参数是:学习率,池大小,网络大小,批量大小,优化器的选择,正则化,输入大小等。

学习率对神经网络的收敛性有重要影响。在深度学习问题中使用的损失函数是非凸的,这意味着在存在多个局部极小值和鞍点的情况下,寻找全局极小值不是一件容易的事情。如果学习率太低,它会慢慢收敛;如果学习率太高,它会开始振荡。在这个案例研究中,我们使用了一种叫做“循环学习速率”的技术,其目的是训练神经网络,使每个训练批次的学习速率以循环方式变化。

在这里插入图片描述
但为什么会这样呢? 在CLR中,我们在一个阈值内改变学习率。周期性的高学习率有助于克服它的鞍点或局部极小值。

对于其他超参数,我们开发了自定义实用程序函数来检查哪种配置工作得更好。假设10个epoch之后,准确率是47%我们将使用此模型作为测试基线,并使用实用工具函数检查哪个配置集(即batch_size/optimizer/learning_rate)将在以后的epochs带来更高的准确性

结果

我们使用VGG16模型获得了90.7%的准确率,使用InceptionResNetV2获得了88%的准确率。上述两种模型的比例叠加模型训练正确率为97%,测试正确率为91.45%。

confusion matrix
precision matrix

you can find the full implementation here.

Citation:

  1. A. W. Harley, A. Ufkes, K. G. Derpanis, “Evaluation of Deep Convolutional Nets for Document Image Classification and Retrieval,” in ICDAR, 2015.
  2. https://arxiv.org/abs/1506.01186
  3. https://www.researchgate.net/publication/332948719_Segmentation_of_Scanned_Documents_Using_Deep-Learning_Approach
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值