王建功,林國余
(1.閩江學(xué)院圖書館,福建 福州 350108;2.南京智真電子科技股份有限公司,江蘇 南京 210096)
圖書館自習(xí)室占座一直是各大高校的普遍現(xiàn)象,其本質(zhì)原因是學(xué)校有限的公共設(shè)施資源難以滿足學(xué)生數(shù)量增長帶來的學(xué)習(xí)需求[1]。相對于教室,圖書館因其清凈的環(huán)境、良好的學(xué)習(xí)氛圍、全天候的開放時(shí)長受到廣大學(xué)生讀者的青睞。自習(xí)黃金時(shí)段的一座難求,導(dǎo)致惡意占座現(xiàn)象的愈發(fā)嚴(yán)重,為爭搶自習(xí)座位引發(fā)的沖突時(shí)有發(fā)生。因此,如何解決占座問題,提高自習(xí)室座位的利用率是所有高校圖書館面臨的任務(wù)。近年來,高校圖書館紛紛引入座位管理系統(tǒng),但在最核心也是最難點(diǎn)即如何判斷“占座”這一實(shí)際問題上,要么需要高昂的硬件資金投入,要么無法杜絕占座漏洞,難以兼顧效率與成本。
目前各高校采用的座位管理系統(tǒng)多為刷卡選座的模式,一旦刷卡,系統(tǒng)就判定已選的座位為“有人”狀態(tài),當(dāng)用戶離座且未刷卡時(shí),旁人很難判斷出其是否已不再使用該座位,也就是占座行為的界限不明確。即使有管理員以及志愿者巡查,面對幾百甚至上千的座位也是力有不及,尤其是高校圖書館建筑布局各異,有些自習(xí)座位在不同的樓層空間,有些自習(xí)座位存在間隔的擋板,增加了館員工作量的同時(shí),巡查效果不盡如人意。解決占座這一問題的關(guān)鍵點(diǎn)在于如何判定座位是否為“空閑”狀態(tài),不同的學(xué)者們各自提出了自己的解決方案。戴舒詣等通過紅外傳感監(jiān)控座位的使用情況,利用單片機(jī)對閑置時(shí)長進(jìn)行計(jì)時(shí),對“占座”重新分配[2];王祥斌基于校園卡的實(shí)時(shí)實(shí)用及身份的唯一性,采用讀卡器時(shí)分復(fù)用技術(shù),“插卡用座,取卡離座”[3];關(guān)云楠通過紅外線探測器與無線射頻技術(shù)結(jié)合進(jìn)行實(shí)時(shí)座位監(jiān)測[4];嚴(yán)梓峻等設(shè)計(jì)一款應(yīng)用攝像頭與樹莓派通過獲取人臉信息的移動(dòng)終端系統(tǒng),實(shí)現(xiàn)對讀者在座與否的檢測[5];尹相權(quán)等結(jié)合北京師范大學(xué)圖書館座位管理系統(tǒng)的實(shí)際應(yīng)用,提出了一種多視圖、結(jié)合頭肩特征的人體檢測技術(shù)路線,實(shí)時(shí)識(shí)別座位狀態(tài)[6];熊雙等通過在座椅底部安裝壓力傳感器,使用者離座時(shí)觸發(fā)空座判定[7];江先斌在圖書館的每個(gè)座位貼上NFC的芯片,將手機(jī)作為簽到工具,APP間隔數(shù)秒讀取一次芯片信息用來判定讀者的在位狀態(tài)[8]。上述各種方案都對解決“占座”現(xiàn)象有相當(dāng)?shù)男Ч?,但也存在著一定的不足。紅外感應(yīng)裝置易受熱源、陽光源干擾,易被書本、背包等隨身物品遮擋;NFC讀取技術(shù)首先要求讀者必須擁有具備NFC功能的手機(jī),而且也不能避免一機(jī)多簽到;人臉識(shí)別需要積累采集到的大量人臉圖像相關(guān)的數(shù)據(jù),用來驗(yàn)證算法,不斷提高識(shí)別準(zhǔn)確性;壓力傳感器的高昂成本決定現(xiàn)階段不可能大規(guī)模推廣。為此,本文提出一種基于視覺的圖書館“占座”檢測方法,能夠有效提示圖書管理員在哪些桌子可能存在座位占位行為,從而指引管理員進(jìn)行核實(shí),并進(jìn)行相應(yīng)處理,適應(yīng)絕大多數(shù)普通高校館的實(shí)際情況。
判定監(jiān)控閱覽桌是否發(fā)生異常占座現(xiàn)象,本文擬采用如下兩條判斷依據(jù):
1)閱覽桌在用人數(shù)應(yīng)小等于閱覽桌最大使用人數(shù)。
2)無人使用的座位上桌面區(qū)域應(yīng)無書籍,書包等物體。
基于上述準(zhǔn)則,占位檢測系統(tǒng)的核心在于:一方面應(yīng)檢測到在閱覽桌上看書自習(xí)的人數(shù)和位置,其次應(yīng)判斷閱覽桌上擺放物體的位置分布。
本文所提出的圖書館占座現(xiàn)象視覺檢測方法中,綜合考慮多種攝像頭布置方案后,擬采用將攝像頭安裝在閱覽桌的上面,垂直向下拍攝的方式,如圖1所示。
圖1 攝像頭布置方案示意圖Fig.1 Schematic diagram of camera layout
采用此攝像機(jī)布置方案的主要原因在于一方面有利于準(zhǔn)確抓拍閱覽桌上的書籍,書包等物品擺放情況,便于后續(xù)識(shí)別;同時(shí)人體頭部與非頭部目標(biāo)有較明顯區(qū)別,而且人體頭部不易產(chǎn)生相互遮擋,通過人體頭頂區(qū)域識(shí)別判定實(shí)際在桌人數(shù)魯棒性更高。基于此,本文提出的圖書館占座現(xiàn)象視覺檢測方法流程如圖2所示。
圖2 基于視覺的占座檢測方法流程Fig.2 Vision-based seat occupancy detection method process
在系統(tǒng)啟動(dòng)之前,首先進(jìn)行背景初始化,獲取監(jiān)控區(qū)域的背景模型。然后一方面定時(shí)進(jìn)行目標(biāo)檢測,獲取穩(wěn)定不變的可能候選目標(biāo)區(qū)域,在此基礎(chǔ)上進(jìn)行特征提取,并送入事先訓(xùn)練好的分類器進(jìn)行人體頭部識(shí)別;另一方面自動(dòng)檢測桌子區(qū)域,根據(jù)座位數(shù)量等先驗(yàn)知識(shí)進(jìn)行區(qū)域劃分,并定時(shí)檢測桌子上是否存在占座物品。將頭部識(shí)別結(jié)果和占座物品檢測結(jié)果進(jìn)行綜合分析,從而確定該監(jiān)控區(qū)域內(nèi)是否存在異常占座行為。
根據(jù)視頻的前N幀圖像為每個(gè)像素構(gòu)建大小為N的樣本庫,即背景模型
B(x,y)={B1(x,y),B2(x,y),B3(x,y),…,BN(x,y)}。
(1)
假定要處理的每一幀圖像是X×Y個(gè)像素組成的每個(gè)樣本集的大小為N,N是一個(gè)固定值,N值大小一般是試驗(yàn)得出的,一般可取N=20。所以樣本集的大小為X×Y×N。
同時(shí)初始化最小判定距離樣本和其它各個(gè)參數(shù)。
根據(jù)當(dāng)前幀像素值和樣本集中像素值的距離判斷是否存在活動(dòng)目標(biāo)。判定的公式為
(2)
其中,dist表示像素點(diǎn)I(x,y)和背景Bk(x,y)之間的歐拉距離,T(x,y)是每個(gè)像素的判定閾值,T(x,y)隨像素不同而自適應(yīng)變化。當(dāng)背景復(fù)雜度增大,閾值也要增大,當(dāng)背景復(fù)雜度減小,則判定閾值也要減小。更新方式如式(3)所示,其中Talter和Tcoef是固定參數(shù),控制了判定閾值的變化。C(x,y)為像素(x,y)的像素復(fù)雜度,像素復(fù)雜度衡量了像素樣本集動(dòng)態(tài)變化的程度,也反應(yīng)了背景的動(dòng)態(tài)變化程度。
(3)
為了適應(yīng)背景動(dòng)態(tài)變化,需自適應(yīng)更新背景模型,即對每個(gè)像素的背景樣本集B(x,y)進(jìn)行更新。更新以像素為單位。在工程設(shè)計(jì)中,采用概率更新的策略:每一幀中如果當(dāng)前像素(x,y)為目標(biāo),則不更新;否則按照概率p(x,y)更新當(dāng)前像素的背景樣本集B(x,y)。更新時(shí),從背景樣本集B(x,y)中隨機(jī)抽取一個(gè)樣本Bi(x,y)進(jìn)行更新。
樣本更新概率p(x,y)由參數(shù)L(x,y)的倒數(shù)表示,即p(x,y)=1/L(x,y)。L(x,y)更新公式如式(4)所示。
(4)
當(dāng)前像素是前景時(shí),L(x,y)適當(dāng)增大,當(dāng)像素是背景時(shí),L(x,y)適當(dāng)減小。Linc和Ldec是固定參數(shù)值,控制了L(x,y)的變化。
正如第二章所述,本文采用攝像機(jī)垂直架設(shè)的原因之一在于人體頭部與非頭部目標(biāo)有較明顯區(qū)別,且不易相互遮擋,有利于算法識(shí)別。在這種配置條件下,人體頭部在圖像中呈現(xiàn)類似圓的形狀,常見的頭部檢測方法包括模板匹配、顏色匹配以及模式識(shí)別方法。由于人體頭部在不同位置的形狀不同,且極易受到是否戴帽子,是否染發(fā),以及頭發(fā)多寡等因素的影響,因此模板匹配和顏色匹配難以取得令人滿意的效果。而模式識(shí)別方法在行人檢測,目標(biāo)識(shí)別等領(lǐng)域都獲得了成功應(yīng)用,因此本文采用基于特征和分類器的方法實(shí)現(xiàn)人體頭部檢測。
考慮到攝像機(jī)垂直架設(shè)時(shí),人體頭部與非頭部目標(biāo)之間存在的較大差異,因此本文擬采用梯度方向直方圖特征(histogram of oriented gradient,HOG)方法提取特征,然后利用支持向量機(jī)(support vector machine,SVM)進(jìn)行訓(xùn)練后實(shí)現(xiàn)頭部識(shí)別檢測。
在計(jì)算機(jī)視覺領(lǐng)域中,HOG是一種用于物體檢測的常用特征描述方法,主要是計(jì)算局部區(qū)域的梯度方向直方圖,相較于其它特征描述,如顏色特征、類Haar小波特征等,HOG有其獨(dú)特的優(yōu)勢。HOG特征的核心思想是圖像中物體的外觀形狀可以通過梯度或邊緣的方向密度進(jìn)行準(zhǔn)確描述,其具有一定的抗旋轉(zhuǎn)和平移性,并能在一定程度消除光照變化帶來的影響,因此可用于人體頭部的檢測。
計(jì)算圖像HOG特征的具體流程如圖3所示。
圖3 HOG算法流程圖Fig.3 HOG algorithm flow chart
1)將圖像均勻分為一定數(shù)目的網(wǎng)格,稱之為Cell,然后計(jì)算Cell中每個(gè)像素處的梯度幅值和方向,計(jì)算思路是計(jì)算每個(gè)像素的偏導(dǎo)數(shù),然后再計(jì)算出梯度的幅值和方向。
圖像f(x,y)在位置(x,y)處的梯度可以通過以下的梯度向量進(jìn)行表示
(5)
其中,Gx和Gy分別表示像素在x和y方向的梯度分量。本文采用一維中心對稱模板[-1, 0, 1]和[1, 0, -1]分別對原圖像做卷積運(yùn)算得到Gx和Gy。
梯度幅值和方向分別由式(6)、式(7)獲得
(6)
(7)
2)將角度區(qū)間[0,180]平均劃分為z個(gè)區(qū)間,在每個(gè)Cell內(nèi)根據(jù)幅值和方向進(jìn)行直方圖統(tǒng)計(jì),得到一個(gè)z維的特征向量,第i維特征表示落在梯度方向位于第i個(gè)角度區(qū)間內(nèi)像素梯度幅值的占比。
3)將相鄰的m×n個(gè)Cell組成一個(gè)聯(lián)通區(qū)間block,將這些相鄰cell網(wǎng)格的特征向量進(jìn)行串聯(lián),形成block的特征向量,然后采用L2-norm對每個(gè)block的梯度向量進(jìn)行歸一化,得到blcok中的梯度特征向量。
4)按照從上到下順序,每次步進(jìn)一定的距離,重復(fù)遍歷m×n個(gè)Cell,形成多個(gè)由密集重復(fù)遍歷的cell網(wǎng)格組成的block,每個(gè)block之間存在多個(gè)重疊的Cell。
5)將所有block的特征向量串聯(lián),則構(gòu)成圖像的HOG特征。
圖4是不同人體頭部圖像所對應(yīng)的HOG特征,其中柱形圖的橫坐標(biāo)為角度區(qū)間,邊緣梯度方向共分為9個(gè)角度區(qū)間,每個(gè)區(qū)間角度范圍20°,縱坐標(biāo)為每個(gè)區(qū)間內(nèi)像素梯度幅值的占比。
圖4 不同人體頭部對應(yīng)的HOG特征Fig.4 HOG features corresponding to different human heads
SVM是一種基于統(tǒng)計(jì)學(xué)習(xí)理論機(jī)器學(xué)習(xí)方法,通過對一定數(shù)量樣本進(jìn)行訓(xùn)練,學(xué)習(xí)出一個(gè)接近真實(shí)目標(biāo)的模型,然后利用該模型實(shí)現(xiàn)目標(biāo)識(shí)別。由于其具有結(jié)構(gòu)簡單、識(shí)別效果好、所需樣本量小的優(yōu)點(diǎn),因此獲得廣泛應(yīng)用。SVM算法的基本思想如圖5所示。
圖5 支持向量機(jī)分類原理示意圖Fig.5 Schematic diagram of support vector machine classification principle
圖5中,三角形△和圓形○是兩類不同樣本,模式分類就是尋找一個(gè)分類線H能將這兩類樣本正確分開。假設(shè)H1、H2分別為各類中離分類線H最近的樣本且平行于H的直線,H1與H2之間的距離叫做分類間隔D。SVM分類算法就是尋找一個(gè)最優(yōu)分類線H,不僅能將兩種不同類別分開,而且使分類間隔D最大。
上述提到的最優(yōu)分類線是針對二維平面分類的情況,在三維空間中稱之為具有最大間隔的平面,對于多維空間,則統(tǒng)稱為最優(yōu)分類超平面。超平面一般定義為
w·x+b=0 。
(8)
假設(shè)xi為訓(xùn)練數(shù)據(jù),樣本量為l,y∈{+1,-1}為xi的類別標(biāo)記,如果存在能將樣本正確分開的最優(yōu)超平面,則式(8)滿足如下的約束條件
w·x+b≥1,yi=1
w·x+b≤-1,yi=-1,i=1,2,…,l,
(9)
其中,˙表示兩個(gè)向量的內(nèi)積,式(9)可以寫為
yi(w·x+b)≥1,i=1,2,…,l。
(10)
如上所述,SVM分類算法基本思想是尋求一個(gè)使分類間隔D最大的最優(yōu)分類超平面,分類間隔D= 2/‖w‖,因此可以最大分類間隔轉(zhuǎn)為如式(11)所示的最小化優(yōu)化問題
(11)
由于訓(xùn)練數(shù)據(jù)不完全線性可分,需引入非負(fù)松弛變量ζi和懲罰參數(shù)C,懲罰參數(shù)越大表示對錯(cuò)誤分類的懲罰越大,這樣就轉(zhuǎn)為一個(gè)典型的有約束二次規(guī)劃問題,可采用拉格朗日乘子法求解,此時(shí)式(11)可轉(zhuǎn)化為
(12)
求解上述最優(yōu)化問題可最終獲得最優(yōu)分類超平面。
判斷是否存在占座現(xiàn)象,本文采用一種簡單的判決思路,即將桌面根據(jù)先驗(yàn)知識(shí)分為幾個(gè)使用區(qū)域,如果有人在使用桌子學(xué)習(xí),則對應(yīng)桌面區(qū)域上必然有書籍等目標(biāo)存在,如果使用桌子人數(shù)少于占用桌面區(qū)域個(gè)數(shù),則認(rèn)為存在占座現(xiàn)象。
圖書館的閱覽桌外形多為矩形,桌面顏色與圖書館地面顏色存在較大差異,同時(shí)攝像頭安裝在閱覽桌上方,垂直向下拍攝,因此圖像中桌子4條邊緣可以分為兩組,每一組內(nèi)邊緣直線近似平行,兩組邊緣之間近似垂直。基于上述策略,本文提出如圖6所示的桌子區(qū)域檢測算法:
圖6 桌子區(qū)域檢測算法流程Fig.6 Detection algorithm flow in the table area
1)利用Sobel算法獲取邊緣圖像。
2)在邊緣圖像中,利用Hough算法檢測所有可能的直線。
3)基于角度相近和相交的思路,對檢測到的直線進(jìn)行聚類,形成一系列直線簇。
4)根據(jù)位于直線簇上的邊緣點(diǎn)數(shù)量對直線簇進(jìn)行排序,僅保留邊緣點(diǎn)滿足數(shù)量要求的直線簇參與后續(xù)判定。
5)在這些直線簇中,根據(jù)平行度進(jìn)行分組,每一組內(nèi)的直線簇的斜率都近似。
6)對每一組直線簇,尋求與其近似垂直的另一組直線簇,構(gòu)成垂直直線簇配對。
7)邊緣點(diǎn)最多的一組垂直直線簇配對,即可認(rèn)為是桌子的邊緣。
8)根據(jù)選定的近似垂直兩組直線簇,確定桌子區(qū)域。
一般而言,絕大多數(shù)占座行為都是將書本,茶杯,書包等物品擺放在閱覽桌上,因此在進(jìn)行占座行為分析前,要先獲得桌面上各個(gè)區(qū)域物品擺放的位置和面積。本文采用先進(jìn)行桌面網(wǎng)格劃分,再進(jìn)行物品檢測的思路,其算法流程如圖7所示。
圖7 桌面物品檢測算法流程Fig.7 Desktop item detection algorithm flow
桌面網(wǎng)格化劃分是在桌子區(qū)域檢測基礎(chǔ)上,根據(jù)閱覽桌座位安排的先驗(yàn)知識(shí),將桌面根據(jù)橫縱方向進(jìn)行網(wǎng)格化劃分,使得每個(gè)桌面區(qū)域?qū)?yīng)一個(gè)座位。然后通過之前所描述背景建模和目標(biāo)檢測算法,檢測攝像頭監(jiān)控范圍內(nèi)的運(yùn)動(dòng)目標(biāo)信息,在桌面區(qū)域范圍內(nèi)判斷每個(gè)網(wǎng)格內(nèi)是否存在目標(biāo),并統(tǒng)計(jì)落在每個(gè)網(wǎng)格內(nèi)目標(biāo)的面積占比,即目標(biāo)在桌面網(wǎng)格內(nèi)所占用的面積百分比,如果占比超過30%,則認(rèn)為該桌面網(wǎng)格區(qū)域被占用。
圖8為實(shí)際桌面劃分后的物體檢測結(jié)果,其中根據(jù)桌子區(qū)域檢測和座位分布先驗(yàn)知識(shí),將桌面分為4個(gè)區(qū)域,紅色矩形框?yàn)樽烂?個(gè)子區(qū)域內(nèi)檢測到的目標(biāo),其中右上區(qū)域內(nèi)雖有物品目標(biāo),但占比低于30%,因此認(rèn)為無物品存在。
圖8 桌面物品檢測效果Fig.8 Desktop item detection effect
判斷是否存在占座現(xiàn)象,本文采用一種簡單的判決思路,即將桌面根據(jù)先驗(yàn)知識(shí)分為幾個(gè)使用區(qū)域,如果有人在使用桌子學(xué)習(xí),則對應(yīng)桌面區(qū)域上必然有書籍等目標(biāo)存在,如果使用桌子人數(shù)少于占用桌面區(qū)域個(gè)數(shù),則認(rèn)為存在占座現(xiàn)象,其算法流程如圖9所示。
圖9 占座算法檢測流程Fig.9 Occupation algorithm detection process
為了驗(yàn)證本文方法的有效性,在閩江學(xué)院圖書館閱覽室的5張閱讀桌上方安裝了攝像機(jī)用于算法驗(yàn)證,每個(gè)攝像機(jī)安裝高度不同。為了測試算法魯棒性,其中一個(gè)閱覽桌位于窗戶邊上,光照變化較為明顯(圖10)。
圖10 試驗(yàn)攝像機(jī)拍攝畫面Fig.10 Test camera shots
實(shí)驗(yàn)中,當(dāng)提示某張閱覽桌存在占座現(xiàn)象時(shí),檢測數(shù)加1,人工審核確認(rèn)確實(shí)存在占座,則正確識(shí)別數(shù)加1,最終通過正確識(shí)別數(shù)/檢測數(shù)評價(jià)算法的識(shí)別率。試驗(yàn)中,為避免針對固定場景的重復(fù)檢測和提示,全部由人工進(jìn)行統(tǒng)計(jì)。表1為5個(gè)攝像機(jī)在實(shí)測試期間的占座識(shí)別率統(tǒng)計(jì)。
表1 占座識(shí)別率
攝像機(jī)1所拍攝的閱覽桌位于窗戶邊,當(dāng)窗簾開合以及光照變化明顯時(shí),容易造成目標(biāo)檢測失敗,從而導(dǎo)致識(shí)別率偏低。
需要說明的是,當(dāng)利用本方法檢測占座現(xiàn)象時(shí),能夠給出哪幾個(gè)座位存在占座,但存在誤檢。而試驗(yàn)中統(tǒng)計(jì)正確識(shí)別數(shù)時(shí),當(dāng)系統(tǒng)提示占座,由人工審核時(shí),只要桌子上存在占座現(xiàn)象就認(rèn)為檢測正確,至于存在哪幾個(gè)座位被占用則不予理會(huì),因此也使得試驗(yàn)過程中識(shí)別率較高。
本文針對圖書館的占座現(xiàn)象,提出一種基于視覺的占座現(xiàn)象檢測方法。在每張桌子上方布置一個(gè)攝像頭,自動(dòng)檢測在座的人員數(shù)量以及桌面物品分布情況,通過一定策略判定是否可能存在占座現(xiàn)象。經(jīng)圖書館實(shí)際場合試驗(yàn),該方法具有較高的檢測率,能夠給出較準(zhǔn)確的占座提示,從而引導(dǎo)管理員進(jìn)行核實(shí)管理,可以配合任意一卡通、手機(jī)APP、觸摸屏的高校圖書館座位管理系統(tǒng)投入試用,取得比較滿意的效果。在后續(xù)研究中,將增加試驗(yàn)場景,通過大量試驗(yàn)數(shù)據(jù)完善算法,進(jìn)一步提升座位檢測的可靠性;同時(shí)針對每個(gè)攝像機(jī)僅檢測一張桌子占座情況的局限性,將開展大范圍檢測算法的研究。