基於opencv的人臉檢測學習(一)

2021-10-08 07:04:03 字數 1822 閱讀 3593

人臉檢測是指檢測並定位到指定影象中的人臉,並且返回高精度的人臉框座標。

目前的人臉檢測方法大致可分為兩類:基於知識和基於統計

基於知識的方法

將人臉看作器官特徵的組合,根據面部器官的特徵和幾何位置關係來檢測人臉。例如模板匹配、人臉特徵、形狀與邊緣、紋理特徵、顏色特徵等方法。

基於統計的方法

將人臉看作二維畫素的矩陣,通過大量的人臉影象樣本來構造人臉模式空間,根據相似度來判斷人臉是否存在。例如神經網路、支援向量機、主成分分析、隱馬爾可夫模型、adaboost演算法等。

opencv是乙個開源的跨平台視覺庫,在linux、windows、android和mas os 等多個作業系統上都能執行,可實現計算機視覺和影象處理等功能。它本身使用c++語言編寫,主要介面也是c++,但它也同時提供了python、ruby、matlab等語言的介面.

opencv在人臉檢測上使用的是haar特徵的級聯表,haar分類器演算法要點如下:

(1)使用haar-like特徵做檢測

(2)使用積分圖對haar-like特徵求值進行加速

(3)使用adaboost演算法訓練區分人臉和非人臉的強分類器

(4)使用篩選式級聯把強分類器級聯到一起,提高準確率

人臉的haar特徵分類器是乙個xml檔案,該檔案中會描述人臉的haar特徵值,也可以單獨描述眼睛、嘴唇或是其他物體

(1)讀入

(2)將彩色灰度

(3)進行灰度圖直方圖均衡化操作

(4)檢測人臉

直接在終端輸入pip3 install opencv-python

1、cv2.imread(filepath,flags) //讀入一張

2、cv2.imshow(wname,img)

//顯示影象,但只寫這一句影象只會一閃而過,wname指顯示影象的視窗的名字,img指要顯示的影象

3、imwrite(file ,img,num)

//儲存乙個影象,引數一是儲存影象的新檔名,引數二是要儲存的影象,引數三是壓縮級別,預設為3.

4、cv2.cvtcolor() //影象顏色空間轉換

cv2.cvtcolor(img,cv2.color_bgr2gray) //將進行灰度化

5、cv2.resize(image,image2,dsize) //更改影象的尺寸

6、cv2.flip(img,flipcode) //影象反轉

flipcode = 0:沿著x軸翻轉;flipcode > 0:沿著y軸翻轉;flipcode < o:x,y同時翻轉

7.cv2.warpaffine(img,m,(,)) //影象仿射變換

8、cv2.puttext(img,『text』,(,)) //影象新增文字。要新增的影象,新增的文字,左上角座標,字型大小,顏色,字型粗細

9.cv2.rectangle(img,(x,y),(x+w,y+h),(0,255,0),2) //畫矩形。選定的影象,矩形的左上角座標,矩形的右下角座標

1、在pycharm中讀入一張

2、將進行灰度

3、在所選定的影象上繪製圖形

4.更改影象的尺寸

基於OpenCV的簡單的人臉檢測

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

基於opencv3的人臉檢測

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

Python基於OpenCV的人臉檢測並儲存

import cv2cv2.cascadeclassifier cv2.data.haarcascades haarcascade frontalface default.xml coding utf 8 import opencv的庫 import cv2 import os,math,opera...