梅峻韜,宋麗紅,董靜(天津財經大學理工學院信息科學與技術系,天津 300222)
面向移動終端和Web的智能自習室管理系統
梅峻韜,宋麗紅,董靜
(天津財經大學理工學院信息科學與技術系,天津300222)
當前高校的自習室座位一直是學生們“必爭之地”,有時甚至導致同學之間產生矛盾糾紛。究其原因,一方面是自習室擁有較好的學習環境和氛圍,是學生的首要選擇,另一方面則是部分自習室座位存在供不應求的情況。供不應求的直接原因就是有效自習室座位數量少于需求人數。
而許多原因會導致有效的自習室座位數量不夠:由于自習室設計問題,導致座位數量太少;自習室設計沒有問題,但由于不合理的使用,導致有效座位減少。
經過調研,我們發現導致自習室座位緊張的主要原因有兩點:①不文明占座問題;②自習室負載不均,導致有些自習室一座難求,而有些自習室則門可羅雀。
因此,為了緩解當前的情況,研究開發一個高效可靠的智能自習室管理系統迫在眉睫。
本項目擬設計和實現基于Android和Web的校園自習室智能管理,通過合理調配和管理,對自習室座位資源進行最大化利用,緩解自習室座位緊張的問題。
1.1系統需求
面向移動終端和Web的智能自習室管理系統實現在終端進行座位預約、對自習室人數進行統計并反饋、自習室現場無人值守管理等功能。通過調研和技術可行性分析,系統需要具備以下特性:
(1)系統應具有良好的人機交互界面,符合用戶的使用習慣,便于推廣。
(2)系統對學生證件的信息具有較高的識別率和識別速度,快捷高效地進行座位分配,使學生不滯留地刷卡入座。
(3)系統能夠高效準確地對攝像頭獲取到的自習室圖像信息進行統計和分析,將統計信息錄入數據庫。
(4)系統能夠實時地反饋數據庫中的人數統計結果。
(5)管理員可以方便快捷地對自習室人流量信息進行查看與分析,并對違約學生發出警告。
系統由學生實時查看及預約自習室座位系統,自習室無人值守管理系統、基于Web的自習室智能管理系統三個子系統組成。
1.2模塊設計
(1)學生查看及預約自習室座位模塊
學生可通過手機客戶端登錄后通過公告板查看校內公告;預約自習室的座位;查看教室實時的室內人數和座位剩余情況;系統根據設定的可用時間最長或人數最少等條件,給出最優的教室選擇方案。
(2)自習室無人值守管理模塊
自習室現場實現無人值守,通過攝像頭對學生卡信息進行識別,驗證學生信息,安排座位。對預約超時未到的學生發出消息提醒。
(3)基于Web的自習室智能管理模塊
系統通過安裝在教室的攝像頭實時獲取教室的照片信息,進行人數統計;管理員可以進行功能設置,按時間和教室統計學生自習人數,生成流量報告,幫助管理人員更合理更有效地調配資源。
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
本系統整合應用了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.