日韩成人免费在线_国产成人一二_精品国产免费人成电影在线观..._日本一区二区三区久久久久久久久不

當前位置:首頁 > 科技  > 知識百科

用Python進行人臉識別「包括源代碼」

來源: 責編: 時間:2023-08-07 16:30:20 248觀看
導讀 Python可以從圖像或視頻中檢測和識別你的臉。人臉檢測與識別是計算機視覺領域的研究熱點之一。人臉識別的應用包括人臉解鎖、安全防護等,醫生和醫務人員利用人臉識別來獲取病

Tig28資訊網——每日最新資訊28at.com

Python可以從圖像或視頻中檢測和識別你的臉。Tig28資訊網——每日最新資訊28at.com

人臉檢測與識別是計算機視覺領域的研究熱點之一。Tig28資訊網——每日最新資訊28at.com

人臉識別的應用包括人臉解鎖、安全防護等,醫生和醫務人員利用人臉識別來獲取病歷和病史,更好地診斷疾病。Tig28資訊網——每日最新資訊28at.com

關于Python人臉識別Tig28資訊網——每日最新資訊28at.com

在這個python項目中,我們將構建一個機器學習模型,該模型從圖像中識別人。我們在項目中使用了人臉識別API和OpenCV。Tig28資訊網——每日最新資訊28at.com

隨時了解最新的技術趨勢Tig28資訊網——每日最新資訊28at.com

加入DataFlair的電報!Tig28資訊網——每日最新資訊28at.com

工具與圖書館 Python-3.x CV2-4.5.2 矮胖-1.20.3 人臉識別-1.3.0Tig28資訊網——每日最新資訊28at.com

若要安裝上述軟件包,請使用以下命令。Tig28資訊網——每日最新資訊28at.com

pip install numpy opencv-pythonTig28資訊網——每日最新資訊28at.com

要安裝FaceRecognition,首先安裝dlib包。Tig28資訊網——每日最新資訊28at.com

pip install dlibTig28資訊網——每日最新資訊28at.com

現在,使用以下命令安裝面部識別模塊Tig28資訊網——每日最新資訊28at.com

pip install face_recognitionTig28資訊網——每日最新資訊28at.com
下載人臉識別Python代碼Tig28資訊網——每日最新資訊28at.com

請下載python面部識別項目的源代碼: 人臉識別工程代碼Tig28資訊網——每日最新資訊28at.com

項目數據集Tig28資訊網——每日最新資訊28at.com

我們可以使用我們自己的數據集來完成這個人臉識別項目。對于這個項目,讓我們以受歡迎的美國網絡系列“老友記”為數據集。該數據集包含在面部識別項目代碼中,您在上一節中下載了該代碼。Tig28資訊網——每日最新資訊28at.com

建立人臉識別模型的步驟Tig28資訊網——每日最新資訊28at.com

在繼續之前,讓我們知道什么是人臉識別和檢測。Tig28資訊網——每日最新資訊28at.com

人臉識別是從照片和視頻幀中識別或驗證一個人的臉的過程。Tig28資訊網——每日最新資訊28at.com

人臉檢測是指在圖像中定位和提取人臉(位置和大小)以供人臉檢測算法使用的過程。Tig28資訊網——每日最新資訊28at.com

人臉識別方法用于定位圖像中唯一指定的特征。在大多數情況下,面部圖片已經被移除、裁剪、縮放和轉換為灰度。人臉識別包括三個步驟:人臉檢測、特征提取、人臉識別。Tig28資訊網——每日最新資訊28at.com

OpenCV是一個用C++編寫的開源庫.它包含了用于計算機視覺任務的各種算法和深度神經網絡的實現。Tig28資訊網——每日最新資訊28at.com

1.準備數據集Tig28資訊網——每日最新資訊28at.com

創建2個目錄,訓練和測試。從互聯網上為每個演員選擇一個圖片,并下載到我們的“火車”目錄中。確保您所選擇的圖像能夠很好地顯示人臉的特征,以便對分類器進行分類。Tig28資訊網——每日最新資訊28at.com

為了測試模型,讓我們拍攝一張包含所有強制轉換的圖片,并將其放到我們的“test”目錄中。Tig28資訊網——每日最新資訊28at.com

為了您的舒適,我們增加了培訓和測試數據與項目代碼。Tig28資訊網——每日最新資訊28at.com

2.模型的訓練Tig28資訊網——每日最新資訊28at.com

首先導入必要的模塊。Tig28資訊網——每日最新資訊28at.com

import face_recognition as frTig28資訊網——每日最新資訊28at.com
import cv2Tig28資訊網——每日最新資訊28at.com
import numpy as npTig28資訊網——每日最新資訊28at.com
import osTig28資訊網——每日最新資訊28at.com

人臉識別庫包含幫助人臉識別過程的各種實用程序的實現。Tig28資訊網——每日最新資訊28at.com

現在,創建2個列表來存儲圖像(人員)的名稱及其各自的臉編碼。Tig28資訊網——每日最新資訊28at.com

path = "./train/"Tig28資訊網——每日最新資訊28at.com
known_names = []Tig28資訊網——每日最新資訊28at.com
known_name_encodings = []Tig28資訊網——每日最新資訊28at.com
images = os.listdir(path)Tig28資訊網——每日最新資訊28at.com

人臉編碼是一種值的矢量,它代表著臉部特征之間的重要度量,如眼睛之間的距離、額頭的寬度等。Tig28資訊網——每日最新資訊28at.com

