一种基于视觉的图书馆占座检测方法

2022-04-21 11:11王建功林国余
闽江学院学报 2022年2期
关键词:桌面头部桌子

王建功,林国余

(1.闽江学院图书馆,福建 福州 350108;2.南京智真电子科技股份有限公司,江苏 南京 210096)

0 引言

图书馆自习室占座一直是各大高校的普遍现象,其本质原因是学校有限的公共设施资源难以满足学生数量增长带来的学习需求[1]。相对于教室,图书馆因其清净的环境、良好的学习氛围、全天候的开放时长受到广大学生读者的青睐。自习黄金时段的一座难求,导致恶意占座现象的愈发严重,为争抢自习座位引发的冲突时有发生。因此,如何解决占座问题,提高自习室座位的利用率是所有高校图书馆面临的任务。近年来,高校图书馆纷纷引入座位管理系统,但在最核心也是最难点即如何判断“占座”这一实际问题上,要么需要高昂的硬件资金投入,要么无法杜绝占座漏洞,难以兼顾效率与成本。

1 国内高校图书馆座位管理系统“占座”判定技术述评

目前各高校采用的座位管理系统多为刷卡选座的模式,一旦刷卡,系统就判定已选的座位为“有人”状态,当用户离座且未刷卡时,旁人很难判断出其是否已不再使用该座位,也就是占座行为的界限不明确。即使有管理员以及志愿者巡查,面对几百甚至上千的座位也是力有不及,尤其是高校图书馆建筑布局各异,有些自习座位在不同的楼层空间,有些自习座位存在间隔的挡板,增加了馆员工作量的同时,巡查效果不尽如人意。解决占座这一问题的关键点在于如何判定座位是否为“空闲”状态,不同的学者们各自提出了自己的解决方案。戴舒诣等通过红外传感监控座位的使用情况,利用单片机对闲置时长进行计时,对“占座”重新分配[2];王祥斌基于校园卡的实时实用及身份的唯一性,采用读卡器时分复用技术,“插卡用座,取卡离座”[3];关云楠通过红外线探测器与无线射频技术结合进行实时座位监测[4];严梓峻等设计一款应用摄像头与树莓派通过获取人脸信息的移动终端系统,实现对读者在座与否的检测[5];尹相权等结合北京师范大学图书馆座位管理系统的实际应用,提出了一种多视图、结合头肩特征的人体检测技术路线,实时识别座位状态[6];熊双等通过在座椅底部安装压力传感器,使用者离座时触发空座判定[7];江先斌在图书馆的每个座位贴上NFC的芯片,将手机作为签到工具,APP间隔数秒读取一次芯片信息用来判定读者的在位状态[8]。上述各种方案都对解决“占座”现象有相当的效果,但也存在着一定的不足。红外感应装置易受热源、阳光源干扰,易被书本、背包等随身物品遮挡;NFC读取技术首先要求读者必须拥有具备NFC功能的手机,而且也不能避免一机多签到;人脸识别需要积累采集到的大量人脸图像相关的数据,用来验证算法,不断提高识别准确性;压力传感器的高昂成本决定现阶段不可能大规模推广。为此,本文提出一种基于视觉的图书馆“占座”检测方法,能够有效提示图书管理员在哪些桌子可能存在座位占位行为,从而指引管理员进行核实,并进行相应处理,适应绝大多数普通高校馆的实际情况。

2 识别算法框架

判定监控阅览桌是否发生异常占座现象,本文拟采用如下两条判断依据:

1)阅览桌在用人数应小等于阅览桌最大使用人数。

2)无人使用的座位上桌面区域应无书籍,书包等物体。

基于上述准则,占位检测系统的核心在于:一方面应检测到在阅览桌上看书自习的人数和位置,其次应判断阅览桌上摆放物体的位置分布。

本文所提出的图书馆占座现象视觉检测方法中,综合考虑多种摄像头布置方案后,拟采用将摄像头安装在阅览桌的上面,垂直向下拍摄的方式,如图1所示。

图1 摄像头布置方案示意图Fig.1 Schematic diagram of camera layout

采用此摄像机布置方案的主要原因在于一方面有利于准确抓拍阅览桌上的书籍,书包等物品摆放情况,便于后续识别;同时人体头部与非头部目标有较明显区别,而且人体头部不易产生相互遮挡,通过人体头顶区域识别判定实际在桌人数鲁棒性更高。基于此,本文提出的图书馆占座现象视觉检测方法流程如图2所示。

