AI Learns to Recognize Human Facial Keypoints (Convolutional Neural Networks) | Animated
infoq.cn 王朋强
今天給大家帶來一篇,人臉辨識中的臉型辨識,不同的臉型適合的眼鏡髮型不同,那麼電腦要如何基於人臉圖像來確定臉型呢?
01 概述
人臉臉型就是指我們平時常說的,瓜子臉、圓臉、方臉等。人臉臉型分類,就是算法根據一張包含臉部的照片,推測出人臉屬於那種臉型,是人人都愛的瓜子臉,還是有正義感的國字臉 (也就是方形臉) 等。
人臉臉型分類過程一般分為人臉檢測、臉部特徵點定位,然後在此基礎上,根據合適的參數進行分類,例如人臉的寬高比、眼睛位置等。
目前比較大的幾個平台中,在對岸中國騰訊 AI 平台和 face++ 人工智慧開放平台的人臉檢測、人臉屬性功能中,都沒有提供臉型分類的輸出資訊,只有在中國百度雲的人臉辨識中有臉型分類的輸出結果。如下是 face++ 人工智慧開放平台的人臉辨識演示,包含了常見的年齡、性別等,但是沒有臉型結果:
在百度雲的人臉辨識的人臉檢測,與屬性分析中,有實現臉型分類的輸出結果。接下來我們測試一下分類效果,實際檢測輸出包括年齡、性別、表情等,為了演示只保留了臉型結果。
使用測試圖像前六幅來自 celebA 數據集,第七幅和第八幅正臉和側臉對比的圖像,來自 IMM 數據集,最後一幅是百度雲平台的演示圖片。
測試圖像中選取了戴墨鏡、帽子和鬍子的人像,還有頭髮有遮擋的,同一人同背景的正臉和側臉,總體分類效果很好,不過由於對於臉型分類主觀因素影響比較大,有幾個個人感覺應該是瓜子臉的分為了心形,同時由於側臉臉部特徵比較少,缺少橫向的寬度等資訊,分類不夠準確。
百度雲的分類結果分為 5 類,方形 (square)、三角形 (triangle)、橢圓形 (oval)、心形 (heart) 和圓形 (round)。以下是百度雲的臉型分類的效果:
人臉臉型分類,可以進一步輔助人臉表情辨識,還可以根據臉型選擇合適得眼鏡、髮型等,美容行業,也可以根據臉型進行五官調整。
02 人臉臉型數據集
關於人臉臉型得數據集,並沒專門公開的做好臉型標注的數據集。論文研究中,常用的數據集有 CAS-PEAL、JAFFE 數據集,都需要手動進行標記。當然也可以爬取一下圖片,借助現有的百度雲平台,來對進行數據集進行標注,再進行人工評判篩選。
2.1 JAFFE 數據集
介紹:JAFFE 是日本女性臉部表情數據集 (Japanese Female Facial Expression),其中包括了 10 個日本女性的 213 幅表情圖像,其中 6 個是基本表情,例如笑,驚訝,生氣等,還有一個是中性表情(即自然狀態下的表情),每幅圖像的表情是選擇了 60 人來評判。
大小:10 位日本女性的 213 幅圖像。
標籤:高興、 悲傷,、害怕、 生氣,、驚訝、厭惡、中性
2.1 CAS-PEAL 人臉數據集
介紹:CAS-PEAL Face Database ,是由中科院和北京大學的,先進人機通信技術聯合實驗室,所聯合建立的數據集。建立該數據庫的目的,是為全世界範圍的人臉辨識研究提供大規模的中國人人臉數據去訓練和提高算法。其中 CAS-PEAL-R1 是 CAS-PEAL 的一個子數據集。CAS-PEAL 數據集需要申請才可以使用。
大小:
CAS-PEAL: 99594 幅圖像涉及 1040 個人 (595 位男性和 445 位女性)。
CAS-PEAL-R1: 30900 幅圖像涉及 1040 個人
標籤:表情
2.3 CelebA 數據集
介紹:celebA(CelebFaces Attributes Dataset) 數據集是大規模的名人人臉屬性數據庫,有超過 200k 的名人圖像,每幅圖像有 40 個屬性標注,包括是否是圓臉、有沒有戴眼鏡、有沒有戴項鍊、性別等等。
大小:202,599 幅臉部圖像
標籤:性別、是否屬於圓臉、有無眼鏡、有無項鍊、是否帶帽子、有無鬍鬚、濃妝淡妝等。
03 臉型分類方法
傳統的方法是擬合人臉輪廓曲率來進行分類的,主要是利用臉部和下巴的曲線建立模型【1】。大部分提取臉部特徵,使用的方法都是 ASM 和 AAM,提取出特徵之後的使用的分類算法不同,有以下幾種:
3.1 SVM【2】
分類方法:
支持向量機 SVM 一般用來處理二分類問題,對於多個類別,可以將多個二分類的 SVM,組合到一起,生成一個多分類 SVM,例如 one-versus-one。One-versus-one multiclass SVM 是一種高效的分類方法,分類過程類似於投票過程。
例如分三類 A、B、C。那麼將這三類兩兩組合形成二分類 SVM,如 SVM1(A,B),SVM2(A,C),SVM3(B,C),然後將三個二分類 SVM 使用到同一樣本,統計樣本被分為 A、B、C 類的個數,例如 SVM1 和 SVM2 分類結果都是 A,SVM3 分類結果是 C,那麼 A 的票最高,最終分類結果就是 A。
分類過程:
1) 利用 AAM 方法建立模型提取特徵;
2) 每個臉型選取一部分數據訓練出一個 3 分類的 SVM;
分類結果:
在論文中研究人員,將臉型分為三類瓜子臉,圓臉和方形臉,然後選擇取了 513 幅瓜子臉圖像、538 幅圓臉圖像和 434 幅方形臉圖像進行訓練,最終使用 180 幅圖像作為測試,測試結果瓜子臉辨識率:90%,圓臉辨識率:93.3%,方形臉辨識率:85%。分類準確率不高的原因,是研究中使用的數據集是 JAFFE 數據集,該數據是一個表情數據集,由於有些表情會造成臉部變動很大影響分類,例如帶有驚訝表情的臉部,會被辨識為瓜子臉。
臉型類型
測試準確率
3.2 KNN 方法【4】
分類特徵:
利用圖中紅色圈出來的點,可以計算臉寬 Wshape、下頜寬 Wmandible、形態面高 Hshape3 個測量參數。臉寬去左右顴點的歐氏距離,下頜寬取左右下頜角點歐氏距離,形態面高取鼻根點與頦下點間歐氏距離【3】【4】。
形態臉指數:
顴下頜寬指數:
將以上這些參數,作為臉型分類的特徵進行分類。
分類過程:1、利用 ASM 獲取形狀特徵點集;2、計算形態臉指數和顴下頜寬指數,若形態臉指數大於 0.915 歸為長臉;3、歸為長臉的樣本,若顴下頜寬大於 0.875,歸為方圓下巴長臉,否則歸為尖下巴長臉。臉型指數小於 0.915 的樣本,需要將形態臉指數和顴下頜寬指數,和樣本庫中的樣本做比對,求取 k 個近鄰得到臉型類別。
分類結果:
研究人員使用的是 CAS-PEAL 數據集,使用了其中 1200 張溫和光照、中性表情的正面人臉,由 20 人投票將人臉庫分為了三角臉、橢圓臉、圓臉、方臉、尖下巴長臉,和方圓下巴長臉 6 類,分類精確率統計如下表:
由於臉型的分類,實際上是一個比較簡單的問題,輸入正臉後就是一個簡單的深度學習分類問題。
3.3 SVM-RBF 方法【5】
分類特徵:提取了臉部的 61 個特徵點,採用下表對特徵點處理得到 19 個表徵臉型的特徵參數,採用這 19 個特徵進行訓練和預測。
分類過程:
1、利用 AAM 獲取臉部特徵點;
2、根據上面的表格計算表徵臉型的 19 個特徵;
3、利用 SVM-RBF 進行分類;論文中還是用了 LDA(Linear Discriminant Analysis) 和 SVM-Linear 方法,不過效果都沒有 SVM-RBF 好。
分類結果:
實驗中數據是從 Google 搜索的 1000 張女性臉部圖像,訓練集和測試集按照 9:1 進行分配。SVM-RBF 的分類結果最好,平均準確率可以達到 72%;其次是 SVM-Linear 方法,平均準確率有 64%;LDA 方法最差,平均準確率只有 58%。
3.3 最近鄰法【6】
分類特徵:用於臉型分類的幾何特徵,G1:整個臉部輪廓的最佳擬合橢圓;G2:下巴特徵點的最佳擬合橢圓;G3:臉頰特徵點的最佳擬合橢圓;G4:下巴的連線;G5:太陽穴連線;G6:對角線;
根據這 6 個特徵,獲取到一個表徵臉型的 8 為特徵向量 F:(F1-F3) 是 (G1,G2,G3) 的高度對 G5 長度歸一化得到的,(F4-F6) 是臉部輪廓到 (G1,G2,G3) 的距離,對 G5 的長度歸一化獲得,F7 是 G4 對 G5 歸一化得到,F8 是兩個對象線長度的平均,對 G5 歸一化獲得。
分類方法:最終分類根據兩個臉型特徵向量之間的距離確定,距離最近的即為同一類。
分類結果:論文中使用 300 幅圖像作為訓練,使用了 100 幅圖像用來測試。出去由於臉部特徵提取失敗引起的錯誤,最終分類準確率在 90%。
基於深度學習的方法已經大大簡化了流程,準備好足夠多的數據,這就是一個普通的分類任務。不得不感嘆,深度學習讓很多傳統方法再也無路可走。
04 總結
沒有留言:
張貼留言