各類人臉識別演算法的總體分析

2021-08-14 07:57:15 字數 3934 閱讀 2928

特徵臉方法主要是基於pca降維實現。

詳細介紹和主要思想可以參考

7 8 //對原圖歸一化

9 mat normal(mat src, mat dst)

16 17 void main()

39 }

40 41 if (image.size() < 1 || labels.size() < 1)

42 cout << "invalid image path..." << endl;

43 44 int height = image[0].rows;

45 int width = image[0].cols;

46 //cout << "height:" << height << ",width:" << width

56 model->train(image, labels);

57 58 //識別

59 int predictlabel = model->predict(testsample);

60 cout << "actual label:" << testlabel << ",predict label:" << predictlabel << endl;

61 62 //獲得特徵值,特徵向量,均值 平均臉

63 mat eigenvalues = model->geteigenvalues();

64 mat eigenvectors = model->geteigenvectors();

65 mat mean = model->getmean();

66 mat meanface = mean.reshape(1,height);

67 mat dst;

68 dst= normal(meanface,dst);

69 imshow("mean face", dst);

70

71 //特徵臉

72 for (int i = 0; i < min(10,eigenvectors.cols); i++)

73

84 85 //重建人臉

此處只列出修改部分

55行模型訓練    ptrmodel = createfishe***cerecognizer();

72行顯示特徵臉for(inti = 0; i < min(16,eigenvectors.cols); i++)

mat ev = eigenvectors.col(i).clone();

86行重建人臉for(intnum = 0; num < min(16, eigenvectors.cols); num++)

//對原圖歸一化

mat normal(mat src, mat dst)

void main()

}if (image.size() < 1 || labels.size() < 1)

cout << "invalid image path..." << endl;

int height = image[0].rows;

int width = image[0].cols;

//cout << "height:" << height << ",width:" << width

model->train(image, labels);

//識別

int predictlabel = model->predict(testsample);

cout << "actual label:" << testlabel << ",predict label:" << predictlabel << endl;

//列印引數

int radius = model->getradius(); //中心畫素點到周圍畫素點的距離

int neibs = model->getneighbors(); //周圍畫素點的個數

int grad_x = model->getgridx(); //將一張在x方向分成幾塊

int grad_y = model->getgridy(); //將一張在y方向分成幾塊

double t = model->getthreshold(); //相似度閾值

cout << "radius:" << radius << endl;

cout << "neibs:" << neibs << endl;

cout << "grad_x:" << grad_x << endl;

cout << "grad_y:" << grad_y << endl;

cout << "threshold:" << t<

致謝:1、【技術共享(bin)】怎麼把人臉檢測的速度做到極致

2、boosting(adaboost)演算法

3、adaboost 演算法簡介

4、boosting演算法簡介

OpenCV 人臉識別LBPH演算法分析

人臉識別是指將乙個需要識別的人臉和人臉庫中的某個人臉對應起來 類似於指紋識別 目的是完成識別功能,該術語需要和人臉檢測進行區分,人臉檢測是在一張中把人臉定位出來,完成的是搜尋的功能。從opencv2.4開始,加入了新的類facerecognizer,該類用於人臉識別,使用它可以方便地進行相關識別實驗...

人臉識別和face 人臉分析

參考部落格 專案需求,android客戶端作為airplay接收端,在開啟airplay的時候後台開啟攝像頭,當捕捉到人臉的時候將這一幀影象傳到face 進行人臉分析。airplay接收端可整合xindawn的airplay,github位址 1.後台開啟攝像頭 基本都是將預覽介面的activity...

FLASH人臉識別演算法

這個今天也是偶然在網上看到,不過對於人臉識別精確演算法確實比較複雜涉及到人臉特徵點提取和生物統計學原理的東西,不做太多討論,只是談談今天我在網上看到的兩個演算法。第乙個是被稱為木刻演算法,他主要用於提取人臉輪廓。該演算法的前提是認為一般因為人體攝影的緣故人臉的周邊會存在陰影,這樣就為我們提取輪廓提供...