首先宣告一下我也是初學者,但是見csdn對於萌新學人臉識別沒有好的教程,我打算分享自己的學習歷程。我之前已經做過了利用face_recognition庫做人臉識別,但是用這個做人臉識別其實沒啥意思,人家給你好了方法,你只是在呼叫。沒有體現訓練人臉資料的過程。並不好用。利用opencv2的harr級聯進行人臉識別。是乙個不錯的辦法,我也正在慢慢摸索、
訓練資料
訓練資料**
import cv2
import os
def generate():
face_cascade = cv2.cascadeclassifier(r"f:\python\lib\site-packages\cv2\data\haarcascade_frontalface_default.xml") # cascadeclassifier的物件變數,負責人臉檢測
eyes_cascade = cv2.cascadeclassifier(r"f:\python\lib\site-packages\cv2\data\haarcascade_eye.xml")
camera = cv2.videocapture(0,cv2.cap_dshow)
count = 0
while (true):
ret, frame = camera.read()
if not ret:
print('沒有找到人臉')
break
gray = cv2.cvtcolor(frame, cv2.color_bgr2gray)
faces = face_cascade.detectmultiscale(gray, 1.3, 5)
print(faces)
for (x, y, w, h) in faces:
img = cv2.rectangle(frame, (x, y), (x + w, y + h), (255, 0, 0), 2)
f = cv2.resize(gray[y:y + h, x:x + w], (200, 200))
print(f.size)
if f is none:
print("影象為空")
else:
cv2.imwrite('d:/face/jia%s.pgm' % str(count), f)
print(count)
count += 1
cv2.imshow('camera', frame)
c = cv2.waitkey(10)
if count == 20:
break
camera.release()
cv2.destroyallwindows()
generate()
上述**實現了,採集20張人臉**。並且儲存到指定目錄。
親測可用,注意imwrite的儲存路徑,有時候不報錯但是也不儲存,這個時候就請你手動輸入儲存目錄。因為複製的目錄不一定啥時候就出錯了,而且也不現實錯誤提醒。
人臉識別之人臉檢測
人臉識別分為人臉檢測 人臉預處理 蒐集和學習人臉以及人臉識別四個部分,此部分將人臉檢測。本文基於opencv進行的。在opencv中常用的人臉檢測器有基於lbp的特徵檢測 基於haar的特徵檢測,兩者的區別 前者比後者快好幾倍且不需要許可協議,但很多haar檢測器需要許可協議。基於haar的臉部檢測...
Android之人臉識別
android作為乙個比較廣泛的平台,如何實現人臉識別功能呢?android實現人臉識別可以通過google原生自帶或第三方提供,googel自帶的只能識別靜態,第三方提供的功能比較強大。google通過facedetector類實現人臉識別功能,檢視官方說明 identifies the face...
Android之人臉識別
前言 android作為乙個比較廣泛的平台,如何實現人臉識別功能呢?android人臉識別 android實現人臉識別可以通過google原生自帶或第三方提供,googel自帶的只能識別靜態,第三方提供的功能比較強大。google官方自帶 google通過facedetector類實現人臉識別功能,...