基于多模型联合的身份证人脸验证应用研究

2021-08-27 06:38张太红赵昀杰迪力夏提多力昆
计算机技术与发展 2021年8期
关键词:证件人脸身份证

胡 强,张太红,赵昀杰,迪力夏提·多力昆

(新疆农业大学 计算机与信息工程学院,新疆 乌鲁木齐 830000)

0 引 言

近年来,由于机器学习的快速发展,同时伴随着人脸验证精度的提高,基于该项技术而衍生的产品在大众生活中呈现“井喷”之势,如日常生活中应用较广泛的手机人脸解锁、小区门禁、支付宝刷脸支付等。人脸的验证相对于声音、指纹、掌纹、虹膜等生物特征,具有以下优势:数据采集简单;普遍的可接受性;应用的便捷性;较好的安全性。并且人脸特征具有自然性、方便性和非接触性等优点,使其在人机交互、身份信息验证、地方安全监控等方面具有巨大的应用前景。现阶段大量Web应用中的证件人脸验证模块,主要通过简单的人脸检测和人脸识别来完成,忽视了证件的质量与相关性,如要求用户上传居民身份证及本人照片完成人脸实名认证,但部分用户并未按要求上传证件,其通过上传驾驶证、社保卡等其他证件来变相完成人脸验证。而融入基于目标检测的证件判别方法可有效解决该问题。

人脸验证最关键的两个步骤是人脸检测和人脸识别,随着深度学习在计算机视觉领域的快速发展,越来越多基于卷积神经网络的人脸验证方法被相继提出。其中效果显著的人脸检测算法有Joint Cascade[1],Cascade CNN[2],MTCNN[3]。主流的人脸识别算法有:DeepID[4-5]系列、FaceNet[6];DeepID利用卷积神经网络提取人脸特征,在LFW人脸数据集上识别率可以达到97.45%,但受限于训练样本数量;在DeepID的基础上引入了验证信号的DeepID2表现更好,识别率达到了99.15%;FaceNet采用三元组损失函数对网络模型进行训练,其在LFW人脸数据集上的识别率可以高达99.63%。典型的目标检测算法有:SPP-Net[7]、Fast-RCNN[8]、YOLO[9]、Mask R-CNN[10]算法等,YOLO算法的检测速度很快但精度不是很好,而Mask R-CNN检测精度相比于YOLO精度好了很多,也是由于Mask R-CNN良好的表现,众多学者将它应用在自己的研究中,如李琦结合双目视觉来测量牛体尺寸[11],喻立春用它识别火焰图像[12],姜红花应用该算法来检测玉米间的杂草[13],张泽堃用它完成服装识别与分割[14]等。该文使用Mask R-CNN算法对身份证及其关键信息进行检测,并判别证件质量,联合MTCNN模型与FaceNet模型完成人脸的验证,在不降低人脸识别精度的情况下,保证了上传证件的有效性和安全性。

1 多模型联合的人脸验证

新疆马产业科技创新平台共有马匹记、马场管理、马匹竞拍、天马赛事等几大模块,用户想要使用该平台均需要完成实名认证。该平台落地于新疆伊犁昭苏县,据统计昭苏县主要少数民族为哈萨克族、维吾尔族、蒙古族、柯尔克孜族、回族。占当地人口最大比重的哈萨克族牧民是养马业的主力军[15]。该文主要研究该平台的用户实名认证模块,将人脸验证流程分为:证件分类、证件质量检测、人脸检测、人脸验证。

首先使用Mask R-CNN网络进行身份证的判别和检测,训练及测试数据集为真实环境下拍摄的照片,通过交叉验证法[16]反复训练与测试,选择误差最小的模型。其次将Mask R-CNN网络勾画出的人像送入MTCNN中进行人脸检测及对齐,最终在检测到人脸的基础上使用FaceNet计算人脸的嵌入向量,通过计算人脸向量间的欧氏距离对人脸进行验证。整个验证流程如图1所示。

图1 系统整体实现模型

1.1 基于目标检测的证件辨别方法

