吳方,徐瑋良,鐘志森,鄭雄威,張杰龍
(北京理工大學珠海學院,珠海519088)
隨著計算機技術和傳感器等技術的迅猛發展,網絡帶寬以及網絡速度的逐漸提升,物聯網也在逐漸進入迅猛發展時期。而教育信息化在國家政策的推動下正在迎來高峰,智慧教室作為物聯網的應用決定了教育環境的優劣。本文在研究智慧教室應有的功能,采用了模數轉換、人臉識別、指紋識別以及深度學習等技術,對智慧教室進行了功能設計、軟硬件設計,實現了人臉指紋實時考勤、根據環境自動更改照明亮度溫度以及實時檢測學生狀態等智慧教室應有的功能。
一個合格的智慧教室主要是實現讓教室能夠自動化檢測環境,并進行相應調整,使其維持相對舒適的環境。例如,檢測環境的亮度,及時調整燈光使老師學生都能在一個不至于太亮或者太暗的環境,或者收集周圍的溫度使教室能維持在一個溫暖的溫度范圍。同時,它也能夠通過人臉和指紋實現實時的簽到,并主動向教師反饋,讓教師清楚學生的出勤情況。為了得到更好的學習效果,該系統能讓教師獲知學生的精神狀態,讓教師能夠進行適當的課堂調整。

圖1 智慧教室總框架圖
在采集環境的溫度或者亮度等模擬的環境變量時,需要通過模數轉換(即AD 轉換)把環境的模擬量轉換成我們所能看見的電壓值,進而判斷周圍環境的情況。在模數轉換的芯片中,選用了工業較為常用的PCF8591 芯片。在PCF8591 器件上輸入輸出的地址、控制和數據信號都是通過雙線雙向I2C 總線以串行的方式進行傳輸。在該芯片的通道0 接入了光敏電阻電路,亮度的變化導致電阻值的變化從而影響了電壓值的變化,PCF8591 根據電壓的變化輸出相應數值從而達到檢測亮度的目的。
在對溫度的控制上設計了兩種方案,第一種是PCF8591 芯片的通道1 接入熱敏電阻。熱敏電阻和光敏電阻是相似,根據環境溫度的不同,熱敏電阻會體現出不一樣的電阻值,PCF8591 檢測到不同的電壓,會根據不同的電壓輸出不同的比例值,然后再用溫度計測量實際溫度值,找出PCF8591 輸出值與溫度值之間的比例關系,總結公式,再通過公式去計算溫度值。第二種是使用DS18B20 單總線芯片,DS18B20 是溫度傳感器,可以直接在芯片內部計算出溫度值并進行輸出,精度能夠達到12 位二進制數(其中有4 位為小數),通過發送設定好的指令使DS18B20 讀取環境溫度并進行溫度轉換,最后輸出結果。第一種方法由于是接在已有的PCF8591 上,所以不用另外使用引腳,而且成本也比較低,占用空間較小,但該方法的缺點是精度比較低;第二種方法精度比較高,但需要另外占用I/O 口,成本比第一種略高,可以根據不同教室的實際情況去選用不同的方案。
在指紋識別技術上,該系統中選用AS608 芯片控制的指紋識別模塊,該模塊集成了獲取指紋圖像,生成特征信息,保存特征信息,對比特征信息以及搜索指紋等等功能,可以在本地儲存300 枚指紋信息。同時該模塊也支持通過UART 串口進行指紋信息的上傳和下載。
本系統由樹莓派4 作為系統的中心,通過樹莓派的GPIO 的設置連接各種能夠感知環境的傳感器,并且做出反饋。教室作為一個專門學習場所,能夠影響學習質量的環境信息主要是亮度以及溫度。而亮度能通過燈光的大小去調整,溫度的高低也能通過對空調或風扇的調節進行調整。主要流程如圖2-圖3。

圖2 溫度采集流程

