如何一键完成信息自动提取与填写?| 开发者实战

openlab_4276841a 更新于 3年前

前言


你有没有过这样的经历,在手机上进行银行转账,结果操作界面上要求你输入对方一长串的账户信息?或者当你寄快递的时候,下单界面上你得一个字一个字的敲入你和收件人那长长的地址信息?结果,你小心翼翼地输入完毕,却还得再回头逐字核对。这个时候你是不是觉得整个过程既繁琐又无奈?你是否会希望手边此时有这样一个工具,只需将银行卡或快递地址信息用镜头轻轻一扫、或者拍照上传,就能自动化地帮你把所需信息一键填入?

其实,今天这样的技术就在你我身边。光学字符识别(OCR)联合自然语言处理处理(NLP)技术就能把这一切变为现实。OCR能够将文件、图片或自然场景中的文字信息进行识别并提取,配合NLP技术的使用,所需提取的相应信息就能够被填入指定的地方。信息的自动化提取及输入也因此能够在眨眼间实现,大大省去我们手动输入的麻烦。以上场景所需的这些基于深度学习的OCR及NLP技术,可以利用英特尔开源的OpenVINO™ 工具套件轻松实现,并可在边缘端(如我们的笔记本电脑等)智能设备上仅使用CPU就能实现推理加速。


今天为您带来我们用OpenVINO™ 工具套件实现基于OCR及NLP轻松实现信息自动化提取的系列博客中的第一篇。向您简要介绍什么是OCR技术,并提供一个利用OpenVINOTM实现OCR的简单demo。只需利用一页Jupyter notebook,依照简单的三个步骤,即可实现基于深度学习的手写体数字识别。

一句话了解OCR


OCR,简而言之,是一种可以将图片、扫描文档、或摄像头捕捉的自然场景中的文字转换为数字化的、机器编码形式文字的系统。由此,这些来自于不同载体中的非结构化的文字可以被提取转换为结构化的文字,从而能够更加方便地对这些文字信息进行数字化存储和搜索,也因此可以省去大量的人工录入信息的时间,以及大大减轻需要手工翻阅大量文档进行信息查找的痛苦。


5分钟、3步骤快速实现OCR


OCR作为一个研究课题,已经被进行了广泛而深入的研究。为了实现OCR,科研人员也提出了多种技术,包括核方法、统计方法、以及结构化模式识别方法等等。随着近年来深度学习技术的飞速发展,利用基于神经网络的深度学习技术来实现OCR具有鲁棒性更强、准确性更高、方便使用等特点,因此,在这里,我们会把重点放在利用深度学习技术来实现OCR。

下面,我们提供一个利用深度学习模型来实现OCR的简单demo,并利用英特尔开源OpenVINO™ 工具套件来对该模型进行性能优化与加速。跟随我们的三个步骤,以及本文所提供的源代码,读者可以非常方便的利用一个Jupyter notebook页面来实现基于MNIST开源手写数字数据集的手写数字识别。


在本demo中,我们需要对每个输入图片进行判断,以确定每张图片中的手写数字是数字0-9这10类中的哪一类。因此,本次OCR demo中需要搭建并训练一个可实现图片分类的神经网络模型,该模型能够为0-9这个类别中的每一类返回该类别的概率,拥有最大概率的那个类别所代表的数字即被判定为该图片中所识别的手写数字。

◆ 步骤一:环境搭建,包括OpenVINO™ 开发工具包以及相应Python工具包的安***r>

◆ 步骤二:神经网络模型的搭建与训练


定义最终模型输出,增加一层Softmax层来获取每个类别的概率,选择概率最大的那个类别所代表的数字作为图片识别的最终结果,并进行模型训练。


◆ 步骤三:利用OpenVINO™ 的模型优化器(MO)对神经网络模型进行优化




并保存为中间表示(IR)格式


再利用OpenVINO™ 工具套件进行推理


整个OCR实现的完整代码请您参考此链接,下载使用:

https://www.kaggle.com/raymondlo84/mnist-with-openvino-and-tensorflow-on-kaggle

结果讨论


利用以上介绍的基于OpenVINO™ 工具套件实现的手写体数字识别神经网络模型,在MNIST开源数据集上得到的部分测试结果如下:



我们可以看到,对于这些手写体数字识别的效果还是相当惊艳的,准确度可以达到99%以上!你还在等什么,快来根据我们提供的源代码,在自己的个人电脑上尝试一下吧!

小结


OCR具有将图片、扫描文档或自然场景中的文字信息识别转化为数字化、机器编码方式存储的优势。将OCR进行文字识别的结果与自然语言处理中的NLP技术相结合,能够实现自动化的信息提取,为我们免去手动输入信息填写的麻烦,并有助于信息的结构化存储与查找。在本次系列博客的第一篇中,我们简要介绍了什么是OCR,并提供了一个简单的基于OpenVINO™ 工具套件实现OCR的Jupyter notebook demo。可以方便读者在阅读的同时,下载源码并在自己的电脑端利用CPU来轻松实现OCR的加速推理。

关于英特尔OpenVINO™ 开源工具套件的详细资料,包括其中我们提供的三百多个经验证并优化的预训练模型的详细资料,请您点击

https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/overview.html

除此之外,为了方便大家了解并快速掌握OpenVINO™ 工具套件的使用,我们还提供了一系列开源的Jupyter notebook demo。运行这些notebook,就能快速了解在不同场景下如何利用OpenVINO™ 实现一系列、包括OCR在内的、计算机视觉及自然语言处理任务。OpenVINO™ notebook的资源可以在Github这里下载安装:

https://github.com/openvinotoolkit/openvino_notebook***r>

原文源自公众号:英特尔物联网

0个评论