64行程式碼實現簡單人臉識別
import os
import face_recognition
import cv2
# 讀取到資料庫中的人名和麵部特徵
face_databases_dir = 'face_databases'
user_names = []
user_faces_encodings = []
# 得到 face_databases 中所有檔案
files = os.listdir('face_databases')
# 迴圈讀取
for image_shot_name in files:
# 擷取檔名作為使用者名稱 存入 user_names 列表中
user_name, _ = os.path.splitext(image_shot_name)
user_names.append(user_name)
# 讀取圖片檔案中的面部特徵資訊存入 user_faces_encodings 列表中
image_file_name = os.path.join(face_databases_dir, image_shot_name)
# 載入圖片
image_file = face_recognition.load_image_file(image_file_name)
# 讀取圖片資訊
face_encoding = face_recognition.face_encodings(image_file)[0]
user_faces_encodings.append(face_encoding)
print(" 資料庫載入完畢! ")
# 開啟攝像頭,讀取攝像頭拍攝到的畫面
# 定位到畫面中人的臉部,並用綠色的框框把人臉框住
# 用拍攝到人的臉部特徵和資料庫中的面部特徵去匹配
# 並在使用者頭像的綠框上方用使用者的姓名做標識,未知使用者統一用 Unknown
# 1 、開啟攝像頭 獲取攝像頭物件
video_capture = 外匯跟單gendan5.comcv2.VideoCapture(0)
# 2 、迴圈不停的獲取攝像頭拍攝的畫面,並做進一步處理
while True:
# 2.1 獲取攝像頭拍攝的畫面
ret, frame = video_capture.read()
# 2.2 從拍攝到的畫面中提取出人的臉部所在區域
face_locations = face_recognition.face_locations(frame)
# 2.2.1 從所有人的頭像所在區域提取出臉部特徵
face_encodings = face_recognition.face_encodings(frame, face_locations)
names = []
# 2.2.2 匹配 遍歷 face_encodings 和資料庫中的去比對
for face_encoding in face_encodings:
matchers = face_recognition.compare_faces(user_faces_encodings, face_encoding)
name = "Unknown"
for index, is_match in enumerate(matchers):
if is_match:
name = user_names[index]
break
names.append(name)
# 2.3 迴圈遍歷人到額臉部所在區域 並畫框 在框框上標識姓名
for (top, right, bottom, left), name in zip(face_locations, names):
# 2.3.1 畫框
# BGR
cv2.rectangle(frame, (left, top), (right, bottom), (0, 255, 0), 2)
font = cv2.FONT_HERSHEY_DUPLEX
cv2.putText(frame, name, (left, top - 10), font, 0.5, (0, 255, 0), 1)
# 2.4 透過 opencv 把畫面展示出來
cv2.imshow("Video", frame)
# 2.5 按 q 迴圈退出 ( 關閉攝像頭 )
if cv2.waitKey(1) & 0xFF == ord('q'):
break
# 3 、釋放攝像頭資源
video_capture.release()
cv2.destroyAllWindows()
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946337/viewspace-2886751/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 用Python實現簡單的人臉識別,10分鐘搞定!(附原始碼)Python原始碼
- 人臉識別的簡要介紹(附例項、Python程式碼)Python
- PC人臉識別登入,出乎意料的簡單
- 使用 Tcl 實現簡單的文字識別程式
- 使用 Fantom 實現簡單的文字識別程式
- 使用 Elixir 實現簡單的文字識別程式
- 人臉檢測識別,人臉檢測,人臉識別,離線檢測,C#原始碼C#原始碼
- 基於Android平臺實現人臉識別Android
- 基於opencv實現簡單人臉檢測OpenCV
- java 百度人臉識別 介面程式碼Java
- 一個簡單的人臉識別庫
- 如何用Excel 9步實現CNN人臉識別ExcelCNN
- matlab實現人臉識別(數學基礎原理)Matlab
- 人臉表情識別系統介紹——上篇(python實現,含UI介面及完整程式碼)PythonUI
- Python 超簡單實現人類面部情緒的識別Python
- opencv 人臉識別OpenCV
- 機器學習實戰-SVM模型實現人臉識別機器學習模型
- 使用 ActionScript 實現簡單滑動驗證碼識別
- 使用 Modula-2 實現簡單的文字識別程式
- 使用 R 語言實現簡單的文字識別程式
- 【ROS】OpenCV+ROS 實現人臉識別(Ubantu16.04)ROSOpenCV
- 手把手教你實現人臉識別,有手就行
- 虹軟人臉識別ArcSoft3.0NodeJs 版本實現NodeJS
- Java教程:PC人臉識別登入,竟然出乎意料的簡單Java
- 利用opencv 做一個簡單的人臉識別OpenCV
- 【opencv3】 svm實現手寫體與人臉識別OpenCV
- 妙招:使用Python實現圖片在人臉識別並顯示Python
- android 簡單實現指紋識別功能Android
- 人臉識別之特徵臉方法(Eigenface)特徵
- Mars演算法實踐——人臉識別演算法
- 人臉識別檢測專案實戰
- 人臉融合簡單demo
- 智慧校園人臉識別系統原始碼原始碼
- 小程式--人臉識別功能(百度ai)AI
- C#人臉識別入門篇-STEP BY STEP人臉識別--入門篇C#
- 智慧人臉識別門禁系統開發,人臉識別開鎖流程
- 一個簡單的完整人臉識別系統
- 基於mtcnn/facenet/tensorflow實現人臉識別登入系統CNN