opencv之分類級聯器 人臉檢測

2021-10-02 12:02:40 字數 2668 閱讀 3993

分類器逐級篩選最終選定人臉,可以通過haar積分/lbp檢測方法實現,opencv已經實現現成的分類其我們可以拿來直接使用。分類器存放在(linux環境下)opencv原始碼編譯路徑下的share/opencvx/haarcascades路徑下的.xml檔案

haarcascade_eye.xml

haarcascade_eye_tree_eyeglasses.xml

haarcascade_frontalface_alt.xml

haarcascade_frontalface_alt_tree.xml

haarcascade_frontalface_alt2.xml

haarcascade_frontalface_default.xml

haarcascade_fullbody.xml

haarcascade_lefteye_2splits.xml

haarcascade_lowerbody.xml

haarcascade_mcs_eyepair_big.xml

haarcascade_mcs_eyepair_small.xml

haarcascade_mcs_leftear.xml

haarcascade_mcs_lefteye.xml

haarcascade_mcs_mouth.xml

haarcascade_mcs_nose.xml

haarcascade_mcs_rightear.xml

haarcascade_mcs_righteye.xml

haarcascade_mcs_upperbody.xml

haarcascade_profileface.xml

haarcascade_righteye_2splits.xml

haarcascade_smile.xml

haarcascade_upperbody.xml

其中:haarcascade_frontalface_alt.xmlhaarcascade_frontalface_alt2.xml都是人臉識別的haar特徵分類器了。

opencv2中人臉檢測使用的是detectmultiscale函式。它可以檢測出中所有的人臉,並將人臉用vector儲存各個人臉的座標、大小(用矩形表示)

函式api

void

detectmultiscale

(const mat& image,

cv_out vector

& objects,

double scalefactor =

1.1,

int minneighbors =3,

int flags =0,

size minsize =

size()

, size maxsize =

size()

);

引數介紹

#include

#include

#include

#include

using

namespace std;

using

namespace cv;

intmain

(void

) string face_data =

"/work/opencv_data/haarcascade_frontalface_alt.xml"

; cascadeclassifier face_cascade;

//載入分類器if(

!face_cascade.

load

(face_data)

)while

(true

)flip

(src,src,1)

;//電腦攝像頭映象 這裡水平反轉一下 不反轉也沒事

cvtcolor

(src,dst,color_bgr2gray)

;imshow

("原始畫面"

,src)

; vector face;

face_cascade.

detectmultiscale

(dst,face,

1.1,3,

0,size(30

,30))

;for

(size_t i=

0;isize()

;i++

) dst=src.

clone()

;//顯示

namedwindow

("檢測畫面"

,window_autosize)

;imshow

("檢測畫面"

基於OpenCV級聯分類器的人臉檢測

使用級聯分類器訓練人臉模型 作為乙個大四狗,在畢業之前想做點有意思的東西,加上人工智慧這兩年很火,也就從網上找資源,進行了乙個學習的過程,使用的平台是qt5.12 opencv3.40。目的就是為了訓練乙個可以進行人臉檢測的模型。跟著賈志剛老師的課程學了一段時間以後,自己也就找專案去練手去了。不過在...

人臉檢測級聯分類器

對於人臉識別這種型別的應用來說,通常都會分為幾個步驟 人臉檢測 face detection 檢測到人臉所在的區域。並進行一系列的矯正。人臉校準 face alignment 人臉校準指的是在中尋找到鼻子 眼睛 嘴巴之類的位置。如圖中,紅色的框是在進行檢測,白色的點是在進行校準。資訊識別 info ...

OpenCV級聯分類器訓練

級聯分類器包括兩部分 訓練和檢測。檢測部分在opencv objdetect 模組的文件中有介紹,在那文件中給出了一些級聯分類器的基本介紹。這個指南是描述如何訓練分類器 準備訓練資料和執行訓練程式。opencv中有兩個程式可以訓練級聯分類器 opencv haartraining and openc...