楊 帆, 徐 軍
(哈爾濱理工大學 自動化學院,黑龍江 哈爾濱 150080)
電源開關裝置無論是在生活還是工作中都比較常見,為了方便控制,人們通常會在不同工位上安放獨立的插排供自己用電器使用,但由于人為因素可能會在離開后忘記關閉電源開關[1]。據相關統計,一部臺式計算機在關機狀態下1 h耗電量約為0.005 kW/h。除此之外,安全問題更加重要,由于設備電線老化,在無人看守時,很容易造成火災。同時,在有電的狀態下,一些不法分子也可以通過U盤等設備跳過開機密碼,進去系統進行一些科研資源、數據報表的竊取。
目前,對于電源開關控制的系統主要是以集成電路(integrated circuit,IC)卡作為開關的“鑰匙”。通過不同IC卡與讀卡器之間的通信,配合信號發射器,控制對應工位的電源開關。但通過系統實際中的應用情況,通過IC卡進行電源控制是不方便、不安全的。隨著手機行業的迅猛發展,人們上下班或上課很少隨身攜帶IC卡,取而代之的是用手機NFC等功能進行簽到。除此之外,人們也可以使用其他人的IC卡進行電源控制,大大降低了安全性。
本次設計通過提取人臉特征信號進行電源的控制,不但增加了系統安全性,同時方便用戶進行電源的控制,相比IC卡方式有了不同程度的提升。
整體系統主要包括4個部分,分別是基于OpenCV的人臉識別系統、基于Visual Basic的上位機客戶端、射頻信號發送端以及電源開關控制端。通過人臉識別系統對于人員進行信息的錄入與識別,通過串口將識別的結果傳輸到上位機,經過上位機數據庫匹配后經過串口將身份認證(ID)信息由發送端發送到相應的電源開關端,整體結構如圖1所示。
系統硬件主要分為射頻信號發送端和電源開關控制端。發送端和開關控制端采用相同的微控制器與射頻模塊。其中,發送端主要包括串口通信電路、掉電自保護電路,開關控制端主要包括設備編號撥碼電路,繼電器電路等。信號發送端和電源控制端實物電路板如圖2所示。

圖1 整體系統結構示意

圖2 信號發送端與接收端控制板
在設計中選用的是Atmel公司生產基于AVR內核的Atmega328p-au微處理器,集成了2 048 bit的RAM,32 KB的Flash,同時支持1 024 bit的E2PROM,一個串行接口,2個SPI通信接口和一個I2C接口,可以同時滿足系統對于電源開關的各項功能控制[2]。微處理器最小系統原理圖如圖3所示。

圖3 微處理器最小系統原理
考慮到需要射頻系統控制的距離范圍、從機數量和功耗要求,在設計中選用的是NRF24L01無線射頻模塊。NRF24L01內置硬件鏈路層協議,與微控制器之間采用SPI通信方式,可在系統中長期穩定工作。同時由于模塊正常狀態下的工作電壓是1.9~3.6 V,所以在硬件系統中加入了降壓環節,選用AMS1117-3.3作為降壓芯片,將系統輸入的5 V電壓降至3.3 V供模塊正常工作。
在射頻信號發送端,考慮到可能由于通信或者USB電源接觸不穩定等情況而造成電源開關端失控,所以在本次設計中加入了掉電自保護的功能,當檢測到USB接口或者通信接口的電壓低于外接鋰電池電壓時,便通過小型繼電器自動切換供電電源,同時微處理器檢測到鋰電池端的IO口電平發生變化后,便通過射頻網絡向所有電源開關端發送關閉指令,實現了硬件自保護。掉電自保護原理圖如圖4所示。