1.1.1 Mask R-CNN框架

Mask R-CNN是何凯明在2017年基于以往的Faster-RCNN构架提出的新卷积网络,该算法在2016年荣获微软大型图像数据集处理比赛的冠军,在有效的检测目标的同时完成了高质量的语义分割。图片输入后,首先通过骨干网络提取多尺度特征图,然后根据区域建议网络(region proposal network,RPN)选择出候选区域目标,接着使用softmax分类器区分前景目标和背景目标,同时使用边框回归器修正候选框位置,生成最终候选框。

1.1.2 证件质量验证

中国于2004年开始换发第二代身份证,到2013年1月1日二代身份证全部换发完毕。中国第二代身份证有壮文、维文、彝文、藏文、蒙文、朝鲜文六种民族文字与汉文字并列的双文版身份证。新疆马匹养殖户大多以少数民族为主,因考虑到不同民族的身份证存在差异,通过对大量不同民族身份证图像的观察,发现身份证上内容排版样例分为两种,一是汉文在下民族文在上,二是汉文在右蒙文在左。

标准身份证长85.6 mm,宽54 mm,由姓名、性别、民族、出生日期、住址、公民身份号码及本人相片7个登记项目组成,七个登记项位置固定,本实验对其中三个登记项(姓名、公民身份号码、本人相片)进行了标注,图2为三个登记项位置分布,结合图2所示与实际测量得到表1数据,W为该长度在AD上的占比,H为该长度AB在上的占比,测量误差小于1 mm。由于用户拍照的角度或设备不同,提交上来的身份证照片大小均可能不同,所以采用长度占比进行判断。

图2 身份证结构示意图

表1 身份证登记信息相对位置占比

由A、B、C、D四点坐标根据y=kx+b可以求得,AD、AB、CD、BC四条直线,结合以下公式:

点到直线的距离为d,分别可以求出表1中各点到直线的距离,以及它们在长、宽上的占比。从表1中可以看出,无论是非蒙古族身份证还是蒙古族身份证除居民身份号码的相对位置差异较大,其他关键信息位置基本没有什么变化。由此可以推断,若三个登记项存在且距离在阈值内,则认为该身份证照片质量合格,不在阈值内则认为证件质量不合格,系统便要求用户重新提交本人身份证照片。多次调整阈值区间并不断测试,筛选后的照片再次经人工验证基本合格,详细数据见表2。

表2 证件质量检测

1.2 人脸验证

1.2.1 人脸检测

该文选择MTCNN网络来进行人脸的检测和对齐,MTCNN三个阶段使用的卷积神经网络结构分别是:P-Net,R-Net和O-Net。网络将送入的图片生成图像金字塔[3],第一阶段由P-Net获得候选窗体和边界回归向量,候选窗体通过边界框进行校正,并用非极大抑制算法筛选重叠窗体。第二阶段任务由R-Net完成,将经过P-Net确定的包含候选窗体的图片拿来训练,使用全连接网络进行分类,利用边界框向量微调候选窗体,再用非极大抑制算法去除重叠窗体。第三阶段使用O-Net卷积神经网络进行操作,O-Net是MTCNN里最精细的网络结构,功能与R-Net类似,在去重后同时标定5个人脸关键点的位置,MTCNN网络通过交叉熵损失函数来判断该区域是否包含人脸,函数如下:

1.2.2 人脸识别

网络架构选择Inception[6]类型网络,Inception主要在没有高效的稀疏矩阵乘积设备的情况下,利用现有的密集计算组件来近似视觉卷积网络中的滤波级别上的局部稀疏结构。

2 数据材料

2.1 数据采集

本实验共采集2 476幅图像,为模拟马业平台真实需求,人像照片与身份证照片1∶1对应采集,878组图像由用户各自的手机拍照所得。由于每个人所属环境、光照、拍照时间、拍照设备均可能不同,所以878组图像复杂多样。学生卡图像240张,采集方式与身份证一样,社保卡、驾驶证、银行卡、其他卡图像各120张且均是网络下载。将收集好的数据按每个类别7∶3的比例随机分配,作为身份证关键信息检测模型的训练集和测试集。

