溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

發(fā)布時(shí)間:2023-04-21 14:09:15 來(lái)源:億速云 閱讀:98 作者:iii 欄目:編程語(yǔ)言

本篇內(nèi)容介紹了“怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

首先看看現(xiàn)在的研究現(xiàn)狀。如上的發(fā)展趨勢(shì)可以知道,現(xiàn)在的主要研究方向是利用深度學(xué)習(xí)的方法解決視頻人臉識(shí)別。

主要的研究人員:

如下:中科院計(jì)算所的山世光教授、中科院生物識(shí)別研究所的李子青教授、清華大學(xué)的蘇光大教授、香港中文大學(xué)的湯曉鷗教授、Ross B. Girshick等等。

主要開源項(xiàng)目:

SeetaFace人臉識(shí)別引擎。該引擎由中科院計(jì)算所山世光研究員帶領(lǐng)的人臉識(shí)別研究組研發(fā)。代碼基于C++實(shí)現(xiàn),且不依賴于任何第三方的庫(kù)函數(shù),開源協(xié)議為BSD-2,可供學(xué)術(shù)界和工業(yè)界免費(fèi)使用。

主要軟件API/SDK:

  • face++。Face++.com 是一個(gè)提供免費(fèi)人臉檢測(cè)、人臉識(shí)別、人臉屬性分析等服務(wù)的云端服務(wù)平臺(tái)。Face++是北京曠視科技有限公司旗下的全新人臉技術(shù)云平臺(tái),在黑馬大賽中,F(xiàn)ace++獲得年度總冠軍,已獲得聯(lián)想之星投資。

  • skybiometry.。主要包含了face detection、face recognition、face grouping。

主要的人臉識(shí)別圖像庫(kù):

目前公開的比較好的人臉圖像庫(kù)有LFW(Labelled Faces in the Wild)和YFW(Youtube Faces in the Wild)?,F(xiàn)在的實(shí)驗(yàn)數(shù)據(jù)集基本上是來(lái)源于LFW,而且目前的圖像人臉識(shí)別的精度已經(jīng)達(dá)到99%,基本上現(xiàn)有的圖像數(shù)據(jù)庫(kù)已經(jīng)被刷爆。下面是現(xiàn)有人臉圖像數(shù)據(jù)庫(kù)的總結(jié):

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

現(xiàn)在在中國(guó)做人臉識(shí)別的公司已經(jīng)越來(lái)越多,應(yīng)用也非常的廣泛。其中市場(chǎng)占有率最高的是漢王科技。主要公司的研究方向和現(xiàn)狀如下:

  • 漢王科技:漢王科技主要是做人臉識(shí)別的身份驗(yàn)證,主要用在門禁系統(tǒng)、考勤系統(tǒng)等等。

  • 科大訊飛:科大訊飛在香港中文大學(xué)湯曉鷗教授團(tuán)隊(duì)支持下,開發(fā)出了一個(gè)基于高斯過(guò)程的人臉識(shí)別技術(shù)–Gussian face, 該技術(shù)在LFW上的識(shí)別率為98.52%,目前該公司的DEEPID2在LFW上的識(shí)別率已經(jīng)達(dá)到了99.4%。

  • 川大智勝:目前該公司的研究亮點(diǎn)是三維人臉識(shí)別,并拓展到3維全臉照相機(jī)產(chǎn)業(yè)化等等。

  • 商湯科技:主要是一家致力于引領(lǐng)人工智能核心“深度學(xué)習(xí)”技術(shù)突破,構(gòu)建人工智能、大數(shù)據(jù)分析行業(yè)解決方案的公司,目前在人臉識(shí)別、文字識(shí)別、人體識(shí)別、車輛識(shí)別、物體識(shí)別、圖像處理等方向有很強(qiáng)的競(jìng)爭(zhēng)力。在人臉識(shí)別中有106個(gè)人臉關(guān)鍵點(diǎn)的識(shí)別。

人臉識(shí)別的過(guò)程

人臉識(shí)別主要分為四大塊:人臉定位(face detection)、 人臉校準(zhǔn)(face alignment)、 人臉確認(rèn)(face verification)、人臉鑒別(face identification)。

人臉定位(face detection):

對(duì)圖像中的人臉進(jìn)行檢測(cè),并將結(jié)果用矩形框框出來(lái)。在openCV中有直接能拿出來(lái)用的Harr分類器。

