98.52% vs 97.53%:人臉識別演算法終於超過了人類本身

菜鳥浮出水發表於2014-05-04

電腦科學家已經開發出一種新的人臉識別演算法,在識別人臉的能力上比人類本身更加強大。

我們每個人都有過認不出某個自己曾經認識的人的經歷,在不同的姿勢、光照和表情下,這其實是一件比較困難的事情。計算機識別系統同樣存在這些問題。事實上,儘管全世界的電腦科學家努力了這麼多年,還是沒有任何一種計算機識別系統在識別人臉方面能夠像人類一樣強大。

但這並非是說人臉識別系統不夠準確。恰恰相反,最好的人臉識別系統在理想情況下比人類識別的表現要好的多。但是一旦環境情況變糟,系統的表現就差強人意了。而電腦科學家們當然是非常想要開發出一種演算法,在各種情況下都能夠表現優異。

現在,香港中文大學的湯曉鷗教授和他的學生路超超(對不起,譯者沒有找到這名學生的名字,只能音譯了)宣佈他們攻克了這個難題。他們開發了一種叫“高斯”的人臉識別演算法首次超過了人類自身。

新的識別系統對於各種平臺都能夠提供人類級別的識別能力,從手機到電腦遊戲中的人臉識別,從安全系統到密碼控制等等。

任何一個人臉自動識別程式,首先要考慮的就是去構建一個合適的資料集來測試演算法。那需要一個非常大範圍的,各種各樣的,帶著各種複雜動作、光線和表情的,不同臉的影象,各種人種、年齡和性別都要考慮在內。然後還要考察服裝、髮型以及化妝等其他因素的影響。

比較幸運的是,已經有這麼一個擁有各種不同人臉的標準資料庫——Labelled Faces。它擁有超過13,000張不同人臉的圖片,它們是從網路上收集的6000個不同的公眾人物。更重要的是,每個人都擁有不止一張人臉圖片。

當然也存在其他的人臉資料庫,但是Labelled faces目前是電腦科學家們所公認的最具參考價值的測試資料集。

面部識別的任務是去比較兩張不同的圖片,然後判斷他們是否是同一個人。(你可以試試看,能否看出這裡展示的每對圖片是否是同一個人。)

人類在這個資料庫上的表現可以達到97.53%的準確度。但是沒有任何一個計算機演算法能夠達到這個成績。

直到這個新演算法的出現。新的演算法依照5點圖片特徵,把每張臉圖規格化成一個150*120的畫素圖,這些特徵分別是:兩隻眼睛、鼻子和嘴角的位置。

然後,演算法把每張圖片劃分成重疊的25*25畫素的區域,並用一個數學向量來描述每一個區域的基本特徵。做完了這些,就可以比較兩張圖片的相似度了。

但是首先需要知道的是到底要比較什麼。這個時候就需要用到訓練資料集了。一般的方法是使用一個獨立的資料集來訓練演算法,然後用同一個資料集中的圖片來測試演算法。

但是當演算法面對訓練集中完全不同的兩張圖片的時候,經常都會識別失敗。“當圖片的分佈發生改變的時候,這種訓練方法就一點都不好了。”超超和曉鷗說到。

相反,他們用四個擁有不同圖片的,完全不同的資料集來測試“高斯”演算法。舉個例子,其中一個資料集是著名的Multi-PIE資料庫,它包含了337個不同的物體,從15種不同的角度,在19種不同的光照情況下,分別拍攝4組圖片。另一個資料庫叫做Life Photes包含400個不同的人物,每個人物擁有10張圖片。

用這些資料庫訓練了演算法後,他們最終讓新演算法在Labelled Faces資料庫上進行測試。目標是去識別出所有匹配和不匹配的圖片對。

請記住人類在這個資料庫上的表現是97.53%的精確度。“我們的“高斯”演算法能夠達到98.52%的精確度,這也是識別演算法第一次擊敗人類。”超超和曉鷗說到。

這是一個令人印象深刻的結果,因為資料中的照片包含各種各樣不同的情況。

超超和曉鷗指出,仍然有很多挑戰在等著他們。現實情況中,人們可以利用各種附加的線索來識別,比如脖子和肩膀的位置。“超過人類的表現也許只是一個象徵性的成就罷了”他們說。

另一個問題是花費在訓練新演算法上的時間,還有演算法需要的記憶體大小以及識別兩幅圖所需要的時間。這可以用平行計算和特製處理器等技術來加快演算法的執行時間。

總之,精確的人臉自動識別演算法已經到來了,而且鑑於現在的事實,這隻會更快。

相關文章