第三章 主播影像偵測與新聞故事切割
3.1 人臉區塊偵測與追蹤
3.1.1 人臉偵測
人臉偵測的方法有很多種,在第二章已介紹過,本論文所用的人臉偵測方法 是整合第二章所提的方法。演算法如圖 3-3,首先將影像作均值移動分段以利之 後的膚色判斷,以一個預先建立好的膚色模型找出膚色區域,接下來在每個膚色 區域中去尋找眼睛,最後用一個人臉模型去驗證找到的眼睛是否屬於同一張臉。
演算法的各步驟詳述如下:
圖 3-3 人臉偵測流程 彩色影像
均值移動分段
膚色偵測
人臉候選區域
眼睛偵測
驗証每對眼睛所組成的 人臉區域是否為人臉
均值移動分段(Mean Shift Segmentation)(步驟一): 測試影像做均值移動分段(Mean Shift Segmentation),演算法如下:
1. 將影像從 640×480 的大小降取樣(downsampling)成 80×60,並將影像轉換
∑
3. 對均值移動濾波後的影像用區域成長(region growing)演算法找出各個相鄰 且顏色相近的像素,給它們一個共同的編號。以一個5× 的灰階影像說明區5
(f) 從編號 1 為起點,每次將編號加 1,找出編號相同的像素,從中選擇最 上方且最靠近左邊的像素,把所有其他編號相同的像素的顏色值都設定 成這個像素的顏色值。
4. 再做一次 3.。最後把影像升取樣(upsampling)回 640×480,我們把經過分 段的影像稱為分段影像。
圖 3-4 區域成長演算法範例
建立膚色模型且用建立好的膚色模型判斷影像中的膚色區域 (步驟二):
首先收集東森、民視、華視、中天、三立五家電視台,每家各兩個新聞主播,
共十個主播的臉部膚色像素,總共約 22000 個像素。將這些像素的顏色從 RGB 顏色空間轉換到 YCbCr 顏色空間,用 2.2 節所提過的以長方條代表的統計圖 (histogram)來建立膚色模型,令h
(
Cb1, Cr1)
代表 CbCr 平面上 CbCr 值等於(
Cb1, Cr1)
的長方條高度,同時規定長方條高度的門檻值τ。若測試像素的 CbCr 值為(
Cb2, Cr2)
且h(
Cb2, Cr2)
>τ,則認為此測試像素的顏色是膚色,用這方法判 斷分段影像中的每個位置是不是膚色,就可以做出跟原影像(未經過任何處理) 一樣大的一個膚色二元圖,如圖 3-5(c),1 表示該位置是膚色,0 則表示不是膚 色。接著在膚色二元圖中找出所有的 8 連接成分(8-connected component),屬 於同一個 8 連接成份是指二元圖中所有是1且有相鄰或對角相鄰連接的關係,每 一個 8 連接成份可看成是一個膚色區域。圖 3-5 膚色區域偵測。(a)圖代表原影像,(b)圖代表分段影像,(c)圖代表 膚色區域。
判斷每個膚色區域是否有眼睛 (步驟三):
用一個最小的矩形包圍一個膚色區域,在原影像(未經過任何處理)中找出這 個矩形區域,此步驟就是要在這個矩形區域中找出眼睛。觀察眼睛區域的像素可 發現虹膜的灰階值比膚色低,眼白的灰階值比膚色高;虹膜的 Cb 值比膚色高,
(a) (b) (c)
Cr 值比膚色低。利用這些特性就能找出眼睛的位置,如圖 3-6,演算法如下:
4. EyeMap 是個灰階影像,設定一個門檻值(threshold)使其變為二元影像,1 代表該位置是眼睛,0 代表該位置不是眼睛。
EyeMap EyeMapb
訓練人臉樣板與驗證每對眼睛是否屬於同一張臉 (步驟四):
因為找出的眼睛不一定是真正的眼睛,像是鼻孔或頭髮的邊緣也有可能被認 為是眼睛,所以需要做進一步的驗證,又因為眼睛是一對的,所以是兩個眼睛一 組來驗證,如圖 3-7 所示有好幾個人臉驗證候選區域。
圖 3-7 由眼睛配對所產生的人臉驗證候選區域
在驗證之前需要有一個人臉樣板,首先收集東森、民視、華視、中天、三立 五家電視台,每家各兩個新聞主播,共十個主播,每個主播 7 張人臉影像,總共 70 張,將這 70 張人臉影像都調整到 20×20 的大小,每張人臉影像可看成是一個 400 維的向量,用主要成分分析(principle component analysis)的方法將 400 維的向量降成 10 維,假設降維後的人臉影像為一個高斯分佈,算出其平均值與 共變異數矩陣。如此人臉樣板可表示成一個高斯分佈的機率模型。有了人臉樣板 後,我們就能驗證找到的眼睛是否屬於同一張人臉,演算法如下:
1. 計算這兩個眼睛的方向,如果這兩個眼睛的方向差的很多,例如一個眼睛方 向是右上到左下,另一個眼睛的方向是左上到右下,則這兩個眼睛明顯不是
(a) (b) (c)
同一個人的眼睛,此時繼續驗證下一組眼睛配對。反之,兩個眼睛的方向一 致的話則繼續下一步 2.。
2. 以這兩個眼睛的中心位置估計一個四邊形的人臉區域,在原影像的灰階影像 中取出這個人臉區域。
3. 將這個人臉區域調整到 20×20 的大小,此時可把這個人臉區域看成是一個 400 維的向量,用所收集的 70 張人臉影像的共變異數矩陣的特徵向量做主要 成分分析(principle component analysis)將其降成 10 維的向量。
4. 把這 10 維的向量代入人臉樣板的高斯模型中,計算其與高斯模型的近似值 (likelihood),如果有超過規定的門檻值(threshold),則認為這個人臉區域 確實是人臉,否則不認為是人臉。
5. 重覆 1.2.3.4.驗 證一個膚色區域中所有的眼睛配對,選擇一個近似值 (likelihood)最高且超過門檻值的人臉區域,認為此人臉區域的確是一個人 臉。
3.1.2 以人臉追蹤加速人臉偵測
觀察幾天的新聞影像後,我們發現主播在播報同一則新聞或外景的某個人物 在接受訪問時,下半身通常是靜止不動,而頭部只會有輕微的晃動。根據這個特 性,我們不需要每張影像做完整的人臉偵測,只要在偵測到人臉的同時對接下來 的影像在某一個範圍內去追蹤這個人臉,如此一來可加速人臉偵測的步驟。本節 介紹論文中所用的兩個人臉追蹤演算法。
(方法一)眼睛區塊比對的人臉追蹤演算法 演算法如圖 3-8,各步驟說明如下:
1. 對第一張影像偵測人臉,若有找到人臉,紀錄左右兩眼的中心位置,把左眼 與右眼區塊剪下,當成要在第二張影像中搜尋比對的目標區塊。
2. 在第二張影像中,以第一張影像的左右兩眼的中心位置為準,各定出一個搜 尋範圍,在此範圍內搜尋比對眼睛區塊,如果左眼與右眼區塊都有找到,則 人臉追蹤成功。
3. 兩區塊比對的方式是先設定一個門檻值。然後兩區塊灰階值點對點相減,取 絕對值後相加,如果有小於門檻值,則認為比對成功。
4. 在搜尋區域內可能會找到好幾個小於門檻值的位置,此時我們選擇差距最小 的那個位置,而不是在一找到某個小於門檻值的位置即停止。
圖 3-8 眼睛區塊比對的人臉追蹤演算法 對第一張影像偵測人
臉,若有偵測到人臉,
剪下左右兩眼區塊。
在第二張影像中,以第一 張影像的左右眼位置為 準,定出一個搜尋範圍。
在左眼與右眼的搜尋範圍 內分別以比對的方式尋找 左眼與右眼區塊,如果都 找到則追蹤成功。
(方法二)驗證人臉區域的人臉追蹤演算法 演算法如圖 3-9,各步驟說明如下:
1. 對第一張影像偵測人臉,若有找到人臉,紀錄左右兩眼的中心位置。
2. 在第二張影像中,以第一張影像的左右兩眼的中心位置為準,各定出一個搜 尋範圍,在此範圍內搜尋眼睛,搜尋的方法與 3.1.1 節中介紹的方法一樣。
3. 將左右兩眼的搜尋範圍中找出的眼睛兩兩配對,再用 3.1.1 節中介紹的方法 去驗證每對眼睛使否屬於同一張臉。
圖 3-9 驗證人臉區域的人臉追蹤演算法 對第一張影像偵測人臉,
若有偵測到人臉,紀錄左 眼與右眼的位置。
在第二張影像中,以第一 張影像的左右眼位置為 準,各定出一個搜尋範圍
在搜尋範圍內,以之前 介紹過的眼睛偵測法偵 測眼睛。
將找到的左眼與右眼兩兩配 對,估算一個矩形區域,然 後用之前介紹的方法去驗證 此區域是否為人臉。
在實作時是先用方法一追蹤,沒有追蹤到的話再用方法二追蹤。如果都沒有 追蹤到人臉或追蹤到的人臉數與前一張影像不同,則對整張影像重新做完整的人 臉偵測。
3.2 主播人臉區塊篩選
在偵測完新聞影像中所有的人臉區塊後,接下來從中找出主播人臉區塊,我 們就能知道那些影像有主播。首先根據每個人臉區塊的特性抽取特徵,對此特徵 作分群,假設主播為最大群來篩選出主播區塊。於 3.2.1 小節說明如何由人臉區 塊的特性抽取特徵;3.2.2 小節中說明如何做分群。
3.2.1 根據人臉區塊的特性抽取特徵
我們所選的特徵是衣服顏色,由人臉區塊的中心位置與長寬來估計衣服的區 域,如圖 3-10。統計在衣服範圍內那個顏色出現最多,以此顏色當成衣服顏色。
另外,為了避免顏色過多以致於同一件衣服在不同的影像中找出的代表色不同,
將顏色以比較少的位元數來表示,例如本來是 8 位元,改成 5 位元。還有為了使 得視覺上看起相近的顏色,在顏色空間上的數值也很接近,我們將衣服範圍內的 顏色由 RGB 顏色空間轉換到 Lab 顏色空間,使用 Lab 顏色空間的距離公式。
圖 3-10 估計衣服區域。(a)人臉偵測結果(b)由人臉中心位置估計的衣服區域。
(a) (b)
3.2.2 基於最大群原則的主播區域篩選
同。假設A=
{
xi,...,xj}
是一群,B={
xm,...,xk}
是一群,1≤i< j<m<k≤n,則 A 與 B 之間的距離是 min ( , ), a b
k b m j a
i dist x x
≤
≤
≤
≤ 。
3.3 新聞故事切割
在一小時 3600 張的新聞影像中,知道那幾張影像有主播後,我們就能做新 聞故事切割,方法很簡單,就是要找出主播出現的時間序列,演算法如下:
1. 在有主播出現的影像中,找出時間上連續的主播影像序列。
2. 假設外景的時間不可能少於兩秒,所以合併間隔在兩秒(兩張影像)內的主播 影像序列,使其成為一個更長的主播影像序列。
3. 假設主播播報新聞的時間不可能少於三秒,所以刪除長度在三秒(三張影像) 內的主播影像序列。
4. 有了主播出現的時間序列後,每則新聞故事的時間就是該則主播出現的時間 到下一個主播開始出現的時間,如圖 3-11。
圖 3-11 新聞故事架構
主播播報 外景採訪 主播播報 外景採訪 . . . 主播播報
新聞故事
第 4 章 實驗結果
在這章中對於第三章所提的主播影像偵測方法與新聞故事切割方法,加以實
在這章中對於第三章所提的主播影像偵測方法與新聞故事切割方法,加以實