孟清 劉齊科
摘 ?要: 人臉識別技術(shù)作為自主移動服務(wù)機器人的關(guān)鍵技術(shù)之一,得到廣泛關(guān)注和研究,同時也在自動駕駛、金融支付、身份識別和在線教育等場景得到廣泛應(yīng)用。通過對目前主要的人臉識別方法分析,基于Opencv內(nèi)置的人臉檢測分類器Haar,在自主移動服務(wù)機器人上實現(xiàn)了人臉圖像采集及檢測,人臉圖像預(yù)處理,人臉圖像特征提取以及匹配識別,并在學校的課堂人臉考勤得到應(yīng)用。
關(guān)鍵詞: 自主移動;服務(wù)機器人;人臉識別
中圖分類號: TP311.13 ???文獻標識碼: A ???DOI:10.3969/j.issn.1003-6970.2020.09.016
本文著錄格式:孟清,劉齊科. 自主移動服務(wù)機器人人臉識別方法研究與實現(xiàn)[J]. 軟件,2020,41(09):6061
【Abstract】: As one of the key technologies of autonomous mobile service robots, face recognition technology has been widely concerned and researched. At the same time, it has been widely used in automatic driving, financial payment, identity recognition, online education and other scenarios. Through the analysis of the main face recognition methods, based on the face detection classifier Haar built in opencv, the face image acquisition and detection, face image preprocessing, face image feature extraction and matching recognition are realized on the autonomous mobile service robot, and the application of face attendance in the classroom of the school is achieved.
【Key words】: Autonomous mobile; Service robot; Face recognition
0 ?引言
隨著人工智能技術(shù)研究和應(yīng)用的不斷深入,自主移動服務(wù)機器人在工業(yè)、農(nóng)業(yè)、電力和軍事等各個領(lǐng)域應(yīng)用越來越廣泛。自主移動服務(wù)機器人技術(shù)集中了多學科的研究成果,其關(guān)鍵技術(shù)是目前人工智能研究熱點,主要包括機器人尋跡、定位避障、語音識別、自主運動控制、機器學習、圖像處理和通訊技術(shù)等眾多領(lǐng)域。
作為自主移動服務(wù)機器人與外界溝通的主要途徑之一的攝像頭,其圖像處理功能尤為重要,作為機器人與人之間溝通的人臉識別技術(shù)已經(jīng)在安防和身份識別等領(lǐng)域廣泛應(yīng)用,比如銀行、關(guān)口、支付等各種場景中都有從的身影。自主移動服務(wù)機器人在與人溝通、身份確認等場景中同樣也需要人臉識別技術(shù)。
1 ?人臉識別技術(shù)
人臉識別技術(shù)目前已經(jīng)比較成熟,主要有以下幾種方法:
(1)基于人臉基本幾何特征識別
該方法通過對比人臉面部特征如面部器官形狀、結(jié)構(gòu)等,獲取多達上百個特征點進行人臉的判斷,該方法簡單易于實現(xiàn),但是由于遮擋物、光線和臉部表情變化等原因,其精度誤差較大。
(2)基于人臉模板庫識別
通過收集大量的人臉灰度圖像,組成一個人臉模板庫,庫中內(nèi)容可以為完整的人臉模板,也可以是局部的模板。在機器人進行識別的時候,將人臉圖片進行灰度和尺寸信息進行歸一化處理,最終通過計算和對比在人臉模板庫中找到符合度最高的那張圖片。但是由于模板庫是靜態(tài)的,所以不是很靈活。
(3)其他方法
隨著人臉識別技術(shù)的不斷成熟,還出現(xiàn)了具備代數(shù)特征的人臉識別方法,在側(cè)臉的情況下采用的多姿態(tài)人臉識別方法,多數(shù)據(jù)融合人臉識別方法和基于三維技術(shù)的人臉識別方法方法等等。
2 ?人臉識別主要步驟
自主移動服務(wù)機器人人臉識別的主要步驟,包括人臉圖像采集及檢測,人臉圖像預(yù)處理,人臉圖像特征提取以及匹配識別幾個步驟。
人臉圖像采集:機器人通過高清攝像頭自動將其周圍的不同的人臉圖像采集下來,包括靜態(tài)圖片和動態(tài)圖像,包括其位置信息、表情特征等。
人臉檢測:主要是在復(fù)雜的圖像中確定并標注人臉的位置和大小,通過人臉的直方圖特征、顏色特征、模板特征及Haar特征這些有用的信息判斷出來,最終實現(xiàn)人臉檢測。目前主流的人臉檢測方法采用的是基于強分類的Adaboost機器學習算法,對最能代表人臉的矩形特征按加權(quán)投票的方法,用來提取人臉圖像中的模式特征。
人臉圖像預(yù)處理:對原始圖像通過灰度校正、噪音過濾等圖像預(yù)處理方法排除各種條件限制和隨機干擾,主要包括人臉圖像的光線補償、灰度變化、直方圖均衡化、歸一化、幾何校正、濾波及銳化等。
人臉圖像特征提?。和ㄟ^人臉器官的形狀描述、距離特征基于知識表征方法或代數(shù)特征的表征方法來提取視覺、像素統(tǒng)計、人臉圖像變換系數(shù)和人臉圖像代數(shù)特征等,是一個對人臉進行特征建模的過程。
人臉圖像匹配與識別:主要是將人臉識別提取的特征數(shù)據(jù)與數(shù)據(jù)庫中存儲的特征模板進行搜索匹配,同時設(shè)定一個閾值,當圖片相似度超過這一閾值的時候則匹配成功。
3 ?系統(tǒng)硬件組成
自主移動服務(wù)機器人系統(tǒng)硬件采用三層架構(gòu),分別為交互前端層、核心中間層和硬件驅(qū)動底層[1]。人臉識別系統(tǒng)需要用到交互前端層的熱紅外人體傳感器來判斷機器人面前是否有人活動,如果傳感器發(fā)現(xiàn)面前有人,即打開高清攝像頭用來獲取人臉圖像。人臉識別算法運行在核心中間層的安裝有安裝Ubuntu操作系統(tǒng)的、具備較強運算能力的小型電腦上。
4 ?系統(tǒng)模塊設(shè)計
根據(jù)前面的人臉識別主要步驟,在系統(tǒng)實現(xiàn)時一共設(shè)計成四個模塊,即人臉采集及預(yù)處理、人臉檢測、人臉模型訓練和人臉識別四個模塊,在人臉檢測算法的選擇上,目前用得最多的是OpenCV與Dlib中的四種人臉檢測算法,四種算法各有優(yōu)缺點,其中OpenCV DNN檢測人臉算法,因為DNN在這四種方法中是最準確的,不但能在CPU上實時運行,對于各種尺度的人臉,上,下,左,右,側(cè)面不同的人臉方向檢測正確率較高,甚至在有口罩等的嚴重遮擋下仍能正常工作。
本文使用了目前較為通用的Opencv內(nèi)置的人臉檢測分類器Haar進行人臉檢測。系統(tǒng)的模塊設(shè)計與實現(xiàn)如下。
4.1 ?人臉采集和圖像預(yù)處理
人臉采集主要是三個步驟,包括打開攝像頭、循環(huán)讀取攝像頭視頻流的幀并顯示和灰度化。使用cv2. VideoCapture和read()函數(shù)打開和讀取攝像頭獲得圖片,接下來使用cvtColor(img,cv2.COLOR_BGR2GRAY)函數(shù)對圖片進行灰度化,因為通過攝像頭采集到的圖片一般是彩色圖片,彩色圖片包含了三個通道的數(shù)據(jù),處理起來比較復(fù)雜,所以在圖片識別算法中一般先將圖像進行灰度化處理,將每個像素點的RGB值統(tǒng)一成同一個值。灰度化后的圖像將由三通道變?yōu)閱瓮ǖ?,單通道的?shù)據(jù)處理起來就會簡單許多,可以加人臉識別快算法執(zhí)行速度。
4.2 ?人臉檢測
在灰度化后的圖像后,利用Opencv內(nèi)置的人臉檢測分類器Haar可以找出圖片中的人臉,Haar分類器使用Haar-like特征,通過AdaBoost算法和積分圖快速計算可以對圖片中的人臉進行檢查,具體使用cv2. CascadeClassifier('haarcascade_frontalface_default.xml')代碼就可以實現(xiàn)人臉檢測。
人臉檢測效果見圖1。
4.3 ?人臉模型訓練
首先將檢測出的人臉組成一個人臉庫(訓練集),讀取人臉檢測中得到的所有人臉圖片,每張人臉圖片獲取臉部信息,并賦一個標簽,保存在兩個相同大小的列表,這就是我們所說的訓練集。
有了臉部信息和標簽這兩個列表后,就可以利用Opencv自帶的識別器進行訓練了。Opencv的識別器包括LBPH、Eigen和Fisher三種,具體使用face_recog = cv2.face. LBPHFaceRecognizer_create() 和face_recog.train(faces, np.array (labels))代碼就可以實現(xiàn)人臉模型訓練。
4.4 ?人臉識別
基于人臉模型訓練得到的人臉庫(訓練集),就可以對通過攝像頭采集的新人臉進行識別了。對新圖片進行人臉識別,獲取特征向量,最后與已具備的人臉庫(訓練集)進行對比,即可實現(xiàn)人臉判斷。具體使用face_recog.predict(face)代碼就可以實現(xiàn)人臉識別。
5 ?結(jié)語
利用Python語言,基于Opencv內(nèi)置的人臉檢測分類器Haar,在自主移動服務(wù)機器人上實現(xiàn)了人臉圖像采集及檢測,人臉圖像預(yù)處理,人臉圖像特征提取以及匹配識別的全流程,并且在海南職業(yè)技術(shù)學院的課堂人臉考勤進行了應(yīng)用,由于識別場景固定,人臉識別精確達到95%左右。以后也可以將人臉識別技術(shù)應(yīng)用在在線課程教學上,通過實時監(jiān)測人臉,統(tǒng)計在線學習時間等信息,實現(xiàn)在線教學全過程監(jiān)控。
參考文獻
[1]孟清, 斯琴高娃. 基于ROS的自主移動服務(wù)機器人系統(tǒng)框架設(shè)計[J]. 電子技術(shù)與軟件工程, 2019(09): 46-47.
[2]薛力群. 關(guān)于人臉識別技術(shù)在智慧樓宇中的應(yīng)用研究[J].智能計算機與應(yīng)用, 2019(06): 318-321.
[3]張良杰. 基于人臉識別的智慧教室簽到管理子系統(tǒng)[J]. 軟件, 2019(12): 133-139.
[4]歐陽軍林, 黃井滔, 張嘯. 基于深度學習的人臉識別系統(tǒng)[J]. 當代教育理論與實踐, 2019(06): 133-138.
[5]張一夫, 陳天飛, 張建松. 基于樹莓派的在線人臉識別考勤系統(tǒng)[J]. 電子設(shè)計工程, 2019, 22(11): 152-156.
[6]張靜褚, 麗莉, 周影. 基于OpenCV的ROS平臺人臉識別系統(tǒng)的研究[J]. 系統(tǒng)工程, 2020(2): 44-45.