一种提取含有二维码的营业执照信息的方法及装置与流程

文档序号:17775513发布日期:2019-05-28 20:03阅读:1121来源:国知局
一种提取含有二维码的营业执照信息的方法及装置与流程

本发明涉及一种二维码信息提取方法及装置,属于深度学习、计算机视觉领域,尤其涉及一种提取含有二维码的营业执照信息的方法及装置。



背景技术:

营业执照是工商行政管理机关发给工商企业、个体经营者的准许从事某项生产经营活动的凭证。为防止不法商铺伪造营业执照或在营业执照有效期到期之后不及时申请新的营业执照,国家公务人员需要定期检查备案工商企业、个体经营者的营业执照信息,包括统一社会信用代码,注册号,名称,类型,经营者,组成形式,注册日期,经营场所,经营范围,登记状态等。

传统营业执照的信息采集都是通过移动终端设备拍摄营业执照图像,再由专人对这些图像上的营业执照信息进行人工核实、备案,费时费力。

光学字符识别(opticalcharacterrecognition,ocr)技术也被用来提取营业执照图片上的文字信息。然而,该技术所试用的对象是背景单一、字体固定的扫描文本图片,而营业执照图片的获取途径一般都是由相机拍摄,光照,角度以及营业执照本身的防伪花纹都会降低字符识别的准确率。

从2014年开始,工商行政管理局颁发了含有防伪二维码的新版营业执照。扫描该二维码即可进入国家企业信用信息公示系统,上面就显示了该营业执照的详细信息,包括注册号,名称,类型,注册日期,核准日期等等。市民可以通过扫描该二维码得到该商户的具体信息以判断该商户的经营是否合法,而国家公务人员则可以通过扫描二维码得到营业执照信息以定期更新备案。

普通的二维码解码设备都要求二维码占输入图片面积的80%以上,且二维码要足够清晰才能够确保二维码能被识别解码。但是,商户的营业执照往往挂在墙上或者放置在展示柜中,近距离的扫描会造成极大的不方便。一般来说,二维码都打印在营业执照的左下角并且只占了营业执照的很小一部分面积,如果将移动终端拍摄的营业执照图像直接输入二维码解码设备往往会导致二维码解码失败。所以将移动终端拍摄的营业执照图像上的二维码准确的定位并截取出来,这对后续二维码识别解码至关重要。

一方面,传统的二维码定位方式是基于连通域的定位,即通过将输入图片灰度化,二值化,闭运算后,将连通域面积最大的部分截取出来。这种二维码定位方法对于图片背景、光照非常敏感。另一方面,营业执照上的国徽或密集的文字在闭运算后也能生成大面积的连通域,这就会导致最后定位的结果不是二维码,使定位精度降低。人们更希望扫描之后能看到清晰明了的实用文字信息,国家公务人员也更希望扫描之后可以得到可编辑的文字信息,这样更新备案商户信息的时候会更加省时省力。



技术实现要素:

发明目的:本发明提供一种提取营业执照信息的方法,通过基于深度学习的目标检测网络对移动终端拍摄的营业执照图象上的二维码进行定位、截取、解码,提高信息提取的准确度和效率。

本发明的另一目的是提供一种基于上述方法的装置。

技术方案:本发明所述的一种提取含有二维码的营业执照信息的方法,包括步骤:

(1.1)获取预处理后含有二维码的营业执照图像作为样本,通过图片预处理扩充样本数量;

进一步地,所述图片预处理包括:对批量获取的营业执照图像分别进行镜像翻转,旋转,添加高斯噪声;

(1.2)读取所述含有二维码的营业执照图像;

(1.3)在所述营业执照图像中标记出二维码所在区域并标注为“qr”类别;

(1.4)将二维码所在区域在所述图像中所处的位置信息及标注类别信息存入可读取文件中,每一张图像对应一个文件;

(1.5)将所述可读取文件以7:3的比例分为训练集和测试集,训练集和测试集之间无交集;