2.2 数据集标注

该文使用图像标注工具LabelMe[17]对数据进行标记,标注完成生成json文件,标注后的数据由LabelMe内的json_to_dataset.py批量生成Mask R-CNN需要的数据集。实验共对1 118张图片进行了标注,并送入模型进行学习。用测试集对模型进行检验,发现该模型未对学生卡、社保卡、驾驶证和其他卡的姓名、人脸信息进行标注,但将身份证上的关键信息进行了标注,并准确地勾画出目标框。

3 实验环境及结果

3.1 实验环境

由于马业信息平台使用Django框架进行开发,所以本实验选用Python语言进行编程,所用深度学习框架为谷歌TensorFlow-gpu 1.14.0版本,Keras2.1.5,CUDA10.0,操作系统为Ubuntu 18.04.4。计算机CPU为Inter®Xern(R)CPU E5-2620,GPU为TITAN V,内存64 G。

3.2 实验结果

在训练Mask R-CNN模型时,采用0.000 1的初始学习率,批处理大小(Batch size)设置为4,模型共计训练50个epoch。在模型训练过程中记录各类别的AP(average precision)值并计算mAP(mean average precision),统计结果如图3所示。训练集与验证集损失函数值的变化曲线如图4所示。

图3 各标注项的AP与mAP值随epoch的变化曲线

图4 Mask R-CNN训练损失变化曲线

观察图3可以看出,随着epoch的不断增长,各类别的AP值逐步提高并达到较高的稳定值,并且在图4中模型稳定收敛于较低的Loss值,说明了模型在训练集与验证集上有着较好的身份证关键信息检测能力。

基于关键信息检测模型对测试集中共计479张图片进行二分类,其中身份证263张,非身份证216张,分类结果如表3所示。

表3 证件分类

最后将本实验方法与原系统方法进行对比,取263组人像与身份证对应的照片,对263张身份证照片中50%做随机的图像处理(模糊、随机遮挡),其中72人各增加一张学生卡照片,系统准确率=(清晰身份证通过数+其他证件未通过数)/总数量,将测试数据送入系统中得到表4实验结果。

表4 实验结果对比

从表4中可知,原系统使用学生卡、社保卡或驾驶证也可以完成系统的人脸验证工作,而使用多模型联合判别的方法可以有效地过滤掉非身份证证件。对于经图像处理过的身份证,该方法提升不是十分明显,原因是随机遮挡没有遮住标注的关键信息该系统会认为身份证合格,总体来说多模型联合的人脸验证应用,在没有降低人脸识别率的基础上,完成了证件质量的筛选,更加符合实际应用的要求。

4 结束语

在新疆维吾尔自治区马产业科技创新平台建设中,用户实名认证模块仍有部分功能需要完善。根据实名认证要求,用户需上传本人照片及身份证照片,来完成实名认证,但一些用户选择使用生活照或其他证件照来进行认证。原系统方法未对不合格照片进行审核,致使系统存在隐患。故该文选用Mask R-CNN网络来训练身份证判别模型,实验表明该模型可以很准确地检测到标注目标,且判别效果良好,训练过程中网络模型能够快速收敛,该模型具有较高的准确性。将模型应用于马产业科技创新平台中可以将非身份证和低质量证件照过滤,并完成人脸验证工作;目前系统完成的是1对1场景下的人脸验证工作,将来开展赛马赛事等活动,若要运用人脸签到、人脸门禁,要面临的便是1对N的人脸识别,而该应用可以建立优质人脸资源数据库,为将来的系列活动实现做基础。

猜你喜欢
证件人脸身份证
刚捡的
玻璃窗上的人脸
据说最近流行晒身份证,各路大神都被炸了出来
智力考场:有趣的图片测试
趣说古人的“身份证”
中国人一生要办证件、证明超过400个
“领家系”可爱脸VS“高冷系”美人脸
Relationship between Interlocutors’ Choice of Speech Strategies and Their Power Strength
长得象人脸的十种动物