過(guò) 怡,詹鵬彥,任義超
(蘇州市職業(yè)大學(xué) 計(jì)算機(jī)工程學(xué)院,江蘇 蘇州 215104)
現(xiàn)有的使用人臉識(shí)別進(jìn)行門禁管理的系統(tǒng),大都采用模型在服務(wù)器上訓(xùn)練和存儲(chǔ)以及計(jì)算資源聯(lián)網(wǎng)工作的方式,適用于計(jì)算量大、模型存儲(chǔ)量大的應(yīng)用場(chǎng)合[1]。這種人臉識(shí)別系統(tǒng)通常基于云計(jì)算技術(shù),終端采集的圖片通過(guò)網(wǎng)絡(luò)傳輸?shù)椒?wù)器端,使用GPU等專用計(jì)算設(shè)備進(jìn)行特征提取識(shí)別,識(shí)別準(zhǔn)確率高,但是上傳數(shù)據(jù)會(huì)受到網(wǎng)絡(luò)帶寬影響,存在一定的時(shí)間延遲,同時(shí)識(shí)別設(shè)備只有在聯(lián)網(wǎng)時(shí)才能進(jìn)行工作,造成采集的數(shù)據(jù)有泄露危險(xiǎn)。
高校實(shí)驗(yàn)室門禁系統(tǒng)的管理人員通常固定為某位教師,使用人員數(shù)量有限且相對(duì)固定,因此,本系統(tǒng)設(shè)計(jì)的人臉識(shí)別系統(tǒng)算量和模型都較小,適合直接部署在邊緣終端設(shè)備上,以離線和本地存儲(chǔ)的方式進(jìn)行人臉的識(shí)別操作。
實(shí)驗(yàn)室門禁系統(tǒng)總體結(jié)構(gòu)如圖1所示,首先由攝像頭拍攝采集人臉圖片,在系統(tǒng)初始化階段,主控模塊對(duì)人臉圖片進(jìn)行特征提取并存儲(chǔ)到數(shù)據(jù)庫(kù)中,完成實(shí)驗(yàn)室人員的人臉注冊(cè);初始化完成后,系統(tǒng)進(jìn)入人員識(shí)別階段,主控模塊對(duì)采集的人臉圖片進(jìn)行特征提取后與數(shù)據(jù)庫(kù)中的數(shù)據(jù)進(jìn)行比對(duì),比對(duì)成功開(kāi)啟門禁,比對(duì)失敗發(fā)出警報(bào)。實(shí)驗(yàn)室管理員可以對(duì)系統(tǒng)進(jìn)行數(shù)據(jù)管理,包括新成員注冊(cè)、離開(kāi)人員刪除。

圖1 實(shí)驗(yàn)室門禁系統(tǒng)總體結(jié)構(gòu)框圖
系統(tǒng)硬件主控板采用EAIDK-610開(kāi)發(fā)板,主芯片采用瑞芯RK3399,擴(kuò)展性高,CPU為四核Cortex-A53+雙核Cortex-A72和獨(dú)立NEON協(xié)處理器,GPU為ARM四核圖像處理器Mail-T860。主頻1.8 GHz,運(yùn)行內(nèi)存采用雙通道LPDDR3(64-bit)4 GB,支持HDMI、MIPI、EDP顯示接口,Ethernet 10/100/1 000 Mb/s,WIFI 802.11ac/a/b/g/n,BT 4.2網(wǎng)絡(luò)。操作系統(tǒng)支持Fedora、Android和Ubuntu,搭載深度學(xué)習(xí)推理框架Tengine,以及輕量級(jí)CV加速庫(kù)BladeCV。
EAIDK-610開(kāi)發(fā)板擁有2路MIPI Camera接口,可以外接2個(gè)OV9750攝像頭,組成雙MIPI Camera同步顯示和前后攝像模式。OV9750主攝像頭和主機(jī)采用MIPI CSI接口,分辨率為1 920×1 080。
Tengine是由OPEN AI LAB公司推出的一款嵌入式開(kāi)源前端AI推理框架,Tengine支持目前市場(chǎng)上各種主流的模型框架,如 TensorFlow、Caffe和MXNet,并且通過(guò)ONNX模型實(shí)現(xiàn)了對(duì)PyTorch和PaddlePaddle的支持,讓開(kāi)發(fā)者能更自由地選擇訓(xùn)練框架,降低了面對(duì)不同硬件和場(chǎng)景而遷移平臺(tái)的成本[2]。
3.1.1 操作系統(tǒng)固件安裝
EAIDK-610開(kāi)發(fā)板默認(rèn)安裝的操作系統(tǒng)是Fedora28,桌面環(huán)境是LXDE,同時(shí)在EAIDK官方FTP服務(wù)器上提供了Android8.1、Ubuntu的固件安裝包。本系統(tǒng)采用Fedora的EAI610-P0-ReleaseV0.4.1固件,在PC機(jī)上使用瑞芯驅(qū)動(dòng)助手安裝USB驅(qū)動(dòng),將下載的固件壓縮包解壓縮,使用Type-C線連接PC機(jī)和EAIDK-610開(kāi)發(fā)板,先后按下開(kāi)發(fā)板上reset和update按鍵后重啟開(kāi)發(fā)板,直到開(kāi)發(fā)板系統(tǒng)進(jìn)入Loader模式,使用EAIDK燒寫(xiě)工具將固件燒寫(xiě)到開(kāi)發(fā)板上。
3.1.2 編譯工具安裝