人臉校準(zhǔn)(face alignment):

對(duì)檢測(cè)到的人臉進(jìn)行姿態(tài)的校正,使其人臉盡可能的”正”,通過(guò)校正可以提高人臉識(shí)別的精度。校正的方法有2D校正、3D校正的方法,3D校正的方法可以使側(cè)臉得到較好的識(shí)別。

在進(jìn)行人臉校正的時(shí)候,會(huì)有檢測(cè)特征點(diǎn)的位置這一步,這些特征點(diǎn)位置主要是諸如鼻子左側(cè),鼻孔下側(cè),瞳孔位置,上嘴唇下側(cè)等等位置,知道了這些特征點(diǎn)的位置后,做一下位置驅(qū)動(dòng)的變形,臉即可被?!闭绷恕H缦聢D所示:

這里介紹一種MSRA在14年的技術(shù):Joint Cascade Face Detection and Alignment(ECCV14)。這篇文章直接在30ms的時(shí)間里把detection和alignment都給做了。

人臉確認(rèn)(face verification):

Face verification,人臉校驗(yàn)是基于pair matching的方式,所以它得到的答案是“是”或者“不是”。在具體操作的時(shí)候,給定一張測(cè)試圖片,然后挨個(gè)進(jìn)行pair matching,matching上了則說(shuō)明測(cè)試圖像與該張匹配上的人臉為同一個(gè)人的人臉。

一般在小型辦公室人臉?biāo)⒛槾蚩ㄏ到y(tǒng)中采用的(應(yīng)該)是這種方法,具體操作方法大致是這樣一個(gè)流程:離線逐個(gè)錄入員工的人臉照片(一個(gè)員工錄入的人臉一般不止一張),員工在刷臉打卡的時(shí)候相機(jī)捕獲到圖像后,通過(guò)前面所講的先進(jìn)行人臉檢測(cè),然后進(jìn)行人臉校正,再進(jìn)行人臉校驗(yàn),一旦match結(jié)果為“是”,說(shuō)明該名刷臉的人員是屬于本辦公室的,人臉校驗(yàn)到這一步就完成了。

在離線錄入員工人臉的時(shí)候,我們可以將人臉與人名對(duì)應(yīng),這樣一旦在人臉校驗(yàn)成功后,就可以知道這個(gè)人是誰(shuí)了。

上面所說(shuō)的這樣一種系統(tǒng)優(yōu)點(diǎn)是開發(fā)費(fèi)用低廉,適合小型辦公場(chǎng)所,缺點(diǎn)是在捕獲時(shí)不能有遮擋,而且還要求人臉姿態(tài)比較正(這種系統(tǒng)我們所有,不過(guò)沒(méi)體驗(yàn)過(guò))。下圖給出了示意說(shuō)明:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

人臉識(shí)別(face identification/recognition):

Face identification或Face recognition,人臉識(shí)別正如下圖所示的,它要回答的是“我是誰(shuí)?”,相比于人臉校驗(yàn)采用的pair matching,它在識(shí)別階段更多的是采用分類的手段。它實(shí)際上是對(duì)進(jìn)行了前面兩步即人臉檢測(cè)、人臉校正后做的圖像(人臉)分類。

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

根據(jù)上面四個(gè)概念的介紹,我們可以了解到人臉識(shí)別主要包括三個(gè)大的、獨(dú)立性強(qiáng)的模塊:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

我們將上面的步驟進(jìn)行詳細(xì)的拆分,得到下面的過(guò)程圖:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

人臉識(shí)別分類

現(xiàn)在隨著人臉識(shí)別技術(shù)的發(fā)展,人臉識(shí)別技術(shù)主要分為了三類:一是基于圖像的識(shí)別方法、二是基于視頻的識(shí)別方法、三是三維人臉識(shí)別方法。

基于圖像的識(shí)別方法:

這個(gè)過(guò)程是一個(gè)靜態(tài)的圖像識(shí)別過(guò)程,主要利用圖像處理。主要的算法有PCA、EP、kernel method、 Bayesian Framwork、SVM 、HMM、Adaboot等等算法。但在2014年,人臉識(shí)別利用Deep learning 技術(shù)取得了重大突破,為代表的有deepface的97.25%、face++的97.27%,但是deep face的訓(xùn)練集是400w集的,而同時(shí)香港中文大學(xué)湯曉鷗的Gussian face的訓(xùn)練集為2w。

