一种智慧工地的身份证字符识别训练数据生成方法及系统
技术领域
本发明涉及图像处理技术领域,尤其涉及一种智慧工地的身份证字符识别训练数据生成方法以及应用该方法的系统。
背景技术
根据《建筑工人实名制管理办法》是为规范建筑市场用工秩序,加强建筑用工管理,维护建筑施工企业和建筑作业人员的合法权益,保障工程质量和安全生产,促进建筑业健康发展而指定的法规。为响应该管理办法,工地需要对工人进行实名信息采集并进行后续考勤。实名信息一般采用手机app的方式,拍摄人脸照片和身份证照片(或者身份证读卡器)获取身份信息并实现人证合一,而考勤一般在工地入口设置实名制通道安装人脸考勤机,并人脸打卡开闸进入工地。
针对建筑工地的应用场景,存在使用环境复杂、人员复杂、使用手机多样的问题,从而会导致图片质量差、检测率低、身份证信息误识别率高的问题。而对于身份证的字符识别,需要大量数据进行深度学习模型的训练,而身份证照片数据属于敏感信息,公开数据稀缺,同时该识别任务属于监督学习任务,训练数据需要人工标注,而标注数据的准确性也影响模型的训练效果,因此数据标注的人工成本巨大。而数据稀缺是深度序列识别方法在具体场景迁移学习时面临的主要困难,没有海量的真实身份证数据,难以保证深度学习模型的训练以及识别效果。
发明内容
本发明的主要目的在于提供一种不仅可以提供海量的训练数据,还能大大节省人工标注成本的智慧工地的身份证字符识别训练数据生成方法。
本发明的另一目的在于提供一种不仅可以提供海量的训练数据,还能大大节省人工标注成本的智慧工地的身份证字符识别训练数据生成系统。
为了实现上述的主要目的,本发明提供的一种智慧工地的身份证字符识别训练数据生成方法,其包括步骤S1,构建语料库;步骤S2,文字图像生成:对语料库中的每一类语料进行采样,经过字体渲染、形变增强得到二值文本图像;步骤S3,合成文本行图像:基于图像数据融合和基于GAN的图像翻译对二值文本图像进行身份证图像合成,得到身份证文本行图像。
进一步的方案中,将语料库分为三类,第一类语料库为常规中文语料库,第二类语料库为生僻字语料库,第三类语料库为身份证语料库;所述第一类语料库的构建方法为:从网络收集的新闻语料中随机选取生成的内容,在模型训练时,用作预训练通用中文OCR模型的数据支持;所述第二类语料库的构建方法为:在第一类语料库的基础上,通过罗列字体库支持的字符类别,增加在第一类语料库中未出现的生僻字,以及对出现次数极少的字进行补充;所述第三类语料库的构建方法包括身份证语料部分以及人工生成语料部分,在身份证语料部分中,将获取到的原始数据分为训练集和测试集,并且对真实身份证图像提取到的文本行图像进行标注,得到身份证语料;在人工生成语料部分中,通过人工生成的语料内容,对应于身份证的不同字段,分别是“姓名”、“住址”、“出生年月日”、“性别”、“民族”、“身份证号”。
更进一步的方案中,在语料库中的每一类语料中随机选取文本行后,对随机选取文本行进行字体渲染,使用不同的字体,产生含有合成语料的黑白二值文本行图像;对文体渲染后的黑白二值文本行图像通过透视投影变换和空间旋转来进行图像增强。
更进一步的方案中,通过Alpha通道融合将黑白二值文本行图像和从真实身份证图像上采样得到的图案样本融合,得到融合后的黑白图像,以增强图像的逼真性。
更进一步的方案中,通过pix2pix的图像翻译方法搭建pix2pix训练模型,在模型训练阶段,由合成文本行二值化图像、真实身份证文本行图像组合成为训练样本对,让pix2pix训练模型学习映射变换关系;当训练完成后,在数据生成阶段,输入合成的黑白图像,得到具有逼真图案的身份证文字行图像。
由此可见,本发明主要分为生成语料库、文字图像生成、合成文本行图像3个步骤,通过设计一套身份证文本图像的合成数据方案,为智慧工地的身份证字符识别提供海量的训练数据,可以实现智慧工地的人员实名采集中身份证字符识别的训练数据问题,避免字符识别训练的数据稀缺问题和训练数据人工标注准确性和成本问题,从而保证字符识别训练数据量的充足以及标记数据的准确性。
为了实现上述的另一目的,本发明提供的一种智慧工地的身份证字符识别训练数据生成系统,其包括语料库构建单元,用于构建语料库;文字图像生成单元,用于对语料库中的每一类语料进行采样,经过字体渲染、形变增强得到二值文本图像;合成文本行图像单元,基于图像数据融合和基于GAN的图像翻译对二值文本图像进行身份证图像合成,用于得到身份证文本行图像。
进一步的方案中,将语料库分为三类,第一类语料库为常规中文语料库,第二类语料库为生僻字语料库,第三类语料库为身份证语料库;所述第一类语料库的构建方法为:从网络收集的新闻语料中随机选取生成的内容,在模型训练时,用作预训练通用中文OCR模型的数据支持;所述第二类语料库的构建方法为:在第一类语料库的基础上,通过罗列字体库支持的字符类别,增加在第一类语料库中未出现的生僻字,以及对出现次数极少的字进行补充;所述第三类语料库的构建方法包括身份证语料部分以及人工生成语料部分,在身份证语料部分中,将获取到的原始数据分为训练集和测试集,并且对真实身份证图像提取到的文本行图像进行标注,得到身份证语料;在人工生成语料部分中,通过人工生成的语料内容,对应于身份证的不同字段,分别是“姓名”、“住址”、“出生年月日”、“性别”、“民族”、“身份证号”。
更进一步的方案中,在语料库中的每一类语料中随机选取文本行后,对随机选取文本行进行字体渲染,使用不同的字体,产生含有合成语料的黑白二值文本行图像;对文体渲染后的黑白二值文本行图像通过透视投影变换和空间旋转来进行图像增强。
更进一步的方案中,通过Alpha通道融合将黑白二值文本行图像和从真实身份证图像上采样得到的图案样本融合,得到融合后的黑白图像,以增强图像的逼真性。
更进一步的方案中,通过pix2pix的图像翻译方法搭建pix2pix训练模型,在模型训练阶段,由合成文本行二值化图像、真实身份证文本行图像组合成为训练样本对,让pix2pix训练模型学习映射变换关系;当训练完成后,在数据生成阶段,输入合成的黑白图像,得到具有逼真图案的身份证文字行图像。
由此可见,本发明的系统可用于智慧工地及流动人口管理,采用图像融合和GAN数据生成两种方式,满足生成数据的多样性、真实性,不但能提供海量的训练数据,还能大大节省人工标注成本,这对于深度学习的序列文字识别有重大意义,便于推广和使用。
附图说明
图1是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例的流程框图。
图2是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中的字体渲染时使用的每种字体支持的字符数量的示意图。
图3是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中透视投影成像的原理图。
图4是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中透视投影变换的示意图。
图5是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于Alpha通道融合的数据合成示意图。
图6是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于GAN的图像翻译的模型训练阶段的示意图。
图7是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于GAN的图像翻译的模型训练阶段中GAN的工作原理图。
图8是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于GAN的图像翻译的数据生成阶段的示意图。
图9是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于GAN的图像翻译的模型训练阶段中部分训练样本对的示意图。
图10是本发明一种智慧工地的身份证字符识别训练数据生成方法实施例中基于GAN的图像翻译的合成数据结果样例的示意图。
图11是本发明一种智慧工地的身份证字符识别训练数据生成系统实施例的原理图。
以下结合附图及实施例对本发明作进一步说明。
具体实施方式
为了使发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不限用于本发明。
一种智慧工地的身份证字符识别训练数据生成方法实施例:
参见图1,本发明的一种智慧工地的身份证字符识别训练数据生成方法包括步骤S1,构建语料库;步骤S2,文字图像生成;步骤S3,合成文本行图像。在本实施例中,本方法可以生成尽可能丰富充足的、与真实检测图像相似的图像。其中,生成数据与真实数据的相似性主要包括以下两点:
(1)文本内容的相似性。首先,身份证文本内容不同于通用字符识别,其文字有很强的结构性,即由“姓名”、“出生日期”、“住址”和“身份证号”组成。通过对不同字段内容的仿真,控制不同字符的出现频率。同时这些字段包含中文、数字和少量英文字符,而“姓名”和“住址”中会出现生僻字。因此要保证文字种类齐全。另一方面,本发明使用的基于循环神经网络的模型,会提取文字的序列相关性,为了发挥此模型的优势特性,应该根据人名、地址信息来对应产生合成数据的语料内容。例如考虑“地址”条目,在训练数据中应该保证“河南省”出现较多,形态相似的“河”、“何”、“可”同时出现在“南”前面时,误检测的概率较低。
(2)图像特征的相似性。即考虑图像中字体的形态、大小、间距等特征,以及背景图案、噪声、光照变换等。
在本实施例中,当对人员身份证进行字符识别训练数据生成时,首先,执行步骤S1,构建语料库。其中,构建语料库具体包括将语料库分为三类,第一类语料库为常规中文语料库,第二类语料库为生僻字语料库,第三类语料库为身份证语料库;第一类语料库的构建方法为:从网络收集的新闻语料中随机选取生成的内容,在模型训练时,用作预训练通用中文OCR模型的数据支持。
上述的模型训练方法如图6所示,是指采用生成对抗网络(GenerativeAdversarial Network,GAN)对真实数据的图案特征进行监督学习,自动生成仿真图案。GAN包含两个相互对抗的模型:一个是生成模型,用于拟合样本数据分布;另一个是判别模型,用于估计输入样本是来自于真实的训练数据还是生成模型。GAN的思想是受博弈论中二人零和博弈的启发,即参与博弈的双方,各自的收益和损失相加的总和恒等于零。在GAN中,两个网络相互对抗博弈。生成器的目标是,尽量让伪造图片看起来真,降低判别器的准确度,判别器的目标是;尽量判断真实图片为真,判断判别器伪造的图片为假,提高判断真假的准确度。训练GAN时,两个网络轮流对抗优化,来达到最好的生成效果,其工作原理如图7所示:
真实图像的数据分布记为Pdata(x),其中x是一个真实图像,也是一个多维向量。生成器常常采用神经网络来生成相同分布的图像数据。而神经网络只需要具备非线性变换就能通过有限个神经单元,以任意精度拟合任意分布。因此不妨从正太分布中随机抽样得到噪声zz,做为生成网络RR的输入,得到的生成图像的数据分布记为PG(G(z))。则GAN的工作流程可以表示为:
(1)对正态分布抽样得到随机量z,输入生成网络G,得到生成图像G(z),其数据分布为PG(G(z))。
(2)把真实训练数据和生成数据输入判别网络D,使用logistic函数进行普通的二分类。
(3)迭代优化D和G的损失函数,根据D来调整G。
(4)直到D和G收敛,即生成数据分布PG(G(z))逼近真实数据分布Pdata(x)判别器的目标任务是一个二分类问题,采用交叉熵损失函数作为判别器的优化目标,如公式(3.4):
生成器是对抗判别器,则要最大化这个损失函数,综合起来就得到了GAN的目标函数,如公式(3.5):
对于固定的生成器,通过对目标函数求导,令
可以得到一个最优的判别模型D
* G(x),计算方法如公式(3.6)和(3.7):
V(G,D)=∫[Pdata(x)log(D(x))+PGlog(1-D(x))]dx (3.6)
把此时的最优判别器解D* G(x)带入V(G,D),得到公式(3.8)和(3.9):
可见当固定了生成器时,maxV(G,D)可以化为JS散度,表示真实数据和生成数据之间的分布差异。所以优化生成器实际上是在最小化真实数据分布与生成数据的分布差异。当两个分布重合时,目标函数可以取得最小值为-2log(2)。此时判别器值恒等于0.5,已经无法区分生成数据和真实数据了,即到达纳什均衡点,可以停止训练。
在本实施例中,第二类语料库的构建方法为:在第一类语料库的基础上,通过罗列字体库支持的字符类别,增加在第一类语料库中未出现的生僻字,以及对出现次数极少的字进行补充;第三类语料库的构建方法包括身份证语料部分以及人工生成语料部分,在身份证语料部分中,将获取到的原始数据分为训练集和测试集,并且对真实身份证图像提取到的文本行图像进行标注,得到身份证语料;在人工生成语料部分中,通过人工生成的语料内容,对应于身份证的不同字段,分别是“姓名”、“住址”、“出生年月日”、“性别”、“民族”、“身份证号”。
具体地,本实施例的语料库构建分为三种常规中文语料、生僻字语料和身份证语料,其中,常规中文语料是从网络收集的新闻语料中随机抽取生成的内容,在模型训练时,用作预训练通用中文OCR模型的数据支持。常规中文语料的目的是,可以保证中文中常用字、词组的出现频率和基本语义关系,保证样本的丰富程度。当然,为了方便模型训练收敛,样本合成过程中,每条样本的语料长度固定为10个字符。
本实施例的生僻字语料是在常规中文语料的基础上,通过罗列字体库支持的字符类别,增加常规中文语料中未出现的生僻字,以及对出现次数极少的字进行补充,从而缓解样本分布不均衡的现象。
本实施例的身份证语料包括身份证语料部分以及人工生成语料部分,其中,身份证语料部分根据真实身份证文本行的内容产生的,将获取到的原始数据分为训练集和测试集,并且对真实身份证图像提取到的文本行图像进行标注,得到身份证语料。在训练时只使用训练集的身份证语料。
其中,本实施例的原始数据来自于工地现场采集到的真实身份证图片,并对文本行进行人工标注。对于这些身份证图片按照9:1的比例分为训练集和测试集,分别进行人工标注。
人工生成语料部分生成的语料内容,对应于身份证的不同字段,分别是:(1)“姓名”,该字段的语料来自网络上收集的中文姓名大全,随机抽取填补姓名关键字得到语料;(2)“住址”,该字段的语料生成是以2018年全国5级街道地址数据为基础,按照“省”、“市”、“区”、“村”、“街道”的等级依次随机组合而成。包含31个省、343个市、3287个县、43523个镇、673738个村,共计720922个地址。在生成语料时,随机组合不同等级的地址;(3)“出生年月日”、“性别”“民族”、“身份证号”。这几个字段包含的字符类别固定,即字段名、56个民族、10个阿拉伯数字。因此生成时,只需要固定字段名,随机从有限字符集中抽取组合即可。
然后,执行步骤S2,文字图像生成:对语料库中的每一类语料进行采样,经过字体渲染、形变增强得到二值文本图像。其中,经过字体渲染、形变增强得到二值文本图像具体包括在语料库中的每一类语料中随机选取文本行后,对随机选取文本行进行字体渲染,使用不同的字体,产生含有合成语料的黑白二值文本行图像;对文体渲染后的黑白二值文本行图像通过透视投影变换和空间旋转来进行图像增强。
具体地,从语料库到生成二值文本行图像,首先经过语料采样,然后经过字体渲染、形变增强得到二值文本行图像。在对每一类语料进行采样时,在本类型的语料库中随机抽取文本行,长度超过10的文本行随机选取10个字长度截断,长度不足10的文本由下一行补充。不同行的文本连接成同一语料时,随机抽取“,”、“。”、“)”、“”中的一个作为分隔符。
如图2所示,图2展示了使用的每种字体支持的字符数量。本实施例的字体渲染是使用不同的字体,产生含有合成语料的黑白二值文本行图像。在字体渲染时,选择了15种字体,其中8种字体是类似黑体的字体风格,这是为了在随机选取字体进行渲染时,有较大概率字体被渲染成和身份证相同的黑体字。黑体外的字体渲染,可以增强数据的丰富程度,缓和模型过拟合。
由于每一种字体能够支持渲染的字符种类有限,当字体不支持字符时,会出现渲染错误,此时就跳过这条样本,避免出现渲染错误。
在进行字体渲染后,得到工整的二值文本行图像。为了模拟身份证的倾斜、拉伸等形变情况,本实施例使用透视投影变换和空间旋转来进行图像增强。其中,透视投影变换的目的是主动模拟三维模型投影到二维成像平面上的过程,即通过模拟照相机镜头拍摄的焦距和姿态,对字体渲染进行形态变换加工。首先,进行对相机焦距的模拟,透视投影是将相机空间的点从锥视体变换到规则的正方观察体中,其成像原理如图3所示,透视投影变换的过程是将视点变换至正方体中心,把视椎体较小的部分放大,把较大的部分缩小,以形成正方体,最终实现“近大远小”的成像效果。
如图4所示,设θ为y轴方向的视角,a为投影平面X-O-Y的横纵比,n为前成像面到相机距离,f为后成像面到相机距离,则透视变换矩阵可以表示为式(1):
在此基础上进行相机姿态的模拟,方法是添加人为控制的以三个坐标轴为中心的旋转角度。即在形成立方体后,将空间点坐标进行在不同方向上进行旋转,最后取X-O-Y平面坐标为投影面成像坐标,得到变换后的平面图像。其中三维旋转矩阵计算公式如式(2):
然后,执行步骤S3,合成文本行图像:基于图像数据融合和基于GAN的图像翻译对二值文本图像进行身份证图像合成,得到身份证文本行图像。其中,基于图像数据融合包括通过Alpha通道融合将黑白二值文本行图像和从真实身份证图像上采样得到的图案样本融合,得到融合后的黑白图像,以增强图像的逼真性;基于GAN的图像翻译包括通过pix2pix的图像翻译方法搭建pix2pix训练模型,在模型训练阶段,由合成文本行二值化图像、真实身份证文本行图像组合成为训练样本对,让pix2pix训练模型学习映射变换关系;当训练完成后,在数据生成阶段,输入合成的黑白图像,得到具有逼真图案的身份证文字行图像。
上述合成本本行二值图像的形成是由从语料库到生成文本行图像,首先经过语料采集,然后经过字体渲染、形变增强得到二值文本行图像
具体地,文本行图像生成包括基于图像融合的数据合成和基于GAN的数据生成两种方式。其中,如图5所示,基于图像融合的数据合成具体包括使用Alpha通道融合,将黑白二值文本行图像和从真实身份证图像上采样得到的图案样本融合,增强图像的逼真性。在非压缩的32位RGB图像中,每个像素是由四个部分组成:RGB三个颜色分量和一个Alpha通道。在进行身份证图像合成时,为了保证文字上带有背景图案的光照不均的效果,本实施例采用了两步Alpha通道融合:(1)首先将二值文本行图像像素取反,使得文字像素为255全白不透明,背景像素为0全黑透明,得到文字图案掩膜,将文字掩膜图像和背景图像进行融合。(2)在第一步得到的图像上,再次使用背景图像Alpha通道加权覆盖,使得文字颜色被背景图案冲淡,使用Alpha混色对图像源像素和背景像素进行混合,在具体实现时,Alpha通道值首先从[0,255]被归一化到[0,1],最终显示的颜色和四个通道的计算关系可用式(3)表示:
RGB=min(255,foreground*alpha+background*(1-alpha)) (3)
其中背景图案库包含了不同光照条件、不同图案的背景,是在真实数据上人工截取得到的。
具体地,参见图6、图7和图8,基于GAN的图像翻译具体包括基于pix2pix的图像翻译方法,实现从黑白图像到彩色图像的转换。在模型训练阶段,由合成文本行二值化图像、真实彩色身份证文本行图像组合成为训练样本对,如图9所示,让模型学习映射变换关系。当训练完成后,在数据生成阶段,输入人工合成的黑白图像,就能得到具有逼真图案的身份证文字行图像,如图10所示。
在模型训练时,需要对真实身份证文本行图像进行二值化得到约束图像。在二值化时,采用的是OTSU大津法,即最大类间方差法,可以自适应确定图像二值化阈值。该算法按照0至255统计每个灰度值的像素个数,然后遍历0至255阈值,将图像分为前景和背景,分别计算类间方差,最后取类间方差最大的设置为二值化阈值。
在本实施例中,使用大津法对身份证文本行图像进行二值化,对于不同亮度和对比度的图像都能取得较好的效果。但是对于有些模糊的图像,二值图像中文字的笔画出现了一定程度的粘连。
最后,通过样本自生成算法生成大量不同尺度下的随机样本,并用生成的随机样本训练深度卷积神经网络,实现对身份证号码的识别。
由此可见,本发明主要分为生成语料库、文字图像生成、合成文本行图像3个步骤,通过设计一套身份证文本图像的合成数据方案,为智慧工地的身份证字符识别提供海量的训练数据,可以实现智慧工地的人员实名采集中身份证字符识别的训练数据问题,避免字符识别训练的数据稀缺问题和训练数据人工标注准确性和成本问题,从而保证字符识别训练数据量的充足以及标记数据的准确性。
一种身份证件信息采集系统实施例:
参见图11,本发明提供的一种智慧工地的身份证字符识别训练数据生成系统,其包括语料库构建单元、文字图像生成单元、合成文本行图像单元。
语料库构建单元,用于构建语料库。
文字图像生成单元,用于对语料库中的每一类语料进行采样,经过字体渲染、形变增强得到二值文本图像。
合成文本行图像单元,基于图像数据融合和基于GAN的图像翻译对二值文本图像进行身份证图像合成,用于得到身份证文本行图像。
进一步的,将语料库分为三类,第一类语料库为常规中文语料库,第二类语料库为生僻字语料库,第三类语料库为身份证语料库;第一类语料库的构建方法为:从网络收集的新闻语料中随机选取生成的内容,在模型训练时,用作预训练通用中文OCR模型的数据支持;第二类语料库的构建方法为:在第一类语料库的基础上,通过罗列字体库支持的字符类别,增加在第一类语料库中未出现的生僻字,以及对出现次数极少的字进行补充;第三类语料库的构建方法包括身份证语料部分以及人工生成语料部分,在身份证语料部分中,将获取到的原始数据分为训练集和测试集,并且对真实身份证图像提取到的文本行图像进行标注,得到身份证语料;在人工生成语料部分中,通过人工生成的语料内容,对应于身份证的不同字段,分别是“姓名”、“住址”、“出生年月日”、“性别”、“民族”、“身份证号”。
进一步的,在语料库中的每一类语料中随机选取文本行后,对随机选取文本行进行字体渲染,使用不同的字体,产生含有合成语料的黑白二值文本行图像;对文体渲染后的黑白二值文本行图像通过透视投影变换和空间旋转来进行图像增强。
进一步的,通过Alpha通道融合将黑白二值文本行图像和从真实身份证图像上采样得到的图案样本融合,得到融合后的黑白图像,以增强图像的逼真性。
进一步的,通过pix2pix的图像翻译方法搭建pix2pix训练模型,在模型训练阶段,由合成文本行二值化图像、真实身份证文本行图像组合成为训练样本对,让pix2pix训练模型学习映射变换关系;当训练完成后,在数据生成阶段,输入合成的黑白图像,得到具有逼真图案的身份证文字行图像。
由此可见,本发明的信息采集系统可用于智慧工地及流动人口管理,通过采用人脸识别技术和身份证验证或人脸识别技术和居住证验证的双重保障,实现人证合一的人员信息采集要求,提高信息采集的效率和准确度,便于推广和使用。
需要说明的是,以上仅为本发明的优选实施例,但发明的设计构思并不局限于此,凡利用此构思对本发明做出的非实质性修改,也均落入本发明的保护范围之内。