• 沒有找到結果。

偵測追蹤目標區塊

第四章 室內環境之視覺追蹤

第一節 偵測追蹤目標區塊

偵測追蹤目標物的方法有許多種,例如:連續影像相減法、背景相減法、光 流法等等。其中,事先建構該環境的背景模型,再將當前影像與背景影像相減,

藉此分割出完整的前景區塊,是背景相減法的主要概念。此一方法的優點是,所 擷取的前景區塊較完整,但缺點是對環境中的光照變化、雜訊等干擾較為敏感。

為了有效擷取出環境中感興趣的前景區塊,本系統結合背景相減法與較不受光影 變化影響的連續影像相減法,擷取出完整的嬰兒追蹤區塊。

首先,本研究比較了三種常見的背景相減法,如 mixture of Gaussians method [Bra08]、averaging background method [Bra08] 以及 codebook background method [Kim05]。以圖 4.1 為例,若背景影像如圖 4.1(a) 所示而嬰兒進入後的原始輸入影 像則如圖 4.1(b) 所示。從 averaging background method 的結果圖 (圖 4.1(d)) 中,

可以發現其對抗背景環境改變的能力較差,受光線的影響過大。而 mixture of Gaussians method (如圖 4.1(c)) 因為運用了多個高斯混和模型建立複雜的背景模 型,所以計算概率分布所花費的時間較長,若是追蹤目標靜止不動也會被誤當成 背景。相較於此,codebook background method (如圖 4.1(e)) 只需要計算像素點的 color distortion,計算複雜度小,且所使用的記憶體空間也花費較少,能快速的擷

31

(a) (b)

(c) (d) (e)

圖 4.1 背景相減法結果圖

(a) 背景影像;(b) 原始輸入影像;(c) Averaging background method [Bra08];

(d) Mixture of Gaussians method [Bra08];(e) Codebook background method。

取出畫面中的前景物。因此本系統採用此一背景相減法擷取出前景區塊。

本系統所使用的 codebook background method 分為 background construction 與 background subtraction 二個部分。Background construction 會利用背景的連續輸入 影像建立背景模型,而 background subtraction 則是嬰兒進入畫面後,利用輸入影 格中每個像素點在 R、G、B 三個 channels 的像素值與背景模型比對,判斷每個 像素點為前景或是背景的方法。由於系統在此階段所讀入的每張影像皆為彩色影 像,因此每個像素點都包含了 R、G、B 三個 channels 的像素值,為了方便表示 每個像素點包含的顏色資訊,本研究將像素點在 R、G、B 三個 channels 的像素 值定義為一個像素值向量。

在 background construction 時系統會在一開始就讀入連續背景影像,並針對每 個像素建立一個 codebook。也就是說,如果輸入影像的大小為 w*h,則需建立 w*h 個 codebooks,這些 codebooks 代表的是連續背景影像像素值的分類結果。每 一個 codebook 的結構如圖 4.2 所示,一個 codebook 可能包含數個 codewords。

Codeword 的建構方式如下,每個像素位置會因為連續影像的輸入而接收到多個像 素值向量,向量中包含 R、G、B 三個 channels 的 intensity 值 (圖中以小正方形表 示),同一個像素位置的所有像素值向量經過聚類的方式可組成數個 codewords。

由於每個 codeword 聚類數個不同顏色範圍的像素值向量,且像素值向量中的三個 元素分屬於不同 channel,每個 channel 中的元素其灰階值不一定相同。因此圖中 分別以紅色、綠色和藍色三個大圓形表示不同的 channel,且在相同 channel 中不

32

圖 4.2 Codebook 結構圖。

同顏色的橢圓代表不同的 codeword,而在不同 channel 中相同顏色的橢圓則可組 成某一個特定的 codeword。

在詳細說明 background construction (上述 codebook 結構中像素值向量的聚類 過程) 與 background subtraction (前景與背景的分割) 二個步驟之前,先將上述 codeword 在每個 channel 中會有一個區段來代表它,這個區段的上界和下界分別 以vik codewords 將作為此 codebook 的代表資訊,而重要程度較低的 codewords 則視為 雜訊將之忽略。