图2 基于视觉的占座检测方法流程Fig.2 Vision-based seat occupancy detection method process

在系统启动之前,首先进行背景初始化,获取监控区域的背景模型。然后一方面定时进行目标检测,获取稳定不变的可能候选目标区域,在此基础上进行特征提取,并送入事先训练好的分类器进行人体头部识别;另一方面自动检测桌子区域,根据座位数量等先验知识进行区域划分,并定时检测桌子上是否存在占座物品。将头部识别结果和占座物品检测结果进行综合分析,从而确定该监控区域内是否存在异常占座行为。

3 背景建模和目标检测算法

3.1 背景模型初始化

根据视频的前N帧图像为每个像素构建大小为N的样本库,即背景模型

B(x,y)={B1(x,y),B2(x,y),B3(x,y),…,BN(x,y)}。

(1)

假定要处理的每一帧图像是X×Y个像素组成的每个样本集的大小为N,N是一个固定值,N值大小一般是试验得出的,一般可取N=20。所以样本集的大小为X×Y×N。

同时初始化最小判定距离样本和其它各个参数。

3.2 前景检测

根据当前帧像素值和样本集中像素值的距离判断是否存在活动目标。判定的公式为

(2)

其中,dist表示像素点I(x,y)和背景Bk(x,y)之间的欧拉距离,T(x,y)是每个像素的判定阈值,T(x,y)随像素不同而自适应变化。当背景复杂度增大,阈值也要增大,当背景复杂度减小,则判定阈值也要减小。更新方式如式(3)所示,其中Talter和Tcoef是固定参数,控制了判定阈值的变化。C(x,y)为像素(x,y)的像素复杂度,像素复杂度衡量了像素样本集动态变化的程度,也反应了背景的动态变化程度。

(3)

3.3 背景模型更新

为了适应背景动态变化,需自适应更新背景模型,即对每个像素的背景样本集B(x,y)进行更新。更新以像素为单位。在工程设计中,采用概率更新的策略:每一帧中如果当前像素(x,y)为目标,则不更新;否则按照概率p(x,y)更新当前像素的背景样本集B(x,y)。更新时,从背景样本集B(x,y)中随机抽取一个样本Bi(x,y)进行更新。

样本更新概率p(x,y)由参数L(x,y)的倒数表示,即p(x,y)=1/L(x,y)。L(x,y)更新公式如式(4)所示。

(4)

当前像素是前景时,L(x,y)适当增大,当像素是背景时,L(x,y)适当减小。Linc和Ldec是固定参数值,控制了L(x,y)的变化。

4 头部特征和头部识别方法

正如第二章所述,本文采用摄像机垂直架设的原因之一在于人体头部与非头部目标有较明显区别,且不易相互遮挡,有利于算法识别。在这种配置条件下,人体头部在图像中呈现类似圆的形状,常见的头部检测方法包括模板匹配、颜色匹配以及模式识别方法。由于人体头部在不同位置的形状不同,且极易受到是否戴帽子,是否染发,以及头发多寡等因素的影响,因此模板匹配和颜色匹配难以取得令人满意的效果。而模式识别方法在行人检测,目标识别等领域都获得了成功应用,因此本文采用基于特征和分类器的方法实现人体头部检测。

考虑到摄像机垂直架设时,人体头部与非头部目标之间存在的较大差异,因此本文拟采用梯度方向直方图特征(histogram of oriented gradient,HOG)方法提取特征,然后利用支持向量机(support vector machine,SVM)进行训练后实现头部识别检测。

4.1 HOG特征

在计算机视觉领域中,HOG是一种用于物体检测的常用特征描述方法,主要是计算局部区域的梯度方向直方图,相较于其它特征描述,如颜色特征、类Haar小波特征等,HOG有其独特的优势。HOG特征的核心思想是图像中物体的外观形状可以通过梯度或边缘的方向密度进行准确描述,其具有一定的抗旋转和平移性,并能在一定程度消除光照变化带来的影响,因此可用于人体头部的检测。

计算图像HOG特征的具体流程如图3所示。

图3 HOG算法流程图Fig.3 HOG algorithm flow chart

1)将图像均匀分为一定数目的网格,称之为Cell,然后计算Cell中每个像素处的梯度幅值和方向,计算思路是计算每个像素的偏导数,然后再计算出梯度的幅值和方向。

