吳振
摘要:隨著疫情的到來,人們的生活受到了嚴重影響,出行不得不佩戴口罩,這使得原有的一些人臉識別系統(tǒng)已經(jīng)不能夠滿足人們當前的需求,比如門禁系統(tǒng)在戴口罩的情況下不能被識別。針對這個問題,本文設(shè)計了一個基于Eaidk-310 嵌入式平臺的戴口罩人臉識別系統(tǒng)。本文設(shè)計的思路,是借助opencv庫中傳統(tǒng)的人臉識別算法來實現(xiàn)戴口罩的人臉識別。經(jīng)過測試,該系統(tǒng)可以部署在小區(qū)、學校等小型門禁場景中。能夠識別戴口罩的人臉,從而方便人們的出行,減少疫情發(fā)生的可能性。
關(guān)鍵詞:嵌入式系統(tǒng);eaidk-310;opencv;人臉識別
中圖分類號: TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2020)30-0228-02
Abstract:With the arrival of the epidemic, people's life has been seriously affected, so people have to wear masks when they travel, which makes some of the original face recognition systems can not meet the current needs of people, such as the access control system can not be recognized when wearing masks. To solve this problem, this paper designs a face recognition system based on eaidk-310 embedded platform. The idea of this paper is to use the traditional face recognition algorithm in opencv library to realize the face recognition of wearing masks. After testing, the system can be deployed in small access control scenes such as communities, schools, etc. And it can recognize faces wearing masks, so as to facilitate people's travel and reduce the possibility of epidemic.
Keywords: embedded system;eaidk-310;opencv; face recognition
引言
2020年經(jīng)歷了疫情的人都能體會到它的可怕,為了預防疫情,出行必須佩戴口罩。但當佩戴口罩出入門禁時會發(fā)現(xiàn)無法被識別,這是由于口罩不透明性,攝像頭在采集圖像時無法獲取鼻子、嘴巴等重要特征信息,使得攝像頭采集的實時人臉與原有的人臉數(shù)據(jù)庫不匹配,從而導致人臉識別無法通過。為了減少不必要的傳染,顯然不可能去掉口罩進行識別。
所以,如何在佩戴口罩的情形下還能夠被準確識別,已經(jīng)成為如今人臉識別領(lǐng)域的熱門話題,像百度、商湯科技等公司都紛紛開展相關(guān)的研究,并取得了一定的成果。比如在人的眼睛與眉毛上提取更多的特征信息以及通過確定遮擋位置來去除遮擋物重構(gòu)人臉圖像的方法,來增加戴口罩人臉識別的正確率[1]。
而本文提出的戴口罩人臉識別系統(tǒng),是借助opencv中的人臉識別算法設(shè)計的。主要思路就是通過調(diào)用opencv庫中的人臉訓練模型將戴口罩的人臉數(shù)據(jù)訓練生成戴口罩的人臉模型,將采集的實時人臉與訓練好的戴口罩人臉模型比對,從而達到戴口罩人臉識別的目的[2]。與傳統(tǒng)的人臉識別系統(tǒng)不同的是,本文選擇了由open ai lab 開發(fā)的Eaidk-310平臺。它是一種嵌入式人工智能開發(fā)平臺,相比傳統(tǒng)的嵌入式平臺實時性高,運算儲存能力更強,更能體現(xiàn)邊緣計算的特點。使用該平臺設(shè)計的戴口罩的人臉識別系統(tǒng),將會給人們帶來更大的便利和安全保障。從而減少疫情發(fā)生的可能性,達到控制疫情的目的。
1 嵌入式系統(tǒng)和嵌入式人工智能概述
嵌入式系統(tǒng)由軟件和硬件組成,它強調(diào)以應(yīng)用為中心,并且在現(xiàn)代計算機為基礎(chǔ)的條件下,對用戶特定的需求可以進行軟硬件裁剪,它大多運用于實時性和可靠性要求較高的場景中。
而嵌入式人工智能就是在嵌入式系統(tǒng)的基礎(chǔ)上發(fā)展而來的,跟傳統(tǒng)的嵌入式系統(tǒng)將算法部署在云臺不同,它將人工智能算法部署在嵌入式終端上[3]。與傳統(tǒng)的嵌入式系統(tǒng)相比,它的實時性更高而且對網(wǎng)絡(luò)通信的壓力更小,在一些像無人駕駛對實時性要求比較高的領(lǐng)域中尤為適用。當然它的這種部署方式,使得它對嵌入式終端的要求比以往更高。但只要嵌入式終端的計算、存儲等性能跟得上,在未來嵌入式人工智能將無處不在,人們的生活也越來越方便。
2 人臉識別技術(shù)
人臉識別技術(shù)是屬于生物識別技術(shù)的一種,它是通過特定的算法提取人的臉部特征信息,構(gòu)建人臉模型,將采集的人臉與人臉模型進行比對從而達到身份識別的目的,相比于傳統(tǒng)的用戶密碼身份識別,更加方便可靠[4]。人臉識別技術(shù)最先從國外開始,國內(nèi)起步較晚,但是近些年在人臉識別領(lǐng)域也取得很大的成果,人臉識別技術(shù)也被廣泛運用,比如門禁系統(tǒng)、人臉支付、網(wǎng)絡(luò)監(jiān)控等。但是由于人臉采集過程中往往會伴隨著一些光照、角度、遮擋和年齡等影響因素,導致人臉識別領(lǐng)域仍然有諸多難題,不過正是這些難題才能夠推動技術(shù)的不斷發(fā)展與進步。
3 嵌入式系統(tǒng)設(shè)計原理
3.1 系統(tǒng)硬件設(shè)計
一個嵌入式系統(tǒng)的搭建離不開硬件設(shè)備的支持,本系統(tǒng)硬件由以下幾個模塊組成:⑴主控模塊:主芯片采用具備主流性能 Arm SoC 的 RK3228H,搭載 OPEN AI LAB 嵌入式 AI 開發(fā)平臺 AID(包含支持異構(gòu)計算庫 HCL、嵌入式深度學習框架Tengine以及輕量級嵌入式計算機視覺加速庫BladeCV),控制整個系統(tǒng)的運行;⑵人臉采集模塊:使用Usb攝像頭設(shè)備采集戴口罩的人臉數(shù)據(jù);⑶網(wǎng)絡(luò)通信模塊:通過網(wǎng)口使嵌入式平臺與PC機能夠通信,以便調(diào)試應(yīng)用程序;⑷顯示模塊:使用HDMI接口的觸摸屏來顯示人臉圖像;⑸外部存儲模塊:在TF卡槽中插入TF卡來擴展存儲空間。該系統(tǒng)的硬件結(jié)構(gòu)圖如圖1所示。
3.2 系統(tǒng)軟件設(shè)計
嵌入式系統(tǒng)軟件設(shè)計一般包括環(huán)境搭建和程序設(shè)計兩個部分。其中,環(huán)境搭建主要內(nèi)容是加載引導程序U-Boot、燒寫Linux內(nèi)核以及根文件系統(tǒng),自己搭建的話比較麻煩,而且很容易出錯,所以本文使用了官方打包好的Linux系統(tǒng) Fedora 28。
而程序設(shè)計根據(jù)需求有以下幾個過程:首先,是戴口罩的人臉采集,它使用了V4L2接口以及UVC協(xié)議來控制攝像頭采集的規(guī)格,并且調(diào)用函數(shù)打開Usb攝像頭進行圖像采集;然后,是人臉檢測,它采用Adaboost檢測算法對戴口罩的人臉進行定位;之后,是戴口罩的人臉模型訓練,將采集到的人臉進行預處理,并且在用戶人臉數(shù)據(jù)上進行標記用來訓練人臉模型;最后,是戴口罩的人臉識別,將采集到的實時人臉同樣使用Adboost算法定位人臉,進行預處理,再調(diào)用人臉識別算法,即可識別出是不是戴口罩的本人。
4 嵌入式系統(tǒng)中相關(guān)算法研究
4.1 人臉檢測算法
當前運用比較廣泛的人臉檢測方法大多是以Harr+Adaboost的方式實現(xiàn)的。其中harr特征由黑白兩種矩形組成特征模板,并且定義特征值為白色矩形像素和減黑色矩形像素和,所以Harr特征值反映了圖像的灰度變化[5]。而Adaboost是一種迭代算法,它可以通過大量的Harr特征來訓練很多個弱分類器,最后再將這些弱分類器集合在一起構(gòu)成一個強分類器,使用強分類器來區(qū)分是不是人臉,達到人臉檢測的目的。
4.2 人臉識別算法
Opencv中分別有Eigenface、Fisherface以及LBPH三種人臉識別算法。其中Eigenface就是特征臉的意思,是一種從主成分分析(PCA)中導出的人臉識別和描述技術(shù)。特征臉方法的主要思路就是將輸入的人臉圖像看作一個個矩陣,通過在人臉空間中一組正交向量,并選擇最重要的正交向量,作為“主成分”來描述原來的人臉空間。Fisheerface主要是結(jié)合了PCA降維以及LDA特征提取的優(yōu)點,將多維的人臉投影在一維的特征空間上,從而得到一組特征向量來代表人臉的特征[6]。而LBPH主要是通過LBP提取人臉特征的方式來實現(xiàn)人臉的識別[7]。
5 系統(tǒng)測試
戴口罩的人臉數(shù)據(jù)還沒有像ORL、YaLe那樣大規(guī)模的人臉庫,所以本次測試從網(wǎng)上找了一些小的戴口罩的人臉庫,從中選取了10個不同戴口罩的人,每個人有40張戴口罩的人臉。其中,每個人抽取20張作為訓練模型的樣本,剩余20張作為測試樣本。并且分別使用了opencv中的三種人臉識別算法進行測試,測試結(jié)果表明Eigenface的戴口罩人臉識別率為79.25%,F(xiàn)isherface算法的戴口罩人臉識別率為84.56%,LBPH算法的戴口罩人臉識別率為82.78%。結(jié)果表明該系統(tǒng)是可以識別戴口罩的人臉,但明顯比不戴口罩的人臉識別率低,為了能夠提高戴口罩的人臉識別率,后期還會著重于有遮擋的人臉識別算法研究。
6 結(jié)束語
嵌入式人臉識別系統(tǒng)在過去的幾十年里已經(jīng)發(fā)展得很成熟了,但是由于人臉識別過程中容易受到光照、姿勢、表情、年齡等因素的影響,導致人臉識別系統(tǒng)的不完善。除此之外,嵌入式硬件的發(fā)展也達到了瓶頸。
嵌入式人臉識別系統(tǒng)想要再一次發(fā)展,一方面就是解決人臉識別中的影響因素,另一方面就是發(fā)展新型的嵌入式人工智能平臺,它不僅能夠促進嵌入式系統(tǒng)硬件的發(fā)展,更可以滿足一些實時性高的場景中,比如無人駕駛。而本文使用Eaidk-310這一款嵌入式人工智能平臺,有很大的原因就是為了將人臉識別系統(tǒng)運用在新型的嵌入式平臺上。
參考文獻:
[1] 董艷花,張樹美,趙俊莉.有遮擋人臉識別方法綜述[J].計算機工程與應(yīng)用,2020,56(9):1-12.
[2] 陸暢,陳東焰,俞浩.基于OpenCV視覺庫和樹莓派的人臉識別門禁系統(tǒng)[J].科技創(chuàng)新導報,2019,16(2):152-154,156.
[3] 畢盛.嵌入式人工智能技術(shù)開發(fā)及應(yīng)用[J].電子產(chǎn)品世界,2019,26(5):14-16,25.
[4] 左騰.人臉識別技術(shù)綜述[J].軟件導刊,2017,16(2):182-185.
[5] 李昌湘,白創(chuàng).嵌入式人臉識別系統(tǒng)設(shè)計與實現(xiàn)[J].智能計算機與應(yīng)用,2018,8(3):115-117,121.
[6] 陳瀟.基于PCA的人臉識別方法設(shè)計與實現(xiàn)[J].數(shù)字技術(shù)與應(yīng)用,2019(10):156-157,159.
[7] 付波,徐超,趙熙臨,等.基于最值平均的人臉識別LBP算法[J].計算機應(yīng)用與軟件,2019,36(9):209-213.
【通聯(lián)編輯:唐一東】