98.52% vs 97.53%:人臉識別算法終于超過了人類本身
英文原文: The Face Recognition Algorithm That Finally Outperforms Humans
計算機科學家已經開發出一種新的人臉識別算法,在識別人臉的能力上比人類本身更加強大。
我們每個人都有過認不出某個自己曾經認識的人的經歷,在不同的姿勢、光照和表情下,這其實是一件比較困難的事情。計算機識別系統同樣存在這些問題。事實上,盡管全世界的計算機科學家努力了這么多年,還是沒有任何一種計算機識別系統在識別人臉方面能夠像人類一樣強大。
但這并非是說人臉識別系統不夠準確。恰恰相反,最好的人臉識別系統在理想情況下比人類識別的表現要好的多。但是一旦環境情況變糟,系統的表現就差強人意了。而計算機科學家們當然是非常想要開發出一種算法,在各種情況下都能夠表現優異。
現在,香港中文大學的湯曉鷗教授和他的學生路超超(對不起,譯者沒有找到這名學生的名字,只能音譯了)宣布他們攻克了這個難題。他們開發了一種叫“高斯”的人臉識別算法首次超過了人類自身。
新的識別系統對于各種平臺都能夠提供人類級別的識別能力,從手機到電腦游戲中的人臉識別,從安全系統到密碼控制等等。
任何一個人臉自動識別程序,首先要考慮的就是去構建一個合適的數據集來測試算法。那需要一個非常大范圍的,各種各樣的,帶著各種復雜動作、光線和表情的,不同臉的圖像,各種人種、年齡和性別都要考慮在內。然后還要考察服裝、發型以及化妝等其他因素的影響。
比較幸運的是,已經有這么一個擁有各種不同人臉的標準數據庫——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% 的精確度,這也是識別算法第一次擊敗人類。”超超和曉鷗說到。
這是一個令人印象深刻的結果,因為數據中的照片包含各種各樣不同的情況。
超超和曉鷗指出,仍然有很多挑戰在等著他們。現實情況中,人們可以利用各種附加的線索來識別,比如脖子和肩膀的位置。“超過人類的表現也許只是一個象征性的成就罷了”他們說。
另一個問題是花費在訓練新算法上的時間,還有算法需要的內存大小以及識別兩幅圖所需要的時間。這可以用并行計算和特制處理器等技術來加快算法的運行時間。
總之,精確的人臉自動識別算法已經到來了,而且鑒于現在的事實,這只會更快。
譯文鏈接: http://blog.jobbole.com/66705/