图像f(x,y)在位置(x,y)处的梯度可以通过以下的梯度向量进行表示

(5)

其中,Gx和Gy分别表示像素在x和y方向的梯度分量。本文采用一维中心对称模板[-1, 0, 1]和[1, 0, -1]分别对原图像做卷积运算得到Gx和Gy。

梯度幅值和方向分别由式(6)、式(7)获得

(6)

(7)

2)将角度区间[0,180]平均划分为z个区间,在每个Cell内根据幅值和方向进行直方图统计,得到一个z维的特征向量,第i维特征表示落在梯度方向位于第i个角度区间内像素梯度幅值的占比。

3)将相邻的m×n个Cell组成一个联通区间block,将这些相邻cell网格的特征向量进行串联,形成block的特征向量,然后采用L2-norm对每个block的梯度向量进行归一化,得到blcok中的梯度特征向量。

4)按照从上到下顺序,每次步进一定的距离,重复遍历m×n个Cell,形成多个由密集重复遍历的cell网格组成的block,每个block之间存在多个重叠的Cell。

5)将所有block的特征向量串联,则构成图像的HOG特征。

图4是不同人体头部图像所对应的HOG特征,其中柱形图的横坐标为角度区间,边缘梯度方向共分为9个角度区间,每个区间角度范围20°,纵坐标为每个区间内像素梯度幅值的占比。

图4 不同人体头部对应的HOG特征Fig.4 HOG features corresponding to different human heads

4.2 SVM识别方法

SVM是一种基于统计学习理论机器学习方法,通过对一定数量样本进行训练,学习出一个接近真实目标的模型,然后利用该模型实现目标识别。由于其具有结构简单、识别效果好、所需样本量小的优点,因此获得广泛应用。SVM算法的基本思想如图5所示。

图5 支持向量机分类原理示意图Fig.5 Schematic diagram of support vector machine classification principle

图5中,三角形△和圆形○是两类不同样本,模式分类就是寻找一个分类线H能将这两类样本正确分开。假设H1、H2分别为各类中离分类线H最近的样本且平行于H的直线,H1与H2之间的距离叫做分类间隔D。SVM分类算法就是寻找一个最优分类线H,不仅能将两种不同类别分开,而且使分类间隔D最大。

上述提到的最优分类线是针对二维平面分类的情况,在三维空间中称之为具有最大间隔的平面,对于多维空间,则统称为最优分类超平面。超平面一般定义为

w·x+b=0 。

(8)

假设xi为训练数据,样本量为l,y∈{+1,-1}为xi的类别标记,如果存在能将样本正确分开的最优超平面,则式(8)满足如下的约束条件

w·x+b≥1,yi=1

w·x+b≤-1,yi=-1,i=1,2,…,l,

(9)

其中,˙表示两个向量的内积,式(9)可以写为

yi(w·x+b)≥1,i=1,2,…,l。

(10)

如上所述,SVM分类算法基本思想是寻求一个使分类间隔D最大的最优分类超平面,分类间隔D= 2/‖w‖,因此可以最大分类间隔转为如式(11)所示的最小化优化问题

(11)

由于训练数据不完全线性可分,需引入非负松弛变量ζi和惩罚参数C,惩罚参数越大表示对错误分类的惩罚越大,这样就转为一个典型的有约束二次规划问题,可采用拉格朗日乘子法求解,此时式(11)可转化为

(12)

求解上述最优化问题可最终获得最优分类超平面。

5 占座事件检测方法

判断是否存在占座现象,本文采用一种简单的判决思路,即将桌面根据先验知识分为几个使用区域,如果有人在使用桌子学习,则对应桌面区域上必然有书籍等目标存在,如果使用桌子人数少于占用桌面区域个数,则认为存在占座现象。

5.1 桌子区域检测

图书馆的阅览桌外形多为矩形,桌面颜色与图书馆地面颜色存在较大差异,同时摄像头安装在阅览桌上方,垂直向下拍摄,因此图像中桌子4条边缘可以分为两组,每一组内边缘直线近似平行,两组边缘之间近似垂直。基于上述策略,本文提出如图6所示的桌子区域检测算法:

图6 桌子区域检测算法流程Fig.6 Detection algorithm flow in the table area

1)利用Sobel算法获取边缘图像。

2)在边缘图像中,利用Hough算法检测所有可能的直线。

3)基于角度相近和相交的思路,对检测到的直线进行聚类,形成一系列直线簇。

