2011-03-23 131 views
5

我想知道,臉部識別如何正確工作?因爲每個人都有不同的面孔,所以你無法檢測到一些「一般」的面孔或其他東西。臉部識別

+2

確實!我曾經看過一個人的眼睛......甚至三個人! – Mauricio 2011-03-23 22:28:03

+0

您是否嘗試過在線搜索文章?我認爲你會找到有用的信息,然後你可以問Stack Overflow的問題來深入瞭解你感興趣的細節。 – Kai 2011-03-23 22:32:43

+0

哈哈,哈哈,p ..! – 2011-03-23 22:33:20

回答

11

Jun Zhang et al。 (1997)調查適用於計算機視覺,每個統計分析的在其自己的權利的值得注意域面部識別的三種不同的方法:

1)特徵臉算法
2)彈性匹配
3)Autoassociation和分類網

本徵臉方法使用某種形式的降維方法(如PCA)編碼人臉圖像之間的統計變異,其中特徵空間中產生的特徵差異不一定對應於孤立的面部特徵,例如眼睛,耳朵和鼻子(換句話說,特徵向量的不可缺少的組成部分不是預先確定的rmined)。

彈性匹配生成對應於臉部特定輪廓點(例如眼睛,下巴,鼻尖等)的節點圖(即線框模型),並且識別基於圖像圖與已知數據庫。由於圖像圖可以在匹配過程中旋轉,因此該系統對於圖像中的大幅變化趨於更強健。

分類網絡識別利用了與彈性匹配相同的幾何特徵,但是通過作爲監督機器學習技術(通常涉及使用支持向量機)從根本上不同。

儘管當照明或面部對齊變化很大時,特徵臉檢測的性能可能會低於其他方法,但它具有易於實現,計算效率高以及能夠以無監督方式識別面部的優點,因此傾向於是事實上的標準。即使特徵向量提取處理不同,許多最先進的檢測技術也依賴於識別之前的某種形式的降維。

5

在這裏你可以找到答案:Face recognition

每一張臉有許多,可區分的標誌,不同的波峯和波谷組成的面部特徵。 FaceIt將這些地標定義爲節點。每個人臉都有大約80個節點。其中一些由軟件測量的是:

* Distance between the eyes 
* Width of the nose 
* Depth of the eye sockets 
* The shape of the cheekbones 
* The length of the jaw line 

這些節點被測量創建一個數字代碼,稱爲面印,代表數據庫中的面部。

1

這是一個複雜的問題,需要大量的學習。我建議你首先看OpenCV - http://opencv.willowgarage.com/wiki/ - 一個包含教程等的計算機視覺庫。部分是關於不是一個「普通面孔」,而是關於挑選功能,然後運行一個度量標準 - 比如說有多遠或這些功能的相對定位。

4

一個好的開始方法是閱讀主成分分析(PCA,也稱爲特徵臉),Fisher線性判別分析(LDA)和支持向量機(SVM)。這些分類方法對人臉分類非常有用。

OpenCV已經包含了PCASVM的優秀實現。用於C++ OpenCV的人臉識別和分類代碼的優秀資源是this website

一個網站提供資源和鏈接到大多數相關的臉部分類方法的文件是this one

一個很好解釋的PCA特徵臉和LDA例子,在Matlab中有示例代碼,這對我的第一張臉分類程序is here非常有用。