人臉檢測是指檢測並定位到指定影象中的人臉,並且返回高精度的人臉框座標。
目前的人臉檢測方法大致可分為兩類:基於知識和基於統計
基於知識的方法
將人臉看作器官特徵的組合,根據面部器官的特徵和幾何位置關係來檢測人臉。例如模板匹配、人臉特徵、形狀與邊緣、紋理特徵、顏色特徵等方法。
基於統計的方法
將人臉看作二維畫素的矩陣,通過大量的人臉影象樣本來構造人臉模式空間,根據相似度來判斷人臉是否存在。例如神經網路、支援向量機、主成分分析、隱馬爾可夫模型、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...