章國華
應用研究
基于組態(tài)軟件和人臉識別算法的電梯運行仿真設計
章國華
(武漢船舶職業(yè)技術學院,武漢 430050)
以OpenCV 4.0.0和KingView 6.5.5軟件為設計基礎,提出了組態(tài)軟件下的電梯人臉識別仿真系統(tǒng)的設計方法,通過仿真程序驗證了人臉識別算法的可行性,OpenCV4.0.0和KingView 6.55軟件間的通信用虛擬串口軟件實現(xiàn),最后加入了數(shù)據(jù)管理,完整地實現(xiàn)了電梯的人臉識別電梯仿真系統(tǒng)。
人臉識別 組態(tài) 電梯 仿真
人臉識別,是用攝像機或攝像頭采集含有人臉的圖像或視頻流,并在圖像中自動檢測和跟蹤人臉,進而對檢測到的人臉進行識別,是一種基于人的臉部特征信息進行身份識別的生物識別技術。
在樓宇中人們最主要的搭乘工具是電梯,出于安全考慮,有電梯進入的控制需求,因此把人臉識別技術應用在電梯系統(tǒng)中,專門針對樓宇電梯安全防范而設計電梯控制系統(tǒng),給樓宇電梯的安全性和實用性帶來重大的變化[1]。
首先是OpenCV的版本選擇。不同版本的Visual Studio需配置不同版本的OpenCV,通過查閱資料,其對應關系:VC15->VS2016 ( VS高版本可以配置低的VC,但低的VC版不能配置高的VS),這里我選擇安裝的是VS2019,安裝的OpenCV版本是OpenCV4.0.0。
接著就是下載OpenCV,雙擊下載的OpenCV4.0.0.exe,選擇你熟悉的路徑解壓,也就是安裝路徑,根據(jù)VS2019工程的要求配置Path系統(tǒng)環(huán)境變量,即編輯path,把之前解壓好的OpenCV路徑下的bin路徑添加到Path系統(tǒng)環(huán)境變量中。接著在VS2019中配置OpenCV。軟件環(huán)境準備好后,就開始新建工程,設計人臉識別程序。主要結(jié)構(gòu)如下:
int main(void)
{
VideoCapture capture(0);//加載相機
init_comm();//串口初始化
UpdateDatabase(capture);//更新數(shù)據(jù)庫
Train_model();//訓練
FaceRecog(capture);//識別
return 0;
}
本控制軟件使用了AT&TFacedatabase人臉數(shù)據(jù)庫,人臉庫中有40個文件夾,分別對應著40個人,其中每人10張表情不同的照片。每張照片在不同時間、不同光照、不同表情(睜眼閉眼、笑或者不笑)、不同人臉細節(jié)(戴眼鏡或者不戴眼鏡)下采集。其中所有的圖像都在一個黑暗均勻的背景下采集的,而且正面豎直人臉(有些有輕微旋轉(zhuǎn))。在更新數(shù)據(jù)庫時(UpdateDatabase(capture)),將新增的人臉數(shù)據(jù)按順序依次加入到原始數(shù)據(jù)庫中,增加相應的編號,這新增的編號是后面識別時要用到的編號,同時更新標簽數(shù)據(jù)庫。數(shù)據(jù)庫更新采用手動方式或自動兩種方式,采集10張人臉圖片,手動方式便于使圖片有不同的表情,增加識別可靠性,自動方便程序的調(diào)試運行。
接著就是對擴展了的人臉數(shù)據(jù)庫進行訓練(Train_model()),OpenCV現(xiàn)有三種訓練方式,分別是Eigenfaces特征臉,F(xiàn)isherfaces線性判別,LocalBinary Patterns Histograms局部二值直方圖。本次將三種算法都加入到軟件中,可以驗證不同算法適用性。
有了數(shù)據(jù)庫的訓練后,最終目標就是識別(FaceRecog(capture)),當攝像頭采集到含有人臉的視頻時,會選取一張圖片進行識別,如果識別到是數(shù)據(jù)庫中的圖片,則輸出其相應的編號,隨后到標簽數(shù)據(jù)庫中找到相應圖片對應的名字,顯示在視頻中的人臉上,完成了識別。
本控制軟件還有簡單的數(shù)據(jù)管理,在文本文件中錄入電梯乘客的個人信息,包括姓名、所去樓層、使用電梯的期限等必備信息,這些信息便于兩個軟件關于乘客信息的交流和相應功能的實現(xiàn),識別出人臉后,在數(shù)據(jù)庫中查找是否有此人,數(shù)據(jù)庫中有,則判斷此人外出還是回家,決定所要去樓層,這時就將電梯要運行樓層信息發(fā)給電梯運行系統(tǒng),實現(xiàn)電梯定向和選層。
由于是電腦仿真,受界面大小的影響,電梯設計成三層樓的形式,技術上三層與多層基本原理沒有多大差別,只是復雜性增加而已。規(guī)劃好電梯結(jié)構(gòu)后,在組態(tài)軟件中實現(xiàn)過程如下。
在組態(tài)王KingView軟件中設計仿真電梯時,根據(jù)電梯結(jié)構(gòu)確定電梯控制的輸入輸出變量,并在組態(tài)軟件的數(shù)據(jù)詞典中定義。定義了變量后,就可在畫面中設計電梯并作動畫連接,最后組態(tài)王的命令語言設計控制程序,電梯的所有功能都是由程序控制完成的,根據(jù)功能要求去設計程序,這需要對電梯的運行原理非常清楚。電梯控制程序邏輯正確是電梯正常運行的必要保證,根據(jù)電腦顯示屏分辨率確定電腦中仿真電梯的層數(shù),通常三層就具有代表性,不能少于三層。接著就是要實現(xiàn)電梯平層的方式,本文用了上下平層感應器實現(xiàn)平層,用動畫圖形運行的距離來分別觸發(fā)上下平層感應器,而且觸發(fā)邊與運行的方向有關。電梯平層時有一個平層觸發(fā)信號,這個信號在PLC程序中是一個執(zhí)行周期,在組態(tài)軟件程序?qū)崿F(xiàn)時用計數(shù)方式替代,效果也一樣。再就是開關門延時和停站延時等,也要用計數(shù)的方式替代實現(xiàn)。本文電梯控制程序大致分為:傳感器觸發(fā)、轎內(nèi)指令、門廳呼叫、定向、啟動、開關門、停站、平層和加減速等幾個部分。部分程序如下:
在VS2019中實現(xiàn)的人臉識別結(jié)果是乘客在基站應識別所去樓層,乘客不在基站,則要去基站,這些信息要傳給組態(tài)王軟件,用串口通信實現(xiàn),所以要設計這兩個軟件的串口通信程序,用組態(tài)王的ascii碼串行通信方式在VS2019中實現(xiàn)串口通信,根據(jù)組態(tài)王的串行通信協(xié)議來編寫相關程序,仿真時,用Virtual Serial Port Driver(虛擬串口驅(qū)動vspd)軟件來實現(xiàn)兩個軟件的串行通信,程序設計好后,運行前首先要指定好相應的端口,程序結(jié)構(gòu)參數(shù)如下:
bool RecOk = 0; //
unsigned char ch[9];
uchar RecBuf[24];
uchar SendBuf[16] = { 0x40,0x30,0x32,0x30,0x31,0x36,0x35,0x30,0x31,0x0d,0x0d,0x0d,0x0d,0x0d,0x0d };//接收組態(tài)王讀的命令后要發(fā)的數(shù)據(jù)
uchar SendBufErr[8] = { 0x40,0x30,0x32,0x2a,0x2a,0x36,0x35,0x0d };//接收錯誤
uchar SendBufAck[8] = { 0x40,0x30,0x32,0x23,0x23,0x36,0x35,0x0d };//接收組態(tài)王寫的數(shù)據(jù)正確
uchar SendDat0[NUM_BYTE] = { 0 }, RecDat0[NUM_BYTE];//這是程序中準備傳遞給組態(tài)王的,可以自行更改
uint SendDat1[NUM_UINT] = { 0 }, RecDat1[NUM_UINT];// VS2019中各有10個變量與組態(tài)王的對應寄存器
float SendDat2[NUM_FLOAT] = { 0 }, RecDat2[NUM_FLOAT];
串口通信與乘客相關的數(shù)據(jù)是電梯乘客在注冊時錄入,包括姓名,所住樓層,使用電梯的期限等。
本電梯實現(xiàn)的功能:全集選控制運行功能(無司機,順向截梯),超載保護功能,超載報警功能,安全觸板保護功能,位置異常自動校正功能,轎頂檢修功能,轎內(nèi)檢修功能,機房同檢修功能,無呼梯自動返基站功能,泊梯功能,消防功能,消防迫降和消防員功能,轎內(nèi)指令取消功能,司機操作功能,最遠反向截梯功能,轎內(nèi)優(yōu)于轎外功能,安全觸板保護功能,基站開門待客功能,滿載直駛功能,人臉識別運行功能。功能的實現(xiàn)核心在于弄清人臉識別算法及做合理的選擇。
本文從仿真的角度出發(fā),介紹了電梯人臉識別系統(tǒng)的設計方法,通過程序調(diào)試驗證了算法正確性和有效性,用程序完整地實現(xiàn)了電梯人臉識別仿真系統(tǒng),該系統(tǒng)可用于人工智能(機器學習)教學和電梯系統(tǒng)工程開發(fā)驗證。
[1] 章國華. 機電控制技術實用教程[M]. 天津大學出版社, 2009.
Simulation Design of Elevator Operation based on Configuration Software and Face Recognition Algorithm
Zhang Guohua
(Wuhan Institute of Shipbuilding Technology, Wuhan 430050, China)
4.0.06.5.54.0.0
TP391
A
1003-4862(2021)02-0015-03
2020-09-24
章國華(1964-),男,副教授。研究方向:機電一體化技術教學與研究。E-mail: zhangguohua64@outlook.com