作 者 信 息
王海起,李 建,刘香斌,陈海波
(中国石油大学(华东)地球科学与技术学院,山东 青岛 266580)
【摘要】因为学校教室实时使用情况不明导致资源利用不合理,所以建立校园教室空闲率实时分析查询系统对于教室资源的合理配置具有重要意义。本系统使用ArcGIS平台完成了校园二维地图的创建与地图服务的发布,采用B/S模式搭建了校园WebGIS平台,使用OpenCV跨平台计算机视觉库对监控视频进行了图像截取、图像分割、灰度图转换、图像二值化等处理,使用基于颜色信息的人数统计算法计算教室内的学生人数,进而得到教室座位的被占用情况并计算出空闲率,最终构建了校园教室空闲率查询系统,实现了教室空闲率的分析与展示。将基于颜色信息的人数统计算法应用于教室环境下的人数检测,该方法无需高质量的监控视频和特定的拍摄角度,也无需寻找大量的具有代表性的模型训练数据,只需通过单个座位上的颜色覆盖比就可以判断教室座位的占用情况,特别适用于学校教室这种简单的场景。从教室的监控视频检测结果来看,该系统平均正检率可达71.35%,平均误检率为21.48%,平均漏检率为21.00%。该系统利用教室室内监控视频识别教室实时人数,对教室空闲率进行实时展示,并分析其变化情况,为学生自习提供了便利手段,从而提高了学校教室资源的利用率。
【关键词】视频空闲率;B/S模式;ArcGIS;OpenCV
【中图分类号】TP37 【文献标识码】A 【文章编号】1672-1586(2019)06-0074-06
引文格式:王海起,李 建,刘香斌,等. 基于视频的校园教室空闲率分析系统[J].地理信息世界,2019,26(6):74-79.
正文
0 引 言
教室是学校教育最重要的教学资源和最基本的设施,是学校从事教学活动的重要场所,也是学生自习的首要选择。近年来随着办学规模的不断扩大,招生数量的逐渐增加,各大高校学生选择自习教室面临许多问题,其中主要包括:由于不知道各教室是否有课,学生需要在各教学楼、各楼层、各教室之间花费较多的时间去寻找空闲教室,浪费了宝贵的学习时间;在很多教室都没课的情况下,学生随机选择自习教室,各教室间就会出现自习人数分布不均的现象,使教学资源因分配不均而造成浪费。
在国际上智能监控视频系统已经实现对各类现实场所人群检测的应用,越来越多的科研机构和专家学者在该领域研究的投入不断加大。Tan等人为了让人们选择不拥挤的车厢上车,减少火车停靠上客的时间,利用车厢内的安全摄像机和深层卷积神经网络对视频帧中舱室内人群密度进行估计。Owodolu等人为了解决如研讨会、宗教盛会和工作车间等场景的严重拥挤问题,使用图像传感相机、传感装置和相机相结合的方法捕捉图像,使用现有的Viola Jones人脸检测算法进行计数,达到了可取代人工计数的效果。Pavithra等人将基于模板图像的相关匹配算法和Viola Jones面部检测算法组合以计算在大厅中存在的人的数量,通过相关系数识别大厅的空座位,适用于大型拥挤场所。Chato等人为了确保公共运输车辆不得超过既定乘客数量,设计了一个计算公共交通人员的系统,使用人工神经网络(ANN)识别和计算从摄像机获得的视频中的乘客人数。
同时,国内有许多学者已将监控视频应用到了对校园教室空闲率监测的研究中,其中,在人数统计方法上大致可以分为以下几种:一是基于形状特征的统计方法,如瞿先平以人头特征为检测对象,运用机器学习的方法进行人数统计;吴华宇在研究中以人头特征为检测对象,通过人头发色信息、人头形状信息和人头面积信息提取人头区域,并对3种不同类型的教室进行了实验分析,均取得了较高的正检率。二是基于颜色特征的统计方法,如喻恒利用背景差分法提取目标,利用边缘检测和形态学算法获得人物目标对象的完整轮廓,最终通过对连通域填充和标记来获得精确的人数;苏娟在研究中由于教室内的摄像机无法获取完整的人体轮廓信息和清晰的人脸五官信息,于是将基于颜色特征的方法用于教室场景中的人数检测。三是基于模型学习的统计方法,如刘砚利用HOG特征对教室内人体目标进行特征提取,然后用SVM分类器对这些特征进行训练,进一步提高系统的准确率,使之能更好地适应复杂环境。基于形状特征的人数统计方法需要被检测对象有清晰的轮廓特征且与周围的其他特征必须有明显的差异,但由于教室监控摄像头的安装位置、拍摄角度和图像质量的影响,无法获取完整清晰的人体轮廓,因此无法根据形状特征进行人数统计。基于模型学习的人数统计方法的实现前提是有大量的训练数据,训练的数据的选择和训练样本容量的大小直接影响学习结果的好坏,选择的数据越多且越有代表性,则训练出的模型可靠性越强。
结合教室座位上的学生具有流动性低、动作幅度小和位置相对固定等特点,本文选取了基于颜色信息的人数统计方法,将该方法用于教室环境下的人数检测。该方法无需调整监控镜头提高图像精度以获取清晰的轮廓信息,也无需寻找大量的具有代表性的模型训练数据,只需通过单个座位上的颜色覆盖比即可判断该座位是否被占用,特别适用于学校教室这种简单的场景。该系统通过基于颜色信息的人数统计方法对教室监控视频下的学生人数进行统计分析并计算出教室的空闲率,通过校园WebGIS系统对教室当前使用状态和安排计划等情况进行说明展示,可以让广大师生便捷快速地获取各教室的信息,并在一定程度上保证了数据的及时更新,提供更加准确的信息,使得同学能够更快速地寻找到合适的自习教室,具有一定的应用价值和现实意义。
1 教室监控视频分析与处理
由于目前教室视频清晰度较低,无法使用人脸识别进行精确分析,因此系统的视频处理程序采用了一种简单图像处理的方式,即使用基于颜色信息的人数统计算法对监控视频进行处理,算法主要原理为:将目标图像二值化处理后,以图像区域内白色像素范围与整个图像区域的比值为依据,高于比例阈值的区域判定为无人,反之判定为有人。整个视频处理程序由C++语言配合OpenCV编写,主要步骤如下:①对各教室的座位进行分割与编号;②对各教室监控视频按照逐帧访问的方式进行读取,将连续的视频转化为一张张的图像,并选择特殊帧进行处理;③把图像中的每一个座位作为一个分析对象,判断座位上是否有人,从而统计图像中座位的使用情况,以获取该时间下教室的座位使用情况,进而分析出空闲率;④使用Ajax技术对教室空闲率统计结果进行实时传输与更新。研究思路如图1所示。
图1 研究思路
Fig.1 Technical flowchart
1.1 座位分割与编号
以中国石油大学(华东)教室监控视频为实验数据,对于校园中不同的教学楼,其教室建筑结构存在差异,即使是同一座教学楼中的教室,其座位布局和摄像头安装位置也有不同。因此,不同教室的座位信息是不一样的。但每个摄像头安装后所拍摄的画面是稳定不变的,因此只需要对每个摄像头所拍摄的教室座位信息进行一次人工确认即可。以南教楼209教室为例,其座位总数为219个,监控视频中可见座位数为209个,座位可分为3大部分,靠门部分、中间部分与邻窗部分;将各部分的座位分别由后向前编号,把每个座位作为一个单独的分析对象,划分结果如图2所示。将经过确认的座位点位信息按特定格式储存于文本文件中,对相应教室进行视频分析时可直接调用函数获取其座位的点位信息。
图2 教室座位分割结果
Fig.2 The segmentation results of classroom seat
1.2 图像读取与处理
首先实例化一个VideoCapture对象对教室监控视频进行读取,然后使用OpenCV提供的接口对教室监控视频进行逐帧读取,将视频转化为图像。监控视频的fps(画面每秒传输帧数)为25.0,即一秒内包含25帧图像,但对于监控视频来说,一秒钟内25帧图像彼此之间的差别并不明显。因此,可以将每一秒的第一帧图像作为特殊帧,用特殊帧图像代表这一秒内所有帧的图像。以南教209教室为例,教室座位区被分为3部分,需对每部分的座位分别进行是否有人的判断,以此进行人数统计。其详细步骤如下:
1)获取座位的点位信息。由于监控视频角度的特殊性,使得图像中所有座位都存在不同程度的变形,因此,所有座位的形状都是不规则的四边形。每个座位包含4个点位信息,由4个点位信息可以获得座位的形状、所占面积大小以及其在图像中所处的位置。调用该教室座位分割与编号时储存座位点位信息的文本文档,将从文本文档中获取的座位点位信息组织成特定的形式,以便进行座位区域裁剪时使用。
2)裁剪座位区域并计算区域大小。根据点位信息,裁剪出座位所占区域,同时计算该座位所占面积的大小。座位区域轮廓的绘制使用drawContour()函数实现,通过上一步座位分割后的点位信息确定轮廓的范围,综合考虑轮廓编号、绘制颜色和轮廓线粗细后,设计算法实现了区域轮廓的绘制,最终得到如图3a所示的座位区域裁剪图像。轮廓面积的计算使用ContourArea()函数实现,在该函数中输入分割后的座位点位信息并确定轮廓的联通方式后即可得到该区域的面积。
3)将裁剪后的单个座位的区域图像转换为灰度图,并对其进行二值化处理。图像转换为灰度图的处理由OpenCV提供的cvtColor()颜色转换函数实现,在该函数中输入如图3a所示的裁剪后图像,并指定颜色转换类型,最终得到如图3b所示的灰度图。灰度图二值化的处理通过OpenCV提供的threshold()函数实现,在该函数中输入上一步得到的灰度图,并指定二值化所用到的阈值、输出图像中的灰度最大值和二值化处理的阈值类型,最终得到如图3c所示的二值化图。
图3 灰度图转换及二值化结果
Fig.3 Gray scale conversion and binarization results
其中,threshold()函数的第3个参数即二值化所用到的阈值,其选取尤为关键。该阈值的确定一般为经验所得,本次研究中经过截取不同时间不同亮度下的图像进行测试得出,当该值取m-40.0时,其处理结果最佳。其中,m为全图像灰度均值,计算方法和上一步灰度图转换相似,图像转换为灰度图的处理由OpenCV提供的cvtColor()颜色转换函数实现,图像灰度均值和标准差的计算由OpenCV提供的meanStdDev()函数实现,只需在该函数中输入要计算的灰度图像,即可输出灰度均值和灰度标准差的计算结果。
1.3 座位使用人数统计
根据像素占比判断座位上是否有人。countNonZero ()为OpenCV提供的统计图像是非零像素个数的函数,利用该函数获取座位区域图像中白色像素的个数,当白色像素与座位区域面积之比低于某一值时,即认为该座位被覆盖区域较大,有极大可能被占用,经过取多张图像测试得出该值取0.7时判断准确度最高。
判断结果如图4所示,对教室各座位被占用情况进行综合统计分析,得到教室被占用座位数,再根据教室座位信息(各部分的行列数)计算出教室的座位总数,进一步计算即可得到教室空闲率。
图4 教室占用情况判断结果
Fig.4 The judgment results of classroom occupancy
1.4 分析结果传输
在监控视频处理程序中完成对视频的处理分析后,还需要将结果展现到校园WebGIS系统中,系统使用Ajax技术(Ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术)对教室空闲率进行更新与展示,使用动态读写服务器资源文件的方式将视频处理结果更新至校园WebGIS系统。在监控视频处理程序中将视频处理结果(结果图像及人数统计结果)动态储存到服务器指定路径下,通过Ajax的方式对该数据进行访问更新,并通过动态更改图片资源路径的方式更新结果图像,最终实现Web系统中教室空闲率的更新及视频处理结果的更新。
2 校园教室空闲率分析系统设计与实现
2.1 系统架构设计
系统前端使用HTML+CSS+JS相结合的方式完成,系统架构如图5所示。
图5 系统前端架构
Fig.5 System front-end architecture
2.2 前端界面设计与实现
系统前端界面分为4个部分:
1)主题栏。位于主界面正上方,包括中国石油大学的标识图像、当前时间展示、系统名称展示。
2)菜单与展示栏。位于主界面左下侧,包括根据选定的条件进行查询、教学楼名称显示、教学楼信息简介,当前教室实时空闲率展示与历史空闲率展示。
3)地图显示栏。位于主界面右下方,主要用于展示中国石油大学(华东)校园地图。
4)总空闲率展示栏。位于地图显示部分的右上方,半透明显示,用于展示各教学楼的总空闲率。
使用Brackets软件,结合Html、CSS、JavaScript对设计的前端界面进行了实现,其最终效果图如图6所示。
图6 系统前端界面效果图
Fig.6 System front-end interface
2.3 系统功能设计与实现
1)系统时间显示。通过JavaScript中的new Date()方法获取系统当前时间,对获取到的时间进行解析,并组织成固定的格式进行显示,其显示效果如图6中区域(a)所示。
2)教室切换查询。显示效果如图6中区域(b)所示,用户可在各教学楼、各楼层、各教室之间进行自由选择、切换查询操作。
3)校园地图展示。如图6中区域(c)所示,使用ArcMap完成中国石油大学(华东)校园数字地图的创建,包括地图矢量化及地图元素的属性录入等;完成地图的创建工作后,通过ArcGIS Server将地图发布为地图服务,以供系统使用;最后使用ArcGIS API forJavaScript中的接口完成对地图服务的调用。
4)教室实时空闲率与状态显示。如图6中区域(d)所示,能够展示当前教室的状态,分为有课、空闲、借用3种状态,同学们可根据该状态确定该教室是否可用于进行自习,当前空闲率数据由监控视频处理系统提供,当前状态可由教务系统获取或同学反馈、实际调查得到,并可及时更新。此功能将空闲率实时更新,使用图像进行展示,通过JavaScript中的定时调用函数setInterval实现结果图片与空闲率的更新。
5)教室历史空闲率展示。如图6中区域(e)所示,通过一段时间内教室空闲率的纪录,对教室的历史空闲率做出分析,并使用OpenCV提供的Polylines函数绘制折线图进行展示。
6)教室安排情况展示。通过学校教务系统或其他途径获取教室当天的安排情况,对其进行展示,如图6中区域(f)所示,将不同的使用状态用不同的颜色展示,有课时段用红色标注,空闲时段用绿色标注,开会等借用状态用蓝色标注。
7)各教学楼总空闲率展示。如图6中区域(g)所示,通过对各教学楼所有教室的空闲率分析结果汇总,计算出平均空闲率,将其作为同学选择自习教室的一个参考。
8)教室实时影像显示。如图6中区域(h)所示,通过视频处理程序对监控视频进行处理分析,获得处理后的图片,将其显示在系统中。
3 试验结果评价
3.1 实验评价标准
对于实验结果,针对视频处理结果存在误检、漏检等可能性,为评判处理结果的准确性,本文从7个方面定义了如下评价指标。
1)正检率:正确检测到的被占用座位数与实际被占用座位数之比。
2)误检率:错误检测到的被占用座位数与实际被占用座位数之比。
3)漏检率:未被检测到的被占用座位数与实际被占用座位数之比。
4)实际教室占用率:教室内实际被占用座位数与教室总座位数之比。
5)实际教室空闲率:与实际教室占用率相对,实际教室空闲率=1-实际教室占用率。
6)测得教室占用率:教室内检测到的被占用座位数与教室内的总座位数之比。
7)测得教室空闲率:与测得教室占用率相对,测得教室空闲率=1-测得教室占用率。
3.2 结果评价
测试使用的数据为中国石油大学(华东)南教楼209教室的监控视频,包括一天中不同时段的7个视频文件。从7段视频中共选取了12张监控视频的截图进行测试分析,测试结果见表1。
表1 监控视频检测结果
Tab.1 Monitoring results of video detection
从该教室的监控视频检测结果来看,监控视频平均正检率可达79.01%,平均误检率为21.52%,平均漏检率为21.09%。造成误检、漏检的主要原因分析为:①光照不均匀或浅色衣服颜色导致部分光线较弱的座位被误判为占用状态而误检;②存在风扇和投影仪等遮挡物,使得部分座位无法正常判断;③部分同学的书包、衣物放在桌面上,对计算结果造成了影响;④变形因素的影响,由于监控摄像头的特殊角度,图像的各个部分都存在不同程度的变形,无法对部分变形较大的座位精确定位;⑤由于教室密集程度较大,图像中人员叠加,“一人占两座”的情况时有发生,也容易造成误检。
通过以上实验结果,将测得的教室空闲率与实际教室空闲率相比较发现,教室的测得空闲率与实际空闲率误差较小,能够较好地反映教室的空闲率。
4 结束语
针对各大高校教室资源利用率不高、学生寻找自习教室困难的情况,以及各高校教室都装有视频监控,却没有很好地利用的背景,以提高教室资源利用率为目的,帮助学生高速有效地寻找自习教室为出发点,本文基于教室室内监控视频,以B/S系统为支撑,以计算机图像处理技术为依托,设计并实现了基于视频的校园教室空闲率分析系统。实验表明,将基于颜色信息的人数统计算法应用于教室监控视频中的人数检测,以单个座位上的颜色覆盖比为依据判断座位使用情况的方法是可行的,该方法适用于监控视频清晰度不高、拍摄角度不佳但目标对象流动性低、位置相对固定的此类场景。在实际检测中发现光线强度、均匀程度,人员的衣物颜色都会对提取结果产生干扰。此外,堆放在座位上的物品,也容易对统计结果产生影响。所以利用颜色信息进行图像处理在一定程度上能够有效地对教室空闲率进行统计,但是单纯依此方式对教室空闲率进行分析有一定的局限性,不能精确灵活地统计各教室的空闲率情况,需要在具体的应用中进一步改进。
本期回顾
理论研究
创新应用
· 基于GLAS激光测高数据的ZY-3全球DEM精度评估方法
邮箱变更声明
网站开通公告
诚聘特约审稿专家
专题组稿