(2)根据基于深度学习的检测方法训练所述数据集,获得二维码定位模型;

优选地,所述基于深度学习的检测方法包括基于tensorflow框架的超快速基于候选区域的卷积神经网络(fasterregion-basedconvolutionalneuralnetwork,fasterr-cnn);

(3)根据所述二维码定位模型对待检测含二维码的营业执照图像进行二维码定位,获得二维码图像;

(4)扫描所述二维码图像,提取所述二维码包含的企业信用信息网站统一资源定位符;

进一步地,所述扫描二维码图像包括利用开源软件包扫描所提取的二维码图像;

(5)根据所述统一资源定位符对应的网页页面信息,抓取所述营业执照的基本信息:

(5.1)访问所述统一资源定位符,获取所述对应的网页页面信息;

(5.2)对所述网页页面信息进行json解析,抓取出所述网页页面信息中营业执照的基本信息。

本发明所述的一种提取含有二维码的营业执照信息的装置,其特征在于,包括:

样本处理模块,用于获取含有二维码的营业执照图像作为样本,通过图片预处理扩充样本数量,制作数据集。

进一步地,所述样本处理模块包括:

样本扩充模块,用于对批量获取的营业执照图像分别进行镜像翻转,旋转,添加高斯噪声,增加样本数量。

数据集制作模块,用于读取所述含有二维码的营业执照图像。在所述营业执照图像中标记出二维码所在区域并标注为“qr”类别。将二维码所在区域在所述图像中所处的位置信息及标注类别信息存入可读取文件中,每一张图像对应一个文件。将所述可读取文件以7:3的比例分为训练集和测试集,训练集和测试集之间无交集。

二维码定位模块,用于根据基于深度学习的检测方法训练所述数据集,获得二维码定位模型,采用所述二维码定位模型对待检测含二维码的营业执照图像进行二维码定位,获得二维码图像。

进一步地,所述基于深度学习的检测方法包括基于tensorflow框架的超快速基于候选区域的卷积神经网络。

二维码识别模块,用于扫描所述二维码图像,提取所述二维码包含的企业信用信息网站统一资源定位符。

网页信息抓取模块,用于根据所述统一资源定位符对应的网页页面信息,抓取所述营业执照的基本信息。

进一步地,所述网页信息抓取模块包括:

获取网页信息模块,用于访问所述统一资源定位符,获取所述对应的网页页面信息;

解析模块,用于对所述网页页面信息进行json(javascriptobjectnotation,javascript对象表示法)解析,抓取出所述网页页面信息中营业执照的基本信息。

有益效果:本发明具有以下优点:

1、运用训练好的基于深度卷积神经网络的二维码定位模型定位营业执照上二维码的位置,受背景,光照,拍摄角度等干扰程度极小,且速度更快,精度更高;

2、通过扫描二维码访问对应的统一资源定位符并在相对应的网页上抓取营业执照信息,较之传统的光学字符识别技术,该方法提取信息速度更快,且不受图片背景、营业执照上的防伪花纹、字体扭曲等影响,在准确定位二维码位置并解码出统一资源定位符后,通过解析网页,构建字典遍历即可完全准确地提取出营业执照信息;

3、直接将输入的营业执照图片输出为营业执照的文字信息,简单快捷,提升了信息提取效率,解放了人力物力,并且方便了人员后续对信息的备案登记。

附图说明

图1为本发明实施例方法流程图;

图2为本发明实施例制作数据集的流程图;

图3为本发明实施例二维码定位模型输出的效果图;

图4为本发明实施例网页营业执照信息抓取的流程图;

图5为本发明装置框图;

图6为本发明样本处理模块的框图;

图7为本发明网页信息抓取模块的框图。

具体实施方式

下面结合附图和实施例对本发明的技术方案作进一步的说明。

本实施例提供了一种提取含有二维码的营业执照信息的方法,解决了传统营业执照信息提取方法费时费力的问题。如图1所示,该方法包括:

