梳理opencv自帶的人臉檢測的過程

2021-05-09 12:50:06 字數 945 閱讀 2036

本文就是對這幾天來看opencv自帶的人臉檢測的一些收穫。目前先是梳理這個adaboost演算法學習人臉,訓練分類器,檢測人臉的這麼乙個過程。以期整體把握該演算法。

adaboost人臉檢測分3個步驟:準備樣本,訓練分類器,檢測

準備樣本:

正樣本,opencv是用的feret 人臉庫做的樣本來訓練的自帶的分類器。harrtraining需要的是.vec檔案的樣本,因此需要把整理樣本。分為兩步:1先生成樣本描述檔案,2用自帶的createsamples.exe來建立樣本.vec檔案具體步驟為

生成樣本描述檔案:

本文是把樣本放在f:/opencv/bin/positivesamples檔案中的,樣本生成樣本描述檔案.dat,即在dos中f:/opencv/bin/positivesamples/目錄下輸入dir /b>possamples.dat。然後用editplus3開啟possamples.dat檔案,在樣本中加入相應的描述資訊(即個數,開始位置,寬度,高度。如 1.bmp  替換為bmp 1 0 0 24 24 )

建立樣本:

用自帶的createsamples.exe程式完成。如該程式在f:/opencv/bin/目錄下,則建立樣本的引數可設定為如下

f:/opencv/bin/createsamples -info positivesamples/possamples.dat -vec positivesamples/possamples.vec -num 45 -w 24 -h 24

-info 輸入的樣本描述檔案

-vec建立的樣本檔案

-num 樣本個數

-w ,-h樣本的寬度,高度

負樣本:

負樣本的準備步驟可以借鑑正樣本的準備步驟,haartraining需要的負樣本的輸入檔案為.dat檔案,即負樣本描述檔案。在按照正樣本的步驟準備好了描述檔案之後,要刪除.dat檔案的中negsamples.dat這一行。

訓練分類器:

OpenCV自帶例程 人臉檢測

opencv自帶的例程中有人臉識別的例程,原始檔為 path opencv 3.4 1 samples cpp facedetect.cpp 通過cmake編譯之後生成可行性檔案,執行時需要指定分類器檔案,該檔案存放在 opencv 3.4.1 data haarcascades haarcasca...

基於OpenCV的簡單的人臉檢測

這個是在數字影象處理課程裡面的乙個小實踐內容。參考網上已有 重新配置編譯,效果不錯。人臉識別的庫使用的是haarcascade frontalface檔案,包含在opencv當中的。關鍵部分 如下 本原始碼只為學習交流之用 typersever from gzhu static cvmemstora...

基於opencv3的人臉檢測

目前opencv3中已經有人臉檢測的類了,只要呼叫函式庫的類就行 該程式需要兩個xml檔案,分別是haarcascade frontalface alt.xml和haarcascade eye tree eyeglasses.xml,它們分別是已經通過了大量訓練且能檢測出人臉和眼睛了,只要呼叫即可。...