基于視頻的實(shí)時(shí)識(shí)別方法:

這個(gè)過(guò)程可以看出人臉識(shí)別的追蹤過(guò)程,不僅僅要求在視頻中找到人臉的位置和大小,還需要確定幀間不同人臉的對(duì)應(yīng)關(guān)系。

DeepFace

DeepFace是FaceBook提出來(lái)的,后續(xù)有DeepID和FaceNet出現(xiàn)。而且在DeepID和FaceNet中都能體現(xiàn)DeepFace的身影,所以DeepFace可以謂之CNN在人臉識(shí)別的奠基之作,目前深度學(xué)習(xí)在人臉識(shí)別中也取得了非常好的效果。所以這里我們先從DeepFace開始學(xué)習(xí)。

在DeepFace的學(xué)習(xí)過(guò)程中,不僅將DeepFace所用的方法進(jìn)行介紹,也會(huì)介紹當(dāng)前該步驟的其它主要算法,對(duì)現(xiàn)有的圖像人臉識(shí)別技術(shù)做一個(gè)簡(jiǎn)單、全面的敘述。

DeepFace的基本框架

1. 人臉識(shí)別的基本流程

face detection -> face alignment -> face verification -> face identification

2.人臉檢測(cè)(face detection)

2.1 現(xiàn)有技術(shù):

haar分類器:

人臉檢測(cè)(detection)在opencv中早就有直接能拿來(lái)用的haar分類器,基于Viola-Jones算法。

Adaboost算法(級(jí)聯(lián)分類器):

1.參考論文:Robust Real-Time face detection 。

2. 參考中文博客:http://blog.csdn.net/cyh_24/article/details/39755661

3. 博客:http://blog.sina.com.cn/s/blog_7769660f01019ep0.html

2.2 文章中所用方法

本文中采用了基于檢測(cè)點(diǎn)的人臉檢測(cè)方法(fiducial Point Detector)。

  • 先選擇6個(gè)基準(zhǔn)點(diǎn),2只眼睛中心、 1個(gè)鼻子點(diǎn)、3個(gè)嘴上的點(diǎn)。

  • 通過(guò)LBP特征用SVR來(lái)學(xué)習(xí)得到基準(zhǔn)點(diǎn)。

3. 人臉校準(zhǔn)(face alignment)

2D alignment:

  • 對(duì)Detection后的圖片進(jìn)行二維裁剪, scale, rotate and translate the image into six anchor locations。將人臉部分裁剪出來(lái)。

3D alignment:

  • 找到一個(gè)3D 模型,用這個(gè)3D模型把二維人臉crop成3D人臉。67個(gè)基點(diǎn),然后Delaunay三角化,在輪廓處添加三角形來(lái)避免不連續(xù)。

  • 將三角化后的人臉轉(zhuǎn)換成3D形狀

  • 三角化后的人臉變?yōu)橛猩疃鹊?D三角網(wǎng)

  • 將三角網(wǎng)做偏轉(zhuǎn),使人臉的正面朝前

  • 最后放正的人臉

4 人臉表示(face verification)

4.1 現(xiàn)有技術(shù)

LBP && joint Beyesian:

通過(guò)高維LBP跟Joint Bayesian這兩個(gè)方法結(jié)合。

  • 論文:Bayesian Face Revisited: A Joint Formulation

DeepID系列:

將七個(gè)聯(lián)合貝葉斯模型使用SVM進(jìn)行融合,精度達(dá)到99.15%

  • 論文:Deep Learning Face Representation by Joint Identification-Verification

4.2 文章中的方法

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

論文中通過(guò)一個(gè)多類人臉識(shí)別任務(wù)來(lái)訓(xùn)練深度神經(jīng)網(wǎng)絡(luò)(DNN)。網(wǎng)絡(luò)結(jié)構(gòu)如上圖所示。

結(jié)構(gòu)參數(shù):

經(jīng)過(guò)3D對(duì)齊以后,形成的圖像都是152×152的圖像,輸入到上述網(wǎng)絡(luò)結(jié)構(gòu)中,該結(jié)構(gòu)的參數(shù)如下:

  • Conv:32個(gè)11×11×3的卷積核

  • max-pooling: 3×3, stride=2

  • Conv: 16個(gè)9×9的卷積核

  • Local-Conv: 16個(gè)9×9的卷積核,Local的意思是卷積核的參數(shù)不共享

  • Local-Conv: 16個(gè)7×7的卷積核,參數(shù)不共享

  • Local-Conv: 16個(gè)5×5的卷積核,參數(shù)不共享

  • Fully-connected: 4096維

  • Softmax: 4030維

