刘田田
江苏开放大学信息与机电工程学院, 江苏 南京 210017
随着互联网技术的快速发展,智慧课堂在教学管理中得到广泛的应用。一些高校实现了智能的考勤管理系统,如指纹打卡考勤系统、IC卡考勤系统、基于Android的签到系统以及人脸识别考勤机等。而目前使用的打卡机主要是通过对人体某些特质(指纹、人脸部、虹膜)的识别进行考勤,需要购买相应的机器,并且需要长期的维护,签到成本较高。
而基于大数据和云计算的快速发展,大样本集数据深度学习挖掘成为可能。在此背景下,本文设计了基于深度学习的高校考勤系统,依据大样本进行训练测试,以学生证件照片建立班级数据库,任课教师只需一个图像采集工具摄像头,实时采集课堂学生图像,或者使用手机拍摄一张学生集体照,上传系统,即可完成考勤。
当前我国很多高校考勤工作主要表现出以下几个方面的特点。
现阶段我国很多高校在考勤上主要是采用原始的点名方法或者是借助计算机软件和网络来实现点名与考勤的目标。
一部分考勤工作的主要对象群体是学生;而另一部分考勤工作主要考查的对象是高校教职工。
现阶段高校现有的考勤系统主要采用的操作方式主要有以下几个类型。
1.3.1 手工签录
采用此种考勤方式其实和最原始的点名考勤在效率上并没有太大的改进,只是对于后期数据统计分析上提供了一定程度的便利。
1.3.2 专用设备考勤
此种考勤方式需要为绝大多数的考勤目标都配置身份信息标识,只有这样才能够为所有可能的使用者配备读取设备,还要为之配套相关的软硬件以及网络环境。如果采用这种大规模的系统替换方式只是为了考勤就有可能出现得不偿失的结果。
1.4.1 用户角色分析
在高校中使用考勤系统的主要有四个角色。第一是教师;第二角色就是学生;第三是学校内职能部门;第四角色是系统管理员。
1.4.2 应用场景分析
高校中考勤系统的应用场景主要有以下几个方面:
一是学生课堂与考试考勤。此场景中,系统要在限定的较短时间内完成对本堂课或本堂考试学生身份验证和考勤。二是学生活动考勤。此场景中,系统要在限定的时间内完成对参加本次活动学生身份验证和考勤。三是教职工日常考勤。此场景中,考勤系统要能准确的记录教职工日常工作考勤。四是教职工会议与活动考勤。此场景中,系统要能在限定的较短时间内完成对参加本次会议或者活动的教职工身份验证和考勤。
目前考勤系统存在的三种考勤方式中投入最少、见效最快的是文中提到的第三种通用深度学习的智能平台配合专用软件来实现。采用此方式关键是通用深度学习的智能平台软件的设计。
深度学习是机器学习研究中的一个新技术,动机在于模拟人脑进行分析学习的神经网络,是相对简单学习而言的。深度学习的概念由Hinton等人于2006年在顶级期刊Science上的一篇论文中提出[1],是神经网络之后的又一突破。
从感知机诞生到神经网络的发展,再到深度学习的萌芽,机器学习的发展并非一帆风顺。20世纪80年代末期,用于人工神经网络的反向传播算法(BP算法)的发明给机器学习带来了希望,掀起了基于统计模型的机器学习热潮。通过BP算法,人们可以训练一个人工神经网络模型,获得统计规律,从而对未知事件做预测。此时的人工神经网络虽也被称作多层感知机(Multi-layer Perceptron),但实际只含有一层隐层节点。20世纪90年代,支撑向量机 (SVM,Support Vector Machines)、Boosting、最大熵方法(如LR,Logistic Regression)相继被提出。这些模型的结构基本上可以看成带有一层隐层节点(如SVM、Boosting),或没有隐层节点(如LR)。这些模型无论是在理论分析还是应用中都获得了巨大的成功。相比之下,由于理论分析的难度大,训练方法又需要很多经验和技巧,这个时期浅层人工神经网络反而相对沉寂。至2006年,加拿大多伦多大学教授Geoffrey Hinton的文章提出深度学习概念。这篇文章有两个主要观点:一是多隐层的人工神经网络具有优异的特征学习能力,学习得到的特征对数据有更本质的刻画,从而有利于可视化或分类;二是深度神经网络在训练上的难度,可以通过“逐层初始化”(layer-wise pre-training)来解决,在这一文献中,逐层初始化采用无监督学习方式。
随后,Geoffrey Hinton提出深度置信网(Deep Belief Net:DBN)[2],其由一系列受限波尔兹曼机(Restricted Boltzmann Machine:RBM)[3]组成,提出非监督贪心逐层训练(Layerwise Pre-Training)算法,应用效果才取得突破性进展,其与之后Ruslan Salakhutdinov提出的深度波尔兹曼机(Deep Boltzmann Machine:DBM)[4]重新点燃了人工智能领域对于神经网络(Neural Network)和波尔兹曼机(Boltzmann Machine)[5]的热情,才由此掀起了深度学习的浪潮。从目前的最新研究进展来看,只要数据足够大、隐藏层足够深,即便不加“Pre-Training”预处理,深度学习也可以取得很好的结果,反映了大数据和深度学习相辅相成的内在联系。虽然非监督(如DBM方法)是深度学习的一个优势,而带监督的卷积神经网络 (Convolutional Neural Network:CNN)[6]方法目前应用得越来越多,乃至正在超越非监督。
目前语音识别、图像识别和自然语言处理是深度学习算法应用最广泛的三个领域。2011年微软推出的基于深度神经网络的语音识别系统,将语音识别领域技术框架完成改变。卷积神经网络和深度圣经网络的提出,使得图像识别领域的研究取得巨大进步,提高了图像识别精度和在线运行效率。而在自然语言处理方面,相比于语音和图像识别的成功,未来还有待深入研究。
利用深度学习进行人脸识别、图像监控等取得了较大的进展。面部特征提取是指从人脸图像中识别面部关键信息点,包括眉毛、眼睛、鼻子、嘴和下巴。例如目前流行的Viola-Jones人脸检测框架[7],扫描检测人脸,利用眼睛、嘴角等征点进行旋转校正[8],并从校正后的脸部区域中,提取能够反映表情变化的面部特征,包括嘴、眼睛、眉毛、鼻子等典型区域的位置与形状[9],或脸部的全局/局部灰度特征[10]。
本文主要针对高校课堂考勤的需求,搭建一个基于学生面部图像的数据库,从人脸图像中自动提取相应特征,并针对样本的特点调整参数,识别人脸关键点,上传待测试图片,识别得出出勤结果。
以学生标准证件照建立班级学生图像数据库,以两位学号进行命名(可根据实际情况更改)。数据库创立后,以此作为样本集,进行面部特征的提取,为后续课堂考勤的依据。
基于当前高校传统考勤方式存在的弊端和瓶颈,设计了一个基于大数据技术,以高校深度学习的考勤系统为基础,着眼于实现高校教职工“一键考勤”的数据库,这一数据的存在确保了考勤结果更加及时、准确,从而有效地解决了高校中传统单一考勤手段所带来的管理成本高、考勤效果差现象。另外,由于考勤结果与后台考勤服务器保持实时同步,让原有异地考勤信息采集难、报送难的问题得到了很好地解决。
高校深度学习的考勤系统,除了核心的考勤模块外还能够附加员工通讯录的模块,进一步提升了单位员工间沟通联系的便捷性和及时性,从而让高校的考勤工作可以真正脱离纸质电话簿和EX统计表,而是通过后台服务器统一维护和确保单位员工考勤信息的正确性,大大节省了用户花费在日常通讯录维护上的时间。
高校深度学习的考勤系统,除了深度学习的考勤、通讯录等功能模块的设计和创新外,还引入了一个技术亮点,即为了防止员工利用深度学习考勤的“无人工干预性”,而出现的“替人考勤”情况,系统在员工登录模块的设计和实现上,除了普遍的“密码校验”外,还添加了“身份鉴权”的步骤,即通过将员工手机号与手机卡IMSI号绑定的方式确保所考勤即所人,从而在此基础上确保了考勤结果的客观性、真实性与有效性。
面部特征提取是指从人脸图像中识别面部关键信息点,包括眉毛、眼睛、鼻子、嘴和下巴。首先是要进行图像的预处理,从图片中定位出所有的人脸。
在图片中定位出人脸后,接下来是识别人脸的关键特征点,包括眼睛、鼻子、嘴和下巴。输出像素点坐标,例如“2.jpg,62,941,211,333”,代表图片中的一张脸,输出的坐标表示这张脸的上、右、下、左像素点的坐标。如果一张脸识别出不止一个结果,那么意味着他和其他人长得像,针对亚洲人脸部特征,将容错率(tolerance)这个参数设置为0.48(默认0.6),容错率越低,识别越严格准确。
将课堂拍摄的实时图像导入系统,在跟数据库中的数据图像对比后反馈,得到考勤结果。
本系统实现是在python3.3上完成,并导入face_recognition库。
代码如下:
rootdir='D:\adas\面部识别素材\16软件1班照片\'
str="this is string example....wow!!!this is really string"
tt=str.replace("is","was")
WSI_MASK_PATH='D:\sla\adas\面部识别素材\16软件1班照片\'//存放图片的文件夹路径
wsi_mask_paths=glob.glob(os.path.join(WSI_MASK_PATH,'*.jpg'))
wsi_mask_paths.sort()
known_face_names=[]
known_face_encodings=[]
将课堂实时图片导入,特征提取识别,输出考勤结果。部分代码如下:
frame=face_recognition.load_image_file("D:\adas\面部识别素材\IMG_5841.JPG")
small_frame=frame
rgb_small_frame=small_frame
if process_this_frame:
face_locations=face_recognition.face_locations(rgb_small_frame)
face_encodings= face_recognition.face_encodings(rgb_small_frame,face_locations)
face_names=[]
for face_encoding in face_encodings://判断匹配与否
matches=face_recognition.compare_faces(known_fa ce_encodings,face_encoding,tolerance=0.48)
name="Unknown"
if True in matches:
first_match_index=matches.index(True)
name=known_face_names[first_match_index]
face_names.append(name)
process_this_frame=not process_this_frame
for(top,right,bottom,left),name in zip(face_locations,face_names)://上、右、下、左像素点坐标
cv2.rectangle(frame,(left,top),(right,bottom),(0,0,255),2)
cv2.rectangle(frame,(left,bottom-35),(right,bottom),(0,0,255),cv2.FILLED)
font=cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame,name,(left+6,bottom-6),font,1.0,(255,255,255),1)
cv2.imwrite('D:\222.png',frame)//考勤结果
实践证明,基于深度学习的考勤系统在实时课堂考勤中表现出了良好的识别速率和极高的准确率,拍摄的图片人脸不出现遮挡的情况下,均能够对图片进行人脸定位并识别,准确率高达95%。其中有1位同学在面部未遮挡的情况下,出现了人脸定位失败的情况,这种情况需要在后续研究中进行改进研究。
本文将班级学生图像数据集作为特征提取样本,通过改进训练参数,实时采集课堂图像进行考勤,实践证明该系统具有极高的准确率。现阶段大数据技术在高校考勤系统中的应用已经成为了必然,这一技术的应用对于考勤系统的深度学习有着重要的价值,因此也是高校考勤系统未来革新的必然趋势,因此我国许多高校计划在建设智能考勤系统时增加更系统化的大数据分析技术,这一系统的数据可以与各种数据模型,学生的考勤出席数据、在线行为数据、手机定位数据、课程成绩数据等相结合,为学生的学习情况进行一个全景式的描绘除此之外,对于教职员工而言,深度学习的考勤系统可以在各种数据模型中将教师的科研信息数据、工资收入数据等添加到系统数据中,让校方对于教职员工的晋升和豁免以及对工作场所情况有着更为清晰的判断,同时有效避免了考勤机、指纹机等考勤方式存在的代打卡、费用高的问题,减少了课堂考勤时间,提升了课堂效率,是高校课堂进行信息化教学的良好工具。