曾水新 黃日勝
(河源職業(yè)技術(shù)學(xué)院 廣東省河源市 517000)
考勤活動(dòng)是高校最基本的日常管理事務(wù)之一,考勤系統(tǒng)是高校智慧教室的重要組成模塊。中小學(xué)由于座位固定,教師容易發(fā)現(xiàn)缺席的學(xué)生,因此采取紙質(zhì)考勤或者教師人工錄入信息的方式即可;企業(yè)考勤的特點(diǎn)是場(chǎng)地固定、人員少,通常在入口加一個(gè)考勤機(jī)即可。高校的考勤有其特殊性:教室不固定、時(shí)間不固定、學(xué)生人數(shù)多,因此高校考勤如果采用人工點(diǎn)名的方式會(huì)效率低下,影響上課;如果采用信息化系統(tǒng),它的需求比普通的考勤系統(tǒng)更多:高效率、低成本、地點(diǎn)識(shí)別、防代簽等。
基于IC 卡、RFID 卡(Radio Frequency Identification,射頻識(shí)別)技術(shù)的考勤機(jī)廣泛應(yīng)用于企業(yè)考勤。二者的原理是一樣的,即將用戶與卡片識(shí)別碼綁定,考勤機(jī)讀取、驗(yàn)證卡片后,新增一項(xiàng)刷卡記錄[1]。
打卡考勤機(jī)的優(yōu)點(diǎn)是直觀、簡(jiǎn)單、便捷、正確率高。很多企業(yè)將門禁卡和考勤卡合二為一,開門即考勤。IC 卡須接觸才能被讀取,RFID 卡須近距離才能被讀取,因此打卡記錄里隱含了地點(diǎn)信息,地點(diǎn)信息對(duì)于高校考勤系統(tǒng)非常重要,因?yàn)榻淌襂D 是考勤記錄的一個(gè)關(guān)鍵字段。
打卡考勤機(jī)的缺點(diǎn),一是容易被代簽到,一個(gè)用戶可以拿多張卡替他人簽到,要避免可通過(guò)人工監(jiān)督或者人臉識(shí)別系統(tǒng)實(shí)現(xiàn)。二是建設(shè)成本高,打卡機(jī)需要外接電源、數(shù)據(jù)連接(有線接入或無(wú)線接入)。在企業(yè),只需在入口安裝一部考勤機(jī)即可,建設(shè)成本和運(yùn)行效率仍可接受,換在高校,每個(gè)教室須安裝一部考勤機(jī),施工和材料成本則太高。三是效率低,學(xué)生需要在教室門口排隊(duì)依次打卡,占用正常上課時(shí)間;四是學(xué)生卡丟失或忘記帶卡時(shí)會(huì)影響考勤。
基于指紋識(shí)別、人臉識(shí)別的考勤機(jī)都是利用了人的生物特征去識(shí)別,只要將手指、人臉?lè)旁诨蛎嫦蜃x頭即可識(shí)別,非常方便。生物特征考勤機(jī)將指紋識(shí)別、人臉識(shí)別算法固化在機(jī)器內(nèi)部,識(shí)別成功后,將識(shí)別結(jié)果發(fā)送到服務(wù)器[2]。
生物特征考勤機(jī)的優(yōu)點(diǎn)是,很大程度可以防止代簽到現(xiàn)象,且由于不需要卡片作為載體,用戶使用方便。生物特征考勤機(jī)的相關(guān)技術(shù)已經(jīng)相當(dāng)成熟,在企業(yè)被廣泛使用。
與刷卡考勤機(jī)類似,它同樣存在建設(shè)成本高、效率低的缺點(diǎn)。此外,有的機(jī)器型號(hào)出于成本考慮僅支持指紋識(shí)別不支持人臉識(shí)別,用戶可以很容易在網(wǎng)上購(gòu)買硅膠指模具,成功欺騙考勤機(jī)通過(guò)驗(yàn)證。
圖1:系統(tǒng)硬件架構(gòu)圖
圖2:簽到流程圖
很多電子教室軟件都附帶了簽到功能[3],教師可以發(fā)起簽到活動(dòng),學(xué)生在電腦端輸入自己的姓名,即可完成簽到考勤。這類考勤系統(tǒng)所有學(xué)生可以并發(fā)簽到,因此速度快、效率高,且不需要額外安裝硬件,降低了成本。但這類考勤系統(tǒng)幾乎沒(méi)有防代簽到機(jī)制,學(xué)生多打開一臺(tái)電腦,輸入另一個(gè)學(xué)生的姓名即可代替其他學(xué)生簽到,并且這類考勤系統(tǒng)僅適用于機(jī)房,傳統(tǒng)教室無(wú)法使用。
基于手機(jī)定位的考勤系統(tǒng)的解決方案有兩類:
第一類是調(diào)用手機(jī)的位置服務(wù)API[4]。手機(jī)的位置服務(wù)是通過(guò)特定的定位技術(shù)來(lái)獲取移動(dòng)手機(jī)或終端用戶的位置信息(經(jīng)緯度坐標(biāo)),在電子地圖上標(biāo)出被定位對(duì)象的位置的技術(shù)或服務(wù)。定位技術(shù)有三種:
(1)接收衛(wèi)星定位系統(tǒng)(如GPS、北斗系統(tǒng))的信號(hào),計(jì)算手機(jī)所處的位置。
(2)基于移動(dòng)運(yùn)營(yíng)網(wǎng)的基站的定位,利用基站對(duì)手機(jī)的距離的測(cè)算距離來(lái)確定手機(jī)位置,精度很大程度依賴于基站的分布及覆蓋范圍的大小,誤差會(huì)超過(guò)一公里。
(3)利用Wi-Fi 信號(hào)確定位置,原理是位置服務(wù)商建立一個(gè)無(wú)線信號(hào)的數(shù)據(jù)庫(kù),根據(jù)其全球唯一的MAC 地址,映射終端所處位置,因此嚴(yán)格地說(shuō)第三種方式不是手機(jī)本身提供的服務(wù)。通常手機(jī)的位置服務(wù)會(huì)綜合利用這幾種技術(shù),提高位置的精度。
調(diào)用位置服務(wù)API 的考勤系統(tǒng),不容易定位到具體某教室,因?yàn)榻淌依镄l(wèi)星信號(hào)非常弱,其精度也不夠。即使在衛(wèi)星信號(hào)充足的情況下,學(xué)生還可以使用位置模擬軟件繞過(guò)檢測(cè)。
第二類是在教室安裝無(wú)線AP(Access Point)[5],由于每個(gè)無(wú)線AP 的位置是已知的,并且每個(gè)無(wú)線AP 的接入范圍是有限的,終端連接時(shí)會(huì)自動(dòng)選擇信號(hào)最好的連接,可以實(shí)現(xiàn)室內(nèi)對(duì)終端的精確定位。這類方案的難點(diǎn)在于,AP 信號(hào)的強(qiáng)弱受環(huán)境(如障礙物、距離)的影響較大,有可能旁邊教室的AP 信號(hào)更強(qiáng),造成識(shí)別教室錯(cuò)誤;再者,雖然全國(guó)的高校逐步鋪設(shè)無(wú)線校園網(wǎng),但是做到一教室一AP 的方案耗費(fèi)的硬件成本和實(shí)施成本都比較高。
基于二維碼的考勤系統(tǒng)的實(shí)現(xiàn)思路是,在教室的每個(gè)課桌貼上攜帶教室座位信息的二維碼,學(xué)生入座后,使用智能手機(jī)掃描座位二維碼,即完成點(diǎn)名[6]。從成本和管理的角度考慮,這類考勤系統(tǒng)是理想的,但是學(xué)生可以將二維碼拍下照片,發(fā)給不在教室的學(xué)生,輕松繞過(guò)考勤系統(tǒng)。
簽到系統(tǒng)要滿足兩個(gè)關(guān)鍵條件,才能確保簽到數(shù)據(jù)是可信任的:一是簽到介質(zhì)(如卡片、手機(jī)、電腦等)是否在現(xiàn)場(chǎng),二是使用介質(zhì)的是否本人。上文介紹的常見的幾類考勤系統(tǒng)中,只有人臉識(shí)別考勤機(jī)能較好地同時(shí)滿足兩個(gè)條件,但建設(shè)成本較高。本文提出的基于iBeacon 及人臉識(shí)別雙重認(rèn)證的高校智慧教室考勤系統(tǒng),既可以滿足兩個(gè)條件,并且實(shí)施成本低。
iBeacon 是蘋果公司推出的一項(xiàng)室內(nèi)定位技術(shù),可以讓附近的手持電子設(shè)備檢測(cè)到由一個(gè)iBeacon 信號(hào)發(fā)射器發(fā)出的藍(lán)牙信號(hào),通過(guò)軟件和硬件的結(jié)合,從而大大提高室內(nèi)精度,從原來(lái)的幾百米、幾十米,提高到一米以內(nèi)的定位精度,它采用了基于藍(lán)牙4.0 的低功耗藍(lán)牙技術(shù)(Bluetooth Low Energy,BLE),主要是用作輔助室內(nèi)定位的功能。
iBeacon 在工作時(shí),是由iBeacon 設(shè)備在三個(gè)廣播信道按一定的時(shí)間間隔(一般為300ms、500ms 或900ms)向外廣播數(shù)據(jù)包。數(shù)據(jù)包中包含UUID、Major、Minor 三個(gè)信息,UUID、major 和minor 值提供iBeacon 的標(biāo)識(shí)信息。一般來(lái)說(shuō),該信息本質(zhì)上是分層的,主要字段和次要字段允許對(duì)UUID 建立的標(biāo)識(shí)進(jìn)行細(xì)分。當(dāng)手機(jī)或網(wǎng)關(guān)接收iBeacon 信號(hào)時(shí),除自身所帶的信息外,還帶有RSSI(Received Signal Strength Indication,信號(hào)強(qiáng)度)信息,在作為定位應(yīng)用時(shí),通常采用RSSI 值的大小來(lái)確定兩個(gè)設(shè)備距離的遠(yuǎn)近。
iBeacon發(fā)射器的優(yōu)點(diǎn)有:價(jià)格便宜,30~70元左右;設(shè)備小巧(直徑5CM 左右);內(nèi)置電池,不需外接電源或網(wǎng)線;安裝方便,用自粘膠或一枚小螺絲即可安裝。
本系統(tǒng)要求在每一個(gè)教室安裝iBeacon 發(fā)射器,發(fā)射器的最佳安裝位置是教室天花板的中央,這樣不僅減少了發(fā)射器與手機(jī)之間的障礙,并且減少了距離。iBeacon 信號(hào)的穿透性不強(qiáng),任何物理阻礙物包括人體都會(huì)阻礙iBeacon 的信號(hào)的傳播,隔墻衰減嚴(yán)重。這個(gè)“弱點(diǎn)”反而成為本系統(tǒng)的優(yōu)勢(shì),手機(jī)可以根據(jù)RSSI 的差異較容易識(shí)別本教室的iBeacon 信號(hào)。
iBeacon 發(fā)射器安裝之后,還需要對(duì)其進(jìn)行設(shè)置:
(1)修改Major、Minor 字段,這兩個(gè)字段是可以自定義的,我們將Major 作為教學(xué)樓的編號(hào)、Minor 作為教室編號(hào);
(2)綁定iBeacon 的UUID、Major、Minor 信息,使之與教室ID 關(guān)聯(lián)。系統(tǒng)的硬件架構(gòu)如圖1所示。
iBeacon發(fā)射器按一定的時(shí)間間隔發(fā)出攜帶著標(biāo)識(shí)信息的信號(hào),學(xué)生手機(jī)根據(jù)算法選擇本教室的iBeacon;學(xué)生手機(jī)進(jìn)行人臉識(shí)別,成功后將信息通過(guò)互聯(lián)網(wǎng)發(fā)送到服務(wù)器進(jìn)行下一步處理。
3.1.1 微信小程序
微信小程序是一種不需要下載安裝即可使用的應(yīng)用,它實(shí)現(xiàn)了應(yīng)用“觸手可及”的夢(mèng)想,用戶掃一掃或者搜一下即可打開應(yīng)用。也體現(xiàn)了“用完即走”的理念,用戶不用關(guān)心是否安裝太多應(yīng)用的問(wèn)題。應(yīng)用將無(wú)處不在,隨時(shí)可用,但又無(wú)需安裝卸載。對(duì)于開發(fā)者而言,微信小程序開發(fā)門檻相對(duì)較低,難度不及APP,能夠滿足簡(jiǎn)單的基礎(chǔ)應(yīng)用。
本系統(tǒng)的用戶是高校里上萬(wàn)甚至幾萬(wàn)的學(xué)生,使用的手機(jī)五花八門,如果采用原生APP 開發(fā),需要同時(shí)開發(fā)至少IOS 及Android兩個(gè)版本,并且Android 手機(jī)的廠商分散,造成了Android 嚴(yán)重的碎片化,因此考慮到開發(fā)成本太重,我們放棄了這個(gè)技術(shù)路線。
微信作為一個(gè)超級(jí)APP,幾乎已成為智能手機(jī)的標(biāo)配,本系統(tǒng)采用微信小程序作為學(xué)生端的入口,只需開發(fā)維護(hù)一個(gè)版本,所有安裝了微信的手機(jī)都可使用。
3.1.2 Face++
Face++是北京曠視科技有限公司旗下的視覺(jué)服務(wù)平臺(tái),F(xiàn)ace++平臺(tái)通過(guò)提供云端API、離線SDK、以及面向用戶的自主研發(fā)產(chǎn)品形式,將人臉識(shí)別技術(shù)廣泛應(yīng)用到互聯(lián)網(wǎng)及移動(dòng)應(yīng)用場(chǎng)景中。Face++同時(shí)提供云端REST API 以及本地API(涵蓋Android,iOS,Linux,Windows,Mac OS),并且提供定制化及企業(yè)級(jí)視覺(jué)服務(wù)。通過(guò)Face++,可以搭建云端身份認(rèn)證,用戶興趣挖掘,移動(dòng)體感交互,社交娛樂(lè)分享等多類型應(yīng)用。
Face++技術(shù)服務(wù)的形式分三類:人臉檢測(cè)、人臉?lè)治?、人臉識(shí)別。使用Face++ Compare API 能夠?qū)蓚€(gè)人臉進(jìn)行比對(duì),來(lái)判斷是否為同一個(gè)人,返回比對(duì)結(jié)果置信度和不同誤識(shí)率下的閾值。支持傳入圖片或 face_token 進(jìn)行比對(duì)。使用圖片時(shí)會(huì)自動(dòng)選取圖片中檢測(cè)到人臉尺寸最大的一個(gè)人臉。
簽到流程如圖2所示。
(1)微信小程序登錄。學(xué)生通過(guò)掃描二維碼或搜索小程序后,打開考勤小程序進(jìn)行登錄。小程序可以通過(guò)微信官方提供的登錄能力方便地獲取微信提供的用戶身份標(biāo)識(shí),快速建立小程序內(nèi)的用戶體系。微信小程序有一套完善的登錄流程,涉及三端:微信小程序、開發(fā)者服務(wù)器、微信服務(wù)器。用戶觸發(fā)登錄操作后,三端通過(guò)一系列的信息交互后,考勤小程序會(huì)獲得一個(gè)openid,openid 用來(lái)標(biāo)識(shí)當(dāng)前這個(gè)唯一的微信用戶,也就是說(shuō),一個(gè)微信用戶相對(duì)于一個(gè)公眾號(hào)(主體)的openid 是唯一的,是不會(huì)變的。
(2)綁定用戶。openid 是一串亂序的字符,需要與校務(wù)信息系統(tǒng)的用戶進(jìn)行綁定,以便識(shí)別正在訪問(wèn)的微信用戶是哪個(gè)學(xué)生。上一步驟獲取到openid后,發(fā)送到校務(wù)系統(tǒng)服務(wù)器(開發(fā)者服務(wù)器),如果該用戶未綁定,則跳轉(zhuǎn)到校務(wù)系統(tǒng)登錄界面,學(xué)生需輸入校務(wù)系統(tǒng)的用戶名、密碼進(jìn)行關(guān)聯(lián)操作。
(3)獲取用戶信息。已綁定的用戶,教務(wù)系統(tǒng)根據(jù)openid 返回學(xué)生信息。用戶即可以使用考勤小程序的所有功能,如查看課程表、查看考勤記錄、簽到、請(qǐng)假等。
(4)學(xué)生簽到。如果教師端在這節(jié)課發(fā)起了簽到活動(dòng),學(xué)生可點(diǎn)擊“簽到”按鈕,開啟后續(xù)的簽到流程。
(5)自動(dòng)選擇iBeacon。學(xué)生的手機(jī)需要開啟藍(lán)牙,小程序有一系列iBeacon 相關(guān)的API。考勤小程序調(diào)用wx.startBeaconDiscovery() 搜索附近的iBeacon 設(shè)備,注冊(cè)wx.onBeaconUpdate()的監(jiān)聽,回調(diào)函數(shù)提供了IbeaconInfo 數(shù)組。IbeaconInfo 對(duì)象包含了uuid(iBeacon 設(shè)備廣播的uuid)、major(主id)、minor(次id)、accuracy(iBeacon 設(shè)備的距離)、rssi(表示設(shè)備的信號(hào)強(qiáng)度)等屬性??记谛〕绦蛟趇Beacon 列表中選擇信號(hào)最強(qiáng)的設(shè)備,獲取它的IbeaconInfo 對(duì)象。
(6)獲取教室ID。小程序發(fā)送IbeaconInfo 對(duì)象里的major、minor 字段到服務(wù)器,服務(wù)器根據(jù)之前登記的iBeacon 信息,返回對(duì)應(yīng)的教室信息。
(7)手動(dòng)選擇教室。由于iBeacon 信號(hào)穿透性不強(qiáng),大多數(shù)情況下,本教室的iBeacon 信號(hào)遠(yuǎn)強(qiáng)于列表中的其他設(shè)備,但也可能出現(xiàn)一些極端的情況,例如本教室的iBeacon 設(shè)備安裝地不夠理想,在一些邊角處障礙物太多,以致相鄰教室的信號(hào)反而更通暢。當(dāng)系統(tǒng)檢測(cè)到多個(gè)信號(hào)、并且最強(qiáng)的兩個(gè)信號(hào)差值不到10%時(shí),允許用戶手動(dòng)選擇信號(hào)列表中的對(duì)應(yīng)教室。
(8)人臉識(shí)別。人臉識(shí)別使用曠視的人工智能開放平臺(tái)的API。曠視科技官網(wǎng)提供了各種語(yǔ)言的API 接入工具如Java、Python、OC、C++、JS、PHP,接入工具僅僅是對(duì)API 調(diào)用進(jìn)行封裝,并不包括任何圖像識(shí)別或者其他AI 能力。人臉識(shí)別能力包括“人臉檢測(cè)”、“人臉對(duì)比”、“人臉?biāo)阉鳌?,我們需要用到的是“人臉?duì)比”能力,即計(jì)算兩張臉的相似程度,并給出相似度評(píng)分,以便分析屬于一個(gè)人的可能性。
學(xué)生需要事先上傳自己的照片,F(xiàn)ace++從照片中提取人臉特征,人臉特征上傳到服務(wù)器后,形成FaceSet(人臉集合),F(xiàn)aceSet 是用來(lái)存放face_token 的數(shù)據(jù)結(jié)構(gòu)。將人臉存入FaceSet 可以進(jìn)行人臉?biāo)阉鞑僮?,在指定的人臉集合中尋找與指定人臉可以判斷為同一人的人臉。我們需要用到的有FaceSet 系列API、Compare API。
Compare API 的返回結(jié)果,最重要的兩個(gè)字段是confidence 和thresholds。confidence 是比對(duì)結(jié)果置信度,范圍為[0,100],小數(shù)點(diǎn)后3 位有效數(shù)字,數(shù)字越大表示兩個(gè)人臉越可能是同一個(gè)人。Thresholds 是一組用于參考的置信度閾值,包含三個(gè)字段。每個(gè)字段的值為一個(gè)[0,100]的浮點(diǎn)數(shù),小數(shù)點(diǎn)后3 位有效數(shù)字。
如果傳入圖片但圖片中未檢測(cè)到人臉,則無(wú)法進(jìn)行比對(duì),本字段不返回。比對(duì)后的返回信息有我們?cè)O(shè)置的閾值(thresholds),可以根據(jù)自身的需求選擇其中一個(gè)閾值,當(dāng)相似度(confidence)高于這個(gè)閾值時(shí)就可以認(rèn)為是同一個(gè)人。閾值的字段是thresholds,跟業(yè)務(wù)場(chǎng)景嚴(yán)格等級(jí)相關(guān),業(yè)務(wù)場(chǎng)景等級(jí)越嚴(yán)格閾值選用越高,返之越低。
考勤小程序開啟攝像頭,拍攝學(xué)生臉部照片,如果識(shí)別成功,則進(jìn)入下一步,否則結(jié)束考勤流程。
(9)考勤信息入庫(kù)。iBeacon 認(rèn)證可以確保手機(jī)在場(chǎng)、人臉認(rèn)證可以確保學(xué)生本人在使用手機(jī),經(jīng)過(guò)了雙重認(rèn)證之后,我們可以認(rèn)為該考勤行為是可信的,此時(shí)考勤小程序?qū)⑿畔l(fā)送到服務(wù)器并入庫(kù)。
(1)iBeacon 管理。管理iBeacon 設(shè)備的信息,如UUID、Major、Minor,以及關(guān)聯(lián)的教室ID 等;負(fù)責(zé)將考勤小程序發(fā)送的UUID 列表映射為教室名稱列表;iBeacon 電池耗盡或有故障時(shí),通過(guò)此模塊進(jìn)行報(bào)廢處理。
(2)教室管理。維護(hù)教室信息如地點(diǎn)、座位數(shù)量、設(shè)備等;對(duì)外提供教室查詢服務(wù),如查詢某時(shí)間段是否有課程;根據(jù)教師的上課需求(時(shí)段、人數(shù)、機(jī)房、多媒體設(shè)備等條件)查詢是否符合上課條件。
(3)學(xué)生管理。管理學(xué)生的基本信息如姓名、學(xué)號(hào)、性別、聯(lián)系方式等。
(4)班級(jí)管理。管理班級(jí)信息,維護(hù)學(xué)生的入學(xué)、轉(zhuǎn)班級(jí)、轉(zhuǎn)學(xué)、退學(xué)等操作。
(5)教師管理。管理教師的檔案信息。
(6)課程管理。管理各學(xué)期的課程,關(guān)聯(lián)班級(jí)、教師信息。
(7)考勤管理。管理考勤報(bào)表、學(xué)生請(qǐng)假、教師批假;如有未帶手機(jī)或手機(jī)不能正常使用的學(xué)生,允許教師手動(dòng)添加考勤信息。
本文提出的基于iBeacon 及人臉識(shí)別的雙重認(rèn)證高校智慧教室考勤系統(tǒng),有以下創(chuàng)新點(diǎn):
(1)雙重認(rèn)證,防止考勤作弊。考勤系統(tǒng)最重要的是數(shù)據(jù)準(zhǔn)確,如前文所述,目前市面上的很多考勤系統(tǒng),或不能實(shí)現(xiàn)地點(diǎn)真實(shí),或不能防止他人代簽到。
(2)設(shè)備成本低。與其他解決方案的需要使用的打卡機(jī)、AP比較,本方案需要安裝的iBeacon 設(shè)備價(jià)格有較大的優(yōu)勢(shì),尤其對(duì)于資金不充裕的學(xué)校有非常大的吸引力。
(3)實(shí)施簡(jiǎn)單。iBeacon 設(shè)備無(wú)需外置電源、無(wú)需網(wǎng)線,施工難度極低,且維護(hù)簡(jiǎn)單。
(4)通用性好。使用微信小程序作為客戶端,學(xué)生不需單獨(dú)下載APP,同時(shí)也降低了開發(fā)和維護(hù)軟件系統(tǒng)的成本。