人臉識別最近幾年比較流行,不接觸還以為是什麼高階什麼**,今天學學記錄一下其實除去訓練模型不好做,利用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...