步骤s10、获取含有二维码的营业执照图像作为样本,通过图片预处理扩充样本数量,制作数据集。所述图片预处理包括:对批量获取的营业执照图像分别进行镜像翻转,旋转,添加高斯噪声。在不改变图像类别的情况下,增加数据集的样本数量可以提高模型的泛化能力,若批量获取的含二维码的营业执照图片能够达到千张的量级,则可以不采取图片预处理操作。若批量获取的含二维码的营业执照图片数量达不到千量级,为了保证模型的泛化能力,则需要图片预处理操作扩充数据集样本数量。可理解的,所述图片预处理并不限定于镜像翻转,旋转,添加高斯噪声,对于图片进行几何变换,像素变换或二者的随机组合都属于图片预处理。

步骤s20、根据基于深度学习的检测方法训练所述数据集,获得二维码定位模型。所述基于深度学习的检测方法包括基于tensorflow框架的超快速基于候选区域的卷积神经网络(fasterregion-basedconvolutionalneuralnetwork,fasterr-cnn)。可理解的,所述基于深度学习的检测方法并不限定于基于tensorflow框架的fasterr-cnn算法,只要能对标记好的图片进行训练,且在训练过程中迭代若干次(万次的数量级)后达到损失函数收敛并且最终能获取标注物体的类别的效果即可。

从数据中学得模型的过程称为训练或学习,把训练集输入到深度卷积神经网络中,深度卷积神经网络学习含有二维码的营业执照图片的二维码特征,经过上万次的迭代训练后,就可以得到深度学习模型即二维码定位模型。通过二维码定位模型就可以实现对含有二维码的营业执照图片进行二维码定位。

步骤s30、采用所述二维码定位模型对待检测含二维码的营业执照图像进行二维码定位,获得二维码图像。

二维码定位模型输出为在原图上画出二维码所在的矩形范围并产生矩形框的四个顶点坐标。最终获取的完整二维码图像可以通过opencv库的裁剪命令根据四个顶点坐标裁剪原图得到,效果图如图3所示。

步骤s40、扫描所述二维码图像,提取所述二维码包含的企业信用信息网站统一资源定位符。

所述扫描二维码图像包括利用开源软件包扫描所提取的二维码图像。所述开源软件包包括:zxing,zbar,zbarlight。本实施例中使用的开源包为zbarlight,通过scan_codes函数扫描所述定位裁剪后的二维码图像,解码出企业信用信息网站统一资源定位符。

步骤s50、根据所述统一资源定位符对应的网页页面信息,抓取所述营业执照的基本信息。

如图2所示,所述步骤s10包括:

步骤s101、读取所述含有二维码的营业执照图像。

步骤s102、在所述营业执照图像中标记出二维码所在区域并标注为“qr”类别。在本实施例中,标记二维码所在区域运用的是矩形框。可理解的,标记方式不限于矩形框,也可以用多边形或圆形框进行标记。但因为二维码这个类别的目标大部分都是矩形,所以用矩形框标记二维码位置会更加准确。另外,可理解的,标注的类别不限于“qr”类别。因为二维码定位是二分类问题,也就是说对于一张含有二维码的营业执照图片来说,二维码这个目标属于“qr”类别,其余部分都属于“背景”。所以,只要对二维码部分标注上自己能够认识的类别信息即可。

步骤s103、将二维码所在区域在所述图像中所处的位置信息及标注类别信息存入可读取文件中,每一张图像对应一个文件。

在本实施例中,二维码位置信息是标记矩形框的四个顶点坐标。若步骤s102中使用多边形标注,则位置信息是多边形标记框的顶点坐标;若步骤s102中使用圆形框标注,则位置信息是圆形框的原点坐标及半径长度。

步骤s104、将所述可读取文件以7:3的比例分为训练集和测试集,训练集和测试集之间无交集。训练过程中使用的数据称为训练数据,其中每个样本称为训练样本。训练样本组成的集合称为训练集。而测试集则被用来测试模型对于新样本的判别能力。可理解的,训练集和测试集中所述可读取文件的比例不限于7:3,可以设置成任意比例,但需要确保训练集中可读取文件数量至少是测试集的2倍,且训练集与测试集无交集。