我們循環遍歷火車目錄中的每個圖像,提取圖像中的人的姓名,計算其臉編碼向量,并將信息存儲在相應的列表中。Tig28資訊網——每日最新資訊28at.com

for _ in images:Tig28資訊網——每日最新資訊28at.com
image = fr.load_image_file(path + _)Tig28資訊網——每日最新資訊28at.com
image_path = path + _Tig28資訊網——每日最新資訊28at.com
encoding = fr.face_encodings(image)[0]Tig28資訊網——每日最新資訊28at.com
known_name_encodings.append(encoding)Tig28資訊網——每日最新資訊28at.com
known_names.append(os.path.splitext(os.path.basename(image_path))[0].capitalize())Tig28資訊網——每日最新資訊28at.com
3.在測試數據集中測試模型Tig28資訊網——每日最新資訊28at.com

如前所述,我們的測試數據集只包含一個包含所有人員的圖像。Tig28資訊網——每日最新資訊28at.com

使用CV2 imread()方法讀取測試映像。Tig28資訊網——每日最新資訊28at.com

test_image = "./test/test.jpg"Tig28資訊網——每日最新資訊28at.com
image = cv2.imread(test_image)Tig28資訊網——每日最新資訊28at.com

人臉識別庫提供了一種名為Face_Locations()的有用方法,它定位圖像中檢測到的每個人臉的坐標(左、下、右、上)。使用這些位置值,我們可以很容易地找到臉編碼。Tig28資訊網——每日最新資訊28at.com

face_locations = fr.face_locations(image)Tig28資訊網——每日最新資訊28at.com
face_encodings = fr.face_encodings(image, face_locations)Tig28資訊網——每日最新資訊28at.com

我們循環遍歷每個面部位置及其在圖像中的編碼。然后,我們將這種編碼與“列車”數據集中的人臉編碼進行比較。Tig28資訊網——每日最新資訊28at.com

然后計算人臉距離,即計算測試圖像編碼和訓練圖像編碼之間的相似性。現在,我們從它選取最小值距離,表示測試圖像的這張臉是訓練數據集中的人之一。Tig28資訊網——每日最新資訊28at.com

現在,使用CV2模塊中的方法繪制一個帶有面部位置坐標的矩形。Tig28資訊網——每日最新資訊28at.com

for (top, right, bottom, left), face_encoding in zip(face_locations, face_encodings):Tig28資訊網——每日最新資訊28at.com
matches = fr.compare_faces(known_name_encodings, face_encoding)Tig28資訊網——每日最新資訊28at.com
name = ""Tig28資訊網——每日最新資訊28at.com
face_distances = fr.face_distance(known_name_encodings, face_encoding)Tig28資訊網——每日最新資訊28at.com
best_match = np.argmin(face_distances)Tig28資訊網——每日最新資訊28at.com
if matches[best_match]:Tig28資訊網——每日最新資訊28at.com
name = known_names[best_match]Tig28資訊網——每日最新資訊28at.com
cv2.rectangle(image, (left, top), (right, bottom), (0, 0, 255), 2)Tig28資訊網——每日最新資訊28at.com
cv2.rectangle(image, (left, bottom - 15), (right, bottom), (0, 0, 255), cv2.FILLED)Tig28資訊網——每日最新資訊28at.com
font = cv2.FONT_HERSHEY_DUPLEXTig28資訊網——每日最新資訊28at.com
cv2.putText(image, name, (left + 6, bottom - 6), font, 1.0, (255, 255, 255), 1)Tig28資訊網——每日最新資訊28at.com

使用CV2模塊的imShow()方法顯示圖像。Tig28資訊網——每日最新資訊28at.com

cv2.imshow("Result", image)Tig28資訊網——每日最新資訊28at.com

使用imwrite()方法將圖像保存到當前工作目錄中。Tig28資訊網——每日最新資訊28at.com

cv2.imwrite("./output.jpg", image)Tig28資訊網——每日最新資訊28at.com

釋放未被釋放的資源(如果有的話)。Tig28資訊網——每日最新資訊28at.com

cv2.waitKey(0)Tig28資訊網——每日最新資訊28at.com
cv2.destroyAllWindows()Tig28資訊網——每日最新資訊28at.com

Python人臉識別輸出Tig28資訊網——每日最新資訊28at.com

讓我們看看模型的輸出。Tig28資訊網——每日最新資訊28at.com

Tig28資訊網——每日最新資訊28at.com

本文鏈接:http://www.www897cc.com/showinfo-119-2348-0.html用Python進行人臉識別「包括源代碼」

聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。郵件:2376512515@qq.com

上一篇: DeepMind開源了MuJoCo!Meta竟用來讓「骷髏手」盤核桃

下一篇: 云安全日報220524:IBM大數據可擴展存儲設備發現特權提升漏洞,需要盡快升級

標簽:
  • 熱門焦點
Top 主站蜘蛛池模板: 天祝| 溧水县| 江达县| 友谊县| 监利县| 思茅市| 铜陵市| 伽师县| 策勒县| 宁陕县| 河西区| 大宁县| 米林县| 明水县| 太原市| 韩城市| 西畴县| 长寿区| 聂拉木县| 盐山县| 封开县| 建德市| 新竹县| 喜德县| 明溪县| 丽水市| 花垣县| 博客| 临西县| 新化县| 静海县| 宁南县| 湘乡市| 鹿邑县| 合川市| 衡阳市| 江都市| 灵宝市| 莲花县| 景泰县| 临安市|