• 沒有找到結果。

第三章 基於掃描線演算法之肢體近似中心軸線分析

3.1 掃描線演算法

在建立不同肢體近似中軸線段的過程中,我們首先參考[15]、[16]、[17]的研 究,以四種不同方向(0°、90°、45°、135°)掃描線掃瞄人體區域的作法,改良以 更具彈性的建立近似中心線演算法,放寬截面線段中心點的相連規則,只使用水

人體區域

前景物與膚色前景物的近似中心軸線段 擷取截面線段

產生近似中心軸線

17

平(0°)及垂直(90°)掃描線來擷取人體區域之截面線段。

(a) (b)

3.2 以兩個不同方向的掃描線掃瞄人體區域後所得之截面線段,圖中每條線段各代表一個截面

線段,紅圈出標示出寬度過短之截面線段:(a) 0°(橫截面線段),(b) 90°(縱截面線段)。

圖3.2 中,本系統使用類似降低畫面解析度的概念,以δ(單位為像素)為掃 描線的間距,適當地調整δ值,可減少偵測的像素,以達到較好的效能,其改變 的資料量關係式如下。

xy

d 1

1

= +

δ (3.1) 其中,d 為偵測的像素個數,δ為掃描線的間距,x、y 分別為畫面寬與高的像素 個數。當δ越小,分析資訊較完整,產生的肢體線段會越接近影像中的人體區域,

但是計算量較高,執行速度較慢。如果系統運算能力較差,可以調寬δ值,省略 偵測的像素個數,當δ越大,掃描到像素及肢體截面越少,速度較快。但是若δ 過大,會因擷取到的近似中心軸線末端位置較不準確,使得在連續的畫面中肢體 末端跳動嚴重,我們將在下一節探討如何擷取較正確的近似中軸線段端點。有鑑 於此,本系統取δ為5,則資料量減少為原來的 1/6,使系統在偵測像素的階段,

速度增快了6 倍,本論文將在第六章節探討加速方法。

為了解決前景物破損與雜訊的問題,傳統做法利用型態學的技巧,以侵蝕 (erosion)做雜訊的濾除;擴張(dilation)做前景物破損區域的彌補。但是對畫面全

18

域的侵蝕,會使前景物的面積變小,使得過細的前景物甚至會因此而產生碎損;

全域的擴張亦會使雜訊及前景物面積擴大,因此我們需要更有彈性地利用這些概 念。

前述的目的旨在濾除雜訊及彌補前景物破損的地方,本論文參考[15]、[16]、

[17]的研究,以改良掃描線演算法取代畫面中全域的對前景物做侵蝕與擴散。為 了判斷截面線段是否為雜訊,本系統對截面線段做以下的條件判斷式

noise

T

Wsection < (3.2) 其中,若截面寬度(Wsection)小於門檻值(Tnoise),則將此截面線段視為雜訊,予以濾 除,本論文以640×480 的影像測試後,取 7 (單位為像素)為 Tnoise,若畫面解析度 較小,可將Tnoise調低。

(a) (b)

3.3 將圖 3.2 中寬度過短之截面線段濾除的結果:(a) 0°,(b) 90°

另一方面,為了彌補前景物的破損,如圖3.4,本系統以旗標(flag,初始值為 0)作為輔助,以下列三個條件做判斷。

(a) 當目前像素(x, y)為前景物像素,且 flag 為 0。紀錄(x, y)為截面起始座標(xs, ys),並將 flag 設為 1。

(b) 當目前像素(x, y)為前景物像素,且 flag 為 1。將(x, y)暫存為的截面終點(xtmp, ytmp)。

