跳轉到內容

使用特徵臉進行葉/人臉識別的人工智慧程式設計

來自華夏公益教科書,開放的書籍,為開放的世界

對特徵臉的極度簡化描述。

首先,用非技術術語解釋什麼是特徵臉。假設你正在看一對兄妹。你可能會想 - “他看起來很像他的爸爸,但她完全像她的媽媽。” 仔細觀察後,你可能會補充 - “但他有他媽媽的眼睛,她有她爸爸的下巴。” 所以假設爸爸和媽媽的臉是我們用來“定義”孩子長相的模型。現在,從“數學”的角度來說,我們可能會說男孩看起來 90% 像爸爸,10% 像媽媽,但女孩看起來 5% 像爸爸,95% 像媽媽。或者為了真正簡化描述

Bob = (0.90 0.10)

Jane = (0.05 0.95)

在這個(瘋狂的)例子中,爸爸的臉和媽媽的臉是“特徵臉” - 我們用來“解構”面部進行比較的理想模型。所以讓我們看看接下來會發生什麼。有人走進房間(Bob 或 Jane)。我們拍一張照片。我們的演算法解構影像,並得出結論,它看起來 85% 像爸爸,15% 像媽媽。或者

Unknown = (0.85 0.15)

將此與我們儲存的 Bob 和 Jane 的影像進行比較,你會發現這張影像比 Jane 更“接近”Bob - 所以我們得出結論,我們正在看 Bob。


更好的解釋

對於那些有工程背景的人來說,對特徵臉更現實的解釋是將它與傅立葉變換進行類比。理論上,任何複雜的波形都可以重新建立為無數個具有不同幅度和週期的正弦波的總和。但是,通常你只需要使用幾個關鍵正弦波就能獲得複雜波形相當不錯的近似值。現在假設你的資料庫中有 100 萬張臉。那麼如果你有 100 萬個特徵臉,那麼你就可以找到完全匹配 - 但這效率很低。事實證明,正如傅立葉示例一樣,你實際上只需要幾個關鍵特徵臉 - 也許只需要資料庫中總人臉的百分之一...... 並且這對於匹配和識別已經“足夠好了”。


但是這些都是不好的例子。特徵臉究竟是如何工作的?Leaf 如何使用它們?


詳細解釋

[免責宣告:我在這裡不會用數學術語解釋特徵臉或特徵值 - 我的目的是展示它們是什麼以及它們是如何使用的...... 為了完整描述數學,你需要線性代數的背景......]

好的,我告訴 Leaf “Leaf,我是 Bruce。” Leaf 拍了我的照片。它被轉換為黑白灰度影像。OpenCV 有一種演算法可以識別圖片中可能是一張臉的“感興趣區域” - 這就是“人臉檢測”步驟。提取該區域並縮小或放大,使其正好為 100 畫素 x 100 畫素。這就是我們的“標準影像”。請注意,此步驟有助於將所有影像調整為相同的大小或比例 - 遠處拍攝的影像會放大,近距離拍攝的影像會縮小,以使所有影像的大小大致相同...... 我們將比較蘋果和蘋果。然後 Leaf 將該影像儲存在其“人臉資料庫”中,命名為“Bruce”。

當 Leaf 的資料庫中有很多圖片時,他會執行 Gary Malolepsy 和我編寫的基於 OpenCV 的演算法,該演算法從資料庫中儲存的人臉中提取特徵臉。在我的第一個例子中,這有點像觀察一群孩子,並試圖建立媽媽和爸爸的照片。在我的第二個例子(更類似於數學的例子)中,這就像對一堆複雜的波形執行傅立葉變換,試圖從中提取一些關鍵正弦波。

如果你想看一些人臉圖片,請檢視 Leaf 資料夾中的 LeafFaces 資料夾。如果你想看看這些面孔的特徵臉,那麼請檢視 eigen 資料夾 - 特徵臉是數學提取物。... 它們看起來很幽靈......

好的。現在我問“Leaf,我是誰?” Leaf 拍了我的照片。將其轉換為灰度。將其大小調整為 100 x 100 畫素。然後他根據其特徵資料庫中的特徵臉模式,將圖片“解構”為其特徵值。他得到一些類似於我的第一個例子的特徵值 - 就像他在說“好的,這張未知的臉是 45% 特徵臉 1,5% 特徵臉 2,25% 特徵臉 3,等等。那麼我的臉部資料庫中誰與該描述相匹配?嘿,Bruce 是 46% 特徵臉 1,3% 特徵臉 2,22% 特徵臉 3,等等。我認為它看起來像 Bruce!”


要了解更多資訊,這裡有一些有用的連結

http://en.wikipedia .org/wiki/ Eigenface

http://www.scholarp edia.org/ article/Eigenfac es

http://www.pages. drexel.edu/ ~sis26/Eigenface %20Tutorial. htm


[另一個免責宣告:現在說說壞訊息。]

特徵臉方法效果很好。但是它也有侷限性。

首先,它總是會返回答案。如果 George(不在資料庫中)問“Leaf,我是誰?” 那麼 Leaf 將會回應與 George 最接近的人 - 可能是“你看起來像 Bruce。” 這表明需要進一步訓練。因此,George 應該接著說“Leaf,我是 George。”

但是,該過程也會受到光線變化、臉部部分遮擋(例如戴著太陽鏡)、背景變化以及實際上任何會顯著改變圖片外觀的因素的影響。這些圖片來自資料庫。

我在原始帖子中包含的文章更詳細地探討了這些限制,並嘗試找到一種在出現這些問題時改進識別的方法

http://www.mmp.rwth-aachen.de/teaching/cvws08/additional/leonardis-robusteigen-cviu00.pdf

好吧,關於特徵臉的非技術性介紹就到這裡...... 但希望透過這種解釋,如果你決定深入研究它們,你將能夠更清楚地理解技術解釋......

華夏公益教科書