基于监控识别的座位管理程序设计与实现
2021-12-29邓明杰陈志荣
邓明杰,陈志荣
(宁波工程学院 理学院,浙江 宁波 315211)
0 引言
通过对图书馆等众多公共学习场所的座位管理模式及现状调查发现,这些场所长期存在“难寻位”、“乱占位”等现象,极大地降低了座位利用率。这种教育资源的不平衡使很多同学对图书馆失去了兴趣,也使图书馆丧失了其原本的职能与功能[1]。
目前高校图书馆应用的座位管理系统其核心技术主要为:单片机红外感应、RFID等读卡器控制以及利用图书馆门禁控制等[2]。以上几种方法虽然实现了对座位使用状态的监管,但依旧存在不足。譬如,单片机红外探测和RFID读卡器控制技术,凭借安装在座位上的硬件设备来识别座位使用状态,其缺点是安装设备投入成本较高、没有提供在线预约等可视化终端操作及后期难以维护等。此外,基于门禁系统的座位管理系统,依靠门禁刷卡的方式仅仅能管理人员出入,无法保证馆内座位资源的分配,在座位精确管理方面显得力不从心[3]。
因此本文设想通过新兴的机器视觉和深度学习等人工智能技术,充分利用图书馆内已有的高清网络摄像头来实现对座位的精确监管,并将整个系统部署到用户多、操作方便、实用性强的微信公众平台上,打造一个完整的、实时性的智能座位管理系统。
1 技术关键
实现座位管理的核心技术是视频画面提取与目标图像检测技术。利用图书馆内的高清监控摄像头获得指定场景区域的实时监控画面,并在固定时间间隔内对视频流进行单帧截取,获得实时画面静态图像,然后使用目标图像检测技术将实时画面输入到训练好的深度学习模型中,判断实时图像中的座位使用情况,生成座位使用情况记录表,并以此为基础实现后台座位资源的实时监管。
1.1 目标识别算法设计
该系统主要以YOLOv3目标识别算法为核心来实现对座位状态的识别。YOLO算法把目标区域预测和目标类别预测合二为一,将目标识别问题转化为目标区域预测和类别预测的回归问题[4]。
首先采用回归模型(如滑窗CNN)一次得出全图像的边框标注,同时将输入的图像划分为S×S个小格子,如果某个物体中心位置坐标位于一个格子内,那么该格子就负责该区域内的物体检测工作。然后采用非极大值抑制基于每个格子得到经过筛选之后的边框进行输出[5]。该过程示意如图1所示。
图1 YOLO目标图像检测过程示意图
每一个格子输出B个Bounding box,即包含物体的矩形区域信息,以及C个物体属于某种类别的概率值信息:
Bounding box信息包含x,y,w,h,confidence这5个数据值。其中x,y分别表示当前格子检测到的物体中心坐标。w,h是Bounding box的宽高[5]。confidence表示当前的Bounding box内是否包含物体以及预测的准确程度。定义为:
若该Bounding box内检测到物体,则Pr(Object)=1,否则Pr(Object)=0。其中,表示预测框与真实值之间的交集面积。网络全连接层的最终输出维度是S×S(B×5+C)。
YOLO的Loss函数主要是使用均方和误差来优化模型参数的,即
其中,coordError表示预测数据与标定数据之间的坐标误差,iouError表示IOU误差,classError表示分类误差[6]。
由于这3项数值对神经网络loss的贡献度不一样,并且在计算iouError时分为某个物体的中心坐标“在网格中”和“不在网格中”两种情况,因此分别代入λcoord=5和λnoobj=0.5,以此来修正coordError和IOU误差。因此有如下计算公式:
其中,x,y,w,C,p表示网络预测值,x^,y^,w^,C^,p^表示标注值。表示物体在网格i中,分别表示物体“落入”和“未落入”网格i的第j个Bounding box中[6]。
本文提出的座位管理系统通过高清网络摄像头捕捉图书馆各时段、各区域、各角度的座位单帧实时画面,快速构建深度学习数据集。深度学习技术能够自动学习数据各个层次的抽象特征,更好地反映数据的本质特征,极大地提高了识别准确率和效率。利用YOLOv3训练得到的模型,可以从监控视频流中自动识别并标注出座位的位置信息和使用状态,极大程度地提高了管理的自动化程度和效率。
1.2 图像处理流程
1.2.1 模板图像处理
模板图像是指从监控视频流中截取到的单帧图像,主要用于深度学习模型的训练和测试。考虑到监控视频中采集到的有效数据量过小,可能会导致过拟合现象,可以采取镜像翻转、添加椒盐噪声、分割图、添加光照等方法扩充数据集。本文使用软件LabelImg标注出模板图像中座位的位置信息和使用状态,每张图像的标注数据存放于对应的.txt文件中。为保证训练图像标注的质量,标记时要注意标注方框大小合适、位置合适,需要丰富多视角的素材,目标被遮挡也要标注,避免遗漏小目标等。
1.2.2 实时图像处理
实时图像是座位管理系统每隔一定时间从视频监控系统采集到的监控视频流中自动提取的单帧视频画面,将其输入到训练好的深度学习模型中检测座位信息并判断其使用状态。
1.2.3 座位状态识别
利用YOLOv3网络对实时图像和模板图像数据进行分析比对,得出以下几种可能的判断结果:
①书桌有书,座椅有人——使用中
②书桌无书,座椅无人——空闲
③书桌有书,座椅无人——待定
④书桌无书,座椅有人——使用中[7]
针对以上情况中的第③点,系统为该座位标记一个累加事件,当连续3次出现该情况,则判定该座位为占座现象,系统将自动释放该座位资源,并及时反馈至小程序端和管理员端,通知管理员对座位进行清理,方便下一位读者使用。此外,管理系统会在该违规占座者的账户信息中记录本次违规事件,以供学校执行相应的惩罚机制,该过程示意如图2所示。
图2 系统自动识别占座行为流程图
1.3 系统测试结果
本系统在某场所进行测试后得到的模型收敛效果如图3所示,系统测试得到的识别效果如图4所示。从该结果可以看出系统的收敛性较好,识别的准确程度较高,测试图中得到的识别准确率达到了100%。
图3 模型测试收敛效果
图4 系统识别测试结果
2 座位管理小程序设计
小程序端用绿色、红色和黄色图标表示座位空闲、使用中和未开放3种状态,用户可以选择、预约或取消座位。后台自动更改相应座位的使用状态表:用户正常使用座位时后台自动锁定座位状态;若用户离开座位且未手动释放已占用的座位资源,系统在确认座位处于占座情况后,将自动释放当前座位资源以方便其他用户选择座位,同时记录占座用户的违规信息。
2.1 系统基本功能
座位管理小程序的工作功能模块如图5所示,初步总结出以下几点基本服务功能:1)账号绑定;2)座位预约;3)位置图示;4)扫码签到;5)失约查询;6)空座查询;7)预约信息;8)取消预约。以上几种功能可以基本实现对图书馆座位的管理,且具有较强的可操作性。
图5 图书馆座位管理系统功能模块图
2.2 用户使用流程
读者登录微信小程序后进行学号绑定,即可获得图书馆座位的分区图示。读者选择自己喜欢的空闲座位即可进行座位的预约或直接使用。1)直接使用座位时系统工作流程如图6所示;2)若用户选择座位预约,则需要在预约时间的30 min内扫码签到,否则视为放弃预约,系统将开放该座位的预约限制,方便其他用户使用,整个流程如图7所示;3)若用户选择的座位已经被他人提前预约,但目前还未到预约的使用时间,系统则会提示当前用户:该座位已在某时间被预约,若继续选择使用该座位,需在他人预约时间前15 min停止使用该座位。小程序会在预约时间前15 min发送提示信息给当前使用者,提醒其归还当前座位,另寻它座。
图6 用户选择座位并直接使用流程图
图7 用户选择座位并预约流程图
当用户离开图书馆时根据自身需求选择暂时离开(30 min)或永久离开(释放座位),系统会根据用户的操作更新座位使用状态表并实时反馈至小程序端,以供后来的读者参考使用。
3 结语
为实现座位的精准化管理,本文提出了基于深度学习目标图像检测技术解决座位及时释放问题。该设计无需安装大型硬件设施,以低成本实现高精度的座位监管,适用于高校图书馆以及其他各类社会公共学习场所,具有较强的适用性和较高的实用价值。根据测验结果可以看出,本文设计的座位管理系统精确率较高,完全满足对座位的实时监管,但由于测试数据集中涉及的环境较为单一,实际应用到更为复杂多变的环境下进行识别时还需改进。