吳紀(jì)蕓 江 梁
基于智能手機(jī)檢測(cè)學(xué)生行為系統(tǒng)
吳紀(jì)蕓 江 梁
在校園里,大學(xué)生遲到、曠課和早退的現(xiàn)象頻頻出現(xiàn),這既影響老師的授課和學(xué)生的學(xué)業(yè),也嚴(yán)重影響學(xué)校形象。因此,如何有效杜絕此類(lèi)現(xiàn)象的蔓延,是我校同其他高校亟待解決的問(wèn)題。本文建立一個(gè)基于Android智能手機(jī)對(duì)學(xué)生行為檢測(cè)的系統(tǒng)模型,利用手機(jī)的內(nèi)置傳感器(加速度、陀螺儀、壓力、近距離和光線(xiàn)傳感器)采集學(xué)生的行為特征,并設(shè)計(jì)一個(gè)警報(bào)系統(tǒng)。本文設(shè)計(jì)一個(gè)基于Andriod系統(tǒng)的手機(jī)應(yīng)用軟件用于采集學(xué)生的行為特征,并對(duì)其進(jìn)行數(shù)據(jù)預(yù)處理,運(yùn)用參數(shù)優(yōu)化后的支持向量機(jī)對(duì)行為數(shù)據(jù)進(jìn)行分類(lèi),經(jīng)檢測(cè)得到系統(tǒng)的精確度高達(dá)98.2%。
如今,在大學(xué)校園里,大學(xué)生上課遲到、曠課和早退等現(xiàn)象頻頻發(fā)生,嚴(yán)重影響學(xué)校的形象和學(xué)生的學(xué)習(xí)情況。近年來(lái),智能手機(jī)技術(shù)和傳感器技術(shù)越來(lái)越成熟,促使現(xiàn)有的許多智能手機(jī)內(nèi)都集成了許多傳感器,如小米3手機(jī)就集成了加速度、近距離、光線(xiàn)等傳感器。其次,由于Android平臺(tái)的開(kāi)源性,使得Android智能手機(jī)的價(jià)格比較低且使用比較廣泛,進(jìn)而使Android智能手機(jī)成為運(yùn)動(dòng)識(shí)別和運(yùn)動(dòng)檢測(cè)的理想平臺(tái)。目前基于Android智能手機(jī)進(jìn)行的人體運(yùn)動(dòng)識(shí)別的研究大多都是把手機(jī)固定在身體的某些部位,比如:胸前、手臂上、大腿上等。雖然識(shí)別的精度達(dá)到80% 以上,但是因?yàn)槊總€(gè)學(xué)生的習(xí)慣不同,所以每個(gè)學(xué)生都有自己習(xí)慣放置的位置,比如:上衣口袋、褲兜、手上等。另外,由于衣服的款式和材質(zhì)的不同,也會(huì)對(duì)手機(jī)在其中的方向和位置造成影響。所以要使算法具有廣泛使用性,并適用于大部分學(xué)生,就需要考慮手機(jī)位置和方向在口袋里的多樣性。因此,本文主要研究Android智能手機(jī)在位置和方向都不確定的情況下對(duì)學(xué)生的行為進(jìn)行識(shí)別。
為了能夠更好地督促學(xué)生自身的行為,也為了學(xué)校方便管理學(xué)生。為此,設(shè)計(jì)一個(gè)警報(bào)系統(tǒng):利用Android智能手機(jī)內(nèi)置傳感器采集的數(shù)據(jù),判斷手機(jī)的地理位置是否在上課教室,如果不是,系統(tǒng)就發(fā)送警報(bào)信息至輔導(dǎo)員處;如果是,接著經(jīng)過(guò)SVM算法分析之后,確定行為特征是否匹配,若不是則發(fā)送警報(bào)信息至輔導(dǎo)員處,如果是,則判斷行為是否符合預(yù)設(shè)行為,若是則說(shuō)明學(xué)生在教室上課,否則閾值加1。接著判斷閾值是否大于等于3,若是就發(fā)送警告信息至輔導(dǎo)員處,否則再判斷是否在同一節(jié)課,若是則重新獲取手機(jī)傳感器數(shù)據(jù),否則將閾值初始化。
手機(jī)位置判斷
近年來(lái),有許多利用智能手機(jī)對(duì)運(yùn)動(dòng)識(shí)別的不同應(yīng)用和功能的研究。而對(duì)于手機(jī)在身上放置的位置,有些研究是讓實(shí)驗(yàn)者把手機(jī)放在一個(gè)位置來(lái)進(jìn)行所有的研究;有些研究是則把手機(jī)固定在一個(gè)或多個(gè)位置來(lái)采集訓(xùn)練數(shù)據(jù)。盡管一些研究指出在手機(jī)位置已知的情況下對(duì)運(yùn)動(dòng)的識(shí)別精度會(huì)提高,但卻只有少部分文獻(xiàn)研究如何判別手機(jī)位置的算法。為了能夠迎合用戶(hù)的習(xí)慣,將手機(jī)放置在自己習(xí)慣的口袋位置中,因此,本次建?;贏ndroid智能手機(jī)內(nèi)置的近距離和光線(xiàn)傳感器檢測(cè)距離和光線(xiàn)的變化來(lái)控制程序的自動(dòng)運(yùn)行,并采集數(shù)據(jù)。
近距離傳感器是通過(guò)紅外線(xiàn)進(jìn)行測(cè)距的,當(dāng)用戶(hù)在接聽(tīng)電話(huà)或者將手機(jī)放進(jìn)口袋時(shí),近距離傳感器可以判斷出手機(jī)貼近了人的臉部或者衣服而關(guān)閉屏幕的觸控功能,從而防止誤操作,也可以節(jié)約電量的耗損。大多數(shù)的近距離傳感器返回的是以cm為單位的絕對(duì)距離,但也有一些是返回距離的遠(yuǎn)或近。光線(xiàn)傳感器測(cè)量光線(xiàn)的強(qiáng)度,以lux為單位,Android SDK將光線(xiàn)強(qiáng)度分為不同的等級(jí),每一個(gè)等級(jí)的最大值由一個(gè)常量(其中最大值為120000.0f,最小值為100.f)表示,以便根據(jù)手機(jī)所處環(huán)境的光線(xiàn)來(lái)調(diào)節(jié)手機(jī)屏幕的亮度和鍵盤(pán)燈。
為了判別手機(jī)是否在口袋中,本模型設(shè)當(dāng)光線(xiàn)的強(qiáng)度值小于100.0f,且近距離傳感器的返回值為0,則說(shuō)明用戶(hù)將手機(jī)放置在口袋中。
數(shù)據(jù)采集
Android智能手機(jī)中常見(jiàn)的傳感器有加速度、陀螺儀、磁力、壓力、近距離和光線(xiàn)傳感器等。加速度傳感器用來(lái)獲取x、y、z三個(gè)方向的加速度值;陀螺儀傳感器用來(lái)測(cè)量手機(jī)繞x、y、z軸旋轉(zhuǎn)的度數(shù);壓力傳感器用來(lái)測(cè)量當(dāng)前的壓強(qiáng);近距離傳感器用來(lái)測(cè)量附近的物體與設(shè)備屏幕間的距離;光線(xiàn)傳感器用來(lái)測(cè)量周?chē)h(huán)境的光照強(qiáng)度。使用Android智能手機(jī)內(nèi)置的傳感器,要先獲取系統(tǒng)中的傳感器管理對(duì)象SersonManager,然后通過(guò)SersonManager和傳感器的類(lèi)別獲取到相應(yīng)的傳感器。
圖1 警報(bào)系統(tǒng)的工作流程圖
當(dāng)學(xué)生在上課期間的行為動(dòng)作不符合規(guī)定超過(guò)閾值,學(xué)生的手機(jī)所獲取的地理位置數(shù)據(jù)不在上課教室,手機(jī)攜帶者不是學(xué)生本人,則學(xué)生所使用的Android智能手機(jī)就會(huì)給輔導(dǎo)員發(fā)一條警報(bào)消息。警報(bào)系統(tǒng)的工作流程:設(shè)閾值初始值為0,利用Android智能手機(jī)內(nèi)置傳感器采集的數(shù)據(jù),判斷手機(jī)的地理位置是否在上課教室,如果不是,系統(tǒng)就發(fā)送警報(bào)信息至輔導(dǎo)員處;如果是,接著經(jīng)過(guò)SVM算法分析之后,確定行為特征是否匹配,若不是則發(fā)送警報(bào)信息至輔導(dǎo)員處,如果是,則判斷行為是否符合預(yù)設(shè)行為,若是則說(shuō)明學(xué)生在教室上課,否則閾值加1,。接著判斷閾值是否大于等于3,若是就發(fā)送警告信息至輔導(dǎo)員處,否則再判斷是否在同一節(jié)課,若是則重新獲取手機(jī)傳感器數(shù)據(jù),否則將閾值初始化。警報(bào)系統(tǒng)具體的工作流程圖如圖1所示。
數(shù)據(jù)采集
本模型使用基于Android智能手機(jī)(MIUIV6(基于Android 4.4.4 KitKat),144*73.6*8.1m3,145g)內(nèi)置的三軸加速度、陀螺儀、磁力、壓力、近距離和光線(xiàn)傳感器來(lái)采集數(shù)據(jù)。在實(shí)驗(yàn)過(guò)程中沒(méi)有對(duì)實(shí)驗(yàn)者有特殊要求,他們按自己平時(shí)的習(xí)慣將手機(jī)放在任意口袋,然后做一系列動(dòng)作。本建模只識(shí)別5種日?;拘袨閯?dòng)作:走路、跑步、靜止、上樓梯、下樓梯。每種動(dòng)作持續(xù)進(jìn)行1分鐘,相鄰兩種動(dòng)作之間間隔3s后進(jìn)行,以便區(qū)分不同的動(dòng)作數(shù)據(jù)。針對(duì)該建模的數(shù)據(jù)采集,借助一款A(yù)ndroid APP,界面如圖2所示,主要利用Android智能手機(jī)內(nèi)置的近距離和光線(xiàn)傳感器監(jiān)測(cè)距離和光線(xiàn)的變化來(lái)控制程序的自動(dòng)運(yùn)行,即僅當(dāng)檢測(cè)到手機(jī)放入口袋后才開(kāi)始采集數(shù)據(jù),檢測(cè)到手機(jī)拿出口袋后停止數(shù)據(jù)采集。自動(dòng)將手機(jī)采集到的數(shù)據(jù)以txt文檔形式存在手機(jī)外掛SD卡(若無(wú)外掛SD卡,則將內(nèi)置的ROM識(shí)別為SD卡)上,如圖3所示,為后續(xù)的數(shù)據(jù)分析和模型仿真做準(zhǔn)備。由于手機(jī)是隨意放在口袋里進(jìn)行測(cè)試的,手機(jī)在放進(jìn)口袋和從口袋中取出過(guò)程中會(huì)影響傳感器數(shù)據(jù),因此,為了能夠收集到較精確的數(shù)據(jù),設(shè)定在手機(jī)放進(jìn)口袋3s后開(kāi)始收集數(shù)據(jù),在數(shù)據(jù)收集結(jié)束3s后再?gòu)目诖〕鍪謾C(jī)。再處理數(shù)據(jù)時(shí),除去前后多余的數(shù)據(jù),得到最終的行為狀態(tài)數(shù)據(jù)。
圖2 Android APP數(shù)據(jù)采集界面
圖3 數(shù)據(jù)采集停止后自動(dòng)生成txt文檔
數(shù)據(jù)預(yù)處理
本建模在數(shù)據(jù)采集過(guò)程中每200ms采集一次。由于采集信號(hào)時(shí)人身體的抖動(dòng)或手機(jī)在口袋中的摩擦所產(chǎn)生的噪聲都包含在采集到的運(yùn)動(dòng)信號(hào)里。因此,采用異常值移除處理、歸一化處理和降維處理對(duì)收集到的數(shù)據(jù)進(jìn)行預(yù)處理。
1.異常值移除處理
在收集的數(shù)據(jù)中存在許多異常值,而這些異常值將會(huì)影響整個(gè)數(shù)據(jù)的特征遷移。為此,我們先單獨(dú)導(dǎo)出這些異常數(shù)據(jù),利用盒圖之間的最大值和最小值的間距來(lái)反應(yīng)這些數(shù)據(jù)的變異程度。通過(guò)盒圖,不僅可以直觀(guān)地看到離群值,而且判斷數(shù)據(jù)集的離散程度和偏差的最大和最小觀(guān)察點(diǎn),通過(guò)觀(guān)察遷移程度的中位數(shù)。我們刪除離群值的所有數(shù)據(jù),所以數(shù)據(jù)特征不會(huì)遷移。
2.歸一化處理
移除異常值后,應(yīng)對(duì)數(shù)據(jù)進(jìn)行歸一化處理,及統(tǒng)一不同來(lái)源的數(shù)據(jù)使用相同的參考系統(tǒng)。它能夠使后續(xù)數(shù)據(jù)處理更方便,同時(shí),它可以增加程序的收斂速度運(yùn)行,以避免奇異樣本數(shù)據(jù)的特點(diǎn)掩蓋或被淹沒(méi)。我們將數(shù)據(jù)歸一化處理的限定范圍為。雖然歸一化后的數(shù)據(jù)有輕微變化,但其特點(diǎn)仍然保留,對(duì)數(shù)據(jù)的影響小。
3.降維處理
高維度的自由空間會(huì)增加程序的計(jì)算量,為了避免這種情況,需要按照累積貢獻(xiàn)率數(shù)據(jù)的特征進(jìn)行降維。樣本數(shù)據(jù)通過(guò)線(xiàn)性或非線(xiàn)性變換從輸入空間映射到低維空間,得到新的低維數(shù)據(jù)。圖4是每個(gè)維度特性的貢獻(xiàn)率和累積貢獻(xiàn)率。在這個(gè)圖中,條形的高度分別代表9維特征的貢獻(xiàn)率,折線(xiàn)代表著9維特征的累積貢獻(xiàn)率,9維特征根據(jù)貢獻(xiàn)率由高到低排列。從圖可以看出,當(dāng)數(shù)據(jù)的維度達(dá)到9時(shí)累積貢獻(xiàn)率達(dá)到100%。它表明9維的特性能夠充分表達(dá)了原始數(shù)據(jù)的特征。如果要求程序的運(yùn)行速度或收斂速度加快,但不需要原始數(shù)據(jù)達(dá)到100%的程度,則可以通過(guò)降維。例如,前6個(gè)的表達(dá)程度特征的原始數(shù)據(jù)已達(dá)到90%。如果只需90%的累積貢獻(xiàn)率,我們只要提取前6個(gè)特征向量作為輸入樣本。
算法參數(shù)優(yōu)化
此步驟的目的是準(zhǔn)確地識(shí)別學(xué)生的行為狀態(tài),包括走路、跑步、靜止、上樓梯和下樓梯。隨著這些狀態(tài)被細(xì)分為十分詳細(xì)狀態(tài),采用n類(lèi)分類(lèi)方法來(lái)解決這個(gè)問(wèn)題。第一到第五行為狀態(tài)分別為走路、跑步、靜止、上樓梯和下樓梯,分別標(biāo)記為1、2、3、4、5。本文采用支持向量機(jī)算法進(jìn)行分類(lèi)。作為懲罰參數(shù)c和核函數(shù)參數(shù)g對(duì)支持向量機(jī)的性能有很大的影響,采用網(wǎng)格搜索的方法,找出最優(yōu)值。圖5是相對(duì)應(yīng)的分類(lèi)精度不同的c和g參數(shù)組合。實(shí)驗(yàn)結(jié)果表明,許多c和g組對(duì)應(yīng)分類(lèi)精度最高,但為了避免反復(fù)學(xué)習(xí)的狀態(tài),我們采用最小的c和g的組合,也就是說(shuō),當(dāng)c和g的最佳值是362.0387和2,準(zhǔn)確度高達(dá)98.2%。
警報(bào)系統(tǒng)實(shí)現(xiàn)界面
當(dāng)學(xué)生在上課期間不在教室,或手機(jī)持有者非本人,或行為異常次數(shù)達(dá)到閾值,學(xué)生所使用的手機(jī)端就會(huì)自動(dòng)發(fā)送警告信息到輔導(dǎo)員手機(jī)端。因此,我們?cè)O(shè)計(jì)一款A(yù)ndroid APP用于自動(dòng)發(fā)送警告短信,自動(dòng)發(fā)送信息的核心代碼為:
本文通過(guò)對(duì)當(dāng)前科技和市場(chǎng)的了解和分析,考慮到可以利用可穿戴設(shè)備對(duì)學(xué)生的行為進(jìn)行管理,但是由于當(dāng)前的可穿戴設(shè)備的技術(shù)還不夠成熟,需要使用者每天把這些設(shè)備穿在身上,給他們的日常生活帶來(lái)諸多不便,再加之這些設(shè)備的成本比較昂貴,不適合校方普遍采購(gòu)使用于學(xué)生身上。另外,隨著智能手機(jī)越來(lái)越智能化、越來(lái)越低廉化、越來(lái)越普及,所以本文借助Android智能手機(jī)的平臺(tái)建立了一個(gè)通過(guò)判斷學(xué)生手機(jī)的位置,采集大學(xué)生的行為數(shù)據(jù)庫(kù),判斷手機(jī)的地理位置與上課地點(diǎn)是否相符,判斷手機(jī)攜帶者是否為學(xué)生本人,進(jìn)一步將行為與課程相對(duì)應(yīng),最后對(duì)大學(xué)生行為進(jìn)行檢測(cè)的系統(tǒng)模型,即基于Android智能手機(jī)對(duì)學(xué)生行為檢測(cè)的系統(tǒng)模型,并對(duì)模型進(jìn)行了分析和應(yīng)用。
圖4 9維特征的貢獻(xiàn)率和累積貢獻(xiàn)率
圖5 等高線(xiàn)表示不同分類(lèi)精度的c和g參數(shù)組合
10.3969/j.issn.1001-8972.2015.09.022