另外,不論是在 background construction 或是在 background subtraction 步驟中

33 Intensity

Time

圖 4.3 Color distortion 之範例。

都會用到 color distortion 的方法。其方法主要以顏色差異程度來區別二個像素值 向量或是像素值向量與 codeword 的異同。如圖 4.3 所示,以單一 channel 為例,

橫軸代表時間序列,縱軸為該 channel 之像素值,圖中的黑色曲線為某一位置之 像素點其像素值隨著時間變化所產生的波形。另外,圖中不同顏色的長方形表示 不同的 codeword,且每個長方形的上下邊界即為該 codeword 在不同時間點之區 段範圍。換句話說,所有 codewords wi,i1,...,L皆利用上、下界的值,(分別為vikvik,k{R,G,B}

) 來設定顏色區段的範圍。假設在時間 t 時輸入一個未分類的像 素值向量x ,該像素點若屬於某一 codeword,則該像素點三個 channels 的 intensityt 值,需同時包含於該 codeword 在三個 channels 中所對應的區段範圍內。即欲判斷 該輸入像素x 是否屬於第 i 個 codeword,其函數 CD 如 (4-1-1) 所示。 t

Background construction 的演算法如圖 4.4 所示。在建立 codebook 背景模型 時,初始狀態下每個像素位置的 codebook 集合 CB 設定為空集合,此 codebook 中 codeword 的個數 L 初始時亦為零。接著,系統讀取時間 t 所取得的像素值向量

34

其中k{R,G,B}。若 codebook 集合不為空集合,則根據式 (4-1-1) 做篩選,如 果不存在符合條件的 codeword,則仍新增一個 codeword;反之,若找到滿足條件 的 codeword w ,則視情況調整m w 上、下界的值。調整的方式為,若時間 t 時m

圖 4.4 Codebook construction algorithm。

35 個 codebook 的 codeword 個數,表 4.1 中實驗影片 2014_1_24_5 所建立的背景原 圖,地上的地墊色彩較複雜,而影片 2014_1_23_18 的背景環境地墊的色彩較單 純,此二範例的輸入影像大小皆為 720*480。表中的第三欄顯示只含有 1 個 codeword 的 codebook 個數,可以發現範例中只含有 1 個 codeword 的 codebook 約占所有 codebook 80%左右,並且單純的背景會高於複雜背景。而最末欄顯示含 有一個以上之 codeword 其 codebook 的個數,在複雜背景的例子中約占 19.3%,

單純背景中比重較低,只占 12%。

表 4.1 Codeword 個數比較表 Name of sequence Image size # of codebooks

with one codeword

# of codebooks with more than one codeword 2014_1_24_5

36

此時,系統建立好 codebook 背景模型後,接下來就可利用此背景模型與當前 影像進行背景相減法,其演算法如圖 4.5 所示。系統先針對當前時間 t 所得到的 某一像素值向量x ,計算其與該像素位置所有 codewords 的 color distortion。根據t 公式 (4-1-10),區分每個像素值為前景或者背景。

For each pixel in the input frame do

Step1. Input the intensity vector of a pixel xtxtR,xtG,xtB

圖 4.5 Background subtraction algorithm。

37 示出不同的區塊,並利用 discrete Cartesian moment 求得各區塊的面積與質心,再 找出最可能為嬰兒的前景區塊。Discrete Cartesian moment 的求法如公式 (4-1-11) 所示:

求得。Discrete central moment 的算法如公式 (4-1-12):



38 ellipses (包含記錄其中心位置與半長軸和半短軸)。然而只有一個 optimal ellipse 可能是嬰兒所在的區塊,因此還需要系統流程中 moving object detection 步驟的結 果,把代表嬰兒的 optimal ellipse 找出來。

系統自一開始就會透過 moving object detection 另外計算出一張差分影像 (difference image)。其方法為先將輸入影像轉成灰階影像後,再把時間 t 的影像

)

得到 difference image 後,系統會接著計算累積差分影像 (accumulated difference image),以D'(i,j,t)表示如公式 (4-1-18) 所示。並且將D'(i,j,t)進行型態學與連

(c) Difference ellipse 在原輸入影像上的結果圖。

39

