图片提取文字很神奇?试试三步实现OCR!

原创
07/15 17:00
阅读数 91

点击蓝字

关注我们,让开发变得更有趣

Nono,你怎么看起来不太开心?

武老师,你看我这里有一堆快递单号和银行卡号需要填到系统里,小心翼翼的输入后,还要全神贯注的核对,真是既繁琐又无奈,我简直是这个夏天最烦躁的Nono了😪

那我教你个工具吧,只需要将银行卡或者快递地址信息用镜头轻轻一扫或者拍照上传,就能够自动化的帮你把所需要的信息一键填入。哪里不会扫哪里,so easy!

真的可以吗?(满脸渴望)我还只是个技术小白呢,能学会吗?

这是很常见的基于深度学习的OCR及NLP技术,我们可以利用英特尔开源的OpenVINO工具套件轻松实现,特别适合你这种稍有基础的技术小白。





关于OCR





OCR(Optical Character Recognition,光学字符识别)简而言之就是一种可以将图片、扫描文档或者摄像头捕捉的自然场景中的文字转换为数字化的机器编码形式文字的系统,通过提取转换从而能够更加方便的对这些文字信息来进行数字化的存储和搜索,减少输入时间,并且减轻手工查找、核对的痛苦。本文开头提到的银行账号、快递地址信息等的自动化提取以及输入,是其典型应用。

随着深度学习技术的飞速发展,利用基于神经网络的深度学习技术来实现OCR具有鲁棒性更强、准确度更高、方便使用等特点。

因此接下来我们会重点介绍如何利用深度学习技术来实现OCR。希望通过今天的内容介绍,大家能够大概了解什么是OCR,以及怎么样利用你手边个人电脑或者笔记本上的CPU,快速实现OCR的推理,实现基于深度学习的手写体数字识别。






利用深度学习技术来实现OCR





在本课程,我们会提供一个利用深度学习模型来实现OCR的简单Demo,并利用英特尔开源工具套件OpenVINO来对该模型去进行性能优化与加速。只要利用本次课程提供的源代码,并学会接下来的三个简单步骤,大家就可以非常方便的利用一个Jupyter Notebook页面来实现基于MNIST这样的开源手写数字数据集的手写数字识别。

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






课程操作三步骤





接下来就让我们一起来看看具体的代码吧。

步骤一:进行环境搭建。我们需要安装OpenVINO开发工具包以及相应的Python工具包。

步骤二:进行神经网络模型的搭建与训练。在这里我们只需要上图这样几行代码,就能够搭建一个简单的神经网络模型。

此外,我们还需要去定义最终模型的输出,我们可以如上图增加一层softmax层来获取每个类别的概率,选择概率最大的类别所代表的数字就会作为图片识别的最终结果并进行模型的训练。接下来,大家可以看到整个模型训练已经正在运行了,运行速度也不容小觑。

步骤三:利用OpenVINO提供的模型优化器,Model Optimizer (mo)对整个神经网络模型进行优化。整个优化的过程运行起来,如下图。

在mo运行结束之后,我们就会得到保存为中间格式的模型文件,分别是xml文件和bin文件,这两个模型就保存了文件的模型结构以及模型的权重。

接下来,我们就可以用OpenVINO去进行推理了,推理的代码也是相当的简单方便,整个OCR实现的完整代码,可以参考这里(https://www.kaggle.com/code/raymondlo84/mnist-with-openvino-and-tensorflow-on-kaggle)去进行下载。

最后,我们来看一看整个模型运行的效果吧!我们来打印一些测试的MNIST开源数据集上的手写体数字识别结果。

可以看到这些识别的效果还是相当惊艳的,准确度甚至可以达到99%以上,你还在等什么呢?快来根据我们提供的源代码,对着课程视频和Nono一起来试试吧!

完整代码下载地址:👇👇👇https://www.kaggle.com/code/raymondlo84/mnist-with-openvino-and-tensorflow-on-kaggle


           
           
           
--END--
你也许想了解(点击蓝字查看 )⬇️
   
              
              
              
     
                
                
                

➡️【Notebook系列第六期】基于Pytorch预训练模型,实现语义分割任务

➡️ 使用OpenVINO™ 预处理API进一步提升YOLOv5推理性能

➡️ 【Notebook系列第五期】端午节干货正在派送
➡️ 2022 微软与英特尔黑客松大赛火热报名中

👇欢迎在留言区与我们互动哦,
点击小程序 留言区 即可参与

留言区

          
          
          


扫描下方二维码立即体验 

OpenVINO™ 工具套件 2022.1





点击 阅读原文 立即体验OpenVINO 2022.1

文章这么精彩,你有没有“在看”


本文分享自微信公众号 - OpenVINO 中文社区(openvinodev)。
如有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一起分享。

展开阅读全文
加载中

作者的其它热门文章

打赏
0
0 收藏
分享
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部