提取低水平特征:

過(guò)程如下所示:

  • 預(yù)處理階段:輸入3通道的人臉,并進(jìn)行3D校正,再歸一化到152*152像素大小——152*152*3.

  • 通過(guò)卷積層C1:C1包含32個(gè)11*11*3的濾波器(即卷積核),得到32張?zhí)卣鲌D——32*142*142*3。

  • 通過(guò)max-polling層M2:M2的滑窗大小為3*3,滑動(dòng)步長(zhǎng)為2,3個(gè)通道上分別獨(dú)立polling。

  • 通過(guò)另一個(gè)卷積層C3:C3包含16個(gè)9*9*16的3維卷積核。

上述3層網(wǎng)絡(luò)是為了提取到低水平的特征,如簡(jiǎn)單的邊緣特征和紋理特征。Max-polling層使得卷積網(wǎng)絡(luò)對(duì)局部的變換更加魯棒。如果輸入是校正后的人臉,就能使網(wǎng)絡(luò)對(duì)小的標(biāo)記誤差更加魯棒。

然而這樣的polling層會(huì)使網(wǎng)絡(luò)在面部的細(xì)節(jié)結(jié)構(gòu)和微小紋理的精準(zhǔn)位置上丟失一些信息。因此,文中只在第一個(gè)卷積層后面接了Max-polling層。這些前面的層稱之為前端自適應(yīng)的預(yù)處理層級(jí)。然而對(duì)于許多計(jì)算來(lái)講,這是很必要的,這些層的參數(shù)其實(shí)很少。它們僅僅是把輸入圖像擴(kuò)充成一個(gè)簡(jiǎn)單的局部特征集。

后續(xù)層:

L4,L5,L6都是局部連接層,就像卷積層使用濾波器一樣,在特征圖像的每一個(gè)位置都訓(xùn)練學(xué)習(xí)一組不同的濾波器。由于校正后不同區(qū)域的有不同的統(tǒng)計(jì)特性,卷積網(wǎng)絡(luò)在空間上的穩(wěn)定性的假設(shè)不能成立。

比如說(shuō),相比于鼻子和嘴巴之間的區(qū)域,眼睛和眉毛之間的區(qū)域展現(xiàn)出非常不同的表觀并且有很高的區(qū)分度。換句話說(shuō),通過(guò)利用輸入的校正后的圖像,定制了DNN的結(jié)構(gòu)。

使用局部連接層并沒(méi)有影響特征提取時(shí)的運(yùn)算負(fù)擔(dān),但是影響了訓(xùn)練的參數(shù)數(shù)量。僅僅是由于有如此大的標(biāo)記人臉庫(kù),我們可以承受三個(gè)大型的局部連接層。局部連接層的輸出單元受到一個(gè)大型的輸入圖塊的影響,可以據(jù)此調(diào)整局部連接層的使用(參數(shù))(不共享權(quán)重)

比如說(shuō),L6層的輸出受到一個(gè)74*74*3的輸入圖塊的影響,在校正后的人臉中,這種大的圖塊之間很難有任何統(tǒng)計(jì)上的參數(shù)共享。

頂層:

最后,網(wǎng)絡(luò)頂端的兩層(F7,F(xiàn)8)是全連接的:每一個(gè)輸出單元都連接到所有的輸入。這兩層可以捕捉到人臉圖像中距離較遠(yuǎn)的區(qū)域的特征之間的關(guān)聯(lián)性。比如,眼睛的位置和形狀,與嘴巴的位置和形狀之間的關(guān)聯(lián)性(這部分也含有信息)可以由這兩層得到。第一個(gè)全連接層F7的輸出就是我們?cè)嫉娜四樚卣鞅磉_(dá)向量。

在特征表達(dá)方面,這個(gè)特征向量與傳統(tǒng)的基于LBP的特征描述有很大區(qū)別。傳統(tǒng)方法通常使用局部的特征描述(計(jì)算直方圖)并用作分類器的輸入。