4)根据位于直线簇上的边缘点数量对直线簇进行排序,仅保留边缘点满足数量要求的直线簇参与后续判定。

5)在这些直线簇中,根据平行度进行分组,每一组内的直线簇的斜率都近似。

6)对每一组直线簇,寻求与其近似垂直的另一组直线簇,构成垂直直线簇配对。

7)边缘点最多的一组垂直直线簇配对,即可认为是桌子的边缘。

8)根据选定的近似垂直两组直线簇,确定桌子区域。

5.2 桌面占用检测方法

一般而言,绝大多数占座行为都是将书本,茶杯,书包等物品摆放在阅览桌上,因此在进行占座行为分析前,要先获得桌面上各个区域物品摆放的位置和面积。本文采用先进行桌面网格划分,再进行物品检测的思路,其算法流程如图7所示。

图7 桌面物品检测算法流程Fig.7 Desktop item detection algorithm flow

桌面网格化划分是在桌子区域检测基础上,根据阅览桌座位安排的先验知识,将桌面根据横纵方向进行网格化划分,使得每个桌面区域对应一个座位。然后通过之前所描述背景建模和目标检测算法,检测摄像头监控范围内的运动目标信息,在桌面区域范围内判断每个网格内是否存在目标,并统计落在每个网格内目标的面积占比,即目标在桌面网格内所占用的面积百分比,如果占比超过30%,则认为该桌面网格区域被占用。

图8为实际桌面划分后的物体检测结果,其中根据桌子区域检测和座位分布先验知识,将桌面分为4个区域,红色矩形框为桌面4个子区域内检测到的目标,其中右上区域内虽有物品目标,但占比低于30%,因此认为无物品存在。

图8 桌面物品检测效果Fig.8 Desktop item detection effect

5.3 占座检测方法

判断是否存在占座现象,本文采用一种简单的判决思路,即将桌面根据先验知识分为几个使用区域,如果有人在使用桌子学习,则对应桌面区域上必然有书籍等目标存在,如果使用桌子人数少于占用桌面区域个数,则认为存在占座现象,其算法流程如图9所示。

图9 占座算法检测流程Fig.9 Occupation algorithm detection process

6 试验

为了验证本文方法的有效性,在闽江学院图书馆阅览室的5张阅读桌上方安装了摄像机用于算法验证,每个摄像机安装高度不同。为了测试算法鲁棒性,其中一个阅览桌位于窗户边上,光照变化较为明显(图10)。

图10 试验摄像机拍摄画面Fig.10 Test camera shots

实验中,当提示某张阅览桌存在占座现象时,检测数加1,人工审核确认确实存在占座,则正确识别数加1,最终通过正确识别数/检测数评价算法的识别率。试验中,为避免针对固定场景的重复检测和提示,全部由人工进行统计。表1为5个摄像机在实测试期间的占座识别率统计。

表1 占座识别率

摄像机1所拍摄的阅览桌位于窗户边,当窗帘开合以及光照变化明显时,容易造成目标检测失败,从而导致识别率偏低。

需要说明的是,当利用本方法检测占座现象时,能够给出哪几个座位存在占座,但存在误检。而试验中统计正确识别数时,当系统提示占座,由人工审核时,只要桌子上存在占座现象就认为检测正确,至于存在哪几个座位被占用则不予理会,因此也使得试验过程中识别率较高。

7 结语

本文针对图书馆的占座现象,提出一种基于视觉的占座现象检测方法。在每张桌子上方布置一个摄像头,自动检测在座的人员数量以及桌面物品分布情况,通过一定策略判定是否可能存在占座现象。经图书馆实际场合试验,该方法具有较高的检测率,能够给出较准确的占座提示,从而引导管理员进行核实管理,可以配合任意一卡通、手机APP、触摸屏的高校图书馆座位管理系统投入试用,取得比较满意的效果。在后续研究中,将增加试验场景,通过大量试验数据完善算法,进一步提升座位检测的可靠性;同时针对每个摄像机仅检测一张桌子占座情况的局限性,将开展大范围检测算法的研究。

猜你喜欢
桌面头部桌子
桌面装忙
打桌子
旅行休憩小头枕
脏抹布
用好Windows 10虚拟桌面
长颈鹿
当灰尘厚厚地落满了桌面
你用对“数字”了吗?
我给桌子“洗脸”
蚝壳巧制作