基於LBP的人臉識別技術

2021-06-21 09:23:51 字數 1517 閱讀 7630

lbp介紹:

得到lbp影象後,將影象切割成7*7=49塊

之所以要切成49小塊,是為了保留空間資訊,比如眼睛的位置資訊、嘴巴的位置資訊等等。

對於每一小塊,統計其直方圖。注意,不需要統計0-255所有位置的直方圖,只需要對特定的58個位置進行統計:

之所以選擇這58個位置,是因為這些位置迴圈跳變不超過兩次:

00000000無跳變;

00000001跳變兩次:0到1,1到0

00000010跳變兩次;

00000110跳變兩次;.....

現在,每個小塊可以用乙個59維的向量來表示,前58維代表58個特定位置的直方圖,最後一維代表除了這58個位置以外,其它所有位置的直方圖的疊加。

如此一來,

一張人臉影象,就可以用49*59=2891個數值來表示,也就是說,乙個lbp特徵,就是乙個49*59的矩陣。

上圖為49*59大小,每一行有59個數,代表lbp影象乙個小塊的直方圖分布,從圖中可以看到,每一行的最後一列都很亮,因為那是59維向量的最後一維,代表除了前面58個位置以外,其它(256-58)個位置的直方圖的疊加。

在識別的時候,將檢測到的人臉的lbp特徵與註冊時儲存的lbp特徵進行比較,計算它們之間的卡方距離:

根據經驗設定乙個閾值,如果卡方距離小於這個閾值,則認為是同乙個人,否則不是。

總結:

1.先通過人臉檢測,獲取人臉區域;

2.將人臉區域縮放到100*100;

3.通過人臉影象,得到98*98的lbp影象;

4.將lbp影象切割成7*7=49個小塊,每個小塊為14*14的影象;

5.對每個小塊統計其直方圖,每個小塊用59維向量表示;

6.總共49個小塊,每個小塊用59維表示,那麼一張人臉影象就可以用乙個49*59的矩陣來表示;

7.人臉識別的時候,比較兩張人臉影象,其實是比較兩個49*59的矩陣,求這兩個矩陣的卡方距離,距離小於某個閾值,如1200,則認為是同乙個人。

參考資料:何金文--《融合可見光和近紅外影象的人臉識別研究》

基於opencv的人臉識別

1前言參考的是 這篇用的是dlib的對齊還加了mask。本文方法 人臉檢測 shiqiyu libfacedetection opencv提取ptr類 2 facedetect.h include include include include include facedetect dll.h us...

基於Opencv的人臉識別

要進行人臉的識別的訓練,首先我們要對openv中人臉識別類facerecognizer要有乙個了解,可以參考這個部落格對facerecognizer 有乙個了解 這個部落格對人臉的訓練解釋的很好,具體怎麼訓練可以閱讀這個部落格。關於人臉識別 我們有一下兩個步驟 1.利用pca變換的人臉識別,對人臉進...

基於Opencv的人臉識別

當在閱讀書籍opencv3時,偶遇人臉識別這一概念,通過網上查閱得知人臉識別是生物特徵識別的最新應用。在此書籍引導下,寫了乙個最基本的人臉識別 期間有乙個問題需要注意,再往工程目錄匯入xml檔案是注意不要導錯,應該是這兩個haarcascade frontalface alt.xml和haarcas...