楊樂(lè)晨,劉忠富,賀薪諾,趙智星
(大連民族大學(xué) 信息與通信工程學(xué)院,大連 116600)
隨著部分地區(qū)新冠疫情的再次爆發(fā),病毒的感染風(fēng)險(xiǎn)再一次提高,由于人們的活動(dòng)空間不再只有家中,由出行所導(dǎo)致的感染將不斷提高,而乘坐電梯時(shí)所引起感染的風(fēng)險(xiǎn)將不斷擴(kuò)大,因此,為了降低疫情的感染風(fēng)險(xiǎn),同時(shí)提高人們的出行效率,電梯的非接觸操控已成為一種必然的趨勢(shì)。
近些年來(lái),國(guó)內(nèi)外的科研技術(shù)人員對(duì)非接觸電梯操控系統(tǒng)進(jìn)行了較多的研究。文獻(xiàn)[1]研究了一種新型的、3D 自動(dòng)視覺(jué)模型,通過(guò)捕捉按下虛擬按鈕的指尖的位置,確定按鍵是否被按下。文獻(xiàn)[2]研究了一種非接觸式低功耗手勢(shì)接近開(kāi)關(guān),用Cortex-M3內(nèi)核的32 位ARM 處理器,結(jié)合APDS-9960 環(huán)境亮度光學(xué)傳感器,實(shí)現(xiàn)了人體動(dòng)態(tài)手勢(shì)的準(zhǔn)確識(shí)別。
目前,電梯非接觸操控系統(tǒng)主要包括3 種呼梯方式:手機(jī)二維碼呼梯、語(yǔ)音識(shí)別呼梯、人臉識(shí)別呼梯。但由于電梯內(nèi)手機(jī)信號(hào)不好會(huì)導(dǎo)致二維碼掃描出錯(cuò),電梯轎廂內(nèi)比較嘈雜導(dǎo)致語(yǔ)音識(shí)別率低,疫情期間人們佩戴口罩導(dǎo)致人臉識(shí)別率低等原因,以至于達(dá)不到預(yù)期的效果。
針對(duì)電梯內(nèi)信號(hào)不好、語(yǔ)音識(shí)別率低、IC 卡需要接觸按鍵而操作等問(wèn)題,本文設(shè)計(jì)了一種新型的非接觸電梯操控系統(tǒng),系統(tǒng)進(jìn)行高效的非接觸按鍵識(shí)別,以及人臉采集系統(tǒng),提醒人們佩戴口罩,并通過(guò)舵機(jī)實(shí)現(xiàn)口罩的彈出,通過(guò)非接觸操作以及讓人們佩戴口罩,降低了人們?cè)诔俗娞萜陂g被感染的風(fēng)險(xiǎn),對(duì)抗疫有一定的促進(jìn)作用。
系統(tǒng)以單片機(jī)STM32 為核心處理器,包括電容式非接觸按鍵系統(tǒng)、語(yǔ)音播報(bào)電路,人臉識(shí)別系統(tǒng)。系統(tǒng)總體框圖如圖1所示。通過(guò)非接觸按鍵感應(yīng)電路與單片機(jī)和PLC 通信,進(jìn)行電梯的上下行的操作,使用OpenMV 模塊,通過(guò)和云端的Edge Impulse進(jìn)行合作訓(xùn)練,完成數(shù)據(jù)的打標(biāo)、NN 模型訓(xùn)練,優(yōu)化,部署等操作,進(jìn)行人臉識(shí)別的訓(xùn)練,識(shí)別后通過(guò)LD3320 芯片進(jìn)行語(yǔ)音提醒,并控制步進(jìn)電機(jī)彈出口罩。
如圖1所示,系統(tǒng)模型設(shè)計(jì)在按鍵布局上與傳統(tǒng)的布局相仿,在電梯轎廂的上方為OpenMV 攝像頭,在電梯按鍵系統(tǒng)的右側(cè),為口罩寄存箱,當(dāng)接收到單片機(jī)的工作信號(hào)后,步進(jìn)電機(jī)組會(huì)完成彈出口罩的操作。同時(shí),語(yǔ)音播報(bào)模塊會(huì)在到達(dá)相應(yīng)樓層時(shí)進(jìn)行播報(bào)以及提醒乘客佩戴及拿取口罩。
圖1 系統(tǒng)總體設(shè)計(jì)框圖Fig.1 Overall system design block diagram
本系統(tǒng)主要由STM32F103 單片機(jī)最小系統(tǒng)電路、電容式非接觸式按鍵系統(tǒng)、語(yǔ)音播報(bào)電路,PLC及控制電路構(gòu)成。整個(gè)系統(tǒng)以STM32 單片機(jī)最小系統(tǒng)為微處理器,通過(guò)電容式非接觸式按鍵系統(tǒng)判別按鍵的輸入,將識(shí)別的信息傳遞給單片機(jī),通過(guò)單片機(jī)控制語(yǔ)音播報(bào)并將信息傳遞給PLC 控制器,并通過(guò)OpenMV識(shí)別,控制舵機(jī)彈出口罩,完成整個(gè)運(yùn)行系統(tǒng)。
本系統(tǒng)的主控芯片采用STM32F103C8T6 單片機(jī),選用這種芯片組成單片機(jī)最小系統(tǒng)主要由于其構(gòu)成的電路設(shè)計(jì)較為簡(jiǎn)單,并且反應(yīng)速度快,程序存儲(chǔ)量相對(duì)于51 單片機(jī)來(lái)說(shuō)較大。本文中所設(shè)計(jì)的系統(tǒng)主要以其作為主控芯片,通過(guò)串口接收并處理數(shù)據(jù),從而對(duì)整個(gè)系統(tǒng)功能進(jìn)行實(shí)現(xiàn)。其中,該芯片的主頻為72 MHz,擁有37 個(gè)獨(dú)立的IO 引腳,每個(gè)引腳既可以識(shí)別3.3 V 的電壓,同時(shí)容忍5 V,即滿足系統(tǒng)對(duì)引腳的需求,又為后續(xù)的開(kāi)發(fā)留出一定的空間。
電容式非接觸按鍵系統(tǒng)如圖2所示。系統(tǒng)通過(guò)NE556 芯片循環(huán)檢測(cè)感應(yīng)電極的狀態(tài),以判斷是否有物體接近,感應(yīng)電極不需要附加任何元器件,芯片通過(guò)內(nèi)部硬件配置和軟件算法,對(duì)感應(yīng)電極上是否有手靠近進(jìn)行檢測(cè)。該芯片使用一個(gè)感應(yīng)電容,一個(gè)參考電容組成,其中,感應(yīng)電容是由兩塊金屬板電極構(gòu)成的平行板檢測(cè)電容,將它安裝在金屬導(dǎo)體要通過(guò)的線路的某一位置上,由它感受接近它的金屬導(dǎo)電物體,當(dāng)有金屬導(dǎo)體靠近它時(shí),其電容量將會(huì)增大。參考電容的結(jié)構(gòu)完全與感應(yīng)電容相同,但它無(wú)法感受金屬導(dǎo)體[3]。
圖2 非接觸開(kāi)關(guān)的簡(jiǎn)易示意圖Fig.2 Simple schematic diagram of non-contact switch
本傳感器的檢測(cè)是將感應(yīng)電容與參考電容器的電容量分別轉(zhuǎn)換為頻率信號(hào),再由計(jì)數(shù)器、比較器對(duì)兩電容器的電容量差值進(jìn)行比較來(lái)完成的。首先由NE556 內(nèi)部的2 個(gè)555 多諧振蕩器將感應(yīng)電容與參考電容的電容值轉(zhuǎn)換成兩路計(jì)數(shù)脈沖輸出,然后這兩路計(jì)數(shù)脈沖通過(guò)各自的計(jì)數(shù)器進(jìn)行計(jì)數(shù),由比較器比較兩個(gè)計(jì)數(shù)值的大小。當(dāng)工作電容器Cx中有金屬物體通過(guò)時(shí),工作電容器的電容量增大,輸出到計(jì)數(shù)器1 的計(jì)數(shù)脈沖頻率降低,計(jì)數(shù)器1 的計(jì)數(shù)值較計(jì)數(shù)器2 的小,使比較器輸出為“1”的信號(hào),推動(dòng)相關(guān)電路動(dòng)作,從而完成檢測(cè)。當(dāng)感應(yīng)不到手指時(shí),則NO 端接GND。當(dāng)手指放到感應(yīng)開(kāi)關(guān)的正上方1~2.5 cm 處,感應(yīng)電容發(fā)生變化,使電壓增大,使繼電器的開(kāi)關(guān)打向另一邊,使NO 端與VCC 接通,此時(shí),NO 置高。單片機(jī)檢測(cè)到高電平時(shí),將數(shù)據(jù)存到相應(yīng)的標(biāo)志位。若感應(yīng)不到手指,則NO 端接GND。
OpenMV 攝像頭是一款小巧、低功耗、高效率的攝像兼圖像處理模塊,可以通過(guò)高級(jí)程序語(yǔ)言Python實(shí)現(xiàn)處理算法。Python 的高級(jí)數(shù)據(jù)結(jié)構(gòu)很容易在機(jī)器視覺(jué)算法中處理復(fù)雜的輸出。但是,仍然可以完全控制OpenMV,包括IO 引腳,如圖3所示。可以很容易地使用外部終端觸發(fā)拍攝或者執(zhí)行算法,也可以把算法的結(jié)果用來(lái)控制IO 引腳。同時(shí),該攝像頭可以通過(guò)Edge Impulse 進(jìn)行訓(xùn)練。簡(jiǎn)單的來(lái)說(shuō),OpenMV 是一個(gè)可編程的攝像頭,通過(guò)Python 語(yǔ)言,可以實(shí)現(xiàn)邏輯。而且攝像頭本身內(nèi)置了一些圖像處理算法,很容易使用[4]。
圖3 OpenMV 的電路圖Fig.3 Circuit diagram of OpenMV
由于PLC 只支持485 通信,而單片機(jī)支持TTL電平通信,因此采用MAX485 芯片來(lái)實(shí)現(xiàn)RS485 與TTL 之間的信號(hào)轉(zhuǎn)換[5]。如圖4所示,將PLC 的485接口中的1、2、5 引腳與MAX485 芯片的6、7、5 引腳相連,實(shí)現(xiàn)A、B、GND 與TTL 電平的轉(zhuǎn)換,MAX485 3、4、5 引腳接STM32 單片機(jī)的RX,TX,GND,以達(dá)到32 單片機(jī)與PLC 的通信。
圖4 PLC 通信電路Fig.4 PLC communication circuit
語(yǔ)音播放模塊選用WT588D 語(yǔ)音芯片。該模塊內(nèi)嵌DSP 高速音頻處理器,處理速度非???,同時(shí),可通過(guò)與上位機(jī)操作軟件,隨意組合語(yǔ)音,可插入靜音,插入的靜音不占用內(nèi)存的容量,一個(gè)已加載語(yǔ)音可重復(fù)調(diào)用到多個(gè)地址,完成不同樓層的語(yǔ)音播報(bào)。本設(shè)計(jì)采用的是PWM 外加喇叭來(lái)進(jìn)行播放。當(dāng)播報(bào)完畢后,語(yǔ)音播放停止馬上進(jìn)入休眠模式,芯片轉(zhuǎn)為完全停止?fàn)顟B(tài)。單片機(jī)將按鍵信息與內(nèi)部數(shù)據(jù)信息進(jìn)行匹配,找到對(duì)應(yīng)的數(shù)據(jù)信息并發(fā)送給語(yǔ)音模塊,并將按鍵信息轉(zhuǎn)換成語(yǔ)音通過(guò)喇叭播放出來(lái)。語(yǔ)音模塊原理圖如圖5所示,當(dāng)DO 為高電平,且CS 有效時(shí),SSOP20 芯片與25PXX 保持同步時(shí)鐘,通過(guò)讀取DI 引腳以及HOLD 引腳的電平信號(hào),確定當(dāng)前的播放狀態(tài)。當(dāng)該模塊檢測(cè)到單片機(jī)發(fā)送的驅(qū)動(dòng)信號(hào)時(shí),DI 置高,通過(guò)讀取觸發(fā)的引腳序號(hào),確定將要被播放的語(yǔ)音地址,如D0 引腳為低電平時(shí),播放第一條語(yǔ)音信息,以此類推。
圖5 語(yǔ)音播報(bào)模塊Fig.5 Voice broadcast module
本設(shè)計(jì)采用GSM800 作為緊急通信的基礎(chǔ),相較于GSM900,GSM800 的穩(wěn)定性更強(qiáng),功耗更低,在緊急情況發(fā)生時(shí),確保電梯內(nèi)外的通信[6]。當(dāng)緊急按鍵被按下后,首先會(huì)以短信的形式通知電梯管理人員,同時(shí),接通控制室的電話,確保電梯內(nèi)部與外部溝通。當(dāng)該模塊處于非工作的狀態(tài)時(shí),功耗極低,不會(huì)消耗過(guò)多的電量以及分走電壓,確保其他模塊的正常工作。
采用TB6600 型步進(jìn)電機(jī)驅(qū)動(dòng),該驅(qū)動(dòng)采用12 V 供電,能夠產(chǎn)生0.5~3.5 A 的電流,通過(guò)DIR 和PUL 控制電機(jī)的旋轉(zhuǎn)方向以及轉(zhuǎn)速,固定在按鍵系統(tǒng)的右側(cè),使口罩在彈出時(shí),能被人們迅速取走。如圖6所示,該種型號(hào)步進(jìn)電機(jī)內(nèi)含先進(jìn)的ASIC IC來(lái)處理單片機(jī)的信號(hào),解析度較高,便于口罩的彈出。為了確??谡值捻樌麖棾?,本系統(tǒng)采用雙步進(jìn)電機(jī)工作,采用1/600 的步進(jìn)方式,以確保旋轉(zhuǎn)的精度。
圖6 L298N 驅(qū)動(dòng)電路Fig.6 L298N drive circuit
本文所設(shè)計(jì)的系統(tǒng)基于C 語(yǔ)言和Python 語(yǔ)言,使用Keil 及PyCharm 平臺(tái)進(jìn)行開(kāi)發(fā)。整個(gè)系統(tǒng)的軟件部分主要分為按鍵檢測(cè)系統(tǒng),人臉識(shí)別控制舵機(jī)。其中,第一部分通過(guò)C 語(yǔ)言實(shí)現(xiàn),通過(guò)單片機(jī)對(duì)輸入的信號(hào)識(shí)別,處理。后者通過(guò)OpenMV 將采集到的數(shù)據(jù)傳到單片機(jī),在單片機(jī)進(jìn)行分析處理后,單片機(jī)向語(yǔ)音播報(bào)模塊發(fā)送信號(hào)進(jìn)行播報(bào),并控制舵機(jī)完成口罩的彈出。系統(tǒng)主程序流程如圖7所示。
圖7 主程序流程Fig.7 Main program flow chart
系統(tǒng)上電后,單片機(jī)完成初始化操作,保證各模塊處于工作狀態(tài),接著,單片機(jī)會(huì)不斷檢測(cè)是否有電梯按鈕被觸發(fā)。當(dāng)單片機(jī)檢測(cè)到按鈕被觸發(fā)后,開(kāi)始判斷被觸發(fā)按鈕的鍵值,并建立串口通信,將鍵值發(fā)送給PLC,發(fā)送完成后,單片機(jī)通知OpenMV檢測(cè)乘客是否佩戴口罩,若已佩戴,單片機(jī)將回到電梯按鍵檢測(cè)的程序中,等待下一次按鍵觸發(fā)。若有乘客未佩戴口罩,單片機(jī)將通過(guò)PWM 產(chǎn)生1600個(gè)PWM 脈沖,控制電機(jī)旋轉(zhuǎn),將口罩彈送出去,同時(shí),單片機(jī)通知語(yǔ)音播報(bào)模塊,提醒乘客取走口罩。
識(shí)別乘客是否佩戴口罩采用Edge Impulse 進(jìn)行大量人臉樣本信息的訓(xùn)練和積累,建立人臉數(shù)據(jù)庫(kù)[7]。單片機(jī)通過(guò)與數(shù)據(jù)庫(kù)的對(duì)比,判別乘客是否佩戴口罩,若未戴口罩,則單片機(jī)對(duì)語(yǔ)音播報(bào)模塊發(fā)出信號(hào),單片機(jī)進(jìn)入中斷,令其完成語(yǔ)音播報(bào)提醒,同時(shí)對(duì)步進(jìn)電機(jī)發(fā)出控制信號(hào),使其彈出口罩,待口罩被取走口,繼續(xù)下一次識(shí)別。
針對(duì)傳統(tǒng)算法對(duì)多角度人臉表情識(shí)別效果不佳、偏轉(zhuǎn)角下生成的人臉正面化圖像質(zhì)量低等問(wèn)題,提出了一種結(jié)合雙通道WGAN-GP 的多角度人臉表情識(shí)別算法。傳統(tǒng)模型僅利用側(cè)臉特征對(duì)多角度人臉進(jìn)行表情識(shí)別,特征差異小導(dǎo)致識(shí)別精度低,因此引入生成對(duì)抗網(wǎng)絡(luò)先對(duì)人臉進(jìn)行轉(zhuǎn)正,消除姿態(tài)角的影響。為了使模型訓(xùn)練穩(wěn)定的同時(shí)提升人臉生成質(zhì)量,以WGAN-GP 作為基礎(chǔ)網(wǎng)絡(luò),并將其改進(jìn)為雙通道結(jié)構(gòu),融合五官特征以及人臉全局特征來(lái)進(jìn)行正面化生成。最后,構(gòu)建輕量級(jí)網(wǎng)絡(luò)MobileNetV3 對(duì)生成出的正面人臉表情圖像進(jìn)行識(shí)別,保證分類精度并且大幅減少參數(shù)運(yùn)算量?;贚adv=-Ex~Pg[D(x)],通過(guò)對(duì)抗網(wǎng)絡(luò)轉(zhuǎn)正人臉,增大特征差異,以提高建立的人臉模型的準(zhǔn)確度。實(shí)驗(yàn)結(jié)果表明,本文算法在任意角度下,都能較好地復(fù)原出正面化人臉表情圖像,提高了多角度人臉表情的識(shí)別率。
如圖8所示,當(dāng)手指在按鈕的正上方2~3 cm 處時(shí)可正常觸發(fā),此時(shí),單片機(jī)會(huì)通過(guò)串口,向PLC 發(fā)送被觸發(fā)的按鍵值,當(dāng)PLC 收到信息后,會(huì)通過(guò)LED 顯示相應(yīng)的樓層,表示接收成功。圖中,當(dāng)手指放在4 樓的按鍵的上方時(shí),PLC 的第四個(gè)LED 燈會(huì)被點(diǎn)亮。
圖8 實(shí)物調(diào)試Fig.8 Physical commissioning
系統(tǒng)上電后,通過(guò)改變手指和按鈕的距離,檢測(cè)按鈕是否被觸發(fā),以及其他按鈕是否被誤觸以及口罩能否被彈出甚至彈飛。通過(guò)OpenMV 進(jìn)行人臉采集訓(xùn)練,對(duì)多個(gè)人的面部進(jìn)行多方位的采集,以及戴口罩時(shí)樣例。以此提高識(shí)別是否佩戴口罩的容錯(cuò)率。人臉識(shí)別測(cè)試圖如圖9所示。
圖9 人臉識(shí)別測(cè)試圖片F(xiàn)ig.9 Face recognition test picture
無(wú)論是按鍵的準(zhǔn)確率,口罩彈出的準(zhǔn)確率,以及是否佩戴口罩的識(shí)別率都在93%以上,可以看出本系統(tǒng)的準(zhǔn)確率較高,無(wú)論是按鈕觸發(fā)的準(zhǔn)確率,口罩彈出的準(zhǔn)確率,以及是否佩戴口罩的識(shí)別率都滿足設(shè)計(jì)要求。
本文所設(shè)計(jì)的非接觸式電梯操作系統(tǒng),使用STM32 單片機(jī)作為主控芯片,實(shí)現(xiàn)了電梯的非接觸式操作并彈出口罩。比傳統(tǒng)意義上的非接觸電梯控制更簡(jiǎn)捷、更方便、更智能。其功能能夠在疫情期間,降低由乘做電梯所導(dǎo)致的間接感染的風(fēng)險(xiǎn),對(duì)抗疫有一定的促進(jìn)作用,其創(chuàng)新性主要在于非接觸控制以及自動(dòng)彈出口罩,具有一定的推廣價(jià)值。