如图4所示,所述步骤s50包括:

步骤s501、访问所述统一资源定位符,获取所述统一资源定位符对应的网页页面信息。在本实施例中,访问统一资源定位符的方式是使用requests库。可理解的,访问统一资源定位符的方式不限于使用requests库,但因为本发明的所有步骤都由编程语言python实现,而python调用requests库方便快捷,所以本实施例优选使用requests库访问统一资源定位符。在本实施例中,在获取所述对应的网页的页面信息时,获取的页面信息是json(javascriptobjectnotation,javascript对象表示法)格式。json是一种轻量级的数据交换格式,它采用完全独立于编程语言的文本格式来存储和表示数据。简洁和清晰的层次结构使得json成为理想的数据交换语言。可理解的,在获取所述对应的网页的页面信息时,获取的页面信息不限于json格式,也可以是超文本标记语言(hypertextmarkuplanguage,html)或扩展标记语言(extensiblemarkuplanguage,xml),但因为编程语言python可直接调用json包,简单快捷,并且json数据格式易于人阅读和编写,同时也易于机器解析和生成,能够有效地提升网络传输效率,所以本实施例优选获取的页面信息为json格式。

步骤s502、对所述网页页面信息进行json(javascriptobjectnotation,javascript对象表示法)解析,抓取出所述网页页面信息中营业执照的基本信息。在本实施例中,用编程语言python调用json包解析所访问网页的页面信息。json的语法规则是将对象表示为键值对,数据由逗号分隔,花括号保存对象。例如:{"firstname":"json"},键/值对组合中的键名(如本例中的firstname)写在前面并用双引号包裹,使用冒号分隔,然后紧接着值(如本例中的json)。对于国家企业信用信息公示系统网页,营业执照的信息也由所述的键/值对存储,且键名不会随着营业执照的变化而变化。如下所示,为一个营业执照的json部分解析信息:

{“check_date”:“2017年08月16日”,“corp_name”:“南京市浦口区许建国东大路百货店”,“fare_scope”:“卷烟、雪茄烟零售;百货、食品销售。(依法须经批准的项目,经相关部门批准后方可开展经营活动)”}。通过分析键所对应值我们可以发现,键“check_date”对应的是“核准日期”的内容,键“corp_name”对应的是“商铺名称”的内容,以此类推。根据这个特性,json解析后的内容相当于python编程语言语法规则中的字典,那我们就编写了一个新的字典如下:result_dict={'统一社会信用代码/注册号':'reg_no','名称':'corp_name','类型':'zj_econ_kind','经营者':'oper_man_name','组成形式':'indiv_form_name','注册日期':'fare_term_start','核准日期':'check_date','登记机关':'belong_org','经营场所':'fare_place','经营范围':'fare_scope','登记状态':'corp_status'},用result_dict字典中每一个键所对应的值去遍历json解析后的字典的键,若相等,则打印result_dict中的键名和所对应json解析字典中的值,实现网页上营业执照信息的抓取。

对应本发明实施例提供的一种提取含有二维码的营业执照信息的方法,本发明还提供一种提取含有二维码的营业执照信息的装置,如图5所示,该装置包括:

样本处理模块m1,用于获取含有二维码的营业执照图像作为样本,通过图片预处理扩充样本数量,制作数据集。所述图片预处理包括:对批量获取的营业执照图像分别进行镜像翻转,旋转,添加高斯噪声。在不改变图像类别的情况下,增加数据集的样本数量可以提高模型的泛化能力,若批量获取的含二维码的营业执照图片能够达到千张的量级,则可以不采取图片预处理操作。若批量获取的含二维码的营业执照图片数量达不到千量级,为了保证模型的泛化能力,则需要图片预处理操作扩充数据集样本数量。可理解的,所述图片预处理并不限定于镜像翻转,旋转,添加高斯噪声,对于图片进行几何变换,像素变换或二者的随机组合都属于图片预处理。

