面向移动终端和Web的智能自习室管理系统
2015-09-26梅峻韬宋丽红董静天津财经大学理工学院信息科学与技术系天津300222
梅峻韬,宋丽红,董静(天津财经大学理工学院信息科学与技术系,天津 300222)
面向移动终端和Web的智能自习室管理系统
梅峻韬,宋丽红,董静
(天津财经大学理工学院信息科学与技术系,天津300222)
0 引言
当前高校的自习室座位一直是学生们“必争之地”,有时甚至导致同学之间产生矛盾纠纷。究其原因,一方面是自习室拥有较好的学习环境和氛围,是学生的首要选择,另一方面则是部分自习室座位存在供不应求的情况。供不应求的直接原因就是有效自习室座位数量少于需求人数。
而许多原因会导致有效的自习室座位数量不够:由于自习室设计问题,导致座位数量太少;自习室设计没有问题,但由于不合理的使用,导致有效座位减少。
经过调研,我们发现导致自习室座位紧张的主要原因有两点:①不文明占座问题;②自习室负载不均,导致有些自习室一座难求,而有些自习室则门可罗雀。
因此,为了缓解当前的情况,研究开发一个高效可靠的智能自习室管理系统迫在眉睫。
本项目拟设计和实现基于Android和Web的校园自习室智能管理,通过合理调配和管理,对自习室座位资源进行最大化利用,缓解自习室座位紧张的问题。
1 系统设计
1.1系统需求
面向移动终端和Web的智能自习室管理系统实现在终端进行座位预约、对自习室人数进行统计并反馈、自习室现场无人值守管理等功能。通过调研和技术可行性分析,系统需要具备以下特性:
(1)系统应具有良好的人机交互界面,符合用户的使用习惯,便于推广。
(2)系统对学生证件的信息具有较高的识别率和识别速度,快捷高效地进行座位分配,使学生不滞留地刷卡入座。
(3)系统能够高效准确地对摄像头获取到的自习室图像信息进行统计和分析,将统计信息录入数据库。
(4)系统能够实时地反馈数据库中的人数统计结果。
(5)管理员可以方便快捷地对自习室人流量信息进行查看与分析,并对违约学生发出警告。
系统由学生实时查看及预约自习室座位系统,自习室无人值守管理系统、基于Web的自习室智能管理系统三个子系统组成。
1.2模块设计
(1)学生查看及预约自习室座位模块
学生可通过手机客户端登录后通过公告板查看校内公告;预约自习室的座位;查看教室实时的室内人数和座位剩余情况;系统根据设定的可用时间最长或人数最少等条件,给出最优的教室选择方案。
(2)自习室无人值守管理模块
自习室现场实现无人值守,通过摄像头对学生卡信息进行识别,验证学生信息,安排座位。对预约超时未到的学生发出消息提醒。
(3)基于Web的自习室智能管理模块
系统通过安装在教室的摄像头实时获取教室的照片信息,进行人数统计;管理员可以进行功能设置,按时间和教室统计学生自习人数,生成流量报告,帮助管理人员更合理更有效地调配资源。
2 系统实现
2.3室内人头识别算法的设计
该算法是完成该系统室内人数统计功能的核心算法,算法的准确率、可靠性和效率都对整个系统有着重要的影响。
为了提高对图像中人头识别的准确率,首先应对图像进行处理,过滤无关因素,加强有效信息,提取特征,完成计数。其具体实现方法则是多个基于数字图像处理的算法。
(1)二值化处理
首先对图像进行单通道化,即将RGB 3通道的彩色图像转化为灰度图[1],为了进一步加大不同像素之间的差异。算法中应用二值化方法,即在灰度图的基础上根据阈值对各个像素点进行二值化处理。该阈值根据Otsu法[2]计算出来,在类间方差最小的情况下是最佳的。计算方法如下:
(t:灰度值,t∈[0,255];nt:灰度等于t的像素点数量;T:当前选取的阈值;下标b:以灰度值小于当前阈值T的像素点集合为对象;下标f:以灰度值大于当前阈值T的像素点集合为对象)
灰度值小于当前阈值T的比重:
灰度值小于当前阈值T的方差:
灰度值小于当前阈值T的平均值:
灰度值大于当前阈值T的比重:
灰度值大于当前阈值T的方差:
灰度值大于当前阈值T的平均值:
算出Wb、σb2、Wf、σf2后,根据类内方差的计算公式:σw2=Wbσb2+Wfσf2得出该阈值T对应的类内方差,并选出类内方差最小的阈值T,即为最优阈值[3]。
(2)闭运算
由于图像的品质和二值化算法的性能等问题,二值化图像可能会产生许多噪声像素块或缺口像素块,不利于图像的识别,因此需要继续处理,减少无效的噪点,填补有效的像素点[4]。
为了填补图像中的细小空洞,连接临近物体便于后续边缘检测的操作,因此采用对图像先膨胀处理,后腐蚀处理的闭运算方法。膨胀是将与物体接触的所有背景点合并到该物体中,使边界向外部扩张的过程,可以用来填补物体中的空洞;腐蚀是一种消除边界点,是边界向内收缩的过程,可以用来消除小且无意义的物体。
这两种方法的处理方式相似,都是用一个n×n(一般为3×3)的结构元素扫描图像中的每一个像素,并与其覆盖的像素进行“与”运算并对结果进行判断[5]。区别在于,膨胀算法在结果都为0时将该像素置为0,否则为1;而腐蚀算法在结果都为1时将该像素置为1,否则都为0。
(3)平滑处理
此时图像已接近预期的效果,但考虑到后期使用边缘检测方法检测人头轮廓,为了得到较好的图像边缘,采用Gauss平滑滤波,剔除噪声。通常滤波和边缘检测是矛盾的概念,抑制了噪声会使得图像边缘模糊,这会增加边缘定位的不确定性;而如果要提高边缘检测的灵敏度,同时对噪声也提高了灵敏度。高斯函数确定的核可以在抗噪声干扰和边缘检测精确定位之间提供较好的折衷方案[6]。
实现图像高斯滤波,可以用两个一维高斯核分别两次加权,也可以通过一个二维高斯核一次卷积。
高斯核实现[7]:
一维高斯函数:
确定参数后,根据函数可得出一维核向量和二维核向量。
图像高斯滤波:
根据待滤波的像素点及其邻域点的灰度值按照一定的参数规则进行加权平均。这样可以有效滤去图像中叠加的高频噪声[8]。
(4)边缘检测
算法采用边缘检测方法对人的轮廓进行检测,并在下一步利用Hough变换检测圆,对近似圆形的人的头部轮廓进行检测和计数。边缘检测中常用的微分算子有[9]:Roberts算子、Sobel算子、Prewitt算子、Laplacian算子和Canny算子。
经过实验,相对前几个微分算子来讲,Canny算子的功能要更好[10],具有滤波、增强、检测等多阶段,因此系统采用了Canny算子。Canny分割算法采用一阶偏导的有限差分来计算梯度幅值和方向,在处理过程中,Canny算子还将对梯度幅值进行非极大值抑制处理[11]。最后采用两个阈值的方式来检测和连接边缘。首先根据高阈值得到一个边缘图像,这样检测的结果中假边缘数量很少,但是因为阈值设定较高,检测结果中图像的边缘可能产生缺口,此时采用另外一个低阈值在断点处寻找满足该阈值的点,收集边缘,直到整个图像边缘闭合[12]。
(4)Hough变换检测圆
由于人头部轮廓在图像中的呈现效果接近圆形,所以采用Hough变换的方法进行圆检测,进行人头识别进而统计人数。
Hough变换是判别多个像素点是否属于同一个线条或几何图形[14],本算法中的几何图形就是圆形。当属于同一个圆形的像素点数量达到某个阈值时,判定该圆形存在于当前图像中且位置(圆心)和大小(半径)被这些像素点所确定。
为了能够对n个像素点进行函数判别,首先要将图像空间转换为参数空间,在参数空间对各个像素点进行描述[15],便于检测,这就是 Hough变换的精髓所在。
进行坐标转换就是将平面坐标转换为参数坐标:
已知直角坐标系下圆的一般方程为:
(x-a)2+(y-b)2=r2
其中(a,b)是圆心坐标,r是圆的半径。
将该圆的平面坐标转换为参数坐标为:(a,b,r),因此过点(x,y)的所有圆对应参数空间的一个高度r变化下的三维锥面,如图1所示。
图1
同理,过图像空间中任意一点的圆对应于参数空间中的一个三维锥面。因此,过图像空间上同一圆上的点,对应的参数空间中的三维锥面,在r0高度必然相交于一点(a0,b0,r0)。这样通过检测这一点可以得到圆的参数,相应的圆也可求得了。图像平面的方程转化为参数平面上的示意图如图2所示[13]:
图2
最后根据Hough变换检测到的圆数量进行人数统计。
2.2室内人头识别算法的实现
以下对该算法进行总体的概括和具体函数的描述,同时明确给出该算法的功能和有效性,以及对算法准确率进行评定。
设定图片格式为目前主流的jpg格式,图片由设置在教室中的摄像头定时采集并发送给服务器,由服务器对图像进行处理,完成人数统计功能后,将数据存入数据库。
该算法基于Java平台上的OpenCV库实现。
在读入目标图片后,首先利用cvThreshold函数根据计算出的类内方差最小阈值对图片进行二值化处理,然后用cvDilate和cvErode函数对得到的二值化图片进行闭运算。
之后根据实际图片的操作效果和经验,利用cvS-mooth函数循环多次地对图片进行平滑处理,直至canny边缘检测得到的图片拥有较少的无效边缘。最后利用cvHoughCircles函数对图像进行Hough变换,圈出图像中的人头并依此计算出人数。
图3为算法实现的流程图。
算法完成后,由服务器将得到的人数结果写入并更新数据库,等待下一次图片的处理。图4是目标图片,图5是检测结果图。
图3
图4
图5
2.3移动终端请求数据方式的设计
由于数据库部署在服务器上,查询室内的人数信息其本质就是实现发送数据请求并得到服务器响应的功能。
本系统中的移动终端为Android系统和iOS系统的手机,考虑到网页登录也需要实现同样的功能,系统实现人数信息查询时需要具备跨平台性。因为数据不具备可操作性,与操作系统的性质无关,因此采用数据服务的方式实现此功能。
本系统计划以JSON的数据格式与服务器数据库进行数据交互。JSON采用的文本格式完全独立于操作系统和语言。JSON的这些特性使其成为一种较为理想的数据交换语言。
在移动终端进行数据请求时,首先通过HttpURLConnection方式向服务器服务的url发送HttpPost请求,在服务器端接受请求并执行数据查询后将查询结果封装为JSON格式的数据并返回给客户端。客户端接受到JSON后,解析JSON中的数据信息,并在页面上将其按照键值输出。
2.4移动终端请求数据的实现
为了实现手机通过HTTP协议请求数据的方法,需要先在服务器发布其相关的服务,具体服务发布如下:
创建一个查询结果的类,将其字段信息封装为属性,并实现对每一个属性的get和set方法。
创建一个关于数据库查询的类,在其中定义函数,完成查询数据库的功能,并以List的形式返回查询结果集。
创建一个继承于HttpServlet的servlet类,并实现其doGet或doPost方法。在方法中完成对服务器从数据库中查询到的数据按照JSON格式进行拼接和发送的功能。
在Web.xml文件中定义服务名和服务的路径,如:
部署到容器中,发布并进行网页访问测试。并将查询结果类导出为包,放入Android项目端,为了接收到服务器返回结果后解析为实体类。
Android Application中采用的是通过URL连接进行请求和输入输出的方式[16]。首先创建一个连接类,在其中实现一个HttpPost方法。根据服务器IP地址、端口和服务器端设置的虚拟路径设置URL,通过HttpURLConnection方式发送HttpPost请求,通过HttpURLConnection类的一个实例设置连接参数和请求参数,并且建立输出流并写入发送数据,最后获得响应流,并以string的形式作为函数的返回值返回。
然后创建一个与Web服务端相同的查询结果的类,并在接收到并解析JSON数据后,根据类的属性按键取值循环地创建该类的实例并保存在一个List中。
最后创建一个父类为BaseAdapter的类,覆盖getView方法,针对JSON中数据所封装的List,完成对MainActivity中textview控件的数据设置。需要注意数据格式的转换。
Android端的查询和显示结果如图6所示。
图6
3 结语
本系统整合应用了Web应用、Android系统、图像处理和识别算法实现了对校园自习室和图书馆座位资源的信息采集和发布,学生可通过手机实时查询教室的座位情况,节约了学生的时间和学校的管理成本。
本系统中涉及的人头识别算法还可以扩展应用到公司管理,人群密集处的人流统计等场合。对算法进行改进后可以融合模板匹配算法应用于动物种群数量,车辆数量等需要对大量拥有相似轮廓的物体进行数量统计的场合。
本系统对硬件设备需求较低,应用范围广泛,通过智能移动终端为人们的工作和生活提供了更好的服务。
[1]阳树洪,刘卫宁.灰度图像阈值分割的自适应和快速算法研究[E].重庆:重庆大学,2014.
[2]龚劬,付云凤,叶剑英,姚玉敏.基于二维直方图重建的图像分割算法[J].计算机科学,2013,40(08):313-315.
[3]何志勇,孙立宁,陈立国.准则下分割阈值的快速计算[J].电子学报,2013,41(02):267-272.
[4]程艺喆,雷武虎,戴胜波,陈善静.基于图像差分的自适应背景建模高光谱目标检测[J].计算机应用,2014,34(S2):291-294.
[5]吕庆莉,罗瑜.基于形态学的改进灰度图像边缘检测算法[J].陕西科技大学学报自然科学版,2011,29(06):98-101.
[6]乔翊博.基于DSP6437的黄瓜外观特征参数检测方法的研究[E].哈尔滨:东北农业大学,2013.
[7]姜小磊,姚鸿勋,赵思成.一种极值约束的边缘保持图像平滑算法[J].计算机科学,2014,41(10):101-105.
[8]QIU Shu-fang,ZHANG Xiao-ming.An improved method for image denoising based on gauss curvature and gradient[C].2010 International Conference on Optoelectronics and Image Processing(ICOIP),2010,1:221-224.
[9]王敏杰,杨唐文,韩建达,秦勇.图像边缘检测技术综述[J].中南大学学报(自然科学版),2011,42(01):811-816.
[10]艾明伟,于哲舟.一种改进的Canny算子的图像分割在车辆检测中的应用[E].吉林:吉林大学,2014.
[11]苏连成,王东卫.一种改进的边缘检测算子[J].燕山大学学报,2012,36(05):413-416.
[12]Mondal,S.,Ali,I.An efficient algorithm for boundary detection[C].2015 International Conference on Computational Intelligence and Networks(CINE),2015,42:184-187.
[13]朱桂英,张瑞林.基于变换的圆检测方法[J].计算机工程与设计,2008,3(29):1462-1464.
[14]Zezhong Xu,Bok-Suk Shin,Klette,R.Accurate and robust line segment extraction using minimum entropy with hough transform[J]. IEEE Transactions on Image Processing,2014,24(3):813-813.
[15]LIU Yu-hang,ZHOU Shi-yu.Detecting point pattern of multiple line segments using hough transformation[J].IEEE Transactions on Semiconductor Manufacturing,2014,28(1):13-24.
[16]Reto Meier.Professional Android 4 application development[M].佘建伟,赵凯译.Android 4高级编程(第3版).清华大学出版社,2013.
Image Analysis;People Counting;Embedded Database;Android System
An Intelligence Study Room Management System Designed for Mobile Terminals and Web
MEI Jun-tao,SONG Li-hong,DONG Jing
(Insitute of Science and Technology,School of Science,Tianjin University of Finance And Economics,Tianjin 300022)
1007-1423(2015)21-0071-06
10.3969/j.issn.1007-1423.2015.21.018
梅峻韬(1992-),男,本科,研究方向软件工程
宋丽红(1975-),女,天津人,博士,副教授,研究方向软件工程、智能信息系统
董静(1975-),女,讲师,博士,研究方向软件工程
该项目面向在校学生,利用图像分析、人数统计及嵌入式数据库等技术,实现面向移动终端和Web的智能自习室管理系统,加强对校内自习室资源的管理,解决高校扩招带来的校内自习室和可供自习的教室资源紧缺等问题。该项目具有良好的实用价值,大量节省管理人力并提高管理效率。
图像分析;人数统计;嵌入式数据库;Android系统
2014年地方高校国家级大学生创新创业训练计划项目(No.201410070001)
Designs a program to service for students in university.Realizes the intelligence study room management system which is designed for mobile terminals and Web by using image analysis,people counting,embedded database technology.Aims to strengthen the management of study room resources,so as to solve the lack of study room resources problems aroused by limited study space and university expansion. The project has a good practical value,substantially saving human resources in management and improving management efficiency.