一种基于人体轮廓特征的教室人数统计算法
2021-04-07杨璐
杨 璐
(西安航空职业技术学院,陕西西安710089)
1 引 言
基于视频图像的教室人数统计属于人数统计的一个分支,它主要应用于学校自习室利用资源的调配和上课学生人数统计中,目前基于视觉方法的人数统计方法主要有2种:一种是在门口处统计人流量、另一种是统计座位上的人。第1种方法是从垂直角度场景统计人流法,主要运用于统计人流量,通过在门口垂直上方安装摄像机,用图像处理的方法识别人的头部和肩部的垂直向下的形状来判别是否有人经过从而统计人的个数。它在精度上比使用光电传感器要高,而且允许多个人同时通过。此方法主要应用于统计人流量或者不需要知道人具体位置的场合,如商场、公交车[1]。第2种方法则是通过将摄像机安装在房间的一定高度,通过实时处理房间的平面图像,判断各个座位上是否有人,从而统计出当前房间内的人数。该方法的优点是:1) 图像为实时处理,处理准确度高,不会存在累积误差;2) 可以给出当前房间内人的分布位置图,有更多的应用前景。
本文在第2种方法的基础上进行进一步的研究,在人体识别和视频理解方面方面,马里兰大学的实时视觉监控系统W4,不仅能够定位人和分割出人的身体部分[2],而且通过建立外观模型来实现多人的跟踪,并可以检测人是否携带物体等简单行为。
Taozhao等[3]建立人体模型,基于视频中人头不宜被遮挡的前提,识别人上半身形状,确定人体位置,然后通过摄像机标定技术确定人体模型参数,利用卡尔曼滤波算法跟踪对象,解决对象拥挤遮挡问题,得到了很好的统计效果。本文基于以上研究基础,通过轮廓提取结合运动目标跟踪算法来实现人体识别,进而实现教室人数的统计。
2 教室人体识别及统计算法
由于教室场景中,座椅、走道等背景基本固定,所以将教室中可能坐人的地域预先标定好(一般是座椅处,这些区域在下文被称为敏感区域)。
首先进行图像的预处理,由于光照的不均匀及传输过程中带入的脉冲噪声,导致捕获的图像出现局域过亮或过暗现象,或是呈现出随机分布的噪声点,因此我们首先对采集来的图像进行去噪和光照归一化处理[4]。用Laplace滤波去除噪声,用数学形态学运算进行光照归一化处理,从而在保留有用信息的前提下,除去无用的干扰。
然后进行图像的静态识别,通过灰度、轮廓2个主要参数来判断敏感区里是否有人;另外,根据观察,在大部分人的轮廓都有最高点,即人的头顶,找到当前区域内的轮廓最高点,判断其是否在区域的边缘以内:若在区域边缘以内则认为该区域对应的座位没人;若在该区域边界处则认为该区域有人。
最后针对走廊上的人,采用经典的运动目标检测方法背景累积差分算法来识别[5]。通过此方法可将过道上走动的同学识别出来,保证系统功能的全面性。
算法整体流程图如图1所示。图1中⊗代表计算结果的融合。
图1 算法流程图Fig.1 Algorithm flow chart
2.1 人体轮廓提取算法
1) 图像差分
需要对有人的区域进行凸显,此步骤采用有人教室的图片,与空教室的图片模版做差,达到确定有人区域的目的。
2) 阈值处理
8位灰度图像的像素值为0~255,需要将其转化为二值图像Gk(i,j),这样即可得到与背景不相符的区域的范围[6]。
式中T为灰度阈值,需根据教室光照等环境情况依据调试结果取值。
3) 边缘提取
图像的边缘提取与图像的阈值处理并行,将教室里的所有轮廓以二值图像提取出来。由于采用单种轮廓的提取方法总是存在某些方面的缺陷,因此采用Laplace和Canny两种提取边缘方法的叠加[7]。
Laplace算子是各向同性算子,基本原理是将图像进行二阶微分来实现的,这种算子与图像中像素突变的方向无关,一个二元图像函数f(x,y)的Laplace变换定义为:
数字离散实现为:
2f=[f(x+1,y)+
f(x-1,y)+f(x,y+1)+
f(x,y-1)]-4f(x,y)
处理后就得到了Laplace滤波后的图像,然后将该图像进行二值化处理,就得到了教室内的轮廓。Laplace算法提取出的轮廓保留丰富的人的细节信息,这对接下来图像轮廓特征识别提供了极大的便利。
虽然Laplace算法提取的边缘很好地保留了细节,但它却常常会产生双边界,不是最优的边缘。Canny算法则可以很好地弥补这一点,它的主要步骤:用高斯滤波器平滑图像;用一阶偏导的有限差分计算梯度的幅值和方向;对梯度幅值进行非极大值抑制;用双阈值算法检测和连接边缘采用高斯平滑函数[8]。Canny算法得到的边缘形状很规则,将它与Laplace叠加后,就可为后面的边缘特征识别所用。
4) 图像形态学处理
由于单纯的轮廓信息难以满足区域连通性要求,因此,对图像进行图像形态学处理中的膨胀处理。膨胀处理在二值的边缘图像中的作用是,通过将边缘“加长”和“变粗”,把相近区域闭合到一起,从而加强及突出人体的边缘。
膨胀处理的步骤为:对于一个给定图像集合A,用结构元素B来膨胀:首先对B作关于结构元素原点的映射,并将其映像平移,最后所有经过平移仍与图像A相交的结构元素B原点位置所在像素组成了膨胀后的图像[9],其运算符号为⊕,该过程表示为:
A⊕B={x|Bx∩A≠Ø}
其中Ø代表是否相交;x为B平移的位置量;Bx为平移后的图像。
5) 敏感区域标识
由于光照、物体颜色的影响,单纯在一张二值图像中统计与背景不相符的区域面积,难以得到正确的结果,因此运用图像分割技术,利用经验知识标定出图像中的敏感区域(如桌面、椅子靠背),此后这些敏感区域是进行特征提取的重点。
6) 人体轮廓特征提取
统计学特征提取与识别:以一个敏感区域为单位进行特征提取,从二值图像中得到该区域提背景不一致的面积S1(像素值为1的面积),从轮廓图像中得到该区域总的轮廓面积S2(也是像素值为1的面积),在进行2部分特征的加权累加,得到一个综合性面积S,作为判段依据[10]。根据贝叶斯先验概率模型:S=0.05×S1+0.95×S2,依据经验选择一个阈值,来判断该区域是否有人。
形状特征识别:为了减少人挡人情况所造成的误判,在所得区域内人的部分形态特征,来进行第二次的判断。找到当前区域内的轮廓最高点,判断其是否在区域的边缘以内,若在区域边缘以内则认为该区域对应的座位没人,若在该区域边界处则认为该区域有人。
2.2 动态特征识别
考虑到教室的过道中也存在人走动的情况,为系统的完整性,从一个全新的角度去计算它,即识别行人。由于人在走动过程中动作幅度比较大,在图像中的位置是一个变化的过程,因此只要找到像素值变化比较大的点,就可以判定出运动的区域,再根据筛选即可判断此处是否有人。
由于摄像机场景中的物体是近大远小,建立了摄像机的正向透视投影的近似模型:以图片左上角为坐标原点,原点向下为Y的正方向,人的平均宽度、高度为:
由于人身体大小不同,wm和hm的值上下浮动35%内均认为合理。
然后运用融合了固定背景差分算法与帧间差分算法[11]的运动目标检测方法将摄像机获取的当前帧图像与背景图像做差,得到一张以灰度格式保存下的照片,从而提取了与背景不一致的信息。对获得的当前运动物体所在的区域,进行区域连通性分析,将符合人长宽标准的区域提取出来,当某一连通性区域面积和大致的长宽形状满足当前摄像机近似模型中人的相应参数时,即可判断此处有人[12,13]。
3 实验与结果分析
为了验证本文算法的有效性,针对容量为40人及100人的2种教室进行了对比实验。实验针对窗帘全拉、全开的教室环境下,对人密度较大、人密度一般、有人走动3种情况分别做了测试,前2种情况主要测试算法识别座位上的人的正确率,第3种情况主要测试算法识别行人的正确率。
3.1 摄像机位置布置
由于摄像机的位置直接与实验结果相关,为了得到相对合理的实验结果,对摄像机的布置位置进行了实验。摄像机采集图像的范围能覆盖整个教室,并且要尽量减小前后物体的遮挡。首先,摄像机架设的位置越高,遮挡情况就会越小,但是架设高度不能无限制增长,受房间天花板高度的制约。如果上下维度不能满足足够的角度来减少遮挡,则要通过前后移动摄像机来满足要求,如果这两点都无法实现则要考虑增设摄像机。
覆盖教室既要覆盖到教室左右的范围,又要覆盖到教室前后的范围。根据教室左右宽度可以选择广角的固定摄像机或者PTZ摄像机,保证在横向能够完全覆盖教室。而要覆盖教室前后范围,则跟摄像机的摄像角度、安装角度以及架设高度有关。
由于不同类型教室座椅的分布不同,划分敏感区域的准则和方案也有所不同,本文给出一种没有阶梯的教室,摄像机架设高度的计算方法。这种情况下敏感区域主要是椅子的后背。
图2所示是教室最后一排的位置,理想的摄像机架设高度应该满足在教室后面的椅子靠背不会被前排遮挡,图2中:h为椅子靠背的高度,w为椅子之间的间距,γ最小入射角,γ是一个临界角度,由图2可以看出γ满足:
(1)
图2 教室座椅分布示意图Fig.2 Seat of classroom schematic diagram
把图2所示教室座椅分布放在一个教室里,如图3所示。图3中H为摄像机的架设高度,H1房间天花板高度,L1为第一排桌子离黑板的距离,L为教室的前后长度。
图3 教室摄像机布局示意图Fig.3 Camera of classroom schematic diagram
根据式(1)可以求得,摄像机的最小安装高度为:H=L· tanγ,当然这并不是一个必须遵守的值,但是太小于这个值会使得算法处理的难度加大、准确度降低。
一般而言摄像机架设高度会影响到图片的质量,目标区域需要最大的展现识别目标,在遮挡不严重的情况下(不偏离γ太多即可),当摄像机架设高度对应所需的角度最大时,即图3中的α角大,这是最佳的架设点。这样就可以得到:
由此可做出α,H的关系曲线,如图4所示。图4说明了当H达到一定高度时,摄像机可以以最大的入射角拍摄照片。图4所取相应的参数为:L=20 m,L1=1.5 m。得到最佳架设高度在4.32 m左右。
图4 α-H关系曲线Fig.4 α-H relationship curve
3.2 算法验证
在有40人规模的教室中,根据的摄像机布置规则部署实验环境,图5和图6分别为无人和有人环境。
图5 无人环境Fig.5 Unmanned classroom
图6 有人环境Fig.6 Manned classroom
对图6进行归一化后处理,归一化后的图像如图7所示。图8为灰度差分之后的结果。对人体静态特征轮廓进行提取后结果如图9所示,其中图9中的座椅区域为2.1节中的敏感区域标识。
图7 归一化后效果Fig.7 Effect of normalization
图8 灰度差分后效果Fig.8 Effect of the gray scale difference
图9 轮廓提取Fig.9 Contour extraction
在有人走动的环境下,采用动态特征识别后的结果如图10所示。
图10 动态特征识别Fig.10 Dynamic feature recognition
可以看出,算法较好地提取除了运动的人体,在非敏感区内获取到运动的人体轮廓可以有效地提高系统普适性。
对100余帧教室不同情况的图片进行处理,用误判的总人数除以照片的总帧数,得到总的正确率,统计出正确人数的精确度达到了95.4%,即每一百种教室情况下中约有4~5人被误判,误判的情况基本上都是因为前排人站起或进行其他活动并遮挡后排座椅造成的,而针对学生在座位就坐学习的大多数情况,算法具备较高的准确性。图11是一种误判的情况。
图11 误判Fig.11 Incorrect result
4 结 论
针对基于视频的教室人数自动统计应用场景,设计了静态人体轮廓识别和动态人体运动检测算法,解决了教室人数自动统计的问题,为下一步调配学校自习室利用资源的和统计上课学生人数提供了技术依据。下一步还将对方法的有效性进行进一步验证及进行相应的改进,针对人体误判的情况将通过后续的研究进行算法优化改进,逐渐提高算法的适用性。