最后一個(gè)全連接層F8的輸出進(jìn)入了一個(gè)K-way的softmax(K是類別個(gè)數(shù)),即可產(chǎn)生類別標(biāo)號(hào)的概率分布。用Ok表示一個(gè)輸入圖像經(jīng)過(guò)網(wǎng)絡(luò)后的第k個(gè)輸出,即可用下式表達(dá)輸出類標(biāo)號(hào)k的概率:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

訓(xùn)練的目標(biāo)是最大化正確輸出類別(face 的id)的概率。通過(guò)最小化每個(gè)訓(xùn)練樣本的叉熵?fù)p失實(shí)現(xiàn)這一點(diǎn)。用k表示給定輸入的正確類別的標(biāo)號(hào),則叉熵?fù)p失是:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

通過(guò)計(jì)算叉熵?fù)p失L對(duì)參數(shù)的梯度以及使用隨機(jī)梯度遞減的方法來(lái)最小化叉熵?fù)p失。

梯度是通過(guò)誤差的標(biāo)準(zhǔn)反向傳播來(lái)計(jì)算的。非常有趣的是,本網(wǎng)絡(luò)產(chǎn)生的特征非常稀疏。超過(guò)75%的頂層特征元素是0。這主要是由于使用了ReLU激活函數(shù)導(dǎo)致的。這種軟閾值非線性函數(shù)在所有的卷積層,局部連接層和全連接層(除了最后一層F8)都使用了,從而導(dǎo)致整體級(jí)聯(lián)之后產(chǎn)生高度非線性和稀疏的特征。

稀疏性也與使用使用dropout正則化有關(guān),即在訓(xùn)練中將隨機(jī)的特征元素設(shè)置為0。我們只在F7全連接層使用了dropout.由于訓(xùn)練集合很大,在訓(xùn)練過(guò)程中我們沒(méi)有發(fā)現(xiàn)重大的過(guò)擬合。

給出圖像I,則其特征表達(dá)G(I)通過(guò)前饋網(wǎng)絡(luò)計(jì)算出來(lái),每一個(gè)L層的前饋網(wǎng)絡(luò),可以看作是一系列函數(shù):

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

歸一化:

在最后一級(jí),我們把特征的元素歸一化成0到1,以此降低特征對(duì)光照變化的敏感度。特征向量中的每一個(gè)元素都被訓(xùn)練集中對(duì)應(yīng)的最大值除。然后進(jìn)行L2歸一化。由于我們采用了ReLU激活函數(shù),我們的系統(tǒng)對(duì)圖像的尺度不變性減弱。

對(duì)于輸出的4096-d向量:

  • 先每一維進(jìn)行歸一化,即對(duì)于結(jié)果向量中的每一維,都要除以該維度在整個(gè)訓(xùn)練集上的最大值。

  • 每個(gè)向量進(jìn)行L2歸一化。

2. 驗(yàn)證

2.1 卡方距離

該系統(tǒng)中,歸一化后的DeepFace特征向量與傳統(tǒng)的基于直方圖的特征(如LBP)有一下相同之處:

  • 所有值均為負(fù)

  • 非常稀疏

  • 特征元素的值都在區(qū)間 [0, 1]之間

卡方距離計(jì)算公式如下:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

2.2 Siamese network

文章中也提到了端到端的度量學(xué)習(xí)方法,一旦學(xué)習(xí)(訓(xùn)練)完成,人臉識(shí)別網(wǎng)絡(luò)(截止到F7)在輸入的兩張圖片上重復(fù)使用,將得到的2個(gè)特征向量直接用來(lái)預(yù)測(cè)判斷這兩個(gè)輸入圖片是否屬于同一個(gè)人。這分為以下步驟:

a. 計(jì)算兩個(gè)特征之間的絕對(duì)差別;

b,一個(gè)全連接層,映射到一個(gè)單個(gè)的邏輯單元(輸出相同/不同)。

3. 實(shí)驗(yàn)評(píng)估

3.1 數(shù)據(jù)集

  • Social Face Classification Dataset(SFC): 4.4M張人臉/4030人

  • LFW: 13323張人臉/5749人

  • restricted: 只有是/不是的標(biāo)記

  • unrestricted:其他的訓(xùn)練對(duì)也可以拿到

  • unsupervised:不在LFW上訓(xùn)練

  • Youtube Face(YTF): 3425videos/1595人

result on LFW:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

result on YTF:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

