张文志, 杨 森, 柳广春, 杜梦豪
(1.河南理工大学 测绘与国土信息工程学院,河南 焦作 454150;2.辽宁科技学院 资源与土木工程学院,辽宁 本溪 117004)
随着科学技术的进步,涌现出物联网、云计算等新一代的信息技术,为建设智慧城市、智慧社区、智慧教室等提供有力的技术支持[1]。互联网+时代的到来,为高校教育管理,智慧教室建设,教育资源分配带来了新的机遇和挑战。课堂教学是师生相互交流、学生接受系统教育的重要环节[2]。智能考勤方式,对学生更好获取专业知识,推进智慧教室建设有着重要影响。苏婕,等[3]设计并实现了一种基于近距离通信(NFC, near field communication)智能考勤管理系统,使得考勤管理更为高效、准确。严士超,等[4]提出了一种基于泛在网技术的实验室智能门禁考勤管理系统的建设方案。万旭成[5]利用数据库的远程通信与管理技术,结合感应式刷卡系统实现校园考勤管理智能控制一体化。田丽,等[6]提出一种基于IPv6的人脸识别考勤管理系统,该系统综合运用物联网、人脸识别、IPv6、数据分析和Web服务等技术,升级了一个分层的软件体系架构。方书雅,等[7]提出了一种基于学生人体检测的无感知课堂考勤方法。目前,以人脸识别技术为代表的生物识别技术与考勤相结合,使考勤方式变得更加多样。为解决传统人工考勤易出现的课堂代答到、代课等现象,文章对基于LBPH人脸识别的课堂考勤方法进行研究。采用手机相机拍摄学生课堂图像,通过Python-OpenCV进行图像处理,利用LBPH人脸识别算法进行人脸识别,得到出勤学生基本信息。依据Hough变换和Canny边缘检测,划分教室座位区间,以此绘制座位格网,使学生与课堂座位相匹配,确定学生所处座位行列号,生成课堂考勤日志。通过实例分析,该方法能够解决人工考勤带来的诸多问题,提高课堂考勤效率,为智能化考勤提供新的方法。
人脸识别是将需要识别的人脸与人脸库中的存储信息相对应,达到识别效果。OpenCV有三种人脸识别方法,它们分别是基于Eigenfaces、Fisherfaces和Local Binary Pattern Histogram(LBPH)[8]。文章采用LBPH人脸识别方法,通过提取局部特征进行判断,与Eigenfaces和Fisherfaces两种方法相比,LBPH方法明显提高人脸识别率。
(1)LBPH特征提取
原始LBPH是定义在像素的邻域内,以邻域中心像素为阈值,将相邻8个像素的灰度值与其进行比较。若周围像素值大于中心像素值,则该像素点的位置被标记为1,否则被标记为0。最终可得该邻域内中心像素点的LBPH值,并用此值反映该区域的纹理信息,如图1,LBPH计算原理如式(1)。
图1 LBPH原理图
(1)
式中:(xc,yc)代表3×3邻域的中心元素;ic代表它的像素值;ip代表邻域内其他像素的值;s为符号函数,该符号函数见式(2)。
(2)
(2)改进LBPH
基本LBPH算子具有局限性,覆盖范围较小,无法满足更多尺寸和频率纹理。通过改进后的LBPH算子,能够使半径为R的圆形邻域内,有任意多个像素点,如图2所示。
图2 圆形LBPH算子
采用双线性插值法,可获得采样点的像素值,如公式(3)所示。
(3)
(3)LBPH特征匹配
对于人脸图像,可将其分为若干个子区,在这些子区区域内可根据LBPH值统计其直方图,并依据直方图判别其特征。
(1)图像预处理
导入拍摄的课堂图像,对图像进行尺寸修改,调整合适图片大小用来人脸识别。由于受光照、成像设备等因素影响,图像存在随机噪声和模糊干扰,需对课堂学生图像进行去噪。文章采用中值滤波去噪,可有效去除数字化视频噪声,特别是彩色图像噪声。同时对图像进行灰度化处理,去除彩色信息,有利于人脸识别进行。
(2)人脸检测
通过Haar特征进行人脸检测,Haar特征能够用来实时人脸跟踪,每一Haar特征都描述相邻图像区域的对比模式[9]。对于图像中的边、顶点和细线,其都能生成具有判别性的特征,实现人脸检测。
(3)训练数据
训练过程,利用人脸识别的train函数进行。标签数组,识别该人脸的ID名称。根据ID名称,确定被识别人姓名。在该过程中,每人划分相同数量的数据集进行训练,建立人脸样本和ID名称两个列表。遍历列表中的图像,将图像转换为数组并获取每张图像ID,最后获取循环对象。
(4)基于LBPH人脸识别
LBPH人脸识别方法,可采用置信度评分来衡量所识别人脸与真实人脸之间的差距[10]。用数值大小表示,0表示完全匹配,说明所识别人脸与原模型之间无差距,置信度评分越高则表明二者间差距越大。
Hough变换直线检测是将原始图像坐标系下的一个点,对应参数坐标系一条直线,同样参数坐标系下一条直线也对应原始坐标系下一点。在实际应用中,可采用参数方程表示,图像平面上的点则对应到参数ρ-θ平面上一条曲线,如式(4)所示。
ρ=xcosθ+ysinθ
(4)
Hough变换圆检测原理:用(a,b,r)表示原始图像坐标系下,一个圆心为(a,b)、半径为r的圆。经过一点可作无数个圆,定义某点的坐标为(xi,yi),该点所用的参数为(ai,bi,ri),那么经过该点的圆方程如式(5)所示。
(5)
式中:ai、bi为圆心坐标;ri为圆半径。
Hough变换圆检测,是对上述的(a,b,r)进行求解。若r确定,点(x,y)又为已知条件,根据(x-a)2+(y-b)2=r2,则(a,b)的运动轨迹在几何上变为以(x,y)为圆心,r为半径的圆;若r不确定,(a,b,r)的运动轨迹则变为以(x,y)为顶点的圆锥。
(1)高斯滤波降噪
设一像素点位置为(m,n),其灰度值为f(m,n)。用一个高斯矩阵乘以每个像素点及其邻域,取其带权重的平均值作为最后的灰度值。
(2)计算梯度值和梯度方向
平滑后图像在水平和垂直方向分别使用Sobel核进行滤波,以获得水平方向梯度值gx(m,n)和垂直方向梯度值gy(m,n)。
(3)过滤非最大值
在高斯滤波过程中,边缘可能被放大。使用统一规则过滤非边缘点,使边缘宽度尽量为1。
(4)上下阀值检测边缘
设置两个阀值,分别为最大阀值和最小阀值。其中大于最大阀值被检测为边缘,低于最小阀值被检测为非边缘。对于中间的像素点,若与已确定边缘的像素点邻接,则判定为边缘;否则为非边缘。
对拍摄的课堂图像进行预处理,掩膜去除背景。将处理后图像进行Canny边缘检测,标定教室座位区域,删除教室窗户等不相干区域。通过Hough变换直线检测,选取合适直线,进行座位划分。在划分座位区间过程中,以课堂图像中走廊开始,向左依次为第一列、第二列、第三列等,该过程部分Python代码如下所示:
for i in circles[0, :]:
if i[0] > 300 and i[0] < 370 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第一列′)
elif i[0] > 220 and i[0] < 300 and i[1] > 270 and i[1] <300:
print(′座位:第一行 第二列′)
elif i[0] > 128 and i[0] < 220 and i[1] > 270 and i[1] <300:
print(′座位:第一行 第三列′)
elif i[0] > 94 and i[0] <128 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第四列′)
elif i[0] > 30 and i[0] < 94 and i[1] > 270 and i[1] < 300:
print(′座位:第一行 第五列′)
else:
None
导入人脸检测图,该图中成功检测到的人脸,均已用圆形标记。再根据Hough变换圆检测,可求得参数,即圆的圆心坐标和半径。通过对人脸检测图进行处理,得出图像坐标系下,人脸圆个数即出勤学生人数,以及各个人脸圆的圆心坐标和半径。对所选取的学生对象,建立学生信息列表,包括学号、姓名、性别等。通过绘制的座位格网图,将考勤学生人脸识别结果,与对应的人脸圆所处座位格网相匹配。依据识别学生的标签ID,确定该识别学生所处座位行列号,实现考勤学生座位匹配。
基于LBPH的智能考勤方法,设计开发了课堂考勤系统,实现了课堂图像导入、人脸检测、训练数据、人脸识别、划分座位格网以及生成课堂考勤日志的功能,具体技术流程如图3所示。
图3 技术流程图
(1)课堂图像导入
选取学院教室为实验区域,将手机固定在教室讲台合适位置,保持高度、焦距大小不变,面向学生正面拍摄课堂图像并导入,如图4。
图4 课堂图像 图5 人脸检测
(2)人脸检测
对导入的课堂图像进行预处理工作,包括图像尺寸修改、灰度化处理、去噪等操作。使用OpenCV中的Haar级联数据,加载OpenCV人脸检测器,对预处理后图像进行人脸检测,并对图像上检测到的人脸,绘制人脸圆,如图5所示。
(3)训练数据
选取多名不同专业学生为样本,建立图像数据库,如图6所示。调用OpenCV里face模块中的LBPH方法,可得出所需训练数据文件,并保存到指定路径。
图6 图像数据库
(4)人脸识别
使用OpenCV加载训练数据文件,将图5中检测到的人脸图像单独裁剪并保存,对裁剪的人脸图像进行LBPH人脸识别,输出考勤学生识别结果,如图7。
图7 人脸识别
(5)划分座位格网
在图像坐标系下,图像左上角为零点,X轴为图像矩形上方水平线,Y轴为图像矩形左边垂直线,如图8所示。根据Hough变换直线检测原理,检测座位直线,挑选合适直线,用于划分教室座位区间,并绘制座位格网图,如图9所示。
图8 图像坐标系 图9 座位格网图
(6)生成课堂考勤日志
结合学生信息列表,得到识别学生的个人信息,并生成考勤日志,完成课堂考勤工作。系统识别到的为出勤学生,未识别则为缺勤学生,成果统计如图10所示。
图10 考勤日志
(1)基于LBPH人脸识别算法,实现了教室学生人脸检测、学生人脸识别等。根据Hough变换和Canny边缘检测,划分教室座位区间,绘制座位格网,并结合人脸识别结果,确定学生座位位置。
(2)基于LBPH的智能考勤方法,采用Python语言开发了课堂考勤系统,该系统具有学生人脸识别、考勤日志生成等功能,较好地完成课堂考勤工作。与传统人工考勤相比,该方法提高了课堂考勤效率,节省出更多教学时间,有效解决代答到、代课等问题。