• 沒有找到結果。

第三章 實驗方法

3.2 演員串列之建立與篩選

對於影片中的主要演員,其每次出場皆為主要的拍攝目標,且時間也會在一定的長 度之上,因此 OpenCV 將偵測到連續出現的同一演員之臉部位置,為降低眾多人臉影像 獨立處理的複雜度,我們將各場景(shot)中屬於同一位演員的連續偵測合併成演員串 列,作為接下來分群作業的基本元素。除了人臉影像,我們在建立過程中也一併將人臉 下方的身體影像記錄於演員串列當中,其大小將設定為兩倍臉部寬度所形成的方形,如 圖 3-3 所示。下面我們介紹演員串列的建立以及篩選方法。

3.2.1 演員串列的建立

為了確保演員串列中所有人臉影像同屬相同一位演員,所有演員串列必頇滿足下列 幾項條件:

 所有人臉必頇在相同場景內、並且為連續出現、

 人臉的位置差距必頇在 35 個 pixel 距離內,即位置相近、

 人臉影像的大小必頇在前一張人臉的 0.5~1.5 倍內,即大小固定、

 人臉個數必頇在 3 個以上。

藉由上述限制,我們可以移除部分 OpenCV 的錯誤偵測,例如出現於背景中的錯誤 偵測、人臉鄰近的重覆或錯誤偵測等。如圖 3-4,(a)至(e)為五張連續影像的人臉偵測結 果,其中(b)中有鄰近的錯誤偵測、(e)內有背景影像的錯誤偵測,而(f)為四個演員串列 的建立結果。

圖 3-3:身體影像與臉部影像之對應關係

由於我們採用簡易色彩直方圖進行場景轉換偵測,因此有些顏色較相近的場景轉換 可能無法被偵測出來,此時若相同位置上有不同人物之人臉,則這些屬於不同演員的人 臉影像將被串聯至同一個串列中。為了確保串列中人物的一致性,我們利用人物之臉部 及身體資訊判定串列中是否含有不同演員。針對所有演員串列,依序檢查內部相鄰元素,

若兩相鄰元素之臉部相異度大於 2000、且身體相異度大於 2500,則判定兩元素屬於不 同演員,並分割此串列。其中,臉部及身體之相異度求算方法將於第 3.4 節中說明。圖 3-5 中為含不同演員之串列成功切割範例。

圖 3-5:含不同演員之串列利用臉部及身體資訊成功切割(黑色方塊為切割點)

(a) (b) (c)

(d) (e) (f) 圖 3-4:利用演員串列建立條件成功移除錯誤偵測

(a)~(e)為連續畫面的人臉偵測結果,藉由串列建立規則,

我們可將白色箭頭所指示的錯誤偵測移除。

(f)為此 5 個畫面所得的 4 個演員串列。

3.2.2 演員串列的篩選

膚色資訊的應用,除了上述非人臉串列的移除(如圖 3-6),我們也將膚色資訊作為 正臉/非正臉(frontal/non-frontal face)的臉部姿勢(face pose)判別依據。由於 OpenCV 偵測所的人臉皆有以鼻子為中心的特性,因此我們利用臨界值 80%來作為臉部姿勢判定 依據,若膚色比例超過 80%,則我們將此人臉影像歸類為正臉,相反,歸類為非正臉,

如圖 3-7 中包含兩種臉部姿勢的範例圖。

(a) (b) (c)

(d) (e) (f)

圖 3-7:膚色資訊判別正臉/非正臉(紅色部分為非膚色像素)

(a)(b)(c) 膚色比例小於 80%,歸類為非正臉 (d)(e)(f) 膚色比例大於 80%,歸類為正臉

圖 3-6:使用膚色資訊移除的非人臉串列(紅色部分代表非膚色像素)

相關文件