圖4 掉電自保護電路原理
在電源開關接收端,為了方便人們可以對設備進行編號接收發送的指令,在接收端使用了6位的撥碼開關,實現1臺發送裝置同時控制64臺接收裝置。當接收端通電之后,首先會檢測A0~A5引腳的電平狀態,通過二進制運算計算出本臺機器的編號。在編碼中,“1”代表高電平,“0”代表低電平。例如將撥碼開關撥至“010100”,則通過二進制計算
ID=20×0+21×1+22×0+23×1+24×0+25×0
(1)
得出此臺機器編號ID為“10”。
系統軟件設計主要分為硬件端程序設計、人臉識別單元設計以及Visual Basic上位機端設計。
對于發送端程序設計,主要是將Visual Basic上位機后臺接收的結果通過串口傳輸至發送端,發送端微處理器接收到開或關的信號,并通過SPI通信接口發送給NRF24L01模塊,進而通過射頻網絡發送到指定編號的電源開關接收端。而對于接收端程序設計,則是先通過撥碼開關獲取當前設備編號后,等待接收對應的射頻開關指令,當射頻模塊接收到指令信號后,微處理器會將判斷的結果通過IO引腳進行高低電平的控制,進而通過繼電器控制整體電源的開關通斷。發送端、接收端主程序流程如圖5所示。

圖5 發送端(左)接收端(右)程序流程
人臉識別系統設計流程主要包括人臉信息的訓練與識別,整體系統均在Python環境下搭建,整體流程圖如圖6所示。

圖6 人臉識別系統流程
在進行訓練的過程中,利用了Haar-Like人臉檢測算法獲取當前圖像的特征值,之后再經過直方圖均衡處理。對于Haar-Like特征值的計算,是由空白矩形區域的權值乘以空白矩形區域像素和加上黑色矩形區域的權值乘以黑色矩形區域的像素和[3]
(2)
式中n為feature的矩形個數,rectSum(ri)為矩形所圍圖像灰度的積分,wi為矩形的權值。
采用Haar-Like進行特征值提取后,獲得了大量的數據,為了防止原始圖特征值數據冗余,在設計中利用PCA算法對于圖像主要特征進行降維處理,方便后續識別部分在低維中進行計算。
最后在識別的過程中,將處理后的圖像向PCA特征子空間進行投影,利用得到的坐標值與PCA子空間圖像系數進行對比,利用歐氏距離計算出最后識別的可信度
(3)
式中C為可信度,D為歐氏距離,S為參與訓練的人臉數目,eigenVecN為人臉特征向量數[4~6]。
在人臉識別系統中,整體UI使用Pyqt技術進行進行設計,主界面總體布局為當前時間、人臉錄入和人臉識別區域;人臉錄入子界面包括圖像采集步驟、圖像篩選步驟以及錄入步驟,而在人臉識別子界面主要包括圖像檢測匹配步驟。用戶界面(user interface,UI)如圖7所示。

圖7 UI界面
對于Visual Basic上位機來說,主要是進行數據庫信息比對、UI設計交互和串口信息傳輸。通過人臉識別系統識別的結果與數據庫比對后,在Visual Basic客戶端上顯示不同工位開關方塊的顏色變化。并將比對的結果信息并打印信息到顯示界面到窗口欄,顯示開關電源用戶的信息,如姓名、工號、部門以及開關機時間等,最后通過串口輸出數據至微處理器端。
系統測試主要是對于上位機的狀態顯示以及電源開關的控制。人臉識別系統將識別后的結果通過串口傳送給Visual Basic客戶端后,在界面顯示出用戶的信息與開關機時間,并將開關機指令通過串口經發送端傳送給對應電源開關接收端,系統測試場景如圖8所示。

圖8 系統測試場景
上位機界面如圖8計算機中所示。左側部分為對應工位開關狀態,紅色為關閉,綠色為開啟;右側部分為信息顯示界面,可以顯示人員姓名、部門、簽到時間、離開時間等。實現第一次識別開啟電源,再次識別關閉電源。
針對IC卡控制電源開關技術的不足,本文設計了一種通過人臉識別技術控制電源開關的系統,并在實際實驗中進行了測試,測試結果表明:整體系統可以實現通過人臉識別信號進行獨立電源的開關機控制,可以更高效的節約電能,提升整體安全性,在人臉識別應用場景中有著廣泛的應用前景。