然後,再將此區塊用一個橢圓 (稱之 difference ellipse) 標示出來。Difference ellipse 產生的方式為,將累積差分影像的結果 (如圖 4.7(a) 所示) 沿著圖 4.7(b) 中的藍 色虛線投影至影像 x 軸和 y 軸,而座標軸上紅色實線即為投影的結果,此二線段 的長度分別用來作為 difference ellipse 的長軸與短軸,且其質心所在位置的 x 軸座 標 i 同投影於 x 軸上的線段中點座標;y 軸座標 j 則同投影於 y 軸上的線段中點座 標。如圖 4.7(c)即為系統所圈選的 difference ellipse。

同時,得到 optimal ellipse 的資訊與 difference ellipse 的資訊後,若此時只存 在唯一的 optimal ellipse,則系統會直接判定其為嬰兒;反之,若出現多個前景區 塊,系統會將所有 optimal ellipse 的質心與 difference ellipse 的質心逐一計算距離。

二者距離最近者,系統判定該 optimal ellipse 為嬰兒區塊,並用此 optimal ellipse 中的前景像素點建立嬰兒追蹤模型。另外,若系統沒有找到任何一個 optimal ellipse,則系統會判定找不到嬰兒需重新啟動,確保能正確擷取嬰兒追蹤區塊。

以上為本系統在擷取與選擇嬰兒區塊的過程。過程中使用 difference image 的 優點在於擷取前景時能有效抵抗光線變化或環境中物體反光的現象。而本系統之 所以沒有直接採用 difference image 反而採用 accumulated difference image 來圈選 difference ellipse 的原因如下,嬰兒通常透過身體各部位在不同時間點的連續動 作,來完成一個完整的全身性活動,因此 accumulated difference image 較能完整 呈現嬰兒的全身性動作。例如:嬰兒爬行時,可能是上肢先有往前的動作,再加 上身體收縮蠕動與下肢用力往前推進才能完成,如圖 4.8 所示 (連續影像順序為 由上至下)。圖 4.8(a) 為原始輸入影像轉成灰階圖,而圖 4.8(b) 是依照圖中紅色 線段,將二張灰階影像相減的結果,可以發現 difference image 所擷取的前景影像 較為破碎,且嬰兒的動作完整度不足,不易圈選出完整的移動物體。反觀圖 4.8(c) accumulated difference image 的結果,前景影像較明顯且嬰兒動作的完整度也較 高,因此圖 4.8(d) 中的 difference ellipse (白色橢圓) 皆能包含整個嬰兒。

系統執行至此,不僅從背景相減法的結果中選出嬰兒區塊,也透過動差的算 式,求得該區塊的形狀特徵,如:長軸、短軸及質心位置,上述的形狀特徵在追 蹤時會用來定義 detection window 的位置及大小,此部分會在第二節詳細說明。

另外,系統從背景相減法所得到的嬰兒區塊,其前景像素點可用來建立嬰兒的色 彩特徵。本系統之所以利用色彩直方圖來做為嬰兒追蹤時的特徵模型而不使用形

40

(a) (b) (c) (d)

圖 4.8 追蹤時移動物體偵測

(a)原輸入影像轉灰階圖;(b)差分影像結果圖;

(c)累積差分影像結果圖;(d)移動物體偵測結果。

狀特徵,是因為形狀特徵在嬰兒活動的過程中都是不固定的,唯有色彩特徵較能 維持穩定。儘管嬰兒活動環境中到處充滿各式各樣色彩豐富的地墊、玩具或牆 壁,但背景相減法的優點就是能將嬰兒與背景有效的分離,因此針對分離後的前 景區塊,統計嬰兒身上的色彩分布資訊,更足以作為追蹤時的特徵模型。

除此之外,在追蹤的過程中,進行色彩直方圖的比對來判斷追蹤目標與追蹤 特徵模型的相似度,方法簡單且計算方便;加上以統計色彩直方圖的結果作為追 蹤時的特徵,可以抵抗追蹤目標旋轉、位移等各項變異,在追蹤比對的過程中,

41

42

其中, 在 8-bit 影像時設為 128,16-bit 影像時設為 32768,而若為浮點數影像 則為 0.5。