圖3 亮度采集流程
在已知的環境中進行檢測,獲取適合亮度相對應的電壓值范圍,獲取數據后計算適當的亮度范圍讀值(在測試實驗環境中,較亮時AD 讀值為135,較暗時AD 讀值為216),當讀數高于預定最大值時標識亮度較暗,需打開照明系統,并按照一定比例,當值越大時,控制照明的PWM 波可實現照明亮度的高低。但由于位置不一樣,教室不同方位的亮度可能也不一樣,同時不同人對不同亮度的適應程度不一樣,而且有時候計算值并不一定非常準確,所以還需要添加一個開關以實現人為的亮度調整,實現自動模式和手動模式的切換。對于溫度的獲取類似,獲取環境溫度值后,根據實際對教室風扇或者空調進行調整。
智慧教室可以根據教室大小存在一個或者多個人體熱釋電傳感器,人體熱釋電傳感器可以接收到人體身體散發的微弱紅外線從而產生信號。當處于自動模式時,人體熱釋電傳感器可以檢測整個教室是否有人,從而判斷并控制整個教室設備電源開關,當有人的時候,整個教室電源自動打開,給教室燈光,電腦等各個設備供電。人體熱釋電模塊可以設置每隔3 分鐘或5分鐘做一次檢測,若超過規定時間檢測到沒有人存在,則關閉教室的電源,以最大程度節省教室用電。通過調節接收敏感度,還可以輔助檢測上課時是否有人遲到或者早退,可以讓老師更加專注于教學。
課室有時候不僅僅是上課的場所而且可以作為考試的場所。樹莓派也可以外接指紋采集器,每個人的指紋都是獨一無二的,通過對采集到的指紋跟數據庫提前收集到的指紋進行對比,再輔以人臉識別,能極大加快對考場學生的認證速度以及維護考場秩序。生物識別是現今身份識別最常用的方法,每個人的身體里都有著獨一無二的標識,現今使用得最廣泛就是指紋識別和人臉識別。

圖4 指紋模塊和攝像頭
由于UART 串口傳送的速率有限,如果全部指紋數據都儲存在指紋模塊外的數據庫中,會導致每次指紋比對都需要通過串口傳輸指紋數據從而導致識別速度慢。考慮到一般情況下一段時間內需要使用指紋識別的人數有限,采取的方案是把采集到的指紋數據儲存到數據庫中,每次使用前先提前把需要用到的指紋數據從數據庫載入到模塊儲存中,然后再進行高速識別。

圖5 指紋識別流程

圖6 AS608指紋識別指令包格式
在傳統教室中,一個老師要面對很多個學生,有時候無法很準確地獲取學生狀態,而在智慧教室中,機器視覺不僅可以獲取人臉信息,還能夠提取人臉的特征點,根據采集到的特征點(如嘴巴的閉合等),通過深度學習,進而判斷學生是否困倦,并及時提交給教師,讓教師可以及時調整教學方式和加強教學管理。
樹莓派可以通過攝像頭進行視頻或者圖像的采集,通過人臉識別的算法,能夠精準識別出每個人的身份,從而簡化傳統而繁瑣的老師點名進行簽到的步驟,使得課堂不再用過多的時間在確認學生人數上,提高了課堂的學習效率。
在圖像識別領域,現在有很多個開源的項目都有著非常好的算法支持。比較常用的是基于C++的OpenCV,它提供Python 接口,可以讓大家很便捷地使用OpenCV。同時,基于OpenCV 和深度學習還有眾多的人臉識別項目。

圖7 人臉識別流程

圖8 身份識別
在Face Recognition 的人臉識別庫中不僅僅能做人臉識別,還能描繪出人臉部的特征點,描繪人臉部的輪廓,結合TensorFlow 等深度學習算法可以判斷人的情緒。
為了識別學生是否困倦,我們自己通過拍照或者網上搜索收集的幾百張正常臉的照片以及“困倦”臉的照片,提取出特征,并進行了驗證。

圖9 正常臉識別

圖10 “困倦”臉識別
為了儲存大量地人物信息,必然需要用到數據庫,MySQL 是一個開源的、性能非常好的、支持跨系統而且體積非常小的數據庫。該項目中主要儲存的數據有人的身份信息(姓名、性別等)、對應的人臉信息、指紋信息。在需要的時候,從數據庫中提取出相關的信息進行比對。指紋的特征是固定的512B 大小,而人臉特征太過復雜則在提取特征的時候通過把浮點數改成一個長字符串從而可以使用數據庫中的變長字符串儲存。
本系統以樹莓派4B 作為主控平臺搭建了一個基于樹莓派的智慧教室系統,通過對教室環境監測自動控制教室設備的開閉,自動調整課室的燈光溫度等,給師生提供一個舒適的課堂環境。同時,該系統具備身份識別的能力,可以較為準確快速地識別學生身份,以便教師考勤和識別代上課代考試等問題。再者該系統還可以通過定時檢測學生人臉來判斷學生是否存在早退、學習困倦等問題,輔助教師課堂管理。