國
立
交
通
大
學
多媒體工程研究所
碩
士
論
文
影片中人物分群方法之研究
The Investigation of Clustering Algorithms for
Clustering People in Video
研 究 生:魏良佑
指導教授:王才沛 教授
影片中人物分群方法之研究
The Investigation of Clustering Algorithms for Clustering People in Video
研 究 生:魏良佑 Student:Liang-you Wei
指導教授:王才沛 Advisor:Tsai-pei Wang
國 立 交 通 大 學
多 媒 體 工 程 研 究 所
碩 士 論 文
A ThesisSubmitted to Institute of MultimediaEngineering College of Computer Science
National Chiao Tung University in partial Fulfillment of the Requirements
for the Degree of Master
in
Computer Science Aug 2011
Hsinchu, Taiwan, Republic of China
影片中人物分群方法之研究
學生:魏良佑 指導教授:王才沛 國立交通大學多媒體工程所摘要
本文主要是研究影片中人物分群的方法,人物分群最明顯的特徵就是臉部影 像,但是影像的解析度、光影、拍攝角度、膚色、場景、分鏡 ( shot ) 卻會大大 影響分群的結果,因此本文還利用身體影像以及影片的時間資訊作為分群輔助, 我們把相似的人物先合併成演員串列,如此可避免過多雜亂的臉部影像降低效能, 並計算串列間的人物相似度矩陣。 上述是利用一些客觀的條件處理人物分群,本文還結合叢集整合的概念,試 著將這些演員串列分群,可得到較細膩的叢集整合相似度矩陣,藉此了解串列間 的相似程度,人物相似度矩陣與叢集整合相似度矩陣兩者依據串列的時間差距決 定權重值,分別乘上權重值加總過後,即是最終用來分群的相似度矩陣,搭配階 層式凝聚法,我們可以得到最終的分群結果。The Investigation of Clustering Algorithms for
Clustering People in Video
Student:Liang-you Wei Advisor:Tsai-pei Wang
Institute of MultimediaEngineering College of Computer Science National Chiao Tung University
Abstract
We investigated clustering algorithm for clustering people in video in this paper. Face image is the most obvious feature of people, but its resolution, luminance, shadow, shooting angle, skin color, and shot, will greatly affect clustering, so we also used the body image and movie time information as the auxiliary. We aggregated the similar people image to the same actor sequence, it can avoid that many disorderly face images reduced performance, and then we computed person similarity matrix between sequences for use.
Above-mentioned use some objective condition to cluster people, and we also integrated the concept of cluster ensemble, and we tried to cluster the actor sequences. The ensemble similarity matrix is more exquisite than the person similarity matrix. It can help us to realize the similarity between actor sequences. Person similarity matrix and ensemble similarity matrix product their own weight which be computed according to the difference of time, and we sum up the two products of similarity matrix and their own weight, taking it as the final similarity matrix for clustering. We used the final similarity matrix on hierarchical agglomeration to find the final clustering.
誌謝
本文能夠完成,首先得感謝我的指導教授 王才沛老師,老師的細心指導, 讓我在研究受挫時能知道明確的目標在哪,與老師討論總能有新的體悟,對於實 驗也能即時給我不同的想法。也很感謝陳祝嵩教授、林文杰教授、黃雅軒教授抽 空擔任我的口試委員,對於論文的內容以及實驗的方法給我許多很好的建議。 另外,也要感謝實驗室的三位學長,蘇偉誌、徐崇桂、林俞邦,碩一有你們 的照顧,當自己有不懂的專業問題詢問你們時,你們總能不厭其煩地教導我,實 在感到很窩心,還有我的同學蘇裕傑、林俞丞、邱俊予,跟你們一起渡過這兩年 打球、趕報告、吃大餐、CVGIP 得獎、作論文的日子,實在很多彩多姿,與學 弟楊堡評的相處就像好朋友一樣,這個碩士生涯肯定讓我回味無窮。 最後,要感謝的是我的母親,在這兩年的碩士生涯妳讓無後顧之憂,全心全 意地完成我的碩士學位,每當自己做了決定跟妳報備,妳總是支持著我,真的很 感謝妳。目錄
摘要... I Abstract ... II 誌謝...III 目錄... IV 圖例... VII 表格... VIII 第一章 簡介...1 1.1 研究目的 ...1 1.2 論文架構 ...2 第二章 文獻探討...32.1
人物分群 ...32.2
叢集整合 ...4 第三章 前置處理...8 3.1 產生臉部影像與分鏡偵測 ...8 3.2 建立粗略的演員串列 ...10 3.3 臉部影像處理及分割演員串列 ...10 3.4 篩選演員串列及建立重疊資訊 ...14 3.4.1. 膚色篩選演員串列 ...14 3.4.2. 色彩空間篩選演員串列 ...15 3.4.3. 演員串列的重疊資訊 ...17 3.5 人物相似度 ...17 臉部相似度 ...18 身體相似度 ...18 4.3.1 身體影像之權重值 ...184.3.2 身體權重的參考值 ...19 第四章 實驗方法...20 4.1 PCA 轉換及產生演員串列的領導臉 ...20 4.2 產生叢集整合相似度矩陣及合併相似度矩陣 ...21 4.3 凝聚演算法 ...24 4.3.1 弱凝聚法 ...25 4.3.2 強凝聚法 ...25 4.3.3 兩階段弱凝聚法 ...25 4.3.4 兩階段強凝聚法 ...25 4.4 叢集整合參數選用 ...26 4.4.1 領導臉-θdyn ...26 4.4.2 k-medoid 隨機範圍-θ ...26 rg 4.4.3 叢集整合相似度矩陣之權重值-θw ...26 4.4.4 凝聚法-θagg ...27 4.4.5 兩階段凝聚法比例-θrat ...27 4.4.6 凝聚群數-C ...27 第五章 實驗結果...28 5.1 資料集 ...28 5.2 效能計算 ...29 5.2.1 RI ...29 5.2.2 ARI ...30 5.3 C 之效能 ...32 5.4 θ 之效能 ...33 rg 5.5 θagg與θrat之效能 ...34
5.6 θw之效能 ...36 5.7 θdyn之效能 ...38 5.7.1 θdyn與領導臉個數 ...38 5.7.2 θdyn與時間、效能 ...39 5.8 數據比較 ...42 第六章 結論與未來展望...44 參考文獻...45
圖例
圖1-1 演員索引示意圖 ··· 2 圖2-1 叢集整合示意圖 ··· 5 圖3-1 色彩直方圖範例 ··· 9 圖3-2 臉部影像處理範例圖 ··· 11 圖3-3 分割演員串列範例圖 ··· 12 圖3-4 三維色彩直方圖範例 ··· 13 圖3-5 兩個演員串列··· 16 圖4-1 兩串列的 minimum 3-top ··· 23 圖5-1 M1~M6 對 C 的效能曲線 ··· 32 圖5-2 M1~M6 對 的效能曲線 ··· 34 圖5-3 M1~M6 對θagg與θrat的效能曲線 ··· 35 圖5-4 M1~M6 對θw的效能曲線 ··· 37 圖5-5 串列對θdyn的領導臉比例曲線 ··· 39 圖5-6 M1~M6 對θdyn的效能曲線 ··· 40 圖5-7 在 M1 底下θdyn的效耗費時間比值 ··· 41表格
表3-1 演員串列之臉部以及身體的相異度 ...13 表3-2 RGB 分量標準差 ...16 表3-3 串列篩選結果 ...17 表5-1 測試影片的特性 ...28 表5-2 U 對應 V 統計表 ...29 表5-3 分群範例統計表 ...31 表5-4 與[21]數據比較表...42第一章 簡介
1.1
研究目的
科技進步的今日,從人手一支的可錄影手機、大街小巷的都裝設監視器,不 難發現影片早已成為記錄生活上點點滴滴的主要媒介,原本影片需要較大空間存 放的限制,拜科技之賜,記憶體的快速發展,此束縛逐漸被解放,因此影片的使 用頻率大增;另外一個原因,是因為影片比圖片包含更多的資訊,例如:時間資 訊,有了時間資訊我們可以判斷影像中變化的先後次序。 現今,觀賞影集或電影早已成為主要的生活娛樂之一,然而,當我們在挑選 想要觀賞的影片時,或是突然想喚起影片中某個情節的回憶之際,在眾多的影片 中瀏覽漫長的片段,使我們不易尋找也耗費相當多的時間成本,這時如果有一套 系統可以標記片段索引輔助我們快速瀏覽,則我們可以有效地得到我們想要的影 片資訊。除了視聽娛樂上的需求,警政單位也常常需要瀏覽監視器的影片協助辦 案,因此發展一套快速瀏覽影片的工具是必要的。目前已有許多研究是依據影片 內容而發展的技術,例如:視訊瀏覽 ( video browsing )、影片摘要 ( video summarization ) 等等,可提供使用者影片內容的資訊,尚未觀賞影片的使用者, 也可藉由影片呈現的資訊快速篩選出自己想觀賞的影片。 上述的視訊瀏覽以及影片摘要,主要是針對影片中的整個畫面作處理以及辨 識,而本文為了想達到快速瀏覽影片的目的,因此必須對人物出現的時間建立一 個時間軸,時間軸資訊可供觀賞者快速瀏覽片段,也可瀏覽指定演員演出的精采 片段。 人物在影片中出現的時間軸將被當成人物索引,而人物索引最基本的作法即 是利用最具特徵的臉部影像,但臉部影像的解析度、光影、拍攝角度、膚色、場 景、分鏡將會大大影響索引的結果,因此本文中還使用身體影像以及影像產生的 時間資訊作為輔助。首先,我們把畫面裡所有被偵測到的臉部影像,以及正下方長寬 資訊 員串 我們 似度 後的 入叢
1.2
產生 串列 結論 寬為兩倍臉 訊,依據客觀 串列所產生 分群時,除 們也加入叢 度矩陣,最後 的相似度矩 叢集整合相論文
在本篇的 生演員串列 列到分群的 論以及未來 臉體影像大小 觀的條件建 生的時間,即 除了利用臉 叢集整合的概 後依據串列 矩陣作為最後 相似度矩陣確文架構
的第二章節敘 ,包含如何 的實驗步驟, 來展望。 小的身體影 建立演員串列 即可得到人 圖1-1 臉部影像、身 概念,試著讓 列產生的時間 後分群的依 確實有助於 敘述人物分 何生成以及篩 ,第五章是呈 影像,以及串 列,試著將 人物索引。圖 演員索引 身體影像以 讓這些臉部 間差距決定 依據,執行凝 於提升分群效 分群以及叢集 篩選演員串 呈現實驗結 串列產生的時 將演員串列分 圖1-1 為人物 引示意圖 以及時間資訊 部影像分群 定兩個相似度 凝聚演算法 效能。 集整合的相 串列的條件 結果以及探討 時間資訊, 分群,分群 物索引的示 訊產生人物 ,找出他們 度矩陣的權 ,最終由實 相關文獻,第 ,第四章則 討,第六章 當作是輸入 群的結果搭配 示意圖。 物相似度矩陣 們的叢集整合 權重,以合併 實驗可得知 第三章介紹如 則是敘述從演 章是總結本篇 入的 配演 陣, 合相 併過 ,加 如何 演員 篇的第二章 文獻探討
2.1
人物分群 ( People Clustering )
不論是在圖片或是影片中,臉部影像都是人物的主要特徵,因此使用臉部影 像或是其他資訊執行分群,達到辨識人物的效果,就稱為人物分群。實際上利用 臉部影像執行分群,時常會因為圖片或影片中的解析度、光影、臉部姿勢、膚色、 場景、分鏡等等,各種因素影響分群的效能,因此〝以臉部影像為主軸利用其他 條件輔助人物分群的方法〞才陸陸續續被提出。 在[1]中提到,圖片中的臉部影像資訊與影片中的臉部影像資訊有所不同, 影片中可以帶來更多除了臉部資訊外的訊息,例如:時間資訊,正確使用可提升 分群效能;[2]也提到在影片中利用畫面的相依性以及時間軸資訊,把系統偵測 到的所有臉部影像利用條件限制產生演員串列 ( actor sequence ),再使用分群演 算法把相似的演員串列聚集在同一群;[2]也提出重要的兩個觀點,第一,產生 演員串列時,串列內的臉部影像在時間軸上不能產生重疊 ( overlap ),而且在同 一個串列裡的臉部影像我們將認定他們是相同的演員;第二,串列使用分群法聚 集時,若兩個演員串列裡的臉部影像時間軸發生重疊,則此兩個串列必定屬於不 同的演員,因此將不被聚集在同一群內。 對於影片中時間資訊的使用,在[3]文中有提出更深入的作法,作者使用前 後總共拍攝11 年的影集作為人物分群的資料庫 ( database ),這些影集並非在完 全固定環境的情況下拍攝而成,使得人物分群的難度增加;但是在這麼長的影集 中,演員的年齡、髮型、外觀等等,都會隨著時間逐漸改變,我們也擁有更長的 時間軸資訊,因此作者建議除了利用臉部影像外,頭髮以及衣服資訊都是可以輔 助分群的利器。對於時間軸的使用,作者提出三個概念,首先,在小範圍的時間 差距內,例如在同一個分鏡,我們可以利用人物的移動 ( motion )以及對人物的 追蹤 ( tracking ),把相似的臉部影像聚集成一個演員串列,第二,在中範圍的時間差距內,例如不同的分鏡但仍屬同一集,可利用人物的頭髮以及衣服影像把不 同分鏡的演員串列聚集起來,最後,在大範圍的時間差距內,例如不同集,由於 演員在不同集身著的衣服資訊早已大不相同,因此不能再使用衣服資訊作為分群 的提示。相同演員在同一集中的頭髮與衣服資訊參考原則是,時間差距愈小參考 價值就愈大,因此[3]提到使用權重的方式調整輔助資訊的參考值。[4]也提出相 同的概念,先在每個演員串列中挑選一個關鍵臉 ( keyface ),再利用關鍵臉的 SIFT ( Scale Invariant Feature Transform )特徵、膚色、身體影像的色彩直方圖, 搭配分群演算法執行人物分群。 影像本身的特性會影響分群效能,而臉部姿勢也會造成分群上極大的困擾, [5]提到〝不同人物在類似的臉部姿勢下,臉部影像間的相似度〞比〝相同人物 在不同臉部姿勢下,臉部影像間的相似度〞還來得高,這表示針對臉部姿勢的分 群比針對人物的分群還容易,因此[5]的作者提出兩階段分群法,首先針對臉部 姿勢分群,再來才對相同臉部姿勢的影像人物分群,如此確實能提升分群效能。 本節第三段有提到分鏡資訊可作為人物分群的輔助資訊,但是它能夠直接拿 來作分群嗎?[6]提到,儘管基於人臉辨識 ( face recognition )的分群法可以有不 錯的效能,但卻要花費較大的時間成本,因此[6]文中就提出兩個較快速的臉部 影像分群法,SSC ( Similar Shot-Based )與 SSC+FTC ( Face Thumbnail Clustering ), 它們之所以比較快速,是利用人物出現所在場景的相似度取代傳統臉部特徵向量 的距離計算,而實驗數據顯示,僅管SSC 與 SSC+FTC 處理長度為一小時影片的 分群效能,比人臉辨識的分群法平均降低 6%與 0.9%,但卻只花費了 0.35 秒與 31 秒,如此快的速度若使用在大型資料庫上,肯定能節省不少時間成本。
2.2
叢集整合 ( Cluster Ensemble )
在已知資料的分佈情況下,我們可以採用現今對其分佈有較好效能的分群法 執行分群;但是實際上在很多時候我們處理的是未知的資料,或者,資料的分佈根本雜亂無章,甚至即使知道資料的分布情況也沒有最佳分群法可使用的狀況下, 這時我們不得不一一嘗試各種分群法尋找最佳解,但這是沒有效率的,也並非一 個完整且完善的解決之道。 叢集整合即是解決上述情況的一個概念,它主要的作法是參考各種不同演算 法或是相同演算法在不同條件下產生的〝分割〞(本文中我們稱一個分群結果為 〝分割〞( partition ) ),從這些分割中挑出或是組合出最佳的整合結果 ( ensemble ), 如此一來,演算法對於某些特定資料的適用性之缺點就可加以改善[7]。另外, 在叢集整合中使用分割時也只是使用其分群結果,而不會存取到最原始的資料特 徵向量或是萃取特徵的方式,甚至也不需理會是何種演算法所產生的分割,這就 是知識重用 ( knowledge reuse ) 的概念[8]。 圖2-1 是叢集整合的示意圖,我們以X代表一個包含n 個物件 ( object ) 的 資料集 ( dataset ),Φ(1,...,r)為r 個產生分割的函數,λ(1,...,r) 為r 個標籤 ( label ),每 一個標籤都是 n 維的向量,向量的值即代表物件所屬的群號,Γ 是共識函數 ( consensus function ),主要目的是整合λ(1,...,r) 形成最終整合的結果λ。 圖2-1 叢集整合示意圖 資料來源[8]
叢集整合需要許多擁有高質量 ( quality ) 且多樣性 ( diversity ) 的分割[9], 高質量指的是分割具有高正確率,而這些分割也不能完全相同,必須有差異性才 能創造出新的分群結果,這裡所說的差異性即多樣性,有這兩項條件才有充足的 資訊產生最正確的整合結果,也由於如此,叢集整合的計算量頗大,且具有無法 使用在高維度以及大型資料集 ( dataset ) 的缺陷,針對這兩點缺陷,[9]使用 RP ( Random Projection ),將特徵降維至〝有興趣〞的子空間,改善第一點;[10]則 是利用CBEC ( Centroid Based Ensemble Clustering Algorithm ) 來產生整合結果, 如此可改善第二點,並且在整合過程中濾除干擾 ( outlier )。[11]藉由〝單次瀏覽〞 ( single scan ) 的方式產生整合結果,進而提高執行速度,改善叢集整合時速度過 慢的缺點。 叢集整合的第一個步驟就是要產生相異的分割,產生的過程中有許多變數, 我們若改變其中一個變數使得分群結果改變即可得到新的分割,其中包含幾個重 點,選擇不同的分群演算法、在相同演算法中選擇不同的參數值、不同的初始化 [7],另外,如改變物件的描述方式、改變物件的前置作業、重新取樣( resampling )、 部分取樣 ( subsampling ) 都有可能產生擁有高質量和多樣性的分割;[12]就是以 重新取樣來產生分割,並證實重新取樣更健全 ( robust ) 與穩定 ( stable ),[13] 也認為拔靴重複抽樣法 ( bootstrap resampling ) 可避免原始資料的小變動影響分 群結果。 收集許多高質量與多樣性的分割之後,需要整合他們產生最終的整合結果, 這就是共識函數的工作,[14]提出兩種評估共識函數好壞的方法。共識函數最常 使用證據累積 ( evidence accumulation )法,證據累積即是把多個分割視為各自獨 立的證據,利用共相關函數[7] ( co-association function ) 統計兩兩物件在不同群 數的分群結果中之相似程度,最後利用相似度矩陣搭配分群演算法產生最終的分 群結果,其中分群法以階層式凝聚法 ( hierarchical agglomeration ) 最為常見。[15] 也以證據累積為主要的概念,設計EBSC ( Evidence-Based Spectral Clustering ) 針 對於資料中有混著數字與文字的物件分群;此外,[16]也提出另一種新的共識函
數的概念,機率累積 ( probability accumulation ),與證據累積差別在於共識函數 不同,此方法實驗在三個人造的資料集上,效能顯示優於證據累積。
產生叢集整合的分群結果,除了上述利用共識函數的方式外;另外一種是把 叢集整合的問題轉換為圖形切割的問題,[8]提出 CSPA ( Cluster-based Similarity Partitioning Algorithm )、HGPA ( HyperGraph-Partitioning Algorithm )、MCLA ( Mera-CLustering Algorithm ) 產生最終的分群結果,而[17]也提出把叢集整合轉 換成二分圖形分割 ( bipartite graph partition )的問題,利用 HBGF ( Hybrid Bipartite Graph Formulation ) 產生分群結果。最終[18]提出一個藉由收集雜訊 ( noise ) 至雜訊族群 ( noise cluster ) 的想法,可以把效能提升。對於整合的結果 我們利用[19]、[20]計算分群的效能,藉此觀察並改善變數對於分群結果的影響。
第三章 前置作業
實驗時,我們模擬[21]提到的產生演員串列的規則。3.1 節說明如何從影片 到產生臉部影像以及產生分鏡的資訊,3.2 節介紹建立粗略演員串列的條件,3.3 節介紹臉部影像的前處理以及如何分割演員串列
,3.4 節則敘述如何篩選已建立 的演員串列並產生重疊 ( overlap ) 資訊,3.5 節則說明如何計算人物的相似度。3.1
產生臉部影像與分鏡偵測
本文探討在影片中的人物分群,因此要把影片中的臉部影像全部擷取出來, 另外我們也需要分鏡資訊輔助臉部影像結合成為演員串列,因此得事先產生每個臉部影像的分鏡資訊。測試影片是以30fps ( frames per second ) 的速度播放,為
了避免過多相同的影像拉長程式執行時間,因此我們以5fps 的速度,利用“Free Video To JPG Converter"[22]這套軟體,從影片中擷取影像作為後續處理的資料。 把影片切割成影像後,我們利用OpenCV [23]快速地偵測每一張影像中可能的人 臉位置。 影片中的攝影鏡頭常常圍繞在故事焦點的人物身上,因此當主角在同一個鏡 頭 ( take ) 中出現一段時間,以 5fps 的速度擷取影像,經由 opeCV 的臉部偵測, 我們將會得到許多同一演員且很相似的臉部影像,為了降低許多同演員且相似臉 部影像的獨立處理時間,我們將這些連續出現的同演員影像合併為演員串列,後 續以演員串列為單位處理人物分群。由於影片中的場景或鏡頭轉換將使影像背景 明顯變化,因此我們使用色彩直方圖 ( color histogram ) 的方法,計算前後張影 像的直方圖向量,兩者的歐氏距離 ( Euclidean distance ) 若小於臨界值則被認定 是同一場景。色彩直方圖的計算可幫助我們了解影像內像素值 ( pixel value ) 的 分佈。實驗的影像皆以無符號八位元的數字來表示,且以 16 為一個區間 ( interval ) ,總共可分成 16 個區間,統計影像中像素值落在各區間的個數即為
色彩 得到 若超 圖3 的色 (a)為 (e)( 彩直方圖, 到1×48的向 超過5000,則 3-1(a)為原始 色彩直方圖 (b) (e) 為原始圖, f)(g)分別為 若把影像的 向量,我們 則我們把這 始圖,(b)~( 圖,最後(h)為 ) ) (b)~(d)分別 為(b)、(c)、 的RGB 成分 們定義場景相 這兩個影像視 (d)分別為原 為合併(e)~( 圖3-1 別為(a)的 R (d)的色彩直 分都計算直 相異度為兩 視為不同場 原始圖的R (g)的色彩直 (a) (c) (f) (h) 色彩直方 R、G、B 成 直方圖, (h 直方圖向量並 兩張影像的直 場景。下圖 3-RGB 成分影 直方圖。 方圖範例 成分影像 h)為(e)(f)(g 並合併,則 直方圖向量 -1 為色彩直 影像,(e)~(g g)的合併圖 則一張影像可 量之歐氏距離 直方圖的範例 g)分別為(b) (d) (g) 圖 可以 離, 例, )~(d)
3.2
建立粗略的演員串列
依照[21]我們不僅利用 openCV 偵測到的臉部方框,也利用連接在臉部方框 底下,長寬為兩倍臉部影像大小的範圍作為身體影像的資訊。首先,我們認為, 要被蒐集在同一個演員串列內的影像必須屬於同一個場景,如此可避免分鏡時納 入不同演員的影像;影像是連續性的,因此我們也必須對於臉部影像的大小與位 置作篩選,如果按照上述三個條件所形成的演員串列成員個數太少,我們會無法 從中得到足夠的串列資訊來處理人物分群,因此四個條件被設計如下[12],唯有 四個條件都通過才能成為串列裡的一員。¾
演員串列裡的每個臉部影像必須是同一場景且出現在連續的影像中。¾
前後兩張臉部的中心位置相差距離必須在35 個像素內。¾
每張臉部大小必須為前一張臉部大小的0.5 至 1.5 倍之間。¾
經由上述三點所建立的演員串列中,影像個數必須超過3 個。3.3
臉部影像處理及分割演員串列
為了避免太亮或太暗的臉部影像造成計算相似度的差異性太大,因此我們必 須統一臉部影像的特性,在[21]中影像的前處理嘗試了,光影平衡加上高斯低通 濾波器 ( Gaussian low-pass filter ),以及 LoG ( Laplacian of Gaussian )兩種方式, 而我們選擇效能較好的前者。公式(1)的 x 是待為調整的像素值,μ 與δ 分別為該 張影像所有像素值的平均值與標準差,μ0與δ0為期望整張影像調整過後的平均 值與標準差,實驗時測試的影像皆以無符號的八位元表示,因此我們設定μ0為 127、δ 為 50,最後得到 x 轉換過後的像素值為 x′ 。 0(
)
0 μ0 (1) δ δ μ × + − → ′ x x 調整完影像特性之後,為了影像處理的方便性,我們把所有openCV 所偵測到的臉部彩色影像,以公式(2)把 RGB 色彩空間的像素值
(
pr,pg,pb)
轉換成一維 的灰階影像值pgray。 (2) 114 . 0 587 . 0 299 . 0 r g b gray p p p p = × + × + × 灰階影像經由光影平衡之後,再利用標準差為 1,5×5的高斯低通遮罩 ( mask ) (3)過濾,最後調臉部整影像大小為70×70的大小,而圖3-2 是從 openCV 偵測擷取的臉部影像到降維至70 維度影像的過程。 (3) 1 4 7 4 1 4 16 26 16 4 7 26 41 26 7 4 16 26 16 4 1 4 7 4 1 273 1 ⎥ ⎥ ⎥ ⎥ ⎥ ⎥ ⎦ ⎤ ⎢ ⎢ ⎢ ⎢ ⎢ ⎢ ⎣ ⎡ (a) (b) (c) (d) (e) (f) (g) (h) 圖3-2 臉部影像處理範例圖 (a)為原始圖 1, (b)為(a)之光影平衡, (c)為(b)之灰階影像, (d)為(c)之高斯影像 (e)為原始圖 2, (f)為(e)之光影平衡, (g)為(f)之灰階影像, (h)為(g)之高斯影像 儘管每張影像已經調整至70×70,但是運算量仍然過大,因此我們先把每張 70 70× 的影像擺放成1×4900的向量,本文中以 F表示,之後利用PCA ( PrincipleComponent Analysis ) 的方法,計算 F1T, … , FiT, … 的特徵值 ( eigenvalue ) 與
特徵向量 ( eigenvector ),一個1×4900的特徵向量記作 e,實驗中我們取出前 70
用公式(4), F被降維至1×70的向量 ;考慮臉部與身體降維向量在計算相似度 /相異度時能有相同的比重,因此我們只先把140×140的身體影像調整大小至 70 70× ,並擺放成1×4900的 B向量。 F
B
F=
(4) [21]提到為了避免在接連的分鏡上有不同的演員佇立在相同的位置上,造成 串列裡的人物不一致,將會降低分群效能,因此我們利用兩個條件排除此種狀況。 若在同一個演員串列中的前後 F與 B分別超過臉部相異度門檻值以及身體相異 度門檻值,則我們將以兩者之間作為界線,分割成兩個子串列。 臉部相異度被我們定義為,前後兩個 向量差距之歐氏距離,而身體相異度 的計算我們則是使用三維色彩直方圖 ( 3D color histogram ),計算前後兩個 B的 三維色彩直方圖向量差距之歐氏距離即為身體相異度。實驗中,我們設定臉部相 異度門檻值為2000,身體相異度門檻值為 2500,圖 3-3 是一個串列分割的範例, 圖 3-3(a)為測試的演員串列,圖 3-3(b)為串列分割的結果,表 3-1 為前後影像的 臉部以及身體相異度。 (a) (b) 圖3-3 分割演員串列範例圖 (a)演員串列, (b)為(a)的分割結果三維色彩直方圖 ( 3D color histogram ) 的概念與色彩直方圖相當類似,只不 過前者事先把三維的像素值轉換成一維,再作直方圖統計。舉例來說,一個無符 號八位元的數字可表示 0~255,實驗中我們以 16 為一個區間間隔,可把像素值 轉 換 至 0~15 的 索 引 值 , 假 若 有 一 個 像 素 在 RGB 色 彩 空 間 的 像 素 值 為
(
255 , 31 , 10)
,則它的索引值為(
15 , 1 , 0)
,把這索引值看作是16 進位的數值 即為F10 ,因此這個像素的像素值代表 3856,再調整範圍從 1 開始,則此像素16 最終得到的像素值為3857,最後再統計所有像素值的個數即為三維色彩直方圖, 圖3-4 為三維色彩直方圖的範例,圖 3-4(a)為原始圖,圖 3-4(b)為(a)圖的三維色 彩直方圖。 (a) (b) 圖3-4 三維色彩直方圖範例 (a)為原始, (b)為(a)之三維色彩直方圖 色彩直方圖與三維色彩直方圖,由於在直方圖的計算方式不同,若v為區間 個數,前者產生1× 的直方圖向量,後者則是3ν 1 ν× 3的直方圖向量,兩者之間前 者可快速且粗略地以直方圖向量描述畫面,後者則是可區分兩個些微差距的畫面, 因此在使用上,場景的轉換由於變化較大且容易區分,因此我們使用粗略描述畫 面的色彩直方圖即可,若使用三維色彩直方圖,則當人物走動,它將會很敏感的 反映出來,反而會造成困擾;而當在處理臉部或是身體影像時,由於膚色佔據影 像的大部分,因此需要更細膩地區分兩張圖,故選擇三維色彩直方圖來處理。表3-1 演員串列之臉部以及身體的相異度 串列影像 與前一 F的臉部相異度 與前一 B的身體相異度 1 2 490 124 3 647 162 4 3517 3375 5 617 545 6 936 387 7 474 151 範例中的演員串列夾雜著兩個演員的影像,觀察表中串列影像4 與串列影像 3 的 F相異度為3517,明顯大於臉部相異度門檻值 2000,而且 B相異度也超過 身體相異度門檻值2500,因此藉由分割影像串列,可以使在串列中前後相異度 較大的兩張影像分割成為兩個子串列。
3.4
篩選演員串列及建立重疊資訊
要建立演員串列時,必須經過一系列條件的篩選,以下3.5.1~3.5.4 就是在不 同階段所考量的篩選條件。3.4.1
膚色篩選演員串列
為了減少openCV 偵測臉部的錯誤,因此在分割完演員串列之後,利用洪詩 祐[24]所提出的計算膚色的公式(5),以及不同人種的參數,對演員串列作進一步 的篩選。洪詩祐[24]提出的方法,先把影像的色彩空間轉換成 YCbCr,並利用 Cb 與 Cr 的數值計算膚色的機率 P,xv代表受測像素的Cb 與 Cr,即為[
]
T Cr , Cb , μv 與Σ
分別為xv的平均值以及共變異矩陣。(
)
(
)
⎥
⎦
⎤
⎢
⎣
⎡
−
−
=
⎥
⎦
⎤
⎢
⎣
⎡
=
⎟
⎠
⎞
⎜
⎝
⎛
−
−
Σ
−
=
−60
.
46
01
.
31
01
.
31
98
.
44
,
03
.
149
17
.
113
(5)
2
1
exp
1δ
μ
μ
μ
v
v
v
v
v
x
x
P
T受測像素的膚色機率 P 若是超過門檻值,即視為膚色像素,實驗中我們使 用白種人的參數,並且設定膚色機率的門檻值為0.1,統計整個 F被視為膚色像 素的比例,並移除小於 50%比例的 F,假若串列中沒有任何一張臉部影像的膚 色比例大於50%,極有可能是 openCV 的偵測錯誤,因此這個演員串列將被刪除。
3.4.2
色彩空間篩選演員串列
經過串列分割以及膚色篩選後,儘管被保留的 F都符合篩選條件,但為了後 續要計算 F的相似度,我們不希望 F的像素值標準差太大,主要原因是,當 F的 像素值標準差很大時,極有可能包含很多的背景資訊,但是膚色像素的比例又符 合系統要求,這樣的 F 與一個完全都是臉部資訊的 F 計算相似度時, F 的背 景資訊像素值將會影響描述兩者之間相似度的精確性,因此在這一步驟我們使用 F的RGB 色彩空間的標準差作為篩選限制。 首先,單一 F的RGB 分量標準差分別為δr、δ 、g δb,而所有δr、δ 、g δb之 平均值及標準差分別為δr、δg、δ ,與b std( )
δr 、std( )
δ 、g std( )
δb,我們以[
δr δg δb]
為基準把S 、E δ 、g δb的合理範圍界定在平均值的正負兩倍標準差範圍內,若 F的 r δ 、δ 、g δb〝都〞超過該分量的合理範圍,則此 F不合格;演員串列中若合格的 F小於三個,則此串列將被刪除,代表此串列所包含的 F與其他所有串列的 F相 差甚大,若把此演員串列保留下來,除了極有可能把此演員串列錯誤分群外,也 有可能會造成其他演員串列錯誤分群的連鎖效應。以下是利用RGB 分量標準差篩 選演員串列的範例,圖3-5 為兩個不同的演員串列,表 3-2 為每個 F的RGB 分量 標準差,表3-3 為兩個演員串列最後的篩選結果,由表 3-3 可得知,此步驟確實有 效地篩選出擁有過多背景影像但膚色像素比例又符合系統預期的演員串列。(a) (b) 圖3-5 兩個演員串列, (a)串列 1, (b) 串列 2 首先,先計算每個影像的RGB 分量的標準差 表3-2 RGB 分量標準差 F δr δg δb 是否合格 F 38.6 26 22.8 是 F 37.6 25.5 22.2 是 F 37.3 25.3 22.1 是 F 37.7 25.8 22.9 是 F 38.3 26.2 22.7 是 F 35.8 27.4 27.2 否 F 34.6 26.7 26.8 否 F 34.5 26.7 26.7 否 F 33.9 26.3 26.1 否 F 34.3 26.2 26.1 否 假設所有影像的δr、δ 、g δb之平均值與標準差為
[
]
[
]
( )
( )
( )
[
]
[
0.5 0.5 2.0]
22 25 37 = = b g r b g r std std std δ δ δ δ δ δ 則RGB 標準差的合理範圍是[
36~38 24~26 18~26]
3.4.3
演員串列的重疊資訊
當建立好演原串列後,一般而言,若兩個串列所包含的臉部影像在時間軸上 有重疊,表示兩個串列是以不同的演員所構成,我們稱為〝重疊〞( overlap ), 利用此資訊我們可以避免不同的演員被分在同一群的情況,規則為公式(6)。( )
⎩
⎨
⎧
=
(
6
)
otherwise
,
0
overlap
are
and
if
,
1
,
OV
i
j
I
iI
j3.5
人物相似度
實驗中,為了使分群擁有更多的資訊,我們不僅使用臉部影像,也加上身體 影像作為輔助,而這兩個資訊的相似度矩陣我們以權重值的方式結合成為人物相 似度矩陣。3.3 提到臉部相異度被定義為,兩個 向量差距之歐氏距離,而身體 相異度則是兩個 B的三維色彩直方圖向量差距之歐氏距離,擁有這兩者之後, 我們可以計算影像間的臉部影像相似度s ,以及身體影像相似度P s ,利用兩個B 影像的時間差距Δ 來評估t s 的權重B ω ,最後帶入公式(7)就可產生兩影像間的人B 物相似度s ,作為叢集整合的基礎。 P( )
(
( )
)
( )
( )
( ) ( )
)
7
(
,
,
,
,
,
1
,
j
i
j
s
i
j
i
j
s
i
j
r
i
j
i
s
P=
−
ω
B⋅
F+
ω
B⋅
B⋅
B 表3-3 串列篩選結果 演員串列 影像合格數 是否保留 串列15
是
串列21
否
3.5.1
臉部相似度
我們以兩個 差距之歐氏距離作為臉部相似度d ,而兩個演員串列間的臉F 部相異度我們取當中最小的數值代表,δF為所有dF的標準差,利用公式(8)我們 把臉部相異度dF轉換成臉部相似度s 。 F( )
( )
(
8
)
2
,
exp
,
2 2⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
−
=
F F Fj
i
d
j
i
s
δ
3.5.2
身體相似度
臉部影像對於演員串列的分群是最重要的,而身體影像也可以輔助分群,兩 個影像間的身體相異度我們定義為,兩個 B的三維色彩直方圖向量差距之歐氏 距離d ,同樣地,兩個演員串列間的身體相異度我們取當中最小的數值代表,B δB 為所有dB的標準差,利用公式(9)我們把身體相異度dB轉換成身體相似度s 。B( )
( )
(
9
)
2
,
exp
,
2 2⎟⎟
⎠
⎞
⎜⎜
⎝
⎛
−
=
B B Bj
i
d
j
i
s
δ
3.5.3
身體影像之權重值
儘管影片裡的演員會隨著劇情而變更服裝內容,但在時間上,若兩個影像的 時間差距很短時,兩個影像中的演員很有機會是同一人,而他們的衣服也很有可 能是一樣的,因此身體影像的權重值ωB我們參考了兩個影像的時間差距Δ ,若t 是兩個串列,則以所有影像產生的平均時間作為該串列的生成時間,另外還有兩 個可以控制身體權重值變化的參數h、σ ,帶入公式(10)即可得到ωB,實驗中設 定h 為 0.2,σ為 1500。( )
( )
(
10
)
2
,
exp
,
2 2⎟⎟
⎠
⎞
⎜⎜
⎝
⎛ Δ
−
⋅
=
σ
ω
Bi
j
h
t
i
j
3.5.4
身體權重的參考值
實驗中基於〝在相近的時間內同一演員極有可能穿著相同的服裝〞的觀點, 我們納入身體影像輔助分群,並且在時間差距Δ 愈大時,參考身體影像的權重t 值就愈小。在實驗中可能會加入不同的測試影片,因此若兩個是來自不同影片的 影像,則身體影像的相似度就不需要也不能參考,因此參考值r 就被定義如公式B (11),I 與i Ij代表兩個不同影像。( )
⎩
⎨
⎧
=
(
11
)
otherwise
,
0
movie
same
in the
and
if
,
1
,
i j BI
I
j
i
r
第四章 實驗方法
第三章基本上是仿照[21]的作法,主要目的是利用一些客觀的條件產生演員 串列以及人物相似度矩陣S ,這一章節則是說明如何運用這些已建立的演員串P 列產生最終分群的結果,實驗中利用叢集整合的概念設計實驗。首先,在4.1 節 說明利用PCA 轉換,產生新的向量,並說明如何產生演員串列的領導臉,4.2 節 則說明如何產生叢集整合相似度矩陣,以及說明如何把與叢集整合相似度矩陣與 人物相似度矩陣合併,4.3 節介紹實驗中所使用的四種凝聚演算法,最後,在 4.4 節介紹實驗中選用哪些參數。4.1 PCA 轉換及產生演員串列的領導臉 ( leader face )
在3.3 節中已介紹過利用所有 openCV 偵測到的臉部影像,以 PCA 的方法把 4900 1× 的 F降維至1×70的 作演員串列的篩選;然而,現在我們已經完成所有 演員串列的篩選,演員串列裡的影像成員早已大不相同,因此我們重新把目前被 保留在演員串列內的所有 F依照3.3 節的作法,取出前 70 大特徵值所對應的新 的臉部降維矩陣為BF,同樣地, F以公式(12)也被降維到新的1×70向量 ,之 後臉部影像的運算都從降維過後的 為基礎。 F
B
F(12) [11]說明一套在眾多物件 ( object ) 中選 leader 的方法,[4]也提到,可在演 員串列當中選擇關鍵臉 ( keyface ) ,以關鍵臉作為往後處理串列運算的基礎.。 在實驗中,我們也使用[4]的相同概念,但是選用臉部影像的條件與[4]不相同, 因此在文中我們選出來的臉部影像稱為領導臉 ( leader face ),主要目的是想藉由 減少串列中的臉部影像換取時間成本,並試著用最少的領導臉使效能達到可接受 的範圍內,我們稱這些串列中屬於領導臉的臉部影像集合為領導臉串列,往後只
利用領導臉串列的成員處理該串列的運算。 選擇領導臉的作法,首先,先計算演員串列內 對 的距離矩陣D,用公 式(13)式把範圍平移縮放至 01 之間接著運用D′在階層式凝聚演算法上,並設定 一個0 到 1 的閥值θ ,凝聚過程中假若即將被合併的兩群之間的距離超過dyn θ ,dyn 則停止凝聚,這樣一來我們可以得到對演員串列內的所有 的分群結果,之後在 每一群中,挑出一個〝與群內其他的 差距總和最小的 〞作為該群的領導臉。
( )
( )
min
( )
(
13
)
max
min
D
D
D
D
D
−
−
=
′
θdyn的選用將會影響領導臉的產生以及領導臉的個數,當θdyn為0,沒有一 個 被合併,形成各自一群的情況,因此演員串列裡的每個 都被選為領導臉,我們稱此情形為「all face」;而θdyn為1 時,所有 都被合併為一群,因此以〝與
群內其他的 差距總和最小的 〞當作領導臉,我們稱此情形為「one face」;
all face 與 one face 是兩種極端的情形,之間還有其他的可能性,因此我們另外也
嘗試用其他0 與 1 之間的θdyn來調整領導臉的個數。
4.2 產生叢集整合相似度矩陣及合併相似度矩陣
在上述3.5 節中,串列產生的人物相似度是利用串列本身的時間特性、臉部 特徵以及身體特徵來計算串列間的相似度,除了利用這些客觀的條件外,我們也 試著讓所有領導臉串列進行分群,利用分群的結果了解串列之間的相似度。實驗 中我們以串列為單位,採用 k-medoid 分群法,而 k 的數值是從一個固定的範圍 隨機挑選,每個範圍都作100 次取平均的,以下是 k-medoid 的虛擬碼 ( pseudo code ):{
}
{
}
{
}
(
)
(
)
(
)
END
;
stop
ELSE
;
step3
and
step2
repeat
;
IF
Repeat
step4.
,
1
,
~
1
,
,
min
arg
:
center
Update
step3.
~
1
,
,
min
arg
:
label
Compute
step2.
sequences
of
label
,
centers
to
sequences
random
assign
,
,
...
,
,
sequences
,
,
...
,
tion
Initializa
step1.
medoid
-k
, ~ 1 2 1 2 1 2 1L
L
L
L
r
j
i
k
t
q
q
d
c
r
i
c
q
d
l
L
r
l
,
...
,
l
,
l
L
k
k
c
c
c
C
r
q
q
,
q
Q
i j i j i l l j i q t j i k j i r k r=
′
≠
′
≤
≤
=
∀
=
=
∀
=
=
′
=
=
=
∑
= ≠ =φ
:
k-medoid 與 k-means 的演算法過程相當類似,兩者的主要差別是在於更新群 中心的方式不同,k-means 是把群內所有串列的平均值作為群中心;而 k-medoid 則是以〝與群內其他串列差距總和最小的串列〞當作群中心。在計算兩個領導臉 串列的距離時,由於串列內的 是原先演員串列分群的各群領導臉,因此單一 不太可能與另一個串列裡的全部領導臉都很相近,所以兩的領導臉串列之間我們 只在乎他們差距最小的那幾個配對組合的距離。 我們以歐氏距離計算兩個 的差距,實驗中設定minimum k-top 的 k 值為 10, 若兩個演員串列的 配對數小於k,則會以全部配對的平均距離作為兩個串列的 距離,以下是計算兩個串列間距離的虛擬碼,兩個演員串列q 與i qj分別擁有個g 和h 個領導臉。{
}
{
}
(
)
(
(
)
)
(
1 2)
1 2 2 1 2 1and
of
distance
Euclidean
,
~
1
,
~
1
,
,
of
top
-k
minimum
1
,
,
...
,
,
,
,
...
,
,
LF
LF
LF
LF
d
h
t
g
s
LF
LF
d
k
q
q
d
LF
LF
LF
q
LF
LF
LF
q
jt is j i jh j j j ig i i i=
=
∀
=
∀
=
=
=
為了方便觀察,圖4-1 我們使用被調整至70×70大小的openCV 偵測臉部影像,圖4-1 是一個計算 minimum k-top 的範例,圖 4-1(a)與(b)為兩個演員串列,
串列1 的臉部有稍微轉動,串列 2 的臉部也是轉動中,但只轉到正面,速度比串 列1 更快。若是在兩個串列的臉對臉的距離矩陣中取 minimum 3-top 平均,則所 取出的配對結果為圖4-1(c),相較於其他配對組合,此三組配對確實較容易被辨 認為同一個演員。實際上,兩個串列的minimum 3-top 平均為 5.78,反觀,若是 計算所有臉對臉的平均距離則為8.09,上升幅度高達 39.9%,如此高的比例,極 有可能會導致這兩個串列被錯分開來,因此,比起計算兩個串列的所有臉部影像 配對的平均距離,minimum k-top 反而更容易看出兩個串列間的關係。
選擇使用k-medoid 而非 k-means 的原因,是由於使用 k-means 會牽涉到更新
群中心時,是以串列為單位,抑或是以串列內的領導臉為單位,但是在產生領導 串列時,所作的 PCA 和選擇領導臉時,都已經把原先的串列資料簡化了,並且 我們執行 k-medoid 或是 k-means 只是為了產生串列間的相似度矩陣,因此不必 計算到如此細微,而且 k-medoid 的中心更新方式是挑選〝與群內其他串列差距 (a) 串列 1 (b) 串列 2 (c) 配對結果 圖4-1 兩串列的 minimum 3-top
總和最小的串列〞當作群中心,這樣的群中心與k-means 的群中心兩者誤差仍在 可接受的範圍內。 我們使用4.1 所產生的領導臉串列執行 k-medoid,而群數 k 則是在某個固定 範圍的隨機數,經由隨機k 值得到的分割 ( partition ) 可以幫助我們了解串列之 間的相關程度,在這裡我們以Pr作為第r 個分割的標記,定義兩個串列在同一個 分割裡的相似度是以共相關 ( co-association ) [7]的計算方式,統計 間在Pr的叢 集整合相似度為s ,另外計算總共 d 個分割的 間平均相似度為(rE) s*E,如公式(14)。
( )
( )
=∑
( )
⎩ ⎨ ⎧ = d r r E E j i r E j i s j i s q q j i s , , ) 14 ( otherwise , 0 partition a in cluster same in the and if , 1 , ) ( * ) ( 實驗時我們考量3.5 節的人物相似度,s ,以及本節敘述的叢集整合相似度,P E s ,兩者以加權的方式結合,θω為叢集整合的權重值,最終形成我們使用的相 似度s,定義如公式(15),s 不僅僅包含各演員串列的客觀條件(s ),也包含一些P 較細膩的領導臉串列的分群結果(s ),E θω是重要的參數,以最好結果來觀察θω, 可瞭解s 與P s 的重要關係。 E(
1
)
(
,
)
(
,
)
(
15
)
)
,
(
i
j
s
i
j
s
i
j
s
=
−
θ
ω
⋅
P+
θ
ω
⋅
E4.3
凝聚演算法
實驗中並非每個領導臉串列都能找到與它很類似的串列,可能有些串列與大 部分的串列相差甚遠,例如openCV 可能把很類似膚色的背景影像當作演員串列, 最終形成領導臉串列;因此,對所有領導臉串列分群時,第一階段我們可以先凝聚相似度很高的大部分串列,第二階段才把剩下的串列以 1NN ( 1 nearest neighbor ) 的方式歸類,如此可避免過多的干擾 ( outlier ) 影響分群的結果,這 種方法在本文稱做為〝2step〞。另外,我們也試著把重疊資訊加入演算法中,所 以實驗中我們嘗試了四種組合的凝聚演算法:
4.3.1
弱凝聚法 ( Weak Agglomeration ) 我們利用S 以及 3.4.3 的重疊資訊矩陣的否定,OV,組成弱相似度矩陣,S ,W W S 的產生如公式(16) ) 16 ( OV × = S SW4.3.2
強凝聚法 ( Strong Agglomeration )
執行凝聚法時,假若目前步驟將要合併的兩個串列q 與i qj產生重疊,即(
i ,j)
=1 OV ,則兩個串列將不允許被合併,直接合併相似度第二高的串列對 ( sequence pair ) ,之後也不再合併q 與i q 。 j4.3.3
兩階段弱凝聚法 ( 2step Weak Agglomeration )
假設第一階段要求凝聚θrat比例的領導臉串列,則第一步驟是取出〝與其他
串列差距總和為前θrat比例小的串列〞執行弱凝聚法,第二步驟才把剩下的串列
以1NN 的方式歸類。
4.3.4
兩階段強凝聚法 ( 2step Strong Agglomeration )
假設第一階段要求凝聚θrat比例的領導臉串列,則第一步驟是取出〝與其他
串列差距總和為前θrat比例小的串列〞執行強凝聚法,第二步驟才把剩下的串列
弱凝聚法與強凝聚法的差別在於,當凝聚到很接近設定的最終群數時C,前 者仍有可能把兩個有重疊的領導臉串列合併;而後者則永遠不會,但是後者卻有 可能因為剩下的任兩個串列都產生重疊而停止在非設定的群數上,如此將無法達 到我們要求的群數。
4.4
叢集整合參數選用
實驗的後半段主要是結合叢集整合的方法得到不同的分割 ( partition ),來測 試人物分群的效能,因此在叢集整合的實驗中我們選定六個參數很有可能影響結 果的參數進行實驗,六種參數共產生上萬筆數據,這樣的變化讓我們擁有充滿多 樣性的分群結果,可提升叢集整合的分群效能,以下為參數的詳細介紹:4.4.1
領導臉-
θdyn 在4.1 節就有提到θdyn會直接影響領導臉的選取以及個數,實驗中我們測試 了0、0.1、0.2、…、1.0,共 11 個數值。4.4.2
k-medoid 隨機範圍-
θ rg k 值是從一個固定範圍隨機挑選,它的變化會影響演員串列選領導臉的分群 結果,間接地影響領導臉的選取以及個數,[7]中提到若由較大的範圍裡隨機挑 選k 值,所得到的叢集整合效果會優於小範圍,因此我們設計五個隨機挑選的範 圍觀察其效能的變化,五個範圍是2~10、2~20、2~40、2~80、2~160。4.4.3
叢集整合相似度矩陣之權重值-
θw θω的改變直接影響了最終的相似度矩陣S,我們以 0、0.1、0.2、…、1.0, 共11 個數值去測試 S 與效能的關係,θω為0 時,代表僅由人物相似度矩陣執行 凝聚法;反之,θω為 1 則由叢集相似度矩陣執行凝聚法,藉由效能的變化可以看出叢集整合對於效能的影響與重要性。
4.4.4
凝聚法-
θagg 依照4.3 介紹的四種凝聚法,我們分別把弱凝聚法、強凝聚法、兩階段弱凝 聚法、兩階段強凝聚法,以θagg用1~4 來表示。4.4.5
兩階段凝聚法比例-
θrat θrat為兩階段凝聚法中,第一階段凝聚串列的比例,領導臉串列是經由演員 串列降維並且挑出其中較具代表性的領導臉所組成,而演員串列的產生都是經過 一系列的篩選,因此並不會有太多太雜亂的的演員串列,領導臉串列也是如此, 因此若選用較低的θrat數值反而會出現反效果,因此實驗中設定θrat為0.7、0.75、 0.8、0.85、0.9、0.95 來觀察效能,另外,θagg為 1 與 3 與同樣都是弱凝聚法,兩者只差在第一步的凝聚比例罷了,而θagg為1 即是θagg為3 且θrat為1.0 的特
殊案例 ( special case );同理,θagg為2 即是θagg為4 且θrat為1.0 的特殊案例。
4.4.6
凝聚群數-C
我們測試的群數,只針對四個數值作測試,影片真正的演員個數 α、10、
20、30,α 是影片中主要演員的個數,每個影片中的數值都不盡相同,假若把 兩個測試影片放入一起執行,則影片真正的 α 會選擇兩個 α 中的較大值,作為 最終凝聚α群的結果。
第五章 實驗結果
在這一章節中,5.1 節介紹實驗所使用的資料集,5.2 節介紹四種的計算分群 結果的公式,5.3 至 5.7 針對單一變數的參數值效能分析與討論,最後在 5.8 比較 數據。5.1
資料集
我們使用的資料集為美國影集,六人行 ( Friends ),影片內的主要的演員有 六人,但是會依照各集的劇情加入客串演員,我們使用的測試影片有三集,第三 季第九集、第三季第二集、第七季第一集,我們以M1、M2、M3 表示,另外也 使用兩兩合併的影集,測試系統在多影片的輸入下是否能得到同樣的效能,藉此 推測系統是否適用在多影片的處理,合併影片M1+M2、M1+M3 以及 M2+M3 我 們以 M4~M6 來表示,其中第三季第九集即是[21]中的測試影片,為了與[21]比 較,因此實驗時我們同樣地把測試影片的片頭刪除,表5-1 是測試影片刪除片頭 後的影片特性:
由於合併影片時PCA 的臉部降維矩陣
B
F已改變,因此M1~M3 中與 M4~M6 中的的同一張臉部影像經過降維後的 也會有所不同,所以在演員串列數、全部 串列的人臉總數都並非原先兩個測試影片的總和。 表5-1 測試影片的特性 影片 片長 影像數 場景數 演員串列數 全部串列的 人臉總數 串列中最多 / 最少人臉數 M1 21:44 6520 479 504 4096 53 / 3 M2 21:44 6520 369 453 3739 55 / 3 M3 21:10 6350 411 462 4594 72 / 3 M4 43:28 13040 848 946 7765 55 / 3 M5 42:54 12870 890 969 8686 72 / 3 M6 42:54 12870 780 907 8249 72 / 35.2
效能計算
為 了 展 示 叢 集 整 合 的 結 果 , 本 文 中 利 用 下 列 四 個 數 值 來 觀 察 , 假 設{
o o o on}
O= 1, 2, 3,..., 代表測試資料集,共包含 n 個物件;U ={
u1,u2,u3,L,uR}
與{
v v v vT}
V = 1, 2, 3,L, 代表兩個測試樣本的分群結果,群數分別為 R 與 T,並且 j T j i R i=1 u =O=U =1v U ,uiIui' =φ =vjIvj',1≤i ,i'≤R, 1≤ j ,j'≤T,把每一 個物件從U 對應至 V 的分群結果作一個統計表格,就可得到表 5-2。 表5-2 U 對應 V 統計表V
U 1v
v
2 Lv
C∑
jn
ij 1u
n
11n
12 Ln
1Cn
1⋅ 2u
n
21n
22 Ln
2Cn
2⋅ M M M M M Ru
n
R1n
R2 Ln
RCn
R⋅∑
in
ijn
⋅1n
⋅2 Ln
⋅Cn
資料來源[19]5.2.1
RI ( Rand Index )
在物件的分群結果中,我們可以把所有對應關係分成四種對應組合[19]: I. 在U 被分為同一群且在 V 也被分為同一群的物件,其對 ( pair ) 數為∑
⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = i,j nij 2 aII. 在 U 被分為同一群但在 V 卻被分為不同群的物件,其對 ( pair )數為 a 2 2 2 b ⎟⎟− ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ =
∑
⋅∑
∑
⋅ i i j , i ij i i n n n III. 在 U 被分為不同群但在 V 卻被分為同一群的物件,其對 ( pair )數為 a 2 2 2 c j ⎟⎟⎠− ⎞ ⎜⎜ ⎝ ⎛ = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ =∑
⋅∑
∑
⋅j j , i ij j j n n n IV. 在 U 被分為不同群且在 V 也被分為不同群的物件,其對 ( pair )數為 c -b -a -2 d ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = n 由於a 與 d 是兩個分群結果中共同認同的部分,因此 RI 的計算是如公式(17) RI 的值介於 0 與 1 之間,當 RI 為 1 即代表兩個分群結果完全相同。(
)
(
)
(17) 2 d a d c b a d a RI ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + = + + + + = n U,V5.2.2
ARI (Adjusted Rand Index )
[20]提到 ARI 的計算方式是從 RI 衍伸而來,由於計算兩個隨機的分群結果
其RI 的期望值,expected index 並非為 0,因此 Hubert 和 Arabie 提出 ARI,希望
把期望值調整至0,利用公式(18)把原本 RI 的數值 index 平移與縮放。 ) 18 ( index expected index maximum index expected index − − 經由推導,ARI 的公式如公式(19) I. 在U 被分為同一群且在 V 也被分為同一群的物件,其對 ( pair )數為
∑
⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = i,j nij 2 a II. 在 U 被分為同一群組的物件,其對 ( pair )數為∑
⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ⋅ i i n 2 d III. 在 V 被分為同一群組的物件,其對 ( pair )數為∑
⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = ⋅ j j n 2 e(
)
(
)
(
)
(
)
(19) 2 e d 2 / e d 2 e d a , ARI ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ × − + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ × − = n n V U為了讓讀者更明白這兩種公式的計算,以下有個簡單的範例,十個物件被分 成U =
{
1,1,1,2,2,2,2,2,3,3}
和V ={
1,1,2,2,2,2,3,3,1,3}
,經由統計可得到表5-3。 表5-3 分群範例統計表V
U 1v
v
2v
3∑
jn
ij 1u
2 1 0 3 2u
0 3 2 5 3u
1 0 1 2∑
in
ij 3 4 3 10(
)
64.44% 45 29 24 7 9 5 24 5 , RI 24 21 45 7 9 5 2 10 d 7 5 3 6 3 5 2 3 2 4 2 3 c 9 5 1 10 3 5 2 2 2 5 2 3 b 5 1 3 1 2 2 2 3 2 2 a : RI = = + + + + = = − = − − − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = − + + = − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = − + + = − ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = + + = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = V U(
)
(
)
(
)
(
)
13 3.73 13.67% 73 . 3 5 2 10 12 14 2 12 14 2 10 12 14 5 , ARI 12 3 6 3 2 3 2 4 2 3 c 14 1 10 3 2 2 2 5 2 3 b 5 1 3 1 2 2 2 3 2 2 a : ARI = − − = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ × − + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ × − = = + + = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = + + = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = = + + = ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ + ⎟⎟ ⎠ ⎞ ⎜⎜ ⎝ ⎛ = V U上述範例中可以看出,同樣的兩個分割U 和 V,兩種數據的差距卻很大,實 驗中我們希望能突顯兩個分割結果的差異,因此我們以 ARI 作為主要觀察效能 的對象。4.6 節中提到,實驗中總共有六個變數,一個影片使用六個變數總共產 生上萬筆數據,若直接拿來分析,恐怕不是那麼容易,因此我們在5.3 到 5.7 小 節中,每次都只針對一個參數的參數值來討論,討論的順序是依據趨勢的明顯度 由大而小編排,亦即,愈先被討論的變數,代表愈容易看出它的規律性;反之, 愈無規律性。
5.3
C 之效能
首先,針對最終凝聚的群數C 來探討,我們固定領導臉的選擇方式θdyn為0、 rg θ 的範圍是 2~80、θw為0.2、θagg為兩階段強凝聚法、θrat是0.7,觀察圖 5-1 中六個影片( M1~M6 )對於群數 C 之 ARI 曲線變化。圖中可發現,M1~M4 中以 凝聚到 α (6 或 7)與 10 群的效果較 20、30 群來得好,這是由於 α 是代表每個 影片中確切的演員個數,而ARI 容易受群數影響,因此當群數接近 α 時,計算 ARI 將會有比較好的優勢,這是可以預見的,然而 M5 與 M6 從 C 為 10、20、 30 看來,合併之後的效能確實被嚴重地影響了,比原來 M1~M3 的效能矮了一截, 我認為這是因為合併影片之後把兩個影片原有的相似度打散了,串列變得更複雜 了,才連最篤定〝愈靠近 α 群效能愈好〞的趨勢也都沒有顯現;[3]作者利用前 後 11 年的影集作實驗,也提到在不同的影集當中,主角的面孔、頭髮也都會隨 著年紀不太一樣,因此我認為,如果能把時間軸拉到每一集、每一季甚至每一年 之外,就算是同一人在不同年紀所拍攝的影集,也可以調整影集之間相互參考的 權重值,以這觀點來看,或許是很有機會可以提升效能的。0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1
ARI
6 7 10 20 30C
圖5-1 M1~M6 對 C 的效能曲線5.4
θ
rg之效能
接下來我們針對k-medoid 的範圍參數θ 來討論,下圖中是固定領導臉的選rg擇方式θdyn為0.2、θw為0.4、θagg為強凝聚法、θrat是1.0、θc是10,產生的結
果,我們若只觀察M1~M3 的曲線可以發現,愈後面的範圍效能愈好,這是由於 在眾多的串列中,儘管是兩個相同人物的串列,也會因為臉部表情、臉部旋轉角 度、影像明亮度和背景不同而有所差異,藉由執行較大範圍的k-medoid,可得到 兩個串列間較細膩的相似度關係,因此若在θ 不知從何選起,可設定較大範圍rg 的是比較好的選擇,這個推論也和[7]文中所提到 k 值要選〝數值大以及範圍較 廣的隨機範圍〞一樣,而M4~M6 就如同 5.3 提到的,因為合併影片而降低了相 似度,因此在圖5-2 上看出趨勢。
2~10 2~20 2~40 2~80 2~160 0.8 0.7 0.6 0.5 0.4 0.3 0.2 0.1 rg
θ
ARI
圖5-2 M1~M6 對θ 的效能曲線 rg5.5
θ
agg與
θ
rat之效能
在這個小節中,我們討論四種θagg以及θrat對於ARI 曲線的變化,θagg為凝
聚法的四種模式,θrat為兩階段分群中首要階段分群的比例。本文4.6.5 提到θagg
為1 與 2 分別是θagg為3 與 4 在θrat為1 的特殊案例,因此我們在比較兩階段強
凝聚法時會把θagg為1 的效能一起討論,同樣地,θagg為2 的效能也會與兩階段
弱凝聚法一起討論,圖 5-3 是我們固定θdyn為 0.3、θ 的範圍是 2~160、rg θw為
0.1、θc是 person,六個影片對於 ARI 的變化曲線,圖 5-3(a)是兩階段弱凝聚法