国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于Yolov5s和Dlib的視頻人臉識(shí)別

2021-12-19 20:51:43黃振龍吳林煌
電腦知識(shí)與技術(shù) 2021年32期
關(guān)鍵詞:人臉識(shí)別

黃振龍 吳林煌

摘要:文章實(shí)現(xiàn)了基于Yolov5s和Dlib的視頻實(shí)時(shí)人臉識(shí)別?;陂_源的人臉數(shù)據(jù)集CelebA重新訓(xùn)練Yolov5s網(wǎng)絡(luò),使得Yolov5s能夠檢測并標(biāo)記出圖像中的人臉位置。將Yolov5s檢測到的人臉區(qū)域圖像輸入到第三方人臉識(shí)別模塊Dlib中,首先提取出68點(diǎn)人臉面部關(guān)鍵點(diǎn),再將關(guān)鍵點(diǎn)生成人臉特征向量,同時(shí)通過Dlib模塊提取事先準(zhǔn)備好的需要識(shí)別的人臉圖像的特征向量,并保存到相應(yīng)的人臉數(shù)據(jù)庫中。由于同一個(gè)人的人臉特征向量映射到高維空間的距離是接近的,基于此引入更高效Annoy算法對(duì)人臉特征向量創(chuàng)建索引,提高人臉識(shí)別速度。

關(guān)鍵詞: 人臉識(shí)別; Yolov5s; Dlib; Annoy; OpenCV

中圖分類號(hào):TP391 ? ? ? ?文獻(xiàn)標(biāo)識(shí)碼:A

文章編號(hào):1009-3044(2021)32-0094-03

Video Face Recognition based on Yolov5s and Dlib

HUANG Zhen-long,WU Lin-huang

(College of Physics and Information Engineering, Fuzhou University, Fuzhou 350108, China)

Abstract:This paper realizes video real-time face recognition based on yolov5s and Dlib.yolov5s network is retrained based on the open source face data set celebA, so that yolov5s can detect and mark the face position in the image. The face region image detected by yolov5s is input into the third-party face recognition module Dlib. Firstly, 68 face key points are extracted, and then the key points are generated into face feature vector. At the same time, the feature vector of the prepared face image to be recognized is extracted through the Dlib module and stored in the corresponding face data database. Because the distance between the face feature vector of the same person and the high-dimensional space is close, based on this, a more efficient annoy algorithm is introduced to index the face feature vector to improve the speed of face recognition.

Key words:face recognition; yolov5s; Dlib; annoy; OpenCV

1 背景

近年來隨著機(jī)器學(xué)習(xí)的興起和飛快發(fā)展,傳統(tǒng)的應(yīng)用已經(jīng)將機(jī)器學(xué)習(xí)與之相結(jié)合,來提高應(yīng)用的智能化和用戶體驗(yàn)感,如人臉考勤、人臉閘機(jī)通道、刷臉支付等人臉識(shí)別應(yīng)用已經(jīng)在生活中屢見不鮮了[1]。

人臉識(shí)別是基于人臉面部的特征信息進(jìn)行身份識(shí)別,是目前應(yīng)用范圍最廣泛和最易被接受的生物特征識(shí)別方法之一。相比較于靜態(tài)圖片而言,視頻提供了更加豐富的空間與時(shí)間信息,實(shí)際的現(xiàn)實(shí)應(yīng)用場景也更加廣泛,如在安防領(lǐng)域中,針對(duì)監(jiān)控?cái)z像頭采集到的視頻流,將人工智能和攝像頭相結(jié)合,能夠自動(dòng)在圖像中檢測和跟蹤人臉,進(jìn)而進(jìn)行人臉識(shí)別[2-3]。

本文實(shí)現(xiàn)了基于視頻流的人臉識(shí)別,通過OpenCV每隔若干幀獲取圖像,利用重新訓(xùn)練的Yolov5s模型提取出人臉區(qū)域圖像,通過Dlib第三方深度學(xué)習(xí)開源庫將人臉區(qū)域圖像轉(zhuǎn)換為人臉特征向量,與建立好的本地人臉數(shù)據(jù)庫中特征向量進(jìn)行歐式距離的比較,小于設(shè)定的閾值則認(rèn)為是同一個(gè)人,否則標(biāo)記為未知人臉?;谙嗤四樤诟呔S空間映射的距離都是相近的,引入近似最近鄰算法Annoy對(duì)人臉特征向量創(chuàng)建索引提高人臉匹配速度。

2 系統(tǒng)總體設(shè)計(jì)

