opencv與人臉識別

2021-09-25 10:50:21 字數 1974 閱讀 4627

人臉識別最近幾年比較流行,不接觸還以為是什麼高階什麼**,今天學學記錄一下其實除去訓練模型不好做,利用opencv還是很容易實現的,就來玩玩人臉識別。

人臉檢測器(預設):haarcascade_frontalface_default.xml

人臉檢測器(快速harr):haarcascade_frontalface_alt2.xml

人臉檢測器(側視):haarcascade_profileface.xml

眼部檢測器(左眼):haarcascade_lefteye_2splits.xml

眼部檢測器(右眼):haarcascade_righteye_2splits.xml

嘴部檢測器:haarcascade_mcs_mouth.xml

鼻子檢測器:haarcascade_mcs_nose.xml

身體檢測器:haarcascade_fullbody.xml

解釋一下**的含義:

face_patterns就是級聯分類器,裡面是訓練模型的路徑,這裡我直接拷貝到自己的資料夾下來了。

sample_image開啟影象並且轉換成灰度影象

faces 儲存人臉座標和寬度,是乙個二重list列表

接下來乙個for迴圈利用rectangle來標出來人臉就很簡單了。

看一下face_patterns.detectmultiscale裡面的幾個引數

第乙個就傳入我們的灰度影象

第二個scalefactor每乙個影象尺度中的尺度引數,預設值為1.1。scale_factor引數可以決定兩個不同大小的視窗掃瞄之間有多大的跳躍,這個引數設定的大,則意味著計算會變快,但如果視窗錯過了某個大小的人臉,則可能丟失物體。

第三個引數為每乙個級聯矩形應該保留的鄰近個數,預設為3

其他不重要可有可無。

import cv2

# 開啟攝像頭

face_patterns = cv2.cascadeclassifier('facemodel.xml')

capture = cv2.videocapture(0)

while true:

ret, img = capture.read()

img_gray = cv2.cvtcolor(img, cv2.color_bgr2gray)

faces = face_patterns.detectmultiscale(img_gray)

for (x, y, w, h) in faces:

cv2.rectangle(img, (x, y), (x + w, y + h), (0, 255, 0), 2)

cv2.imshow('img',img)

cv2.waitkey(5)

OpenCv人臉識別

在進行人臉識別時候,為了達到效果,我們使用opencv的分類器。進行對進行識別。include include include include using namespace cv using namespace std void detectanddraw mat img,cascadeclass...

opencv人臉識別

在python環境下利用opencv實現人臉識別,接下來一步一步動手操作。預備知識 一 環境準備 如果已經準備好了請跳過。0,第一步安裝numpy和matplotlib pip install upgrade setuptools pip install numpy matplotlib 1,pip...

opencv的學習與人臉情緒識別專案(一)

呼叫攝像頭程式 import numpy as np import cv2 呼叫筆記本內建攝像頭,所以引數為0,如果有其他的攝像頭可以調整引數為1,2 cap cv2.videocapture 0 while true 從攝像頭讀取 sucess,img cap.read 轉為灰度 gray cv2...