DeepFace與之后的方法的最大的不同點(diǎn)在于,DeepFace在訓(xùn)練神經(jīng)網(wǎng)絡(luò)前,使用了對(duì)齊方法。論文認(rèn)為神經(jīng)網(wǎng)絡(luò)能夠work的原因在于一旦人臉經(jīng)過(guò)對(duì)齊后,人臉區(qū)域的特征就固定在某些像素上了,此時(shí),可以用卷積神經(jīng)網(wǎng)絡(luò)來(lái)學(xué)習(xí)特征。

本文的模型使用了C++工具箱dlib基于深度學(xué)習(xí)的最新人臉識(shí)別方法,基于戶外臉部數(shù)據(jù)測(cè)試庫(kù)Labeled Faces in the Wild 的基準(zhǔn)水平來(lái)說(shuō),達(dá)到了99.38%的準(zhǔn)確率。

模型提供了一個(gè)簡(jiǎn)單的 face_recognition 命令行工具讓用戶通過(guò)命令就能直接使用圖片文件夾進(jìn)行人臉識(shí)別操作。

在圖片中捕捉人臉特征

在一張圖片中捕捉到所有的人臉

找到并處理圖片中人臉的特征

找到每個(gè)人眼睛、鼻子、嘴巴和下巴的位置和輪廓。

import face_recognition

image = face_recognition.load_image_file("your_file.jpg")

face_locations = face_recognition.face_locations(image)

捕捉臉部特征有很重要的用途,當(dāng)然也可以用來(lái)進(jìn)行圖片的數(shù)字美顏digital make-up(例如美圖秀秀)

識(shí)別圖片中的人臉

識(shí)別誰(shuí)出現(xiàn)在照片里

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

安裝步驟

本方法支持Python3/python2,我們只在macOS和Linux中測(cè)試過(guò),還不知是否適用于Windows。

使用pypi的pip3 安裝此模塊(或是Python 2的pip2)

重要提示:在編譯dlib時(shí)可能會(huì)出問(wèn)題,你可以通過(guò)安裝來(lái)自源(而不是pip)的dlib來(lái)修復(fù)錯(cuò)誤

通過(guò)手動(dòng)安裝dlib,運(yùn)行pip3 install face_recognition來(lái)完成安裝。

使用方法命令行界面

當(dāng)你安裝face_recognition,你能得到一個(gè)簡(jiǎn)潔的叫做face_recognition的命令行程序,它能幫你識(shí)別一張照片或是一個(gè)照片文件夾中的所有人臉。

首先,你需要提供一個(gè)包含一張照片的文件夾,并且你已經(jīng)知道照片中的人是誰(shuí),每個(gè)人都要有一張照片文件,且文件名需要以該人的姓名命名;

然后你需要準(zhǔn)備另外一個(gè)文件夾,里面裝有你想要識(shí)別人臉照片;

接下來(lái)你只用運(yùn)行face_recognition命令,程序能夠通過(guò)已知人臉的文件夾識(shí)別出未知人臉照片中的人是誰(shuí);

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

針對(duì)每個(gè)人臉都要一行輸出,數(shù)據(jù)是文件名加上識(shí)別到的人名,以逗號(hào)分隔。

如果你只是想要知道每個(gè)照片中的人名而不要文件名,可以進(jìn)行如下操作:

怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)

Python模塊

你可以通過(guò)引入face_recognition就能完成人臉識(shí)別操作

在圖片中自動(dòng)識(shí)別所有人臉
識(shí)別圖片中的人臉并告知姓名

Python代碼案例

所有例子在此 here.

·找到照片中的人臉Find faces in a photograph

https://github.com/ageitgey/face_recognition/blob/master/examples/find_faces_in_picture.py
· 識(shí)別照片中的面部特征Identify specific facial features in a photograph
https://github.com/ageitgey/face_recognition/blob/master/examples/find_facial_features_in_picture.py
· 使用數(shù)字美顏Apply (horribly ugly) digital make-up
https://github.com/ageitgey/face_recognition/blob/master/examples/digital_makeup.py
·基于已知人名找到并識(shí)別出照片中的未知人臉Find and recognize unknown faces in a photograph based on photographs of known people
https://github.com/ageitgey/face_recognition/blob/master/examples/recognize_faces_in_pictures.pypython人臉

“怎么使用Python實(shí)現(xiàn)人臉離線識(shí)別系統(tǒng)”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI