吴飞龙 张哲 张心 朱晓芒 王芳
DOI:10.19850/j.cnki.2096-4706.2024.02.037
收稿日期:2023-05-30
摘 要:在高校学生信息管理中,一卡通照片往往由学生自行提供或通过专用一体设备自助采集,照片的质量和真实性难以保证。为了解决这一问题,文章提出了一种基于人脸识别技术的校园一卡通照片采集系统。该系统基于OpenCV的人脸检测、人脸位置计算及人脸相似度计算能力,实现标准一卡通照片的自动生成,同时保证了照片的真实性。实际使用表明,该系统可以提高一卡通照片采集工作的效率、规范性及照片真实性,因而文章的研究成果具有一定的实用性和推广价值。
关键词:OpenCV;人脸识别;校园一卡通;照片采集系统;高校信息化管理
中图分类号:TP311 文献标志码:A 文章编号:2096-4706(2024)02-0172-06
Design and Implementation of a Campus One-Card Photo Collection System
Based on Face Recognition Technology
WU Feilong, ZHANG Zhe, ZHANG Xin, ZHU Xiaomang, WANG Fang
(Network Information Center, Xi'an Jiaotong University, Xi'an 710049, China)
Abstract: In the management of student information in colleges and universities, the photos in the one-card system are often provided by students themselves or self-service collection through dedicated integrated devices, making it difficult to guarantee the quality and authenticity of the photos. In order to address this issue, this paper proposes a campus one-card photo collection system based on face recognition technology. The system achieves automatic generation of standardized one-card photos based on the face detection, face position calculation and face similarity computation capabilities of OpenCV, while ensuring their authenticity. The practical use of the system shows that it improves the efficiency, standardization and photo authenticity of one-card photo collection work. Thereby the research results have certain practicality and promotion value.
Keywords: OpenCV; face recognition; campus one-card; photo collection system; information management of colleges and universities
0 引 言
校園一卡通照片在学校管理中扮演着重要的角色,作为学生身份的标识,被广泛应用于各类学校事务,包括图书馆借阅、实验室进出、考试认证等。一张准确、清晰、真实的一卡通照片对于确保校园安全、高效管理学生信息及提供便利生活服务至关重要。传统一卡通照片采集依赖于学生提供照片或通过专用一体设备自助采集,往往存在质量不一和真实性难以验证的问题,这对于校园学生信息管理带来了一定的挑战。
人脸识别技术作为一种先进的生物识别技术,具有高精度、高效性、高便利性及高安全性等特点,已在各行各业得到广泛应用。将人脸识别技术应用于校园一卡通照片采集业务,可以有效提高照片采集的准确性和真实性。
本文阐述了西安交大如何通过人脸识别技术解决传统校园一卡通照片采集中存在的问题,对比国内其他高校学生上传教师审核或通过专用一体设备采集的解决方式,该系统通过人脸识别技术保证了一卡通照片采集的规范性与安全性,其核心功能在服务端实现,对前端的采集设备无特殊要求,应用方式更加灵活。
1 关键技术介绍
1.1 人脸识别技术路线
常用的人脸识别技术可以分为以下几类,在原理、应用领域和性能方面有所不同:
1)基于特征提取的人脸识别技术[1]。这种技术通过提取人脸图像中的特征信息,例如脸部轮廓、眼睛、鼻子、嘴巴等,然后将这些特征与存储在数据库中的人脸特征进行比对和匹配。常见的算法包括主成分分析(PCA)、线性判别分析(LDA)和局部二值模式(LBP)等。这种技术简单高效,适用于一些较为简单的人脸识别场景。
2)基于统计模型的人脸识别技术[2]。这种技术利用统计模型对人脸图像进行建模和分析,常见的方法包括高斯混合模型(GMM)、隐马尔可夫模型(HMM)和条件随机场(CRF)等。通过训练模型并利用模型参数进行识别,这种技术对光照、姿态和表情等因素的鲁棒性较好,适用于复杂的人脸识别场景。
3)基于深度学习的人脸识别技术[3]。这种技术利用深度神经网络对人脸图像进行特征提取和识别,常用的模型包括卷积神经网络(CNN)、自编码器(Autoencoder)和生成对抗网络(GAN)等。通过大规模数据集的训练,深度学习技术可以学习到更复杂和抽象的人脸特征表示,从而提高识别准确率,并在人脸识别领域取得了重大突破。
4)基于三维人脸识别技术。这种技术通过获取人脸的三维形状信息,包括深度图像、红外成像或基于结构光的三维重建等方法。利用三维人脸模型进行识别,可以克服一些传统方法在光照变化、遮挡和伪造方面的限制,适用于一些高安全性要求的应用场景。
1.2 人脸识别产品介绍
1.2.1 开源人脸识别产品
开源人脸识别产品提供了丰富的功能和算法,可以用于构建各种人脸识别应用,开源特性使得开发者可以根据自己的需求进行定制和扩展,并加快了人脸识别技术的推广和应用。目前常用的开源人脸识别产品有以下几种:
1)OpenCV。OpenCV(Open Source Computer Vision Library)是一个开源的计算机视觉库,能够运行在多种操作系统上,例如Windows、Linux、MAC等,实现了多种程序设计语言的接口,开发人员可以在此基础上开发设计复杂的计算机视觉程序[4]。
2)Dlib。Dlib是一个非常优秀的人脸检测开源库,其源代码采用C++语言实现,包含了多种计算机视觉算法,其中包括人脸检测和人脸识别[5]。
3)FaceNet。FaceNet是由Google开发的开源人脸识别系统。它基于深度学习技术,能够将人脸图像转化为具有良好辨识度的128维特征向量,用于人脸比对和识别[6]。
4)InsightFace。InsightFace是一个开源的人脸分析项目,提供了高性能的人脸识别和人脸属性分析功能。它基于深度学习框架MXNet,具有较好的人脸检测和特征提取能力[7]。
5)OpenFace。OpenFace是一个由卡耐基梅隆(CMU)大学开发的图像+机器学习软件项目,是第一个能够进行包括人脸关键点检测、头部姿态估计、AU特征检测的开源工具[8]。
1.2.2 商用人脸识别产品
目前国内常用的人脸识别技术供应商有百度、腾讯、华为等,简介如下:
1)百度人脸识别(Baidu Face Recognition)。百度提供的人脸识别产品,具有高性能的人脸检测、识别和比对功能。它支持多种场景下的人脸识别应用,如门禁考勤、人脸支付等,并提供了简单易用的API接口供开发者使用。
2)腾讯优图人脸识别(Tencent YouTu Face Recognition)。腾讯优图推出的人脸识别产品,具有较高的准确性和稳定性。它支持人脸检测、人脸比对、人脸搜索等功能,并可应用于人脸门禁、人脸支付、人脸签到等场景。
3)华为人脸识别(Huawei Face Recognition)。华为提供的人脸识别解决方案,具备高性能和高可靠性。它支持人脸检测、人脸识别、人脸活体检测等功能,可广泛应用于安防、金融、教育等领域。
4)商汤科技人脸识别(SenseTime Face Recognition)。商汤科技是一家领先的人工智能公司,其人脸识别产品具有较高的准确性和稳定性。它支持人脸检测、人脸比对、人脸搜索等功能,并可用于人脸门禁、人脸支付、智慧零售等场景。
5)旷视科技人脸识别(Megvii Face Recognition)。旷视科技是一家知名的人脸识别技术公司,其人脸识别产品在准确性和性能方面表现出色。它提供了全面的人脸识别功能,包括人脸检测、人脸比对、人脸搜索等,可应用于多个领域,如安防、金融、公安等。
1.3 二代身份证信息读取技术介绍
目前二代身份证是我国公民身份识别最重要证件,内置加密芯片,存储着身份证持有者的基本信息,包括姓名、性别、出生日期、身份证号码、住址、有效期及人脸照片等。通过遵循相关的通信协议和数据解析规则,身份证读取设备可以读取芯片内的数据。
为了保证二代身份证读取的安全性和准确性,需使用内置公安部授权专用身份证控制模块的读取设备[9]。身份证读取设备从使用方式上可分为有线连接式与无线连接式,有线连接式通常采用USB数据线的方式与调用主机连接,无线连接式则通常采用蓝牙连接方式。
2 系统设计与实现
基于人脸识别技术的校园一卡通照片采集系统主要包括图像采集模块、身份证信息读取模块、人脸检测与识别模块、图像处理和存储模块及基于Web的学生信息管理模块。系统架构如图1所示。
如图1所示,身份证读取模块主要完成学生姓名、性别、出生年月日及身份證照片等基础信息的读取。图像采集模块主要完成现场人脸照片的抓拍。人脸检测与识别模块主要完成现场采集照片、身份证照片及高考报名照片中人脸的检测、特征提取等,以实现身份合法性判断与现场抓拍照片中人脸位置的确定。图像处理和存储模块主要根据人脸检测与识别模块识别的人脸位置,根据系统设置完成一卡通照片的自动裁剪与存储。基于Web的学生信息管理模块主要面向用户提供各个功能的操作界面。以上各系统模块的详细功能设计与实现的内容如下。
2.1 系统身份证读取模块
本模块通过集成专用身份证读卡硬件的SDK实现身份证内加密信息的读取。通过综合对比市场中各类身份证读卡设备的性能、价格、接口开发情况,本系统选用的身份证读卡器品牌及型号为华视电子U100,该款读卡器提供完善的网页端读卡开发接口,可满足本系统WEB架构开发需求。此模块核心读卡代码如下所示:
String featureModelPath = "path/to/lbpcascade_frontalface.xml"; FaceRecognizer faceRecognizer = LBPHFaceRecognizer.create(); faceRecognizer.read(featureModelPath);
int[] label = new int[1];
double[] confidence = new double[1];
faceRecognizer.predict(face, label, confidence);
return label;
}
/*** 人脸相似度计算 ***/
private static double calculateSimilarity(FaceRecognizer faceRecognizer, Mat image1, Mat image2){
IntPointer label = new IntPointer(1);
DoublePointerconfidence = new DoublePointer(1);
faceRecognizer.predict(image1, label, confidence);
int predictedLabel1 = label.get(0);
double predictedConfidence1 = confidence.get(0);
faceRecognizer.predict(image2, label, confidence);
int predictedLabel2 = label.get(0);
double predictedConfidence2 = confidence.get(0);
doublesimilarity = 1.0 / (1.0 + Math.sqrt(Math.pow(predictedConfidence1 - predictedConfidence2, 2)));
return similarity;
}
2.4 圖像处理和存储模块
本模块根据人脸在整个照片中的相对位置,并依据事先设置的照片尺寸要求,自动完成照片的裁剪,生成人脸居中的一卡通照片。裁剪完成后将照片与学生信息关联后自动保存。此模块也提供采集照片背景的更换功能。
西安交大一卡通照片分辨率要求为480×640,对应以上要求,此模块照片裁剪区域计算逻辑实现代码如下所示:
//根据图片尺寸要求及侦测到的人像位置获取应该裁剪的区域
public int[] getPosition(int imageW,int imageH,int regionX,int regionY,int regionW,int regionH){
int result[] = new int[4];
int base = regionW *21/25;
result[0] = regionX + regionW/2 - base;
result[1] = regionY + regionH/2 - base * 4 / 3;
//保证高度不被裁剪的过多,否则自动填补的不自然
if(result[1]<0){
result[1]=0;
}
result[2] = base*2;
result[3] = base*8/3;
return result;
}
2.5 基于Web的学生信息管理模块
本模块主要面向管理员实现系统的业务功能,包括采集前的学生信息上传、高考照片上传及采集后的批量导出。对采集照片进行打包下载是本模块核心功能,其实现代码如下所示:
private void downloadTolocal(ZipOutputStream zos, List
InputStream input = null;
String localPath = Config.getProfile() + "/";
String downloadPath = "";
for (BusStudent stu : stuList) {
if(StringUtils.isBlank(stu.getCapturePhtotoPath())) {
continue;
}
downloadPath = localPath + stu.getCapturePhtotoPath().replace("/profile", "");
File file = new File(downloadPath);
ZipEntry zipEntry = new ZipEntry(file.getName());
input = new FileInputStream(file);
zos.putNextEntry(zipEntry);
IOUtils.copy(input, zos);
}
zos.close();
input.close();
}
3 部署方案及應用效果
3.1 系统部署方案
为了节约系统开发成本、加快开发效率,本系统部署于西安交大校级云平台上,该云平台层采用了基于OpenStack架构的CloudOS高校运营版,计算虚拟化采用了基于KVM架构的CAS企业版,分布式存储采用了基于Ceph架构的ONEStor产品,可提供7×24小时稳定服务,满足系统运行要求。
3.2 系统应用效果
基于人脸识别技术的校园一卡通照片采集系统核采集功能界面如图2所示。
如图2所示,在进行一卡通照片采集时,首先读取学生身份证信息,读取成功后点击“拍照&人脸识别”按钮完成人脸检测,并将检测到的人脸与身份人脸及录取照片人脸逐一进行比对,若比对不通过则产生告警提示,若全部比对通过,则会显示自动裁剪的一卡通照片。正常情况下,自动裁剪生成的人脸一卡通照片会将人脸居中,分辨率也是设定的尺寸,点击“保存&上传”即可,若对采集的照片不满意可重复采集,采集结果将覆盖之前的记录。
如图3所示,采集工作完成后,可通过系统批量导出一卡通照片文件。
如图3所示,根据参数配置,生成的一卡通照片文件为jpg格式,将以学生学号或身份证号命名,方便后续批量导入一卡通系统或其他业务系统。同时,为了符合我国个人信息保护政策法规的相关要求[10],本系统也设置了严格的功能权限验证规则,以保证包含人脸信息一卡通照片查询与下载的安全。实际应用表明,本系统可有效提升高校一卡通照片采集的效率、安全性、用户体验和数据准确性。
4 结 论
本文提出了一种基于人脸识别技术的校园一卡通照片采集系统,通过将人脸识别、身份证读取、图像处理等技术进行合理组合,实现高效、准确和安全的一卡通照片采集。系统的自动化照片采集解决了人工处理可能带来的错误和不一致,同时通过采集照片与高考预留照片及身份证照片的双重人脸验证确保了采集照片的真实性,有效预防了误操作的可能性及身份冒用风险。综上所述,该系统可有效解决传统高校学生一卡通照片采集存在的问题,具有一定的实用性和推广价值。
随着高校信息化的不断发展,各类基于人脸的智能身份验证系统的应用越来越广泛。一卡通照片作为高校内人员身份关联的权威数据,可以应用于智慧考勤、人脸消费、门禁验证等教育教学及生活场景。在未来的研究中,笔者将研究基于一卡通照片的校级人脸特征库的建设,同时也将依照当前我国个人信息保护政策法规的要求与发展趋势,重点研究人脸数据存储及应用的安全性保障。
参考文献:
[1] 李华胜,杨桦,袁保宗.人脸识别系统中的特征提取 [J].北方交通大学学报,2001(2):18-21.
[2] 郭卫锋.基于统计的人脸识别算法研究 [D].长沙:湖南大学,2002.
[3] 李环.人工智能中人脸识别技术的应用分析 [J].电子测试,2021(1):137-138+130.
[4] 孙凯.基于嵌入式平台的深度学习人脸识别技术研究 [D].南京:南京邮电大学,2022.
[5] 曾曦.基于卷积神经网络的人脸表情识别研究 [D].西宁:青海师范大学,2023.
[6] SCHROFF F,KALENICHENKO D,PHILBIN J. FaceNet: A United Embedding for Face Recognition and Clustering [J/OL].arXiv: 1503.03832 [cs.CV].(2015-03-12).https://arxiv.org/abs/1503.03832.
[7] 田曦初,苏寒松,刘高华,等.基于InsightFace的改进教室人脸识别算法及其应用 [J].激光与光电子学进展,2020,57(22):304-314.
[8] 李辉煌. 基于应激状态下的面部特征模型在自杀风险识别中的探索 [D].南方医科大学.
[9] 王振华,苏金善,仝琼琳.基于深度学习的部分遮挡人脸识别 [J].电子技术与软件工程,2020(2):145-147.
[10] 王鸿.人脸识别技术应用的现行规制综述及立法趋势分析 [J].东北师大学报:哲学社会科学版,2022(2):97-101.
作者简介:吴飞龙(1989.03—),男,汉族,陕西西
安人,工程师,硕士,研究方向:物联网、应用系统、网络安全。