真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別

這篇文章將為大家詳細(xì)講解有關(guān)基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別,文章內(nèi)容質(zhì)量較高,因此小編分享給大家做個(gè)參考,希望大家閱讀完這篇文章后對相關(guān)知識(shí)有一定的了解。

創(chuàng)新互聯(lián)從2013年創(chuàng)立,先為鎮(zhèn)巴等服務(wù)建站,鎮(zhèn)巴等地企業(yè),進(jìn)行企業(yè)商務(wù)咨詢服務(wù)。為鎮(zhèn)巴企業(yè)網(wǎng)站制作PC+手機(jī)+微官網(wǎng)三網(wǎng)同步一站式服務(wù)解決您的所有建站問題。

準(zhǔn)備工作

我們的人臉識(shí)別基于face_recognition庫。face_recognition基于dlib實(shí)現(xiàn),用深度學(xué)習(xí)訓(xùn)練數(shù)據(jù),模型準(zhǔn)確率高達(dá)99.38%。在開始我們的工作前,我們先安裝face_recognition

pip install face_recognition

人臉數(shù)字化

人臉識(shí)別的***步是檢測照片中的人臉區(qū)域,然后將人臉的圖像數(shù)據(jù)轉(zhuǎn)換成一個(gè)長度為128的向量,這128個(gè)數(shù)據(jù)代表了人臉的128個(gè)特征指標(biāo),如下所示

基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別

對于每一張已知人臉,生成這樣的一個(gè)128位的向量。對于一張未知人臉,將它的128位向量和所有已知人臉的128位向量一一比對,找到相似度***的那一個(gè),即找出了未知人臉對應(yīng)的人。

圖片數(shù)據(jù)

我們準(zhǔn)備了兩張照片,分別是凱特王妃和威廉王子的單人照,分別存成catherine.jpg和william.jpg,這兩張照片中的人臉作為我們的已知人臉

基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別

我們的目標(biāo)是在下面的合影中識(shí)別出兩人的臉并在圖中標(biāo)出各自的名字。下圖存成unknown.jpg

基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別

代碼實(shí)現(xiàn)

接下來開始我們的編程工作

import cv2  import face_recognitionnames = [          "catherine",      "william",  ]

首先我們定義了標(biāo)簽集,存在names數(shù)組中。

標(biāo)簽名字也是我們圖片的文件名。

images = []  for name in names:      filename = name + ".jpg"      image = face_recognition.load_image_file(filename)       images.append(image)  unknown_image = face_recognition.load_image_file("unknown.jpg")

調(diào)用face_recognition.load_image_file從圖片中讀取數(shù)據(jù)。

這里讀取了包含已知人臉和未知人臉的圖片的數(shù)據(jù),未知人臉的圖片就是上面的合影圖片unknown.jpg。

face_encodings = []  for image in images:      encoding = face_recognition.face_encodings(image)[0]       face_encodings.append(encoding)  unknown_face_encodings = face_recognition.face_encodings(unknown_image)

face_recognition.face_encodings會(huì)返回圖片中的所有的人臉的128位向量。單人照片只有一張人臉,所以face_recognition.face_encodings(image)[0]只取***個(gè)元素。合影圖片中包含了2張人臉,所以unknown_face_encodings包含2個(gè)128位向量。

face_locations = face_recognition.face_locations(unknown_image)  for i in range(len(unknown_face_encodings)):          unknown_encoding = unknown_face_encodings[i]           face_location = face_locations[i]           top, right, bottom, left = face_location           cv2.rectangle(unknown_image, (left, top), (right, bottom), (0, 255, 0), 2)           results = face_recognition.compare_faces(face_encodings, unknown_encoding)           for j in range(len(results)):                   if results[j]:                           name = names[j]                           cv2.putText(unknown_image, name, (left-10, top-10), cv2.FONT_HERSHEY_SIMPLEX, 0.5, (0, 255, 0), 2)    unknown_image_rgb = cv2.cvtColor(unknown_image, cv2.COLOR_BGR2RGB)  cv2.imshow("Output", unknown_image_rgb)  cv2.waitKey(0)

face_locations存了每張臉的位置信息。

在循環(huán)中我們調(diào)用cv2.rectangle框出了檢測到的每張臉。

face_recognition.compare_faces將已知人臉的128位向量和每張未知人臉的128位向量做比較,結(jié)果存入results數(shù)組中。results數(shù)組中的每一個(gè)元素都是True或者False,長度和人臉個(gè)數(shù)相等。results中的每個(gè)元素都和已知人臉一一對應(yīng),在某一個(gè)位置處的元素為True,表示未知人臉被識(shí)別成這張已知人臉。

對識(shí)別出來的每張人臉,我們調(diào)用cv2.putText在圖上標(biāo)注標(biāo)簽。

以上是代碼的全部。

測試

令人興奮的時(shí)刻又來到了! 我們來檢驗(yàn)一下我們的成果。

運(yùn)行上面的程序,可以看到下面的結(jié)果

基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別

威廉王子和凱特王妃的人臉都被準(zhǔn)確地識(shí)別出來。綠色的框框出了人臉區(qū)域,框的上方標(biāo)注了識(shí)別到的人的名字。

關(guān)于基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺得文章不錯(cuò),可以把它分享出去讓更多的人看到。


分享文章:基于face_recognition如何實(shí)現(xiàn)人臉識(shí)別
本文地址:http://weahome.cn/article/ghseei.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部