基于QR Code的校园ID身份生成识别系统的设计
2021-06-16柴世杰马佳琳
柴世杰 马佳琳
(沈阳师范大学软件学院 辽宁省沈阳市 110000)
1 系统需求分析与设计
随着数字化校园的逐渐普及,传统纸质化的校园证件出现易丢失,个人信息泄露,使用不便且繁琐,应用范围狭窄等问题。其中校园ID 卡是“数字化校园系统”中的重要组成部分,可以做到资源整合。
随之应运而生了一款基于QR code 技术的校园ID 的身份生成识别系统,基于智能化、虚拟化、开放服务、云计算、虚拟化技术的校园身份建设,为提高学校的整体管理水平和综合实力,按照标准整合数据,并对其实时更新,保证信息的一致性和准确性为传统校园空间建设提供了基础。数字化校园提高了传统校园的运行效率,拓展了传统校园的功能,增强了的核心竞争力。
2 搭建开发平台
系统采用Visual Studio 进行开发,可以在多种操作系统性下运行,借用jquery-qrcode 开源第三方库,VS 不仅支持测试,而且有内置Git 版本控制等功能,同时也具备开发环境功能。程序使用C#语言编写,编码结合 ZXing.NET 库完成。
3 系统设计与实现
3.1 功能模块设计
3.1.1 校园师生人员系统相关信息的录入模块
首先把各个学院的学生信息数据导入数据库,学号作为唯一标识,根据学号和个人信息生成QR 二维码,根据统一的标准,最后再打印出来。校园ID 二维码的打印一般在新生录取完成后就开始进行,打印数量庞大,为使用方便可开发独立的应用程序,数据库则采用记事本的方式,这样有助于程序的布置和挪动。
QR 码可以存储大量的信息,在校园ID 系统中主要以学生学号作为主码即关联的依据,所以内容主要以学号作为唯一标识,其余内容从服务器端调取。QR 码打印出来图片的尺寸比例要经过各种测试,达到既不影响扫描二维码的识别又不影响美观和实用型。QR 码带有学校标识,且彩色美观一般打印在中上部,中间则显示学号,这样版面会直观又美观,在无法识别的情况下也可以通过中间的数字进行手动输入号码来查找相关信息。
3.1.2 录入编码版本和纠错等级功能模块
根据自身的需求,将码字按顺序分块,根据纠错等级和分块的码字,产生纠错码字,接着将纠错码字加到数据码字序列的前面成为一个新的序列分块[1]。
3.1.3 根据录入信息后台进行QR 编码功能模块
借用jquery-qrcode 第三方开源库生成二维码,jquery.qrcode.js 是把它用jquery 方式封装起来的,用来实现图形的渲染。采用寻像图形和定位图形用来使解码程序确定图形中具体符号的坐标位置。也将编码的数据内容以及纠错信息保存在二维码中[2]。
3.1.4 初步显示QR-Code 码图形功能模块
依照上述步骤形成的码序列以深色和浅色的模块布置,以此生成的彩色二维码又调用了jQuery 实现图形渲染,还在二维码上添加文字的方法,形成最终的QR-Code 码图形将以原始比例显示于编码界面中供用户参考,这样,用户可以适当地调整版本和纠错级别。
图1:扫描内容
图2:编码实现过程
3.1.5 生成图形QR-Code 码的功能模块
将二维码转换为图片的格式,存储格式为JPG 文件格式,默认存储位置为文档录音模块。
3.1.6 从本地载入QR-Code 码功能模块
解码界面上可以载入QR 二维码进行解码,默认目录为文档录音。
3.1.7 进行QR 解码功能模块
图3:图像识别过程
图4:编码过程
在解码系统中录入二维码,然后根据不同的功能对QR 码图形识别和读取依据纠错码输出原始的数据信息。
3.1.8 重新载入的QR-Code 码功能模块
在QR 码的解码过程中,采用了基于QR 码的分步解码方式。
3.1.9 将解码信息进行显示的功能模块
解码后,页面会弹出原始信息显示于用户。如图1 所示。
3.2 QR-Code数据编码的实现过程
编码是从原始数据生成二维码的过程。通过相关技术,将二维码进行编码的主要流程步骤分为编码模式选择,数据编码,纠错编码,布置矩阵模块,掩模处理和格式版本分析[3]。在校园ID 身份生成识别系统中,QR 码在 PC 端生成,利用 Visual Studio 结合 ZXing.NET 库进行开发。创建DOM 元素生成qr 码,最后添加在qrcode 中。
您可以通过输入二维码的宽度和高度来生成指定的二维码的大小,根据自己的想法输入就可以指定生成的二维码的颜色模式。div 重新调用会使qrcode 进行更新。二维码的中间加文字图像css设置个div 浮动层,让它浮在二维码上居中。qrcode 其实是通过使用jQuery 实现图形渲染,画图,支持canvas(HTML5)和table 两种方式。jquery-qrcode 通常采用charCodeAt()进行编码,默认获取Unicode 类型的编码,然而我们需要录入中文,则还应该在把字符串转换成UTF-8 编码。编码实现过程如图2 所示。
3.3 QR-Code数据解码的实现过程
图像识别过程如图3 所示,编码过程如图4 所示。
3.3.1 图像识别
机器的图像识别和人类的识别是相似的,通过分类提取其中的重要特征,在进行扫描排除多余其他的信息去识别图像,对于二维码的识别,所用到的机器设备对于色块的辨别能力是很强的,二维码来说就是由不同颜色的色块组成的。只要把原来的文字信息编译成色块,就可以方便机器的识别,在通过机器的扫描,存储记忆下来。
3.3.2 矫正图形
当我们用机器对二维码进行扫描的时候,不可能绝对的平行正对要扫描的内容,所以我们把图片中的二维码寻找其中的直线定义为对极线,若扫描的图像标准则对极线都是平行的,若所有线汇聚一点,则说明在非垂直监督进行拍摄的,则对于我们接下来的识别造成困难,我们要尽可能恢复平面状态,如何从不平行的对极线转换成为平行的。QR code 采用一种方法,就是设计一个固定比例的图形和我们所扫描识别的图像进行对比,计算其变换矩阵,在求出逆矩阵根据图像和逆矩阵进行比对,作出调整。
3.3.3 格式信息、版本信息
编译则采用计算机的二进制,把每一个文字或者符号转换成0和1 的形式的不同字符串,而转换的过程我们称它为编码和解码。然后可以采用黑色为0,白色为1。按照特定的规律对黑白方块进行排列,最终就形成了二维码。
3.3.4 数据和纠错码
对于图像的识别,由于识别机器的性能不同,扫描的图像完整度不同,必然存在一定的错误率,那么如何来减少或者降低扫描出来的错误率呢,就需要QR code 系统中设定的纠错码,设定不同的纠错等级来满足不同用户的需求。对于二进制来说,我们把信息转换成二进制字符串的形式,产生的数据很大,需要校验位来确保传输信息的准确性,一般信噪比越高的需要校验位越少,对所有校验位进行再次校验,遇到有问题的就重新传输。
4 结束语
基于QRcode 技术的校园ID 的身份生成识别系统,采用SOA面向体系的架构设计,应用移动端和桌面端交互设计方式,通过设置教务端支持信息库、校园食堂、交寝室电费还有校园其他商户等功能模块控制关键环节,保证师生信息的真实性、准确性、完整性和安全保障性[4],可实现图书馆借书、各大教学楼以及宿舍门禁、统一缴费等校园一体化功能。采用电子二维码方式的校园ID 有助于防止学生个人信息的泄露,避免以往校园卡丢失的情况,还可以做到资源整合,方便师生的使用。
利用本学期课程掌握了条码技术的基本原理,并通过自己的不断摸索,在老师的支持帮助下完成了此次系统设计,基于QRcode技术的校园ID 的身份生成识别系统实现了基本的功能,以后可以在不断学习完善这个系统。