系統(tǒng)的總體設(shè)計(jì)框架如圖1所示。通過OpenCV逐幀讀取視頻,每隔若干幀進(jìn)行人臉檢測和識(shí)別。采用基于開源的人臉數(shù)據(jù)集CelebA重新訓(xùn)練的Yolov5s網(wǎng)絡(luò)作為人臉檢測的模型提取出人臉區(qū)域圖像,人臉識(shí)別采用了Dlib第三方模塊,首先通過人臉關(guān)鍵點(diǎn)標(biāo)記模型標(biāo)記出68個(gè)面部關(guān)鍵點(diǎn),再將獲取到的68個(gè)關(guān)鍵點(diǎn)轉(zhuǎn)換成128維人臉特征向量,通過計(jì)算人臉的特征向量與本地人臉數(shù)據(jù)庫的特征向量的歐氏距離來判斷是否同為一個(gè)人,當(dāng)距離小于特定閾值時(shí),認(rèn)為是同一個(gè)人,打上人物姓名標(biāo)簽,否則打上unKnown標(biāo)簽。最后將打上標(biāo)簽的圖像以及視頻輸出到本地。

3 人臉檢測

目前從圖片中檢測并提取出人臉區(qū)域有Dlib、OpenFace、OpenCV等諸多成熟可用的方法。傳統(tǒng)目標(biāo)檢測算法并沒有將特征提取與分類訓(xùn)練結(jié)合起來,當(dāng)提取的特征丟失了部分有用信息時(shí),將無法再次從訓(xùn)練中恢復(fù),導(dǎo)致目標(biāo)檢測成功率降低,阻礙了傳統(tǒng)檢測方法獲得更加詳盡的特征描述。近年來基于深度學(xué)習(xí)的目標(biāo)檢測方法相比較于傳統(tǒng)方法體現(xiàn)出了各方面的優(yōu)勢,其中YOLO目標(biāo)檢測算法利用卷積神經(jīng)網(wǎng)絡(luò)回歸目標(biāo)的位置并得到類別,實(shí)現(xiàn)了端到端的實(shí)時(shí)目標(biāo)檢測,具有較快的速度與泛化性。相對(duì)于傳統(tǒng)的檢測方法,YOLO有更好的魯棒性,模型的體積更小,能夠更好達(dá)到實(shí)時(shí)的需求[4-5]。

3.1 YOLOv5S

人臉檢測是人臉識(shí)別的第一個(gè)步驟,從具有復(fù)雜背景的圖像處檢測出人臉的位置,這一個(gè)步驟對(duì)于后續(xù)的人臉特征提取和識(shí)別的準(zhǔn)確性具有重大的影響。人臉區(qū)域檢測采用了YOLOv5S模型。YOLOv5目標(biāo)檢測算法憑借著其優(yōu)秀的檢測速度和精度,已經(jīng)在醫(yī)學(xué)圖像,行人檢測和車輛識(shí)別等眾多領(lǐng)域應(yīng)用廣泛。與基于Darknet架構(gòu)的yolov4相比,模型大小減少了近90%,在準(zhǔn)確度方面與其不相伯仲,也是目前最為先進(jìn)的目標(biāo)檢測技術(shù),高達(dá)140FPS的目標(biāo)識(shí)別速度是目前推理速度最強(qiáng)的檢測模型之一[6-7]。

官方提供的預(yù)訓(xùn)練模型能夠檢測出80種類別,實(shí)際我們通常需要檢測的是具體的某一項(xiàng)類別,不適合我們的應(yīng)用場景,而且官方的預(yù)訓(xùn)練權(quán)重只能在圖片中識(shí)別出整個(gè)人,要想檢測出人臉區(qū)域只能在其基礎(chǔ)上用人臉數(shù)據(jù)集重新訓(xùn)練[8]。選用了開源人臉數(shù)據(jù)集CelebA人臉數(shù)據(jù)集在YOLOv5s的官方源碼和它的權(quán)重上重新訓(xùn)練,使得YOLOv5s能夠?qū)崿F(xiàn)的檢測并檢測出圖像中的人臉位置,檢測效果如圖2所示。本次的實(shí)驗(yàn)運(yùn)行環(huán)境是:CPU是 Inter i5-1035G1,GPU為 NVIDIA GeForece MX350,操作系統(tǒng)為Win 10,使用了CUDA10.2庫文件。訓(xùn)練結(jié)果曲線圖如圖3所示,橫坐標(biāo)為迭代次數(shù)200,縱坐標(biāo)其中Box是Bounding Box的GIoU損失函數(shù)均值,值越小邊界框就越準(zhǔn);Objectness是目標(biāo)檢測loss均值,越小代表目標(biāo)檢測的正確率越高;Precision衡量的是分類器得出的正類并且確實(shí)屬于正類的比例;Recall是召回率,衡量的是分類器是否能識(shí)別出正類樣例的能力。mAP@0.5和mAP@0.5:0:0.95是用精度Precision和召回率Recall作為兩軸作圖后圍成的面積,@0.5代表IoU為正負(fù)樣本的閾值,@0.5:0.95表示閾值取0.5:0.95后取均值。一般主要觀察Recall和Precision的波動(dòng)情況判斷網(wǎng)絡(luò)的訓(xùn)練效果,從圖3可以判斷波動(dòng)不大,網(wǎng)絡(luò)的訓(xùn)練效果良好。

4 人臉識(shí)別

Dlib是一個(gè)基于C++開發(fā)的深度學(xué)習(xí)開源工具,也提供了對(duì)python語言的開發(fā)接口,對(duì)于人臉特征提取有著良好的支持,提供了很多已經(jīng)訓(xùn)練好的成熟人臉面部特征提取模型供開發(fā)者使用,相對(duì)于其他深度學(xué)習(xí)開源框架,其具有更好的優(yōu)越性和通用性[9],因此人臉識(shí)別模塊采用了Dlib第三方模塊。將YOLOv5s網(wǎng)絡(luò)檢測出的人臉區(qū)域圖像作為Dlib模塊的輸入獲取到128維人臉特征向量,采用對(duì)比歐式距離的方法來計(jì)算人臉相似度。

4.1 人臉特征向量提取

將YOLOv5s模型檢測到的人臉區(qū)域圖像作為第三方Dlib模塊的輸入,首先加載shape_predictor_68_face_landmarks模型來對(duì)輸入的圖像完成人臉面部的68個(gè)關(guān)鍵特征點(diǎn)的提取,68個(gè)特征點(diǎn)主要分布在眉毛、雙眼、鼻子以及嘴的位置。

通過加載dlib_face_recognition_resnet_model_v1模型來將提取到的68個(gè)面部關(guān)鍵特征點(diǎn)轉(zhuǎn)換成128維人臉特征向量。Dlib人臉識(shí)別主要是基于深度殘差網(wǎng)絡(luò),對(duì)于普通的網(wǎng)絡(luò),當(dāng)網(wǎng)絡(luò)深度逐漸增大的時(shí)候,誤差也會(huì)隨之增大,而殘差網(wǎng)絡(luò)相比較于誤差較小,能夠有效地減少梯度爆炸和梯度消失的問題[10-11]。

4.2 基于Annoy算法的人臉檢索

通過Dlib模塊將事先準(zhǔn)備好的人臉圖像Embedding獲取到128維人臉特征向量,保存到Imdb文件中,創(chuàng)建好本地人臉數(shù)據(jù)庫。為了提高識(shí)別的準(zhǔn)確率,對(duì)于單人提供了多張不同角度和光線的人臉圖像,通過歐式距離求平均值來降低誤差。建立本地?cái)?shù)據(jù)庫的過程如圖4所示。

人臉識(shí)別是基于已知的人臉本地?cái)?shù)據(jù)庫識(shí)別或者驗(yàn)證一個(gè)或者多個(gè)人臉,可以使用目前常用的機(jī)器學(xué)習(xí)分類算法如SVM、KNN等。如果針對(duì)數(shù)據(jù)庫每個(gè)人臉都進(jìn)行距離計(jì)算比較得出結(jié)果,效率低下。由于同一個(gè)人的人臉特征向量在高維空間映射點(diǎn)距離都是相近的,基于此使用了Annoy算法對(duì)本地人臉數(shù)據(jù)庫建立索引,創(chuàng)建一個(gè)二叉樹實(shí)現(xiàn)快速檢索距離最近的人臉特征向量。

下面實(shí)現(xiàn)了對(duì)KNN算法和ANN的Annoy算法進(jìn)行了識(shí)別準(zhǔn)確率和數(shù)據(jù)庫人臉檢索速度的對(duì)比。KNN算法的時(shí)間復(fù)雜度是線性增長的,面對(duì)大規(guī)模數(shù)據(jù)檢索以及人臉特征向量高維的數(shù)據(jù)信息無法獲得理想的檢索結(jié)果,而Annoy算法通過縮小遍歷空間犧牲精度來提高檢索速度,具有查找效率高和存儲(chǔ)空間小的優(yōu)點(diǎn)[12]。在有限的本地人臉數(shù)據(jù)集大小的情況下,由表1的數(shù)據(jù)可得Annoy算法比KNN算法能夠得到實(shí)現(xiàn)較高的準(zhǔn)確率以及更快的檢索速度,而如果KNN算法若要達(dá)到更高的準(zhǔn)確率則要求更大的數(shù)據(jù)集去訓(xùn)練模型。整體網(wǎng)絡(luò)結(jié)構(gòu)的人臉識(shí)別效果如圖5所示。

5 人臉識(shí)別測試

測試環(huán)節(jié)提供了五個(gè)人的人臉圖片,每個(gè)人準(zhǔn)備了各20張共100張圖片,不屬于人臉本地?cái)?shù)據(jù)庫的人臉圖像50張,由表2試驗(yàn)結(jié)果可知識(shí)別出正類的正確率有96%,識(shí)別出反類的正確率有90%,表明該人臉識(shí)別的方案可實(shí)現(xiàn)實(shí)際應(yīng)用的需求。

參考文獻(xiàn):

[1] 吳昊,陳虎,李俊波.淺析人工智能技術(shù)的發(fā)展與應(yīng)用[J].信息系統(tǒng)工程,2020(6):69-70.

[2] 孫鵬.人臉識(shí)別技術(shù)研究與應(yīng)用進(jìn)展概述[J].科技傳播,2019,11(24):130-131.

[3] 林星翰,張帥.人臉識(shí)別技術(shù)發(fā)展與應(yīng)用[J].家庭科技,2020(5):13-15.

[4] 王鑫,王忠舉,李銳.基于神經(jīng)網(wǎng)絡(luò)的人臉識(shí)別研究綜述[J].信息與電腦(理論版),2020,32(23):56-58.

[5] 許德剛,王露,李凡.深度學(xué)習(xí)的典型目標(biāo)檢測算法研究綜述[J].計(jì)算機(jī)工程與應(yīng)用,2021,57(8):10-25.

[6] 李阿娟.YOLOv5算法改進(jìn)及其現(xiàn)實(shí)應(yīng)用[D].太原:中北大學(xué),2021.

[7] 肖博健,萬爛軍,陳俊權(quán).采用YOLOV5模型的口罩佩戴識(shí)別研究[J].福建電腦,2021,37(3):35-37.

[8] Shi F F,Zhou H,Ye C Y,et al.Faster detection method of driver smoking based on decomposed YOLOv5[J].Journal of Physics:Conference Series,2021,1993(1):012035.

[9] 徐浩浩.基于Python深度學(xué)習(xí)的人臉識(shí)別方法探究[J].現(xiàn)代信息科技,2019,3(17):88-90.

[10] 劉兆豐.Dlib在人臉識(shí)別技術(shù)中的運(yùn)用[J].電子制作,2020(21):39-41,7.

[11] 王曉紅,韓嬌,李珊珊.基于人臉檢測器的實(shí)時(shí)視頻人臉檢測與跟蹤[J].信息通信,2019,32(2):56-57.

[12] Linhao Li,Qinghua Hu.Optimized high order product quantization for approximate nearest neighbors search[J].計(jì)算機(jī)科學(xué)前沿,2020,14(2):259-272.

【通聯(lián)編輯:代影】

收稿日期:2021-06-20

作者簡介:黃振龍(1999—),男,福建福州人,碩士,主要研究方向?yàn)槎嗝襟w技術(shù);吳林煌(1984—),男,福建漳州人,博士,副研究員,主要研究方向?yàn)锳I智能信號(hào)處理、視頻編碼、FPGA與嵌入式系統(tǒng)設(shè)計(jì)。

猜你喜歡
人臉識(shí)別
人臉識(shí)別 等
揭開人臉識(shí)別的神秘面紗
基于(2D)2PCA-LBP 的人臉識(shí)別方法的研究
電子制作(2017年17期)2017-12-18 06:40:55
人臉識(shí)別在高校安全防范中的應(yīng)用
電子制作(2017年1期)2017-05-17 03:54:46
基于類獨(dú)立核稀疏表示的魯棒人臉識(shí)別
基于K-L變換和平均近鄰法的人臉識(shí)別
曲沃县| 和政县| 鸡东县| 介休市| 灵宝市| 温泉县| 乌鲁木齐市| 万载县| 土默特右旗| 台安县| 长垣县| 嘉黎县| 乌苏市| 弋阳县| 五华县| 乌兰县| 积石山| 奉化市| 庆云县| 阜南县| 临西县| 武威市| 礼泉县| 黑水县| 宜宾县| 驻马店市| 永嘉县| 丰顺县| 特克斯县| 隆回县| 庆元县| 承德县| 沂南县| 若羌县| 汝阳县| 亚东县| 大兴区| 台山市| 北流市| 南安市| 满城县|