目錄
Python OpenCV 人臉辨識
隨著科技的進步,人工智慧的應用也越來越廣泛,其中一個重要的應用就是人臉辨識。人臉辨識技術可以用於許多不同的場景,例如安全監控、身份驗證、廣告投放等等。本文將介紹如何使用 Python 和 OpenCV 來實現人臉辨識。
什麼是 OpenCV
OpenCV 是一個開源的電腦視覺庫,它可以用於圖像處理、影像處理、物件識別等等。OpenCV 提供了許多有用的 API,可以用於開發人臉辨識應用程式。
如何使用 OpenCV 來實現人臉辨識
使用 OpenCV 來實現人臉辨識,首先需要先將圖像轉換成灰度圖像,然後使用 OpenCV 的 detectMultiScale
方法來檢測圖像中的人臉。
import cv2
# 讀取圖像
image = cv2.imread('image.jpg')
# 轉換成灰度圖像
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)
# 使用 OpenCV 的人臉檢測器
face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')
# 檢測圖像中的人臉
faces = face_cascade.detectMultiScale(gray, 1.3, 5)
# 繪製人臉框
for (x,y,w,h) in faces:
cv2.rectangle(image,(x,y),(x+w,y+h),(255,0,0),2)
# 顯示結果
cv2.imshow('image',image)
cv2.waitKey(0)
cv2.destroyAllWindows()
上面的程式碼會將圖像中的人臉框出來,並且顯示出來。
接下來,我們可以使用 OpenCV 的 face_recognition
方法來辨識圖像中的人臉。face_recognition
方法會將圖像中的人臉轉換成一個 128 維的特徵向量,並且將它們與一個已知的人臉庫進行比較,以確定圖像中的人臉是誰。
import face_recognition
# 讀取圖像
image = face_recognition.load_image_file('image.jpg')
# 檢測圖像中的人臉
face_locations = face_recognition.face_locations(image)
# 計算圖像中的人臉特徵向量
face_encodings = face_recognition.face_encodings(image, face_locations)
# 將人臉特徵向量與已知的人臉庫進行比較
for face_encoding in face_encodings:
matches = face_recognition.compare_faces(known_face_encodings, face_encoding)
name = "Unknown"
# 如果有匹配的人臉,則將其名字顯示出來
if True in matches:
first_match_index = matches.index(True)
name = known_face_names[first_match_index]
print(name)
上面的程式碼會將圖像中的人臉與已知的人臉庫進行比較,並且顯示出該人臉的名字。
總結
本文介紹了如何使用 Python 和 OpenCV 來實現人臉辨識。OpenCV 提供了許多有用的 API,可以用於開發人臉辨識應用程式。使用 OpenCV 來實現人臉辨識,首先需要先將圖像轉換成灰度圖像,然後使用 OpenCV 的 detectMultiScale
方法來檢測圖像中的人臉,接著使用 face_recognition
方法來辨識圖像中的人臉,並且將它們與一個已知的人臉庫進行比較,以確定圖像中的人臉是誰。
推薦閱讀文章
Face Detection with OpenCV and Deep Learning
OpenCV Face Recognition
A Simple Introduction to Facial Recognition with Python (Part 1)
Face Recognition with OpenCV, Python, and Deep Learning
Face Recognition with OpenCV, Python, and Deep Learning