人臉識別分為人臉檢測、人臉預處理、蒐集和學習人臉以及人臉識別四個部分,此部分將人臉檢測。
本文基於opencv進行的。在opencv中常用的人臉檢測器有基於lbp的特徵檢測、基於haar的特徵檢測,兩者的區別:前者比後者快好幾倍且不需要許可協議,但很多haar檢測器需要許可協議。
基於haar的臉部檢測器的基本思想是:對於面部正面的大部分區域而言,眼鏡迴避前額和廉價更暗,嘴巴應該比鏈結更暗等情形。通常需要執行約20個這樣的比較來決定所檢測的物件是否為人臉。但它必須針對影象中每個可能的位置和每種可能的人臉大小都這樣做。因此,對於每幅影象,這樣的比較實際上經常會做上千次。基於lbp的人臉檢測器的基本思想與haar人臉檢測型別,但它比較的是畫素亮度直方圖,例如邊緣、角落和平坦區域的直方圖。
常用的opencv分類器如下:
位於opencv跟資料夾下的data\haarcascades資料夾和data\lbpcascades檔案下中
不多說了,下面給出**實現。
#include "opencv2\opencv.hpp"
#include
using namespace std;
using namespace cv;
int main()
vecto***ces; //建立乙個容器儲存檢測出來的臉
mat gray;
if (img.channels() == 3)
else
equalizehist(gray, gray); //直方圖均衡行
ccf.detectmultiscale(gray, faces, 1.1, 3, 0, size(5, 5), size(300, 300)); //檢測人臉
for (vector::const_iterator iter = faces.begin(); iter != faces.end(); iter++)
imshow("faces", img);
waitkey(0);
return 0;
}原圖:
效果圖:
Android之人臉識別
android作為乙個比較廣泛的平台,如何實現人臉識別功能呢?android實現人臉識別可以通過google原生自帶或第三方提供,googel自帶的只能識別靜態,第三方提供的功能比較強大。google通過facedetector類實現人臉識別功能,檢視官方說明 identifies the face...
Android之人臉識別
前言 android作為乙個比較廣泛的平台,如何實現人臉識別功能呢?android人臉識別 android實現人臉識別可以通過google原生自帶或第三方提供,googel自帶的只能識別靜態,第三方提供的功能比較強大。google官方自帶 google通過facedetector類實現人臉識別功能,...
python之人臉識別
執行準備 所需檔案 haarcascade frontalface default.xml 獲取方式 1.開啟cmd,輸入指令 pip install i cv2 2.在安裝python的目錄下面,依次開啟資料夾 lib site packages cv2 data 所需檔案就在裡面了 1.導入庫 ...