(c) 當目前像素(x, y)為背景像素,與截面終點暫存值(xtmp, ytmp)距離為 Tinterval (單

19

flag = 0000001111111111111111111111111111111111111111111111111111000000

3.4 彌補截面線段的破損,掃描線上前景物截面線段斷成多節的示意圖,此例 Tinterval8。

20

建立近似中心軸線,其端點連線即為肢體近似中軸線段(Approximate Medial Axis Segment)。在[14]、[15]、[16]、[17]研究中,使用四個方向(0°、45°、90°、135°)

21

最大值(max(Wc, Wtmp))的α倍,做為動態調整變異門檻值的依據。若滿足上面的 三個條件,則表示(xc, yc)為近似中心軸線(Mi)的延伸,將(Mi.xtmp, Mi.ytmp)修改為(xc, yc);若不滿足其中一個條件式,則建立新的近似中心軸線(Mi+1),起點及(Mi.xtmp, Mi.ytmp)皆為目前的中心點(xc, yc),在對下一個中心點做上面條件的判斷。

上述條件(A)中,當目前中心點與近似中軸線段(Mi)暫存末端的 y 座標間距為 掃描線間距δ,表示目前得到的截面中心點(xc, yc),可能為近似中軸線段(Mi)的 延伸。條件(B)對兩中心點座標(xcMi.xtmp)判斷是否夠接近。條件(C)中,對兩 截面寬度(WcMi.W)判斷寬度是否差距不大。本論文經實驗,在擷取前景物與 膚色前景物近似中軸線段時,本系統對(B)分別取α為 0.5 及 0.8,對(C)取α為 0.4。將條件(A)、(B)、(C)中的 x 與 y 互相對調,可以得到垂直(90°)掃描線的改 良判斷。

上述改良的近似中心軸線的相連判斷式,擷取到的近似中心軸線如圖 3.5(a)。圖 3.5(b)中,紅色橢圓的長軸為近似中心軸線的兩端點連線,即為近似中 軸線段;短軸為擷取到的N 個截面線段平均長度值。

(a) (b)

3.5 水平方向(0°)掃描線的擷取結果,(a) 近似中心軸線,(b) 橢圓的長軸為近似中軸線段,

短軸為截面線段的平均寬度值。

22

23

(a) (b)

3.7 移除過寬或過短的近似中軸線段:圖上方為 0°,下方為 90°,(a)紅色橢圓標示出不適合 表示肢體的近似中軸線段,(b)濾除(a)中過寬或過短的近似中軸線段。

3.8 以近似中軸線段與掃描線夾角推算肢體寬度的示意圖。

當系統運算速度較慢時,可以調整掃描線的間距,以減少像素的偵測判斷,

增快執行速度。但是系統掃描線間距變寬,會使得擷取到的近似中軸線段端點誤 差變大,使得連續畫面中肢體的末端位置跳動嚴重。我們可依近似中軸線段端點 (起點(xS, yS),終點(xE, yE))連線的延伸方向找尋較確切的肢體末端位置,如圖 3.9。

… Θ

24

3.9 擷取較正確的近似中軸線段端點位置,往端點(綠點)連線延伸,擷取較接近實際的

端點(紅點)位置。

本系統在建立前景物近似中心軸線時,同時建立前景物上膚色區域的近似中 心軸線,藉此得到前景物的近似中軸線段與膚色的近似中軸線段,如圖3.10 所 示。圖3.10 中,我們可以發現,以改良的近似中軸線段演算法,使用水平(0°) 及垂直(90°)的掃描線,亦可擷取到接近 45°或 135°的肢體近似中軸線段,如圖 3.10 中左腳,則可省略 45°及 135°掃描線擷取步驟。當肢體發生自我遮蔽的情況 時,我們可藉由膚色中軸線段端點位置,來推側肢體的位置。本論文將在第四章 整合這些近似中軸線段,並建立2D 人體模型。

(a) (b)

3.10 兩個方向掃描線得到的前景物與膚色近似中軸線段,(a) 0°,(b) 90°。

(xS, yS)

(xE, yE)

25

26

27

面上以橢圓表示不同肢體的分布位置及形狀,如圖4.2。當人站立且手部不高於 頭部時,以水平掃描線由上而下擷取到的第一個至少跨越三條掃描線的近似中軸 線段為選取的頭部,如圖4.3 中紅色橢圓。其他姿態的頭部選取,在[17]的研究 中有詳細論述。

(a) (b) 4.3 頭部選取的結果,(a) 側面例子,(b) 正面例子。

如果身體與頭部的寬度接近或截面線段內破損較嚴重而未能彌補,會使得頭 部無法以擷取到的近似中軸線段表示,如圖4.4。在圖 4.4 中,我們發現頭部長 度明顯與身高不成人體比例(依人體比例[18],假定頭頂到肩膀的長度χ約為身高 的1/6 至 1/7),此時我們在肩膀上方,選取合適的頭部長度及寬度,本系統設為 0.9χ及 0.8χ。系統在得到人體身高(以像素為單位)後,若頭部選取不合理,可 依上述來調整選頭部的大小。

我們在畫面上選取頭部位置後,依人體比例及外接矩形,估測軀幹在頭部的 下方位置,本系統設定軀幹的長度約為2χ、肩膀寬度約為 1.2χ、髖骨寬度約 為0.9χ,得到估測的位置,如圖 4.5。論文[9]中提到當人體為側面時,肩膀與 髖骨位置重疊於畫面中,由於平行於鏡頭側身步行的情況,必須追蹤偵測左右 腳,才能正確得知左右腳的前後關係。在真實世界中,軀幹位置可能因衣服顏色 與背景接近,使得正面與側面難以判定。由於受測者較常以正面朝螢幕來操控人

χ χ

28

機介面,且攝影機常會架設在螢幕上或内嵌於筆記型電腦上,故本論文主要在探 討人體正面姿態的偵測。當腳部向左或右伸展時,初始的髖骨位置會產生明顯誤 差,如圖4.5(b)。我們將在下一節,作腳部位置估測,並進一步調整髖骨位置。

(a) (b)

4.4 改良頭部選取的結果,(a) 頭部選取錯誤的狀況,(b) 改良後的頭部選取。

(a) (b)

4.5 肩膀與髖骨的連線,(a) 站立例子,(b) 腳部往外伸展的例子。

29

4.3 腳部位置估測

延續前一節,本系統得到的頭部、肩膀與髖骨在影像畫面上的位置,藉此我 們可以定義左、右腳的活動範圍。由頭頂到肩膀的長度χ為參考長度,來計算肢 體的相對長度。我們依人體比例,假定大腿長度約為1.5χ,小腿長度約為 1.5 χ,則髖骨到腳底的最大距離為3χ,並設定最大活動距離為 3.2χ,給予腳部 伸展的彈性活動空間,藉此以髖骨為圓心,3.2χ為半徑,在畫面上定義左、右 腳可能的活動範圍,如圖4.6(a)。

(a) (b)

4.6 腳部的偵測範圍,分別以紅色、藍色內部區域,表示左、右腳的活動範圍,(a) 可能的活

動範圍,(b) 實際的偵測範圍。

如果腳部與軀幹自我遮蔽的情況較嚴重,會因為褲子與衣服的顏色相近,使 得腳與軀幹很難以人體區域內部的輪廓作區分。當畫面中出現前述狀況時,本系

30

統以預設的腳部姿態取代之。我們以手部活動範圍的下方位置,來定義正面時,

腳部實際的偵測範圍,如圖4.6(b)。在圖 4.6 中可以發現,若在頭部正下方給予 腳部的估測位置,當腳往身體左、右方伸展時,會發生兩腳的末端都落在同一腳 的活動偵測範圍內,如圖4.6 下方的狀況。

為了避免上述情況造成的誤判,本論文以腳部區域的前景物近似中軸線段,

來定義腳部外接矩形,如圖4.7 中的紅色矩形。圖 4.7(a)下方的圖中,我們發現 即使中心軸線段斷成多節,也可較正確定義腳部區域的邊界。

(a) (b)

4.7 調整髖骨的位置,(a) 腳部區域的外接矩形,(b) 調整後的髖骨位置連線。

本系統進一步以腳部外接矩形的上部中心點位置(圖 4.7(a)中的綠點),與髖 骨原始的中心點位置,根據下式來調整髖骨的位置。

P1 = αP2 + (1-α)P3 (4.3) 其中本系統對髖骨的橫向位置(x 座標)做權重值的調整,P1為調整後的髖骨位置

31

(圖 4.6(b)中的藍點),P2為初始髖骨位置(圖 4.7(a)中的藍點),P3為腳部外接矩形 的上部中心點位置(圖 4.7(a)中的綠點),系統設定α值為 0.7。在腳部外接矩形內,

分別計算近似中軸線段端點與中心點位置(圖 4.7(a)中的綠點)左、右距離最長的 端點位置,視為左、右腳的末端,其髖骨與腳末端的連線即為腳部,如圖4.8。

(a) (b)

4.8 以橢圓表示腳部位置,(a) 腳部伸直的情況,(b) 腳部有曲折的情況。

圖4.8(a)下圖中,我們改善了圖 4.6(b)下圖因為兩腳落在同一偵測範圍內,

所造成其中一腳偵測不到或偵測錯誤的情況。本系統自髖骨到腳末端的連線位 置,依連出三個表示大腿、小腿、腳底板位置的橢圓。本系統依人體比例,定義 腳部的大腿、小腿、腳底板的長度占腳長度的比例為0.45、0.45、0.1,藉此估測 膝蓋及腳踝的位置,如圖4.7 中橢圓的長軸為大腿、小腿及腳底板的端點位置連 線,短軸為頭部寬度的0.6、0.5、0.4 倍。

當腳部的長度小於腳伸直長度(3χ),表示腳部有曲折。若以上述定義髖骨

32

到腳踝的中心位置為膝蓋,表示腳伸直抬高,屬於高難度姿態,一般情況下很難

到腳踝的中心位置為膝蓋,表示腳伸直抬高,屬於高難度姿態,一般情況下很難

相關文件