二维码定位模块m2,用于根据基于深度学习的检测方法训练所述数据集,获得二维码定位模型。采用所述二维码定位模型对待检测含二维码的营业执照图像进行二维码定位,获得二维码图像。所述基于深度学习的检测方法包括基于tensorflow框架的fasterr-cnn算法,可理解的,所述基于深度学习的检测方法并不限定于基于tensorflow框架的超快速基于候选区域的卷积神经网络(fasterregion-basedconvolutionalneuralnetwork,fasterr-cnn),只要能对标记好的图片进行训练,且在训练过程中迭代若干次(万次的数量级)后达到损失函数收敛并且最终能获取标注物体的类别的效果即可。在一个实施例中,从数据中学得模型的过程称为训练或学习,把训练集输入到深度卷积神经网络中,深度卷积神经网络学习含有二维码的营业执照图片的二维码特征,经过上万次的迭代训练后,就可以得到深度学习模型即二维码定位模型。通过二维码定位模型就可以实现对含有二维码的营业执照图片进行二维码定位。

二维码识别模块m3,用于扫描所述二维码图像,提取所述二维码包含的企业信用信息网站统一资源定位符。所述扫描二维码图像包括利用开源软件包扫描所提取的二维码图像。所述开源软件包包括:zxing,zbar,zbarlight。

网页信息抓取模块m4,用于根据所述统一资源定位符url对应的网页页面信息,抓取所述营业执照的基本信息。

如图6所示,所述样本处理模块m1包括:

样本扩充模块m11,用于对批量获取的营业执照图像分别进行镜像翻转,旋转,添加高斯噪声,增加样本数量。在不改变图像类别的情况下,增加数据集的样本数量可以提高模型的泛化能力,若批量获取的含二维码的营业执照图片能够达到千张的量级,则可以不采取图片预处理操作。若批量获取的含二维码的营业执照图片数量达不到千量级,为了保证模型的泛化能力,则需要图片预处理操作扩充数据集样本数量。可理解的,所述图片预处理并不限定于镜像翻转,旋转,添加高斯噪声,对于图片进行几何变换,像素变换或二者的随机组合都属于图片预处理。

数据集制作模块m12,用于读取所述含有二维码的营业执照图像。在所述营业执照图像中标记出二维码所在区域并标注为“qr”类别。将二维码所在区域在所述图像中所处的位置信息及标注类别信息存入可读取文件中,每一张图像对应一个可读取文件。将所述文件以7:3的比例分为训练集和测试集,训练集和测试集之间无交集。在本实施例中,标记二维码所在区域运用的是矩形框。可理解的,标记方式不限于矩形框,也可以用多边形或圆形框进行标记。但因为二维码这个类别的目标大部分都是矩形,所以用矩形框标记二维码位置会更加准确。另外,可理解的,标注的类别不限于“qr”类别。因为二维码定位是二分类问题,也就是说对于一张含有二维码的营业执照图片来说,二维码这个目标属于“qr”类别,其余部分都属于“背景”。所以,只要对二维码部分标注上自己能够认识的类别信息即可。

如图7所示,所述网页信息抓取模块m4包括:

获取网页信息模块m41,用于访问所述统一资源定位符,获取所述统一资源定位符对应的网页页面信息;

解析模块m42,用于对所述网页页面信息进行json(javascriptobjectnotation,javascript对象表示法)解析,抓取出所述网页页面信息中营业执照的基本信息。

本发明能够实现营业执照信息准确快速的提取。相比于传统的人工登记方法,本发明减少了人力资源,节省了备案营业执照信息所需的时间;相比于光学字符识别的方法,本发明提取的营业执照信息能够达到100%正确,且直接返回文字信息,清晰明了。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一非易失性计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(read-onlymemory,rom)等。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1