3.1.3 Tengine編譯
從Github網(wǎng)站下載Tengine源碼保存到開(kāi)發(fā)板的新建文件夾下,進(jìn)入源碼的Tengine-Lite文件夾,新建build文件夾執(zhí)行編譯命令,在build/install/lib下編譯生成libtegine-lite.so庫(kù)文件。在系統(tǒng)中配置生成的庫(kù)文件和其他依賴庫(kù)并使其生效,后期就可以順利使用Tengine工作了。
系統(tǒng)開(kāi)發(fā)使用了Python庫(kù)、OpenCV庫(kù)、FaceRecognition庫(kù)、dlib庫(kù),在軟件開(kāi)發(fā)之前必須安裝配置上述軟件庫(kù)。開(kāi)發(fā)板默認(rèn)安裝了Python3.6.5。
安裝OpenCV庫(kù),通過(guò)dnf包管理器命令從服務(wù)器下載安裝依賴包opencv-devel:sudo dnf istall opencv opencv-devel。
由于dlib庫(kù)需要內(nèi)存資源較多,可以從開(kāi)發(fā)板官方FTP服務(wù)器上下載壓縮包快速安裝。
軟件系統(tǒng)包括UI界面模塊、人員注冊(cè)模塊、人員識(shí)別模塊和數(shù)據(jù)管理模塊。
UI界面模塊使用Qt的Python界面開(kāi)發(fā)工具PyQt進(jìn)行設(shè)計(jì)。
人員注冊(cè)模塊可采用拍照注冊(cè)和照片文件批量注冊(cè)兩種方式,拍照注冊(cè)通過(guò)OpenCV調(diào)用攝像頭拍攝人臉圖片,調(diào)用FaceRecognition庫(kù)的face_locations方法標(biāo)記人臉位置和大小,該方法默認(rèn)采用方向梯度直方圖進(jìn)行人臉定位。對(duì)截取的人臉進(jìn)行光線補(bǔ)償、灰度處理、直方圖均衡等圖像預(yù)處理。對(duì)經(jīng)過(guò)處理的人臉調(diào)用FaceRecognition庫(kù)的face_encodings方法進(jìn)行人臉特征提取,獲得每張人臉的128維特征向量[3],并將注冊(cè)人員的姓名和特征向量保存到數(shù)據(jù)庫(kù)中。批量注冊(cè)與拍照注冊(cè)只是獲得圖片的方式不同,批量注冊(cè)收集實(shí)驗(yàn)室人員包含個(gè)人清晰人臉的照片圖片,對(duì)圖片進(jìn)行逐個(gè)讀取后進(jìn)行人臉檢測(cè)定位、預(yù)處理、特征提取和數(shù)據(jù)庫(kù)存儲(chǔ)。人員注冊(cè)程序流程如圖2所示。

圖2 人員注冊(cè)程序流程


圖3 人員識(shí)別程序流程
數(shù)據(jù)管理模塊實(shí)現(xiàn)個(gè)別臨時(shí)入住實(shí)驗(yàn)室人員的人臉注冊(cè)、離開(kāi)實(shí)驗(yàn)室人員的數(shù)據(jù)庫(kù)數(shù)據(jù)刪除。人員刪除可以單個(gè)刪除,也可以批量刪除。
由于Tengine支持目前市場(chǎng)上各種主流的模型框架,如果實(shí)驗(yàn)室的人員較多,為了獲得良好的識(shí)別效率,可以在服務(wù)器端使用主流框架,使用MobileNet[4]模型或者M(jìn)obileFaceNets模型進(jìn)行人臉識(shí)別模型訓(xùn)練。訓(xùn)練生成的模型使用convert_tool命令轉(zhuǎn)換成Tengine支持的模型格式,部署到開(kāi)發(fā)板上進(jìn)行人臉的識(shí)別。
實(shí)驗(yàn)室30名人員參與系統(tǒng)測(cè)試,識(shí)別率為100%,平均識(shí)別時(shí)間小于250 ms。40人參與系統(tǒng)測(cè)試,識(shí)別率為100%,平均識(shí)別時(shí)間小于280 ms。50名人員參與系統(tǒng)測(cè)試,識(shí)別率為98%,平均識(shí)別時(shí)間小于300 ms。
在邊緣設(shè)備上實(shí)現(xiàn)離線的人臉識(shí)別功能,成本低,安裝調(diào)試靈活,穩(wěn)定性好,識(shí)別速度快,同時(shí)不受網(wǎng)絡(luò)帶寬的影響,避免了人臉圖像數(shù)據(jù)泄露的風(fēng)險(xiǎn),很好地實(shí)現(xiàn)了人員數(shù)量較少情況下的實(shí)驗(yàn)室門禁系統(tǒng)管理。本系統(tǒng)無(wú)法進(jìn)行活體識(shí)別,后期將針對(duì)這一問(wèn)題對(duì)其進(jìn)行進(jìn)一步改進(jìn)。