第三章 系統流程
3.4 物件姿態估測
3.4.1 物件切割
人造的機械中,絕大多數都是由許多小關節所組成的,而本論文的實驗對像坦克車 也是一樣,要對這種可形變的剛體進行影像處理,切割是不能少的,所以如何將物體在
關節處切割開來變成為了重要的問題了,參考過去的論文[5][6][7][8][9]中,除了[5]是利 用疊代最近點的方式估測,其餘皆是利用切割的方式來做,這幾篇論文中有提出了幾種 切割方法,i) 多長方體包覆切割[6];ii)利用物體高度資訊切割出車身以及砲塔[7][8][9]。
首先考慮第一種多長方體包覆切割,這個方法是先將整個形變剛體力用一個長方體 進行包覆,然後計算其密度,若密度不到閥值,則再多用一個長方體包覆一直到每個長 方體包覆的密度都達到目標,如圖 3.20:
圖 3.20 文獻[6]長方體包覆切割結果。’x’為砲塔,’o’為炮管,黑點為車身。
圖 3.20 可以看到最後的切割結果,分別找到了砲塔、炮管以及車身,但是並沒有很完 整的將三個部分切割開;而另外一種常用的切割方法是利用高度的方式切割坦克車,這 樣的方法切割效果不錯,但只能用於車身與砲台及大炮的切割,並無法將炮管以及砲塔 切開,如圖 3.21:
圖 3.21 利用高度資訊切割結果。
圖 3.21 可以發現很簡單的就找出了車身以及砲塔部分,但論文中並未提及如何切割炮 管及砲塔,並且這樣的演算法是必須知道坦克車的高度才有辦法執行的,但本論文的目 標是大多數的坦克車都能夠適用,所以這樣的切割方法除非能夠自動找出高度,否則是 無法使用的。根據上述幾點,本論文的切割目標有以下幾個,i)自動找出坦克車的高度,
以利車身及炮塔的切割,ii)自動的切割炮管以及炮塔。
自動找出高度的部分,考慮圖 3.22 這樣未切割的坦克車圖,本論文提出下列演算 法來達成:
圖 3.22 未切割之坦克車圖。
步驟一:將點雲資料根據 z 軸的高度 hx由上至下,每次增加 hx /n 的大小,將物件分為 上下兩部份,並對上部分以主成份分析法分析其寬度(y 軸差)。如圖 3.21:
圖 3.23 不同高度時點雲之寬度圖。
步驟二:找出寬度圖中分別變化量最大的位置,如圖 3.23 不同高度時點雲之寬度圖,
得到當 step=17 時,變化量為 =0.07933,如圖 3.24: z
圖 3.24 寬度變化圖。
步驟三:找出 step=17 對應的高度 z=0.1402,根據該高度直進行切割,上部即為炮管、
炮塔,下部則為車身,即完成切割。結果如圖 3.25:
圖 3.25 根據 z=0.1402 切割結果圖。
根據上述幾個步驟就可以完成高度的自動搜尋,接下來將繼續對炮管以及炮塔的部分進 行切割。對炮管切割的部份,本論文提出一個演算法,是利用炮管跟炮塔的寬度不同這 個特性來完成的,考慮下圖 3.26:
圖 3.26 待切割炮管。
圖 3.26 中可以發現炮管以及炮塔的寬度不同,所以利用以下演算法來進行切割:
步驟一:對上部點雲進行主成份分析,並主軸轉至 x 軸。
圖 3.27 將圖 3.26 轉至 x 軸結果圖。
步驟二:將點雲資料根據 x 軸的長度 lx由左至右,以及由右至左以每次增加 lx /n 的大小
,並計算其寬度(y 軸差)。如圖 3.28,
圖 3.28 兩個方向之寬度圖。
步驟三:找出寬度圖中分別變化量最大的位置,如圖 3.28,由右至左的寬度圖變化最大 為 step=16,變化量為 =0.0605;由左至右的寬度圖變化最大為 step=9,變化r 量為 =0.0789; l
步驟四:比較 >l ,找到切割點為 step=9 對應的切割位置 x = -0.4956。 r
步驟五:找出炮管後再次對炮管部份執行主成份分析法,依該角度將資料轉至 x 軸,並 重複執行以上步驟二至步驟四,直到炮管角度變化小於閥值。
步驟六:得到切割結果,如圖 3.29:
圖 3.29 炮管切割後之結果。紅色為炮管;藍色為炮塔。
根據以上的步驟,就可以得到如圖 3.30 的坦克切割圖。
圖 3.30 坦克切割結果圖,綠色為車身,紅色為炮管,藍色為炮塔。
成功的將坦克車做切割後,即可開始對坦克車進行角度估測。