國立交通大學
電控工程研究所
碩士論文
人臉辨識及表情辨識之整合設計
An Integrated Design of Face and Facial Expression
Recognition
研 究 生:陳奕彣
指導教授:宋開泰 博士
人臉辨識及表情辨識之整合設計
An Integrated Design of Face and Facial Expression Recognition
研 究 生:陳奕彣 Student: Yi-Wen Chen
指導教授:宋開泰 博士 Advisor: Dr. Kai-Tai Song
國 立 交 通 大 學 電 控 工 程 研 究 所
碩 士 論 文
A Thesis
Submitted to Institute of Electrical Control Engineering College of Electrical and Computer Engineering
National Chiao Tung University in Partial Fulfillment of the Requirements
for the Degree of Master in
Electrical Control Engineering July 2010
Hsinchu, Taiwan, Republic of China
i
人臉
人臉
人臉
人臉辨識
辨識
辨識及表情辨識之整合設計
辨識
及表情辨識之整合設計
及表情辨識之整合設計
及表情辨識之整合設計
學生:陳奕彣 指導教授:宋開泰 博士 國立交通大學電控工程研究所摘要
摘要
摘要
摘要
本論文發展一套應用於機器人互動之人臉辨識與表情辨識之整合設計。人臉 影像先經由主動外觀模型(Active Appearance Model, AAM)計算出人臉形狀以及紋理模型;接著對輸入的人臉影像進行改良式 Lucas-Kanade 影像校正以找出人 臉特徵,再利用 AAM 的人臉紋理模型建立出人臉紋理的特徵參數,並利用此特 徵參數輸入倒傳遞類神經網路做辨識。在辨識過程中,我們提出一種整合設計, 先經由人臉辨識找出使用者的身分,接著我們對於辨識出的已知使用者的表情資 料庫做個人化表情辨識;由實驗結果可以看出,在使用 BU-3DFE 人臉表情資料 庫做辨識,其人臉辨識成功率可達 98.3%。接著使用個人化表情辨識的成功率為 83.8%,相對於使用全體的表情辨識器之辨識率僅為 69.6%,其成功率可大幅提 升。
ii
An Integrated Design of Face and Facial Expression
Recognition
Student: Yi-Wen Chen Advisor: Dr. Kai-Tai Song
Institute of Electrical Control Engineering National Chiao Tung University
ABSTRACT
In this thesis, an integrated design of face and facial expression recognition system has been developed for robotic applications. First, facial image from camera is exacted to compute facial shape and texture model using active appearance model (AAM). Second, we use modified Lucas-Kanade image alignment algorithm to find facial features. Third, the texture model of AAM is used to construct facial texture parameters. These parameters are used to train a back propagation neural network (BPNN) for face and facial expression recognition. In recognition process, we first use face recognition to find user’s identity; then we use recognized user’s facial expression database to recognize his/her facial expression. In experiments based on BU-3DFE database, a face recognition rate of 98.3% has been achieved. The facial expression recognition rate of the proposed integrated method (using a personal facial expression classifier) is 83.8%. It is a great improvement compared with using conventional facial expression classifier of 69.6%.
iii
誌
誌
誌
誌謝
謝
謝
謝
謹向我的指導教授宋開泰博士致上感謝之意,感謝他兩年來在專業上的指導, 以他豐富的學識與經驗,配合理論的應用,使得本論文得以順利完成。感謝各位 口試委員的指導與意見,讓本論文能夠更加嚴謹。 感謝博士班學長姐孟儒、嘉豪、格豪、巧敏以及信毅,在理論上的指導與建 議,並感謝各位與我共同努力的同學哲豪、宗暘、維峻與傑巽彼此之間相互的鼓 勵與提供研究上的意見,以及學弟仕晟、建宏、上畯與碩成不時的提供許多的幫 忙。 最後,特別要感謝我的父母,由於他們的辛苦的栽培以及在生活上細心地關 懷與照料,使得我得以順利的完成此碩士論文,在此願將此論文獻給我最敬愛的 父母。iv
目錄
目錄
目錄
目錄
摘要... i ABSTRACT ... ii 誌謝... iii 目錄... iv 圖例... vi 表格... viii 第一章 第一章 第一章 第一章、、、、緒論緒論緒論 ... 1 緒論 1.1. 研究動機 ... 1 1.2. 相關文獻回顧 ... 1 1.3. 問題描述 ... 7 1.4. 系統架構與章節說明 ... 8 第二章 第二章 第二章 第二章、、、、人臉偵測與特徵點擷取方法人臉偵測與特徵點擷取方法人臉偵測與特徵點擷取方法 ... 10 人臉偵測與特徵點擷取方法 2.1. 人臉偵測演算法 ... 10 2.1.1. 人臉區域決定... 11 2.1.2. 人臉偵測成果... 13 2.2. 主動外觀模型 ... 15 2.3. 人臉形狀模型 ... 15 2.3.1. 特徵點的設置... 15 2.3.2. 形狀對齊... 17 2.3.3. 模擬臉部形狀的變化... 20 2.4. 人臉紋理模型 ... 22 2.4.1. 人臉的紋理... 222.4.2. Piecewise Affine Warping ... 22
2.4.3. 模擬臉部紋理的變化... 25 2.5. 影像校正演算法 ... 27 2.5.1. Lucas-Kanade 演算法 ... 27 2.5.2. Inverse Compositional 演算法 ... 30 2.5.3. 整體形狀正規化轉換... 38 2.5.4. 梯度影像修正... 42 2.5.5. 直方圖等化... 45 2.5.6. 整體方法... 49
v 2.6. 結論與討論 ... 50 第三章 第三章 第三章 第三章、、、、人臉辨識與表情辨識演算法人臉辨識與表情辨識演算法人臉辨識與表情辨識演算法 ... 51 人臉辨識與表情辨識演算法 3.1. 人臉特徵方法 ... 51 3.2. 倒傳遞類神經網路 ... 52 3.3. 表情辨識策略 ... 54 3.4. 人臉辨識與表情辨識訓練流程 ... 56 3.5. 結論與討論 ... 56 第四章 第四章 第四章 第四章、、、、實驗結果實驗結果實驗結果 ... 59 實驗結果 4.1. 影像校正演算法迭代結果 ... 59 4.1.1. 使用資料庫影像... 59 4.1.2. 使用自行擷取影像... 64 4.2. 人臉辨識結果 ... 66 4.2.1. 使用資料庫影像... 66 4.2.2. 使用自行擷取影像... 70 4.3. 表情辨識結果 ... 72 4.3.1. 使用資料庫影像... 72 4.3.2. 使用自行擷取影像... 76 4.4. On-line 辨識結果 ... 80 4.5. 結論與討論 ... 82 第五章 第五章 第五章 第五章、、、、結論與未來展望結論與未來展望結論與未來展望 ... 83 結論與未來展望 5.1. 結論 ... 83 5.2. 未來展望 ... 83 參考文 參考文 參考文 參考文獻獻獻獻... 85
vi
圖例
圖例
圖例
圖例
圖 1-1、一般人臉/表情辨識的流程圖 ... 2
圖 1-2、Template Selection Tracker(TST)方法的流程[4] ... 3
圖 1-3、在 c 參數變化三個標準差的 Template[5] ... 4 圖 1-4、在眨眼時,所找出的 Template[5] ... 4 圖 1-5、經由邊緣偵測的邊緣影像[9]... 5 圖 1-6、使用邊緣影像與灰階影像的 AAM 匹配正確率[9] ... 5 圖 1-7、SVM 表情辨識的流程[2] ... 7 圖 1-8、系統架構 ... 9 圖 2-1、Haar-like 矩形特徵 ... 11 圖 2-2、人臉偵測在兩公尺時的結果 ... 12 圖 2-3、人臉偵測整體流程 ... 13 圖 2-4、人臉偵測的範圍 ... 13 圖 2-5、人臉偵測詳細流程範例 ... 14 圖 2-6、特徵點的選取[18]... 15 圖 2-7、人臉特徵點的設置 ... 16 圖 2-8、不同表情的特徵點標點情形(使用 AR Database[23]) ... 16 圖 2-9、經過形狀對齊前的輸入形狀與經過形狀對齊後的形狀 ... 19 圖 2-10、由形狀對齊後的所有形狀計算出的平均形狀 ... 19 圖 2-11、人臉形狀模型的 mean shape(a)和前三個變形模型(b, c, d) ... 21 圖 2-12、Delaunay triangulation 的外接圓特性[21] ... 23 圖 2-13、人臉形狀以 Delaunay triangulation 表示 ... 23 圖 2-14、三角形的形變 ... 24 圖 2-15、人臉形變的情形 ... 25 圖 2-16、人臉紋理模型的平均紋理(a)和前四個變化模型(b, c, d, e) ... 26 圖 2-17、Lucas-Kanade 演算法流程 ... 30 圖 2-18、Inverse Compositional 演算法流程 ... 33 圖 2-19、0, 0 ∆0, ∆0經由 Affine warp 得到, ∆, ∆ ... 36
圖 2-20、Global shape normalizing transform 形狀變化模型 ... 39
圖 2-21、用於計算梯度的樣板影像 ... 42 圖 2-22、原本的水平與垂直梯度影像 ... 43 圖 2-23、修改後的水平與垂直梯度影像 ... 43 圖 2-24、梯度影像修正之前後影像校正結果 ... 44 圖 2-25、在每次迭代的過程中將形變影像進行亮度調整與直接對輸入影像進行亮 度調整的結果... 45
vii 圖 2-26、直方圖等化的計算 ... 46 圖 2-27、直方圖等化過後的結果 ... 47 圖 2-28、使用不同方法所得到的人臉平均紋理 ... 47 圖 2-29、在每次迭代的過程中將形變影像進行直方圖等化調整與直接對輸入影像 進行亮度調整的結果... 48 圖 3-1、人臉影像參數最為人臉特徵 ... 52 圖 3-2、類神經網路主要架構 ... 52 圖 3-3、[28]中所使用的類神經網路模型... 54 圖 3-4、成員的人臉表情辨識範例 ... 55 圖 3-5、非成員的人臉表情辨識範例 ... 56 圖 3-6、人臉辨識與表情辨識的整體訓練流程 ... 57 圖 4-1、AR database 的部分影像 ... 60 圖 4-2、所有 84 筆測試資料平均灰階 RMS 誤差收斂情形 ... 60 圖 4-3、使用 AR database 的特徵點結果以及其形變出的人臉 ... 61 圖 4-4、其中四位不同資料庫成員的表情影像 ... 62 圖 4-5、所有 480 筆測試資料平均灰階 RMS 誤差收斂情形 ... 63 圖 4-6、使用 BU-3DFE 的特徵點結果以及其形變出的人臉 ... 64 圖 4-7、其中五位實驗室成員的各種表情資料 ... 65 圖 4-8、所有 300 筆測試資料平均灰階 RMS 誤差收斂情形 ... 65 圖 4-9、其中五位實驗室成員的各種表情特徵點結果 ... 66 圖 4-10、人臉辨識類神經網路的收斂情形 ... 67 圖 4-11、人臉辨識類神經網路的收斂情形 ... 70 圖 4-12、全體表情辨識類神經網路的收斂情形 ... 72 圖 4-13、個人表情辨識類神經網路 20 位使用者的平均收斂情形 ... 73 圖 4-14、全體表情辨識類神經網路的收斂情形 ... 76 圖 4-15、個人表情辨識類神經網路 10 位使用者的平均收斂情形 ... 77 圖 4-16、on-line 辨識結果-生氣... 80 圖 4-17、on-line 辨識結果-厭惡... 80 圖 4-18、on-line 辨識結果-害怕... 81 圖 4-19、on-line 辨識結果-高興... 81 圖 4-20、on-line 辨識結果-傷心... 82 圖 4-21、on-line 辨識結果-驚訝... 82
viii
表格
表格
表格
表格
表 4-1、20 位成員的辨識率 ... 67 表 4-2、人臉辨識率與表情的關係 ... 68 表 4-3、人臉辨識錯誤的結果 ... 68 表 4-4、非成員的人臉辨識結果 ... 69 表 4-5、10 位實驗室成員的辨識率 ... 71 表 4-6、人臉辨識率與表情的關係 ... 71 表 4-7、使用 BU-3DFE 的使用全體的表情辨識結果 ... 74 表 4-8、使用 BU-3DFE 在已知使用者的情況使用個人的表情辨識結果 ... 75 表 4-9、使用 BU-3DFE 的整體人臉辨識與個人的表情辨識結果 ... 75 表 4-10、使用實驗室成員的全體的表情辨識結果 ... 78 表 4-11、使用實驗室成員在已知使用者的情況使用個人的表情辨識結果 ... 79 表 4-12、使用實驗室成員的整體人臉辨識與個人的表情辨識結果 ... 791
第
第
第
第一
一
一
一章
章
章
章、
、
、
、緒論
緒論
緒論
緒論
1.1.
研究動機
研究動機
研究動機
研究動機
近幾年來,機器人科技的發展越來越快速,而機器人已經逐漸的走入家庭。 其中能與人互動的機器人之中,包括了看護機器人、保全機器人、接待機器人以及寵物機器人等等。在機器人與人互動(Human Robot Interaction, HRI)的設計中, 我們希望機器人可以對使用者有更自然的互動,因此,我們希望機器人可以知道 更多的使用者資訊,例如使用者身份,使用者目前的情緒為何,使用者目前在做 什麼事,使用者想要做什麼等等。機器人必須運用所擁有的感測器來判別出使用 者目前的狀態,然後決定出下一步的所需採取的動作,使得機器人越來越接近實 用的功能。 在人類的臉上,包括了許多複雜單元,因此每個人的人臉都會有相當大的差 異存在,因此,分析每個人臉上的不同,就可以得到許多不一樣的資訊,例如人 臉辨識可以知道使用者是誰,表情辨識可以知道使用者目前的情緒,年齡估測以 及性別辨識可以得到使用者的一些基本資料,機器人藉由辨識得知許多使用者資 訊後,就可以針對使用者來進行各式各樣豐富的互動,讓機器人與人類更加生動 的互動。 在目前辨識技術的應用當中,人臉辨識可以應用在許多不同的環境下,例如 使用者身份的確認、防盜門禁系統等等,而在表情辨識的發展上,數位相機中的 微笑快門可以說是應用最廣的一部分;而在機器人應用的開發當中,人臉辨識以 及表情辨識都是讓機器人能夠與使用者產生互動的重要技術。
1.2.
相關文獻回顧
相關文獻回顧
相關文獻回顧
相關文獻回顧
人臉以及表情辨識是利用影像中的人臉區域,對於資料庫中的人臉以及表情2
資料進行比對,以得知使用者的身分以及表情。目前在人臉以及表情辨識方面的
過程主要可以分為三大部份 1.人臉偵測 2.特徵點擷取 3.人臉/表情辨識如圖 1-1 所示。
在人臉表情分析的文獻中,Ekman 等人 [1]所定義的 Facial Action Coding
System (FACS),這是根據人在表現出不同表情時,所帶動臉部肌肉的運動的原
理,定義出了 44 種不同的 Action Unit,根據不同的 Action Unit 組合,即可以表 現出人的各種不同表情。另外,在基本表情的定義下,可以定義出六種不同的基 本表情,亦即為生氣(sadness)、厭惡(disgust)、害怕(fear)、高興(happiness)、驚訝 (surprise)和傷心(sadness)六種。 在特徵辨識的方面,主要可分為兩種方法,一是整體特徵,一是局部特徵。 整體特徵直接將整張人臉當作單一特徵來做辨識;局部特徵方法是先找出關於人 臉/表情變化的重要局部特徵,例如眼睛、鼻子和嘴巴或嘴角、眼角等[2][3],然 後分別針對這些局部特徵的變化做辨識,最後將個別局部特徵的結果統合而得到 最後結果。
Cristinacce 和 Cootes [4]提出了 Template Selection Tracker(TST)臉部特徵偵
測的方法,先由手動對訓練資料庫進行標點,對於這些標點產生形狀(Shape), 並對之取平均而得到平均形狀(Mean shape),當一張新進影像進入時,先將平均
形狀套用到這張圖上,然後(1)使用 K 最近鄰居法(K-Nearest Neighbor, KNN)找出 在資料庫中 Shape 最相近的 K 個 Template,並在這 K 個 Template 中對其紋理資
3
料進行正規化影像相關(normalized correlation)找出最相似的一個 Template;下一
步(2)則是使用 Shape Constrained Template Search 方法來預測出新的特徵點位置, 這是使用訓練資料的參數對影像作最佳化,更新 shape 參數;重複(1)(2)兩步驟
直到座標點收斂,圖 1-2 即為此方法的流程。
之後 Cristinacce 和 Cootes [5] 對上述的方法進行修改,將 K 最近鄰居法
(K-Nearest Neighbor, KNN) 改為 Constrained Local Appearance Models 方法,它是
將訓練資料先進行參數化,將所有的資料以(1-1)表示:
4 s sb P x x = + g = g + Pgbg (1-1) 表示,其中x 是平均形狀,g 是平均灰階向量,P是正交變化量,b是形狀 參數,P是正交變化量,b是灰階參數,將兩者結合,可以得到 c P b= c = cg cs c P P P = g s s b b W b (1-2) 因此,當我們改變 c 的權重時,即可得到各種不同的人臉模型,如圖 1-3。而圖 1-4 則是使用這個方法來對人臉的不同 frame 做 feature 的抓取,可以看出在眨眼 時可以找出對應的 Template。 這個方法因為特徵的數量不多,在運算的速度上可以有較好的效果,但是其 只計算部分的人臉特徵,屬於局部特徵方法,不能得到完整的人臉資訊,應用於 人臉辨識系統當中較不理想。 圖 1-3、在 c 參數變化三個標準差的 Template[5] 圖 1-4、在眨眼時,所找出的 Template[5]
5
Martin 等人 [9] 提出了不使用灰階影像 (Gray image) 於主動外觀模型 (Active Appearance Model, AAM)上而使用了邊緣影像 (Edge image) 的方法,作
者認為邊緣影像可以將笑線 (Laugh line) 和額頭的皺紋比灰階影像清楚的抽取
出來。因此在 AAM 的 appearance model 上,作者先將影像經由影像邊緣偵測找 出邊緣影像,將正規化的影像經由 Gx,Gy 分別找出 x、y 方向的邊緣, , , , (1-3) 再計算出整體的邊緣影像 S,如圖 1-5, (1-4) 以此邊緣影像來建立 appearance model,圖 1-6 顯示了分別使用邊緣影像與灰階 影像的 AAM 匹配正確率,可以看出邊緣影像正確率明顯的較灰階影像來的高; 在實驗上,作者先用 Viola 和 Jonse [10]的人臉偵測演算法將人臉部分框出,再 用 AAM 來進行匹配,最後分別使用多層感知器類神經網路 (Multi-Layer-Perceptron, MLP)以及狀態向量機(Support-Vector-Machine, SVM)分 類器進行分類,使用邊緣影像可以使部分特徵更明顯,但是也會遺失部分的紋理 資訊。 圖 1-5、經由邊緣偵測的邊緣影像[9] 圖 1-6、使用邊緣影像與灰階影像的 AAM 匹配正確率[9]
6
Tang 和 Huang [6]提出了一套自動選擇特徵的方法用於 3D 的表情辨識上,
他們利用了 MPEG-4 standard [7]的 Facial Animation Parameter Units(FAPUs)來對 臉部做正規化,以不同兩點的連線作為特徵庫,然後再使用 Kullback-Leibler
diverge (KLD) [8]機率分布方法來找出特徵值的 Discrimination power (DP(X)),選
出前 K 個較大的作為特徵值,再以正規 AdaBoost 分類器呼叫三種不同的 weak
分類器 Nearest Neighbor、Naive Bayes、Linear Discriminant Analysis(LDA)來進行 分類。這個方法最大的優點就在於它是利用三維的臉部幾何資訊來做特徵的擷取,
因此不會受到光線的變化的影響。
在[3]中,作者利用一些觀察到表情變化的一些線索來當作模糊規則,例如
驚訝時會張嘴、可能出現抬頭紋、屬於垂直走向的嘴型,生氣時再眉心區域會出 現皺眉、嘴巴閉合、屬於平走向的嘴型……等,並使用了 Minimum inference engine
來進行模糊推論;而[11]中,作者使用了 Mamdani’s inference method 來進行模糊 推論;最後使用重心解模糊化法(Center of gravity defuzzification)來解模糊化,
可以得到每一種表情與其所對應的表情權重值,選取權重值為最大者的表情做為 辨識結果的輸出,文獻[3]中進一步對於輸出時可能有兩個最高表情權重值過於 相近時的情況做探討,將相近(<=0.1)的兩個結果對其特徵值再進一步增設幾個判 斷條件,以增加其辨識的正確率,其正確率可達 81.76%。使用模糊推論的一些 規則可以讓系統擁有一些彈性存在,但是由於每個人的表情元素可能不太相同, 若規則定的不夠完備可能造成辨識錯誤。 許晉懷 [12]使用了 SVM 分類器對表情進行分類。利用了 SVM 的雙模辨識 策略:透過兩種資訊辨識情緒,對辨識的可靠度設定不同的權重,用以決定要該 採用何種資訊。雙模資訊權重的數值,是透過 SVM 理論中測試資料距超平面的 距離,以及訓練資料之標準差,接著再經由訓練資料距超平面的平均距離正規化 後決定,此權重係數即可以判斷分類的可靠度;並以此權重係數對於設定好 SVM 分類器的兩兩表情進行多階層的分類,最後即可決定出輸出的表情為何。如圖 1-7 所示,如此可以減少對於所有兩兩表情的 SVM 分類所需的運算量。
7 圖 1-7、SVM 表情辨識的流程[2]
1.3.
問題描述
問題描述
問題描述
問題描述
在一般的情形下,每個人的自然表情以及當表情發生變化時的變化元素都不 完全相同,例如有些人的中性表情在一般不認識的人來看會覺得他是處在生氣的 情緒中,有些人的中性表情在一般不認識的人來看會覺得他是處在快樂的情緒中; 當我們熟識這個人的情形下,我們就會大概知道這個人的中性表情為何,而不會 把他的中性表情誤認為生氣或快樂。 在機器人的應用上,我們希望將機器人比擬為人類,當這個機器人在家庭中 對於家中的成員或是機器人所熟識的人,可以知道這些人的表情變化因素,如此, 就可以讓機器人針對已知的這個人,讓機器人可以知道這個人確切的表情,而不 會誤認使用者的情緒。 在一般表情辨識的方法當中,是使用大部分人所擁有的人臉的特徵,對於所 有的使用者皆使用相同的特徵來做辨識。因此,很容易忽略掉每個人所擁有的表 情特徵是不完全相同的,而使得有些人的表情無法正確辨識出來。 在本論文中,我們希望藉由針對每位使用者建立其個人的表情資料庫,讓機 器人在辨識使用者的表情時,可以更確切的知道使用者目前真正的情緒為何,並 希望能夠在未來讓機器人能針對不同的使用者,有不一樣的互動行為,讓機器人 可以達到更生動的互動行為。 Happiness Sadness Surprise Neutral Anger Output Emotion Input Unknown Emotion8
1.4.
系統架構與章節說明
系統架構與章節說明
系統架構與章節說明
系統架構與章節說明
對於應用於機器人上的人臉與表情辨識系統,本論文提出了一個辨識系統的 架構如圖 1-8 所示,這個架構下大致分為三個部分,分別是人臉偵測、人臉的特 徵擷取以及人臉以及表情辨識部分;人臉偵測是為了要找出影像中人臉的位置, 而特徵擷取的部份是為了要找出可以做為人臉以及表情辨識的特徵,在人臉以及 表情辨識部分是為了要辨識出輸入的使用者以及其表情出來。在人臉偵測部分,主要是使用 Viola [10]以及 Lienhart[13]的 Haar-like 人臉 偵測來整出可能的人臉位置,接著再加入幾項判斷條件將最接近人臉的影像篩選
出來。在人臉的特徵擷取部分,我們先正規化影像大小,並使用了主動外觀模型
(AAM)以及 Lucas-Kanade 演算法找出人臉部分並轉正,並取出人臉的紋理特徵。
我們將人臉的紋理特徵放入倒傳遞類神經網路(Back Propagation Neural Network,
BPNN)進行辨識。在辨識的過程中,我們先進行人臉辨識,找出使用者的身分, 接著再針對我們辨識出來的成員進行個人化的表情辨識,以得到個人化的表情辨 識結果。 本論文一共分為五章,第一章先介紹本研究的動機、相關研究以及問題描述, 接著,在第二章會說明人臉的偵測以及特徵點的擷取,在第三章,我們會提出人 臉以及表情辨識的方法,第四章展示一些實驗的結果,最後在第五章是結論以及 未來展望。
9
10
第
第
第
第二
二
二
二章
章
章
章、
、
、
、人臉偵測與特徵點擷取方法
人臉偵測與特徵點擷取方法
人臉偵測與特徵點擷取方法
人臉偵測與特徵點擷取方法
在人臉與表情辨識系統中,我們首先需要知道人臉所在的位置以及擷取出做 為辨識用所需的人臉特徵。因此接下來將介紹如何由攝影機取得影像並進行人臉 偵測,取得正確的人臉位置;並接著使用主動外觀模型(Active Appearance Model)及 Lucas-Kanade 演算法找出人臉的特徵部位並將人臉轉正,取得人臉的紋理特 徵值。
2.1.
人臉偵測演算法
人臉偵測演算法
人臉偵測演算法
人臉偵測演算法
在本系統中,我們先經由人臉偵測出人臉的位置,以利接下來進行的人臉特 徵擷取;在人臉偵測部分,我們希望能準確的找出人臉的位置,而直接使用膚色 偵測的方法來偵測人臉容易造成人臉區域偵測錯誤的情形發生,因此在這裡首先 先由攝影機(Webcam)取得 640*480 大小的影像,並在一開始採用 Viola [10]以及 Lienhart[13]的 Haar-like 人臉偵測來找出可能的人臉位置。 Haar-like 特徵的人臉偵測方法是不同形式的特徵如圖 2-1 所示,1.為邊緣特 徵的四種、2.為線特徵八種、3.為中心包圍特徵兩種,將白色部分的影像像素值 總和減去黑色部分的影像像素值總和來計算其特徵,利用改變矩形特徵的大小和 位置,即可在影像中取出大量的特徵。在影像當中的感興趣區域(Region of interest, ROI)中,使用了 Cascade 方法來
對多個階層的分類器進行判斷,每一個感興趣區域在所有的階層都通過之後,就 被分被為正確的結果;反之,在任一階層中被拒絕了就被淘汰。而在每一階層當
中的分類器中,對基本的分類器採用了 Boosting 方法(AdaBoost),每個基本的分 類器是至少 2 元的決策樹分類器,他們的輸入即為所有前述的 Haar-like 特徵。
本論文使用了 OpenCV(Open Source Computer Vision)所提供之 Haar-like 物體偵 測方法來達成人臉偵測目的。
11 圖 2-1、Haar-like 矩形特徵 由於 Haar-like 人臉偵測可能找到一些較遠而造成影像畫質較低的人臉或是 非人臉的區域,因此在 Haar-like 人臉偵測找出的幾個可能的人臉區域中,我們 利用人臉影像區域大小以及人臉影像區域膚色密度的大小來決定出何者為真正 的人臉區域,找出最適合的人臉。
2.1.1.
人臉區域決定
人臉區域決定
人臉區域決定
人臉區域決定
由於 Haar-like 人臉偵測可能找到一些較遠而造成影像畫質較低的人臉或是 非人臉的部位,因此在這裡需要經由一些判斷來找出是人臉的區域;首先我們先 針對找出人臉影像的大小進行過濾,這裡根據偵側出人臉影像大小的畫質最低可 容忍範圍,在人距離攝影機兩公尺時,人臉影像大小大約是 50*50 個像素如圖 2-2。在此距離所得的人臉影像已經不夠清楚來進行人臉的辨識,因此我們就設 定偵側人臉大小最小的限制為 50*50 個 pixel,小於這個大小的人臉影像就過濾 掉。 過濾太小的人臉影像之後,我們對於人臉影像中的膚色進行偵測,由於 RGB 色彩模型在光源變化時會有非常大的改變,因此將 R、G 轉換到 Normalized color coordinates [14] 可減少 R、G 對於光源變化的靈敏度,R、G 轉換的公式如 (2-1)(2-2):12 (a) (b) 圖 2-2、人臉偵測在兩公尺時的結果,(a)框出人臉部分,(b)取出的人臉 R/R G B (2-1) " G/R G B (2-2) 其中 R、G、B 為原始 RGB 人臉影像中的紅、綠、藍影像畫素,而 r 與 g 為正規 化以後的紅、綠部分,由正規化以後的人臉膚色範圍於 r、g 的座標表示,可以 找出人體膚色的分布範圍公式,其中 g 的上限 gup為[15]: "#$ %1.376 1.0743 0.1452 (2-3) g 的下限 gdown為[15]: "./01 %0.776 0.5601 0.1766 (2-4) 其中白色的色彩也會包含於其中(r=0.33, g=0.33),因此我們必須將白色的部分過 濾出來,白色的表示為: W3 % 0.33 " % 0.33 (2-5) 因此,我們可以計算出膚色的範圍為: 45, " 61, " 7 "#$ 95: " ; "./01 95: 3 ; 0 0, <=>?@A? B (2-6) 其中 Skin(r,g) = 1 為膚色,Skin(r,g) = 0 非膚色。 找到膚色範圍後,我們計算出整張人臉影像的膚色範圍大小,並將膚色範圍 大小除以人臉影像大小即可得出膚色密度(2-7),利用每個人臉影像的膚色密度的
13
不同,我們就可以將膚色密度最大的區域定義為最後找到的人臉影像,整體流程
如圖 2-3 所示。
C?5A=
DEF1 0F.JK·KMFIKJ∑ HEF13,I(2-7)
其中 Densityskin為人臉影像的膚色密度,∑ 45, "為人臉影像膚色範圍大小, width 和 height 分別為人臉影像的寬和長。
2.1.2.
人臉偵測成果
人臉偵測成果
人臉偵測成果
人臉偵測成果
在這個人臉偵測方法中可以偵測到最近的人臉距離為 20 公分圖 2-4(a),最 遠可以達到 2 公尺圖 2-4(c),圖 2-5 顯示出人臉偵測系統的詳細的過程,在這個 方法中,所找出的人臉為影像當中的一個人臉。 圖 2-3、人臉偵測整體流程 (a)20 公分 (b)1 公尺 (c)2 公尺 圖 2-4、人臉偵測的範圍14
15
2.2.
主動外觀模型
主動外觀模型
主動外觀模型
主動外觀模型
在人臉特徵的擷取上,我們希望能將人臉的特徵找出來,由於主動外觀模型
(Active Appearance Model, AAM)包含了一個形狀模型(Shape Model)以及一個紋
理模型(Texture Model),利用這兩個模型可以對輸入的人臉影像來進行模擬,並
可以把人臉的特徵準確的找出,因此這裡我們利用了主動外觀模型來匹配到輸入 的人臉上,並藉此而得到我們想要的人臉特徵。
主動外觀模型是由 Cootes 等人[16-18]所提出,它是由作者之前的研究 Active
Shape Model (ASM)[19]發展而來的,其主要是由一組形狀模型與一組紋理模型所
組成,接下來就詳述其模型的建置方法。
2.3.
人臉形狀模型
人臉形狀模型
人臉形狀模型
人臉形狀模型
在人臉的主動外觀模型中,包含了人臉形狀模型(Shape Model)。人臉形狀模 型中,包含了一個平均人臉形狀(mean shape)以及平均人臉形狀可容許的變化向 量組成,利用人臉模型就可以模擬出不同的人臉形狀出來。2.3.1.
特徵點的設置
特徵點的設置
特徵點的設置
特徵點的設置
在決定人臉特徵點的位置時,特徵點是由曲線的高曲率(High Curvature)部分 以及曲線間的 T 型交點(‘T’Junction),為了要定義出更確切的邊界,另外定義 了以上兩種特徵點的中間點,如圖 2-6 所示。 圖 2-6、特徵點的選取[18]在特徵點的選擇上, 個人臉的特徵點如圖 2-7 每邊各八個點、人臉輪廓共 巴的開闔,固在嘴巴的外緣設置了 了在不同表情變化下的特徵點位置 Eyes : 16 Contour : 19 圖 2-8、不同表情的特徵點標點情形 16 ,這裡參考了文獻[18][20-22]的特徵點定義 7,分別是眉毛兩邊各五個點、鼻子共九個點 人臉輪廓共19 個點,特別值得一提的是,為了要能模擬出人嘴 固在嘴巴的外緣設置了12 個點,在內緣設置了 6個點 了在不同表情變化下的特徵點位置。 Eyebrows Nose Mouth 圖 2-7、人臉特徵點的設置 不同表情的特徵點標點情形(使用 AR Database[ 的特徵點定義,定義出 70 鼻子共九個點、眼睛輪廓 為了要能模擬出人嘴 個點,圖 2-8 顯示 Eyebrows : 10 Nose : 9 Mouth : 18 23])
17
2.3.2.
形狀對齊
形狀對齊
形狀對齊
形狀對齊
在一開始,我們需要藉由輸入的人臉特徵座標來組成人臉的形狀,由於訓練 資料中的眾多人臉形狀包含了許多不同的變化,我們希望計算出他們的一組平均 形狀來代表這些形狀的一個基底。 首先我們要定義出一個人臉的形狀,根據上一節所定義出的 70 個特徵點座 標,我們將它依序來排列,就可以形成一個形狀(Shape),如下所示: A N, N, , , … , P, P, Q 70 (2-8) 其中 s 是所得到的形狀,xi,yi是特徵點的 xy 座標位置。 對所有 AAM 模型的訓練資料設置完成特徵點以後,由於每個輸入人臉形狀 的大小、位置、旋轉角度皆不一致,我們首先需要對齊(Aligning Shapes)所有輸入的形狀,以得到我們想要的平均形狀(mean shape),這裡是使用 Procrustes
Analysis[18][24]來對齊形狀;我們必須對於所有輸入的形狀做縮放、位移以及旋 轉來對齊,如(2-9)示所示,Tt (x)是經由縮放、位移以及旋轉的輸出,a、b、c、d 是縮放及旋轉的參數,而 tx、ty則是 x、y 方向的位移。 J R9 ST :U V == W (2-9) 首先我們先對所有形狀取一個平均做為我們想要對齊形狀的目標形狀 xi’ , yi’ i=1,2,…,70,而任一個輸入的形狀為 xi, yi i=1,2,…,70,我們透過兩者的線性轉換 關係(2-10)可以得到 a、b、c、d、tx、ty的矩陣參數,將之帶入(2-9)式可以計算出 轉正的輸入形狀。 X 5 Y Z9 TS : = =[ X \ \ \ \ \ \ Y ∑ F ∑ F ∑ F ∑ F \ ∑ FF] \ ∑ FF] \ ∑ F] \ ∑ F] n = 70 (2-10)
18 在這個過程中,我們一開始先計算出一組平均形狀來代表我們想要的目標形 狀,接著藉由上述的方法來將縮放、平移、旋轉的效果去除,並計算出新的平均 形狀出來,再重複同樣的步驟直至收斂。 在計算收斂的判定方面,我們藉由計算 Procrustes distance(2-11)來確定估測 出的平均形狀的上一次與這次的變化是否夠小而收斂,在(2-11)中 xj1,yj1為新 的平均形狀中特徵點的座標 xj1,yj1為前一個平均形狀中特徵點的座標。 ^. ∑ _P `N% `a `N% `ab `cN (2-11) 其整個流程如下: 1. 先將形狀座標中心點移到形狀中心(鼻子中心) 2. 由所有輸入形狀算出一個估測出的平均形狀(mean shape) 3. 藉由(2-9)與(2-10)計算出形變的形狀 4. 再由形變後的形狀估測出一個平均形狀(mean shape) 5. 迭代步驟 2~3 直到收斂。 訓練的形狀當中必須包含一些人臉的變化,在這裡我們取了 30 個人臉形狀 做為範例。一開始我們將所有的人臉形狀重疊再一起顯示於圖 2-9(a),其中每一 個點所代表的是在這 30 個訓練人臉形狀當中的 x、y 座標,接著我們利用 Procrustes Analysis 形狀對齊去除縮放、平移、旋轉效果後將所有形狀重疊在一 起的情形顯示於圖 2-9(b),可以看到其中的眉毛以及眼睛的部分有較明顯的對齊 結果,最後我們將對齊以後的所有形狀座標取平均值所算出的平均形狀(mean shape)顯示於圖 2-10。
19
(a)經過形狀對齊前的輸入形狀 (b)經過形狀對齊後的形狀
圖 2-9、經過形狀對齊前的輸入形狀與經過形狀對齊後的形狀
20
2.3.3.
模擬臉部形狀的變化
模擬臉部形狀的變化
模擬臉部形狀的變化
模擬臉部形狀的變化
在上一節中,我們找出對齊後的形狀(shape)以後,我們可以由式(2-8)得知每
一個形狀(shape)可以組成一 2v 維的向量,每個形狀(shape)都是分布於這 2v 維的 向量空間中的一個點,這些點所組成的一個範圍稱為允許形狀域(Allowable
Shape Domain, ASD) [19],在這個範圍裡所有的點都會與訓練資料相似,因此如
果我們能夠建立出這些點分佈的模型,我們就可以建立出由這個模型所產生的一
個位於 ASD 中的新的點,這些點就代表了各種不同的形狀。
為了要能夠找出每個人臉形狀的變化情形,來建立出人臉形狀變化的模型,
我們使用了主成分分析(Principal Component Analysis, PCA)來簡化這 2v 維度的資 料以找出所有形狀之間的變化情形[18],在這 2 維的資料中,平均人臉形狀(mean shap) s0是將所有的人臉相加取平均(2-12)也就是這個 ASD 的主軸, Aa 1N∑ x1FcN F , xF =955" Ah9f? A?= (2-12) 接著將所有的形狀減去平均形狀 s0,計算出其整體的共變異矩陣(covariance matrix)S: S hN∑ xhicN i% Aaxi% Aaj (2-13) 接著由共變異矩陣 S 可以計算出它的特徵向量(eigenvector)和特徵值(eigenvalue), 其中特徵向量會由大到小來排列,而所有的特徵向量皆會是單範正交 (orthonormal)的形式。 假設Φ是由前 t 大的特徵值對映到的特徵向量所組成,而我們就可以將任意 訓練資料 x 趨近表示為 x l Aa Φb (2-14) 其中Φ mN|m| … |mJ,b 是 t 維的向量由(2-15)所得 b Φox % A a (2-15)
由此(2-14)(2-15)的概念我們可以對於 Allowable Shape Domain 範圍中的任一
21 A Aa ∑ f1FcN FAF (2-16) 其中 si i=1,2,…n 為前 n 大特徵值對映到的特徵向量,pi i=1,2,…n 為權重值所組 成的形變參數(shape parameter)。 在 Shape Model 所能表示整個變化的比率 fv,是一個用來選擇特徵向量(λi) 的數目的依據,其計算方式是由選擇的前 t 大特徵值的總和除以所有特徵值的總 和如(2-17)所示: qP ∑ rs t suv ∑ rs (2-17) 圖 2-10 顯示了人臉形狀模型的平均形狀(a)和前三個變形(b)(c)(d)的正負向 量和大小(前三大特徵值的特徵向量),其中在這裡為了方便觀察,這裡的向量大 小放大 70 倍顯示。 (a) s0 (b) s1 (c) s2 (d) s3 圖 2-11、人臉形狀模型的 mean shape(a)和前三個變形模型(b, c, d)
22
2.4.
人臉紋理模型
人臉紋理模型
人臉紋理模型
人臉紋理模型
人臉的主動外觀模型中,還包括了紋理模型(Texture Model),人臉紋理模型 中,包含了一個平均人臉紋理(mean texture)以及平均人臉紋理可容許的變化組成, 利用人臉紋理模型就可以模擬出不同的人臉紋理出來。 本節將探討人臉紋理的定義,以及對於不同人臉形狀的紋理如何形變來產生 相同人臉形狀的紋理,以及最後是如何來模擬臉部紋理的變化情形。2.4.1.
人臉的紋理
人臉的紋理
人臉的紋理
人臉的紋理
人臉的紋理特徵可以是原始影像的色彩像素、灰階像素或是經由其他影像處 理之後所得到的像素數值所組成,(2-18)表示了紋理模型所組成的向量,gi為每 個像素裡的紋理像素數值,r 為紋理模型總共的像素數量大小,這裡我們使用形 狀模型裡的 mean shape 範圍所包含的所有像素數量(Texture pixel number)為紋理模型總共的像素數量。
" "N, ", … , "3 =?=w? f?x 5wyS? (2-18)
2.4.2.
Piecewise Affine Warping
由於訓練人臉影像中,每個人臉的形狀、位置、大小都不盡相同,我們在建 立人臉紋理模型時就必須將所有訓練資料中的人臉影像進行分段仿射變形
(Piecewise Affine Warping),在這個步驟中,我們使用了 Delaunay triangulation[25]
來對人臉形狀做切割,在對切割後的各個對映的三角形將每張訓練資料的人臉紋 理由原始形狀轉至平均形狀中。 Delaunay triangulation 是利用許多的三角形將一組輸入的點連接起來,它的 特性就是每個三角形的外接圓內不會有其他點的存在,我們將這個方法將人臉形 狀進行切割,並修改嘴巴部分以容許模擬出嘴唇開合的形狀以及將人臉形狀左右 三角形對稱,如圖 2-13 所示。
23 圖 2-12、Delaunay triangulation 的外接圓特性[21] 圖 2-13、人臉形狀以 Delaunay triangulation 表示 使用 Delaunay triangulation 將人臉形狀切割完成以後,我們要將人臉紋理值 轉正,這裡要將訓練的人臉形狀依每個切割出的三角形與平均形狀中所對應的三 角形進行轉換,將每個訓練的人臉形狀中三角形中的紋理像素值轉換到平均形狀 中的對應三角形中。
24 在輸入形狀中,zF , Fj、{` , `j、|E , Ej是形狀的任一個 Delaunay 三角形中的三個頂點座標,三角形中的任意一點座標 , j可以表 示為: z }{% z ~|% z (2-19) 其中 0 ≤ α,β ≤ 1,α與β如下: } ssss ssss ~ ssss ssss (2-20) 因此,我們利用α與β值可以算出紋理像素值 , j在平均形狀中的位置 , j,如圖 2-14: ] z ] } { ] % z] ~|] % z] (2-21) 圖 2-15 是四張訓練影像的紋理形變結果,最上一排是四張經過手動標記特 徵點的人臉影像;第二排是將輸入的人臉形狀以 Delaunay 三角形切割出來的人 臉形狀結果;第三排是將輸入人臉影像灰階值在手動標記的特徵點範圍內取 出,可以看到每張影像的形狀、位置、大小都不盡相同;最後第四排是將所 有的人臉灰階影像轉換至平均形狀中,其中人臉的特徵位置(眼睛、鼻子、嘴 巴……)都被轉至相同的地方。 圖 2-14、三角形的形變
2.4.3.
模擬臉部紋理的變化
模擬臉部紋理的變化
模擬臉部紋理的變化
模擬臉部紋理的變化
將人臉紋理影像轉正後 化以建立臉部紋理模型, 料中的人臉紋理資料進行化 臉影像紋理相加,計算出 25 圖 2-15、人臉形變的情形模擬臉部紋理的變化
模擬臉部紋理的變化
模擬臉部紋理的變化
模擬臉部紋理的變化
將人臉紋理影像轉正後,我們需要找出所有訓練人臉影像資料之中的紋理變,因此利用Principal Component Analysis(PCA)
料中的人臉紋理資料進行化簡,以找出人臉紋理的變化,首先先將所有轉正的人
計算出平均紋理(mean texture) A0:
資料之中的紋理變
Principal Component Analysis(PCA)來將訓練資
a NJ∑ gJFcN F , 接著將所有的紋理減去平均紋理 matrix)G, G N ∑ g icN i% 計算出共變異矩陣 G的特 由大到小來排列,其中所有的特徵向量會是單範正交 利用與形狀變化模型相同 a 其中i(x) i=1,2,…n為前 組成的形變參數Texture 圖 2-16 顯示了(a)平均紋理
的模型 A1、A2、A3、A4
(b)A1 圖 2-16、人臉紋理模型的平均紋理 26 , gF =955" =?=w? A?= 紋理減去平均紋理A0,計算出其整體共變異矩陣(covariance %agi% aj 的特徵向量(eigenvector)和特徵值(eigenvalue) 其中所有的特徵向量會是單範正交(orthonormal) 利用與形狀變化模型相同的概念我們可以建立出一個紋理的變化模型 ∑ FcN FF Aa 為前n 大特徵值對映到的特徵向量,λi i=1,2,… Texture parameter。 平均紋理A0以及(b)、(c)、(d)、(e)前四個臉部紋理的變化 4(前三大特徵值的特徵向量)。 (a)A0 (c)A2 (d)A3 人臉紋理模型的平均紋理(a)和前四個變化模型 (2-22) (covariance (2-23) (eigenvalue),特徵向量會 (orthonormal)的形式。 的概念我們可以建立出一個紋理的變化模型: (2-24) …n 為權重值所 臉部紋理的變化 (e)A4 個變化模型(b, c, d, e)
27
2.5.
影像校正演算法
影像校正演算法
影像校正演算法
影像校正演算法
到目前為止,我們已經建立出了主動外觀模型中的形狀模型以及紋理模型, 接著,我們對於一個輸入的人臉影像,要找出這張影像的特徵出來,接下來將敘 述輸入人臉的特徵擷取方法。 我們利用前面訓練出來的人臉形狀模型以及人臉紋理模型,即可藉由調整形 狀參數(shape parameter)以及紋理參數(texture parameter),即可得到模擬出的人臉;在這裡,我們可以利用這個模型來對輸入人臉影像做模擬,並可得到對準之人臉 特徵位置。
在主動外觀模型的校正演算法中,大致分為 Independent AAM[22] 以及
Combine AAM[17]兩種方法,Independent AAM 是將形狀模型與紋理模型分開,
分別計算出形狀參數(shape parameter)以及紋理參數(texture parameter)即可得到 最後的模擬結果;而 Combine AAM 是將形狀模型與紋理模型整合為一個模型,
A Aa ∑ TFcN FAF (2-25)
a ∑ TFcN FF (2-26)
藉由計算一個整合的參數 c = (p1,p2,…,pn,λ1,λ2,…,λm)T,l ≤ m+n,來得到模擬的結
果,Combine AAM 所需要的 l ≥ max(m,n);而在 Independent AAM 主要是以形狀
參數的計算為主,在計算量上 Combine AAM 所需要更多的計算量,因此,這裡 選擇 Independent AAM 做為我們使用的方法,其中 Independent AAM 即是使用了
Lucas-Kanade 人臉校正演算法。
2.5.1.
Lucas-Kanade 演算法
演算法
演算法
演算法
Lucas-Kanade 人臉校正演算法[22][26]主要是以影像梯度(Gradient)為基礎的 影像變化估測演算法,這個方法常用於影像形變校正、物體追蹤等,我們將參考 文獻[22][26]的方法再作改進,以達更佳的效果,接下來一開始將敘述在[22]以及 [26]中所提出的 Lucas-Kanade 人臉校正演算法。28 假定一個樣板影像(Template Image) A0為形變前的影像而一個輸入影像 I 代 表形變以後的目標影像,其中 I 與 A0存在有一形變的關係可以使 I(W(x;p)) = A0(x), 因此我們希望透過的最小化來算出形變參數 p。 ∑ A ax % IWx; p (2-27) 由於影像的變化為非線性,因此形變參數 p 無法直接求出,因此我們利用迭代的 方式(2-28),來將參數 p 逐漸找出最佳值。 ∑ a % ; f ∆f, f f ∆f (2-28) 在最佳化計算的過程中,∆f的估測值是以目前的f值為依據,因此將式(2-28) 的; f ∆f對∆f l 0做泰勒展開可得: ; f ∆f ; f 0 $∆f O∆f (2-29)
其中為 I 的影像梯度(gradient)值,$為 W 的 Jacobian,$為 Steepest
descent images;忽略高次項,將此代入式(2-28)中可得: ∑ Ra % ; f % $∆fU (2-30) 對∆f微分求極值可得: 2 ∑ R $UjRa % ; f % $ ∆fU 0 (2-31) ∑ R $UjR$U ∆f ∑ R $Uj_a % ; fb (2-32) 可求出∆f: ∆f N∑ R $U j _a % ; fb (2-33) 其中 H 為 Hessian matrix: H ∑ R $UjR$U (2-34) Lucas-Kanade 演算法的迭代過程可分以下迭代九個步驟[26],其整體流程圖 如圖 2-17 所示:
29 迭代: (1) 根據; f形變影像,計算出形變影像; f (2) 計算出誤差影像(Error Image) a % ; f (3) 根據; f形變梯度影像 (4) 求出; f的 Jacobian $
(5) 計算出 steepest descent images
$ (6) 由(2-34)計算出 Hessian matrix (7) 計算∑ R $U j _a % ; fb (8) 由(2-33)式計算出∆f (9) 更新參數f f ∆f 直到∆f小於某閥值
在 Lucas-Kanade 演算法中,由於在每次的迭代過程中,Warping Jacobian,
Steepest descent image 以及 Hessian matrix 都和形變參數 p 有關,需要在每一次
的迭代過程中一再的進行計算,因此在運算量上會非常龐大,需要花費許多時間, 因此下一小節將探討改良式的 Inverse Compositional Algorithm[20][22][26]。
30
圖 2-17、Lucas-Kanade 演算法流程
2.5.2.
Inverse Compositional 演算法
演算法
演算法
演算法
Inverse Compositional (IC) Algorithm [22][26]的是為了要避免讓所有要計算
的過程均與形變參數 p 相依,這裡一開始先介紹[22]及[26]中所提出的方法。 這裡將式(2-28)改成: ∑ _; f % a; ∆fb (2-35) ; f ; ∆fN; f (2-36) 我們將a; ∆f做泰勒展開可得: a; ∆f a; 0 a$ ∆f O∆f (2-37)
31
其中a為樣板影像的影像梯度(gradient)值,
$為 W 的 Jacobian,a
$為 Steepest descent images;忽略高次項,將此代入式(2-35)中可得:
∑ R; f % a; 0 % a$∆fU (2-38) 對∆f微分求極值可得: 2 ∑ Ra$U j R; f % a; 0 % a$∆fU 0 (2-39) ∑ Ra$U j Ra$U ∆f ∑ Ra$U j _; f % a; 0b (2-40) 其中令a; 0 a可求出∆f: ∆f N∑ R a$U j _; f % ab (2-41) 其中 H 為 Hessian matrix: H ∑ R a$UjRa$U (2-42)
在 Inverse Compositional 演算法與 Lucas-Kanade 演算法的差異中,
Lucas-Kanade 演算法要計算出輸入影像的梯度值(gradient),接著再計算出 Warping Jacobian 並求出 Steepest descent image 以及 Hessian matrix,在每次迭代
過程中都需要重複計算這一個部分;而在 Inverse Compositional 演算法當中,是
使用樣版影像a去計算出影像的梯度值,由於樣版影像是已知的,因此之後的
Warping Jacobian 以及 Steepest descent image 和 Hessian matrix 都是已知的;IC
演算法只要先在迭代前計算出樣版影像的梯度值,Warping Jacobian 以及 Steepest
descent image 和 Hessian matrix 都可以預先求出,而迭代時就可以省去這一部分
的計算量,因此迭代的速度可以提升許多,並且在迭代的結果也不會降低它的成 功率,因此們論文選擇此改良方法來做我們的影像校正方法。
Inverse Compositional 演算法的迭代過程可分前處理 4 個步驟(I~IV)以及迭代 5 個步驟((1)~(5))[22],為了方便區分前處理以及迭代的步驟,前處理 4 個步驟以 (I~IV)表示,而迭代 5 個步驟以((1)~(5))表示,其整體流程圖如圖 2-18 所示:
32
前處理:
I. 根據樣板影像a計算出梯度影像a
II. 求出; 0的 Jacobian
$
III.計算出 steepest descent images a
$ IV.由(2-42)計算出 Hessian matrix
迭代: (1).根據; f形變影像,計算出形變影像; f (2).計算出誤差影像(Error Image) ; f % a (3).計算∑ Ra $U j _; f % ab (4).由(2-41)式計算出∆f (5).更新參數; f ; f ; ∆fN 在這裡使用的 Inverse Compositional 演算法由於把部分要計算的東西拿到了 前處理的步驟中,所以在迭代的過程中較 Lucas-Kanade 演算法少了四項計算, 因此可以減少不少的運算量。
接下來介紹將 Inverse Compositional 演算法套用在 AAM 的方法[22],由於形
變的部分已於 2.4.2 介紹過,因此這裡將要介紹 Warp Jacobian[27],假定 ; f ; f, ; fj,則: $ X $v $ $v $ … $ … $ Y (2-43)
33 圖 2-18、Inverse Compositional 演算法流程 其中表示為形變位置; f在 x 軸的座標,f是代表形變參數,利用 chain rule 可以將 $ 表示為: $ ∑ R t t $ t t $ U P JcN (2-44) 同樣的將 $ 表示為: $ ∑ R t t $ t t $ U P JcN (2-45) 我們改寫(2-19)式可得: a, a 1 % } % ~ Fa, Faj }`a, `aj ~Ea, Eaj
34 其中Fa, Faj、`a, `aj、Ea, Eaj為形變前影像中三角形的三個頂點。 同理,當形變到另一個影像時,可表示為: ; f 1 % } % ~F , F j }` , ` j ~E, E j 其中F , F j、` , ` j、E, E j為三角形形變後影像,分別對三個頂點微 分可得: s s 1 % } % ~ (2-46) } (2-47) ~ (2-48) s s 0 (2-49) 由上式可知,當¡ ¢ , £, 4時, ¤ ¤ 0,因此 (2-44)(2-45)可改寫為: ¥ ¥f ¦ V ¥ ¥J ¥J ¥f ¥ ¥J ¥J ¥fW P JcN 1 % } % ~¥f¥F } ¥` ¥f ~ ¥E ¥f (2-50) ¥ ¥f ¦ V¥¥J¥f¥J ¥¥J¥f¥JW P JcN 1 % } % ~¥f¥F } ¥` ¥f ~¥f¥E (2-51) 我們將多個訓練人臉形狀模型(2-16)以矩陣的方式排列,可得: AN A … A1 § ¨ ¨ ¨ ¨ ©ANv Av ANv A v ª A 1v A1v « ¬ « AN A AN A ª A 1v A1v®¯ ¯ ¯ ¯ ° (2-52) 其中At與At為一個人臉形狀在第 m 個形狀變化特徵向量的第 t 個 x 與 y 特徵點 的位置, t $ 與 t $ 可由微分(2-16)得到:
35 t $ A t (2-53) t $ A t (2-54) 寫成矩陣型式為: § ¨ ¨ ¨ ¨ ¨ ¨ ¨ ¨ ©¥¥fN N ¥N ¥f ¥N ¥fN ¥N ¥f ª ¥N ¥f1 ¥N ¥f1 « ¬ « ¥P ¥fN ¥P ¥f ¥P ¥fN ¥P ¥f ª ¥P ¥f1 ¥P ¥f1® ¯ ¯ ¯ ¯ ¯ ¯ ¯ ¯ ° ¥ § ¨ ¨ ¨ ©fNANv fAv ª f1A1v fNANv fAv… ª f1A1v fNAN fA ª f1A1 fNAN fA ª f1A1® ¯ ¯ ¯ ° ¥ § ¨ ¨ ¨ ¨ ©ANv Av ANv A v ª A 1v A1v « ¬ « AN A AN A ª A 1v A1v®¯ ¯ ¯ ¯ ° (2-55) 將其帶入(2-50)(2-51)可以計算出 Warping Jacobian: $ 1 % } % ~A s }A ~A (2-56) $ 1 % } % ~A s }A ~A (2-57) 在 Inverse Compositional 演算法中我們要更新形變參數時,我們是由反向 ; ∆f來計算出; ∆fN,其中: ; ∆f ; 0 $ ∆f $∆f ±∆f (2-58) 其中; 0 是單位形變(identity warp), ; ∆f ; %∆f %$∆f $∆f ±∆f (2-59) 因此根據第一項,我們可得: ; ∆fN ; %∆f (2-60) 當輸入人臉影像時,我們會先將平均形狀sa放入影像中,接這再由更新形變 參數的方式,來從平均形狀做參數的調整,因此(2-60)可以由(2-16)的線性組合方 式表示: ∆Aa % ∑ ∆f1FcN FAF (2-61)
36 其中∆Aa ∆Na, ∆Na, … , ∆Pa, ∆Paj是; ∆fN由平均形狀所的改變量,為 了要將; ∆fN更新到; f,我們要計算出目前形狀位置的變化量 ∆A ∆N , ∆N , … , ∆P , ∆P j,知道置些位置以後,我們就可以由(2-16)計算 出; f ; ∆fN的參數: fF] A F · A ∆A % Aa (2-62) 其中fF]是; f ; ∆fN的第 i 個形狀參數,二這裡是內積相乘,而形 狀向量AF是單範正交(orthonormal)。 我們要從∆Aa計算出∆A考慮一個人臉形狀中的第 i 個頂點,我們必須由平均 形狀Aa中的∆Fa, ∆Faj計算出目前形狀 s 中的∆F , ∆F j,如圖 2-19 是利用
Delaunay 三角形的方式將平均形狀Aa透過 affine warp 轉換至目前形狀 s,要由
∆Fa, ∆
Faj計算 ∆F , ∆F j必須由三角形 affine warp 從Fa, Faj ∆Fa, ∆Faj
得到F , F j ∆F , ∆F j,但是這裡每個特徵點所相鄰的三角形不會只有一 個,使用不同三角形所計算出的結果會不相同,因此,在這裡我們是使用計算所
有相鄰三角形所得的結果取平均如此可以使人臉形狀結果較平順。
之前所描述的 Inverse Compositional 演算法沒有考慮到 independent AAM 裡
的紋理變化,在這裡使用了相同的演算法加入紋理的變化模式[22]: ¦ ZAax ¦ λiAix % IWx; p ³ icN [ ´ µAax ¦ λiAix % IWx; p ³ icN µ (2-63) 圖 2-19、Fa, Faj ∆Fa, ∆Faj經由 Affine warp 得到F , F j ∆F , ∆F j
37
我們就由轉化上式以滿足 Inverse Compositional 演算法的定義,因此我們要
轉化為求最小化[26]:
¶Aax IWx; p¶·¸h¹ º» µAax ¦ λiAix % IWx; p ³ icN µ ·¸h¹º (2-64) 其中Af95F表示由紋理的特徵向量形成的線性子空間,而Af95F»則是表示 有正交補集的線性子空間,(2-64)的前半部分只與形狀變化參數 p 有關,而後半 部分對於形狀參數 p 的最小值均為 0,因此採用 Inverse Compositional 演算法先 求出前半部分的形變參數 p,接著再將 p 當作常數,而求出後半部的紋理參數λi, 由於 Ai是單範正交的(orthonormal),因此紋理參數可表示為[22]: λi ∑´Aix · IWx; p % Aax (2-65)
由於 Inverse Compositional 演算法是藉由Af95F»來運算必須先將Aa$ 投影至Af95F»來做運算,而 steepest descent image 投影至Af95F»如下式:
SD½x Aa$% ∑ V∑FcN ´Aix ·Aa$WAix (2-66) 其 Inverse Compositional 演算法整體流程如下[22],為了方便區分前處理以 及迭代的步驟,前處理 4 個步驟以(I~IV)表示,而迭代 5 個步驟以((1)~(5))表示: 前處理: I. 根據樣板影像a計算出梯度影像a II. 求出; 0的 Jacobian $
III.由(2-66)計算出改變的 steepest descent images SD(x)
IV.由 III.的 SD(x)計算出 Hessian matrix = ∑ C jC 迭代:
38 (2).計算出誤差影像(Error Image) ; f % a (3).計算∑ SDx o_IWx; p % Aaxb (4).由計算出∆f N∑ SDx j_; f % ab (5).更新參數; f ; f ; ∆fN 迭代結束: 由(2-65)計算出紋理變化參數λi。
2.5.3.
整體形狀正規化轉換
整體形狀正規化轉換
整體形狀正規化轉換
整體形狀正規化轉換
在一般的傳統 AAM 演算法中,對人臉偏轉的角度容忍度十分有限,而容易 對於有偏轉角度的人臉造成迭代的錯誤;而另一方面,我們在訓練人臉形狀變化 模型之前,會先經由 Procrustes Analysis[18][24]來對人臉做對齊,而移除了一些 位移、縮放和旋轉的資訊,因此,在這裡我們必須進行整體形狀正規化轉換(GlobalShape Normalizing Transform)[22]來得得到實際人臉所擁有的位移、縮放和旋轉
資訊。
這裡定義了¾ ; ¿為訓練資料的 Global shape normalizing transform,平移為 t, tÁ,旋轉角度θ,縮放 k 倍,因此可以利用一個參數q a, b, t, tÁo來代表
其形變參數,其中 a = 4T<A Å % 1,b = 4 sin Å,N(x ;q)如下所示:
Nx ; q V1 ab 1 aW R%b xyU VttÁW (2-67)
在包含之前的形變與 Global shape normalizing transform,其最後得到的人臉
形狀為¾ ; f ; ¿ Aa ,對於平均形狀(Mean shape)s0中的任一點 x0,其
在最後的人臉形狀位置也是¾a ; f ; ¿,而其所對應到的紋理值為aa, 在¾a ; f ; ¿中也應當是aa,因此 AAM 模型可表示為:
Ê Ë¾a ; f ; ¿Ì a ∑ λ³icN iAix (2-68)
39 當給定一輸入影像 I(x),需要讓Ê Ë¾a ; f ; ¿Ì與之匹配,讓兩者的差 異最小化,因此必須讓其最小化: ∑´_a ∑ λ³icN iAix% I¾ ; f ; ¿b (2-69) 為了與之前的形狀模型(2-16)搭配運算,需要建立一組線性組合的係數[22]。 若 mean shape sa xNa, yNa, … , xÍa, xÍao,則假定sN sa xNa, yNa, … , xÍa, yÍao, s %yNa, xNa, … , %yÍa, xÍao,sÎ 1,0, … ,1,0o,sÏ 0,1, … ,0,1o,如圖 2-20, 並將¾ ; ¿表示為: ¾ ; ¿ Aa ∑ ¿ÏFcN FAF (2-70) (a)sN xNa, yNa, … , xÍa, yÍao (b)s %yNa, xNa, … , %yÍa, xÍao (c)sÎ 1,0, … ,1,0o (d)sÏ 0,1, … ,0,1o
40
可以將(2-70)來計算 Piecewise affine warping 以及 Warping Jacobian,其計算
方法與(2-16)計算的方法是相同的。 在形狀參數更新的方面,在(2-60)以知 ; ∆fN ; %∆f,這裡需要 產生N W的形狀參數,則參數可表示為∆¿, ∆f可表示為: ¾ ; ∆¿, ∆fN ¾ ; %∆¿, %∆f (2-71) 故合成形式為: ¾ ; ¿, f ¾ ; ∆¿, ∆fN l ¾ ; ¿, f ¾ ; %∆¿, %∆f (2-72) 要找出¾ ; %∆¿, %∆f,其方法類似於之前的方法,根據(2-61)可以將 此部分改寫為: ∆Aa % ∑ ∆f1FcN FAF% ∑Ï`cN∆¿`A` (2-73) 這裡定義了: ¾ Aa; ¿, f sÐ (2-74) 則 ¾ Aa; ¿, f sÐ N ÑAa ¦ fFAF; ¿ 1 FcN Ò Aa ¦ fFAF 1 FcN ¦ ¿`A` Ï `cN (2-75) 利用正交的關係,可以計算出¾ ; ¿, f ¾ ; ∆¿, ∆fN的形狀 參數: ¿F AF· AÐ% Aa (2-76) pi AF · ¾AÐ; ¿N% Aa (2-77) 在紋理方面,這裡使用和之前一樣的方法計算(¿N, ¿, ¿Î, ¿Ï)的 steepest descent image: SD½x AaÔÓ% ∑ V∑FcN ´Aix ·AaÔÓWAix (2-78)
41
與 p 參數的 steepest descent image,j=1,2,…,n:
SD½ÕÏx Aa$% ∑ V∑´Aix ·Aa $W FcN Aix (2-79) 同樣的 Hessian matrix 的計算為: ∑ C jC (2-80) 同樣的紋理參數可表示為: F ∑D´F · ¾; f; ¿ % a (2-81)
其結合 Global shape normalizing transform 的 Inverse Compositional 演算法整 體流程如下[22],為了方便區分前處理以及迭代的步驟,前處理 4 個步驟以(I~IV)
表示,而迭代 5 個步驟以((1)~(5))表示:
前處理:
I. 根據樣板影像a計算出梯度影像a
II. 求出; 0的 Jacobian $及ÓÔ
III.由(2-78)與(2-79)計算出改變的 steepest descent images SD½x和 SD½ÕÏx
IV. 由(2-80)計算出 Hessian matrix
迭代:
(1).根據¾; ¿與; f形變影像,計算出形變影像¾; f; ¿
(2).計算出誤差影像(Error Image) ¾; f; ¿ % a (3).計算∑ SDx o¾; f; ¿ % Aax
(4).由 inverse Hessian matrix 計算出∆f與∆¿
(5).更新參數N ; f, ¿ N ; f, ¿ N ; ∆f, ∆¿N 迭代結束:
2.5.4.
梯度影像修正
梯度影像修正
梯度影像修正
梯度影像修正
在上一節我們已經介紹了結合 Compositional 演算法,在這個演算法的過程中 的梯度影像a,梯度影像一共包括了垂直方向的梯度 梯度(gradient Y)兩種,在計算這個梯度影像時 人臉形狀(mean shape)所包含的影像 臉樣版影像整張下去算出 均人臉形狀所包含的影像部分為計算出的梯度值 如此一來,因為我們計算 色部分不是我們所需要人臉部分 誤的如圖 2-22,而造成某些影像在影像校正中人臉形狀邊緣的特徵點發生錯誤的 現象。 因此,在這裡我們將計算出來的梯度影像 對於 gradient X 與gradient Y 像素的梯度值結果所取代之如 果即會有所改善。 圖 42在上一節我們已經介紹了結合Global shape normalizing transform
在這個演算法的過程中,一開始需要計算出樣版影像 梯度影像一共包括了垂直方向的梯度(gradient X) 在計算這個梯度影像時,由於我們所需要的部分只有平均 所包含的影像,而我們實際在計算影像梯度時通常是將人 臉樣版影像整張下去算出垂直方向的梯度與水平方向的梯度,然後再取出人臉平 均人臉形狀所包含的影像部分為計算出的梯度值。 因為我們計算整張人臉樣版影像如圖 2-21,而圖2 色部分不是我們所需要人臉部分,因此計算出來的梯度值在人臉形狀邊緣會是錯 而造成某些影像在影像校正中人臉形狀邊緣的特徵點發生錯誤的 在這裡我們將計算出來的梯度影像gradient X 與gradient Y gradient Y,我們將形狀邊緣錯誤的梯度值以其形狀往內一個 像素的梯度值結果所取代之如圖 2-23,如此一來,在影像校正中的特 圖2-21、用於計算梯度的樣板影像
lobal shape normalizing transform的 Inverse
一開始需要計算出樣版影像a (gradient X)與水平方向的 由於我們所需要的部分只有平均 而我們實際在計算影像梯度時通常是將人 然後再取出人臉平 2-21 的邊緣黑 梯度值在人臉形狀邊緣會是錯 而造成某些影像在影像校正中人臉形狀邊緣的特徵點發生錯誤的 gradient Y經過調整, 我們將形狀邊緣錯誤的梯度值以其形狀往內一個 影像校正中的特徵點計算結
(a) Gradient X 圖 (a) Gradient X 圖2 圖 2-24 顯示了進行梯度影像修正 像修正之前所進行影像校正的結果 的結果所進行影像校正的結果 進行梯度影像修正之前較易發生特徵點校正錯誤的情形 之後,特徵點校正錯誤的情形會減少 43 Gradient X (b) Gradient Y 圖2-22、原本的水平與垂直梯度影像 Gradient X (b) Gradient Y 2-23、修改後的水平與垂直梯度影像 梯度影像修正之前後的結果,圖 2-24(a)的部分是梯度影 像修正之前所進行影像校正的結果,而圖 2-24(b)的部分則是梯度影像修正之後 的結果所進行影像校正的結果;可以看到其影像校正的結果,在人臉形狀的邊緣 之前較易發生特徵點校正錯誤的情形,而在進行 特徵點校正錯誤的情形會減少。 的部分是梯度影 的部分則是梯度影像修正之後 在人臉形狀的邊緣, 而在進行梯度影像修正
圖 2-24 特徵點對齊情形 形變到平均形狀情形 (a)梯度影像修正 44 24、梯度影像修正之前後影像校正結果 到平均形狀情形 特徵點對齊情形 形變到平均形狀情形 梯度影像修正之前 (b)梯度影像修正之後 到平均形狀情形 之後