计算机视觉对扫描文件分类 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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/389025.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

从钱龙数据中读取股票权息信息导入到数据库

从钱龙数据中读取股票权息信息导入到数据库 前面写了如果读股票代码和日线数据,下面是如何读股票的权息信息。 钱龙中权息数据存储在QLDATA/history/shase/weight和QLDATA/history/sznse/weight目录下,每个文件对应一只股票。 与前文一样,只贴…

笑话生成器_爸爸笑话发生器

笑话生成器(If you’re just here for the generated jokes, scroll down to the bottom!)(如果您只是在这里生成笑话,请向下滚动到底部!) I thought: what is super easy to build, yet would still get an approving chuckle if someone found it on …

AWS Amplify Console:赋予应用程序快速部署的能力

AWS re:Invent 2018大会发布了很多新功能和服务,包括新的AWS Amplify Console,一种针对移动Web应用程序的持续部署服务。 AWS Amplify Console承诺可以支持快速发布新功能,避免在部署应用程序时停机,并降低同时更新应用程序客户端…

机器学习实践二 -多分类和神经网络

本次练习的任务是使用逻辑归回和神经网络进行识别手写数字(form 0 to 9, 自动手写数字问题已经应用非常广泛,比如邮编识别。 使用逻辑回归进行多分类分类 练习2 中的logistic 回归实现了二分类分类问题,现在将进行多分类,one vs…

Hadoop 倒排索引

倒排索引是文档检索系统中最常用的数据结构,被广泛地应用于全文搜索引擎。它主要是用来存储某个单词(或词组)在一个文档或一组文档中存储位置的映射,即提供了一种根据内容来查找文档的方式。由于不是根据文档来确定文档所包含的内…

koa2异常处理_读 koa2 源码后的一些思考与实践

koa2的特点优势什么是 koa2Nodejs官方api支持的都是callback形式的异步编程模型。问题:callback嵌套问题koa2 是由 Express原班人马打造的,是现在比较流行的基于Node.js平台的web开发框架,Koa 把 Express 中内置的 router、view 等功能都移除…

Bind9的dns解析服务

前言随着原中国电信集团按南北地域分家,新的中国电信和网通集团随即成立,互联网的骨干网也被一分为二了,北有网通、南有电信。从此,细心的网民可以发现,有些经常访问的网站速度一下子慢了下来,有时候还有访…

上凸包和下凸包_使用凸包聚类

上凸包和下凸包I recently came across the article titled High-dimensional data clustering by using local affine/convex hulls by HakanCevikalp in Pattern Recognition Letters. It proposes a novel algorithm to cluster high-dimensional data using local affine/c…

sqlmap手册

sqlmap用户手册 | by WooYun知识库 sqlmap用户手册 当给sqlmap这么一个url (http://192.168.136.131/sqlmap/mysql/get_int.php?id1) 的时候,它会: 1、判断可注入的参数 2、判断可以用那种SQL注入技术来注入 3、识别出哪种数据库 4、根据用户选择&…

幸运三角形 南阳acm491(dfs)

幸运三角形 时间限制:1000 ms | 内存限制:65535 KB 难度:3描述话说有这么一个图形,只有两种符号组成(‘’或者‘-’),图形的最上层有n个符号,往下个数依次减一,形成倒置…

jsforim

var isMouseDownfalse;var isFirsttrue;var centerdivObj;var ndiv1;var ndiv2;var ndiv3;var kjX;var kjY; window.οnerrοrfunction(){ return true;}; var thurlhttp://qq.jutoo.net/;var wzId12345; function createDiv(){ var sWscreen.width; var sHscree…

决策树有框架吗_决策框架

决策树有框架吗In a previous post, I mentioned that thinking exhaustively is exhausting! Volatility and uncertainty are ever present and must be factored into our decision making — yet, we often don’t have the time or data to properly account for it.在上一…

凑个热闹-LayoutInflater相关分析

前言 最近给组内同学做了一次“动态换肤和换文案”的主题分享,其中的核心就是LayoutInflater类,所以把LayoutInflater源码梳理了一遍。巧了,这周掘金新榜和部分公众号都发布了LayoutInflater或者换肤主题之类的文章。那只好站在各位大佬的肩膀…

ASP.NET Core文件上传、下载与删除

首先我们需要创建一个form表单如下: <form method"post" enctype"multipart/form-data" asp-controller"UpLoadFile" asp-action"FileSave"> <div> <div> <p>Form表单多个上传文件:</p> <input type…

8 一点就消失_消失的莉莉安(26)

文|明鸢Hi&#xff0c;中午好&#xff0c;我是暖叔今天是免费连载《消失的莉莉安》第26章消失的莉莉安▶▶往期链接&#xff1a;▼ 向下滑动阅读1&#xff1a;“消失的莉莉安(1)”2&#xff1a; 消失的莉莉安(2)3&#xff1a;“消失的莉莉安(3)”4&#xff1a;“消失的莉莉安…

透明的WinForm窗体

this.Location new System.Drawing.Point(100, 100); this.Cursor System.Windows.Forms.Cursors.Hand; // 定义在窗体上&#xff0c;光标显示为手形 this.Text "透明的WinForm窗体&#xff01;"; // 定义窗体的标题…

mysql那本书适合初学者_3本书适合初学者

mysql那本书适合初学者为什么要书籍&#xff1f; (Why Books?) The internet is a treasure-trove of information on a variety of topics. Whether you want to learn guitar through Youtube videos or how to change a tire when you are stuck on the side of the road, …

junit与spring-data-redis 版本对应成功的

spring-data-redis 版本:1.7.2.RELEASE junit 版本:4.12 转载于:https://www.cnblogs.com/austinspark-jessylu/p/9366863.html

语音对话系统的设计要点与多轮对话的重要性

这是阿拉灯神丁Vicky的第 008 篇文章就从最近短视频平台的大妈与机器人快宝的聊天说起吧。某银行内&#xff0c;一位阿姨因等待办理业务的时间太长&#xff0c;与快宝机器人展开了一场来自灵魂的对话。对于银行工作人员的不满&#xff0c;大妈向快宝说道&#xff1a;“你们的工…

c读取txt文件内容并建立一个链表_C++链表实现学生信息管理系统

可以增删查改&#xff0c;使用链表存储&#xff0c;支持排序以及文件存储及数据读取&#xff0c;基本可以应付期末大作业&#xff08;狗头&#xff09; 界面为源代码为一个main.cpp和三个头文件&#xff0c;具体为 main.cpp#include <iostream> #include <fstream>…