第三章 研究方法
3.1 三維特徵描述子之建構
3.1.2 描述子建構 – 3DLTD
Descriptor (3DLTD)。
圖 3.7 3DLTD 描述子建構流程
Load Model
Divide bounding box into M cubes (First
level)
Divide cube into N voxels (Second
level)
Calculate the value of the voxels Get P pairs of voxels
randomly in cube Obtain feature vector (length P)
{210…,111…} by ternary encoding
‧
eigenMatrix,藉由這個 Matrix 去得知 eigenvector 和 eigenvalue,以 eigenvalue 來 判斷相似性質,根據 eigenvalue 選擇投影量最大的值(major value)和投影量第二 大的值(middle value)當作篩選依據;模型尺寸問題,所採用的方法為切格子的方‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
31
Cube(a, b) = {
2, 𝑣(𝑎) − 𝑣(b) > 𝜃 1, −𝜃 ≤ 𝑣(a) − 𝑣(b) ≤ 𝜃 0, 𝑣(a) − 𝑣(b) < −𝜃
( 3.1)
圖 3.8 二元編碼與三元編碼之門檻值設置示意圖,座標上方為編碼,座標下方為需要
的門檻值,上方圖示的第一張圖示為二元編碼,可以看做將θ 門檻值設為 0,當樣本對
的距離差異值大於0,則編碼為 1; 差異值小於 0,則編碼為 0;第二張圖示為三元編碼
以 3DLTD 使用三元特徵編碼方式為例:把一個模型分割成 3×3×3 的 cubes 以及3×3×3 的 voxels,也就說總共我們可以得到 729 個 voxels。因為參考的積木 風格模型樣本點雲數量普遍為1000 點雲數量上下,因此門檻值𝜃設為:
𝜃 = 𝑙𝑜𝑔10(𝑃𝑜𝑖𝑛𝑡𝑠 𝑜𝑓 𝑚𝑜𝑑𝑒𝑙) ( 3.2)
再從當前選取到的 cube 內隨機挑選 64 組樣本對,如圖 3.9。假設第一組 voxel 的值為10 和 3,第二組樣本對為 2 和 1,第二組樣本對為 5 和 13…等等,假設 模型點數為1000,即𝜃為 3,第一組樣本對 10 – 3 = 7,大於 3,編碼為 2;第二 組樣本對2 – 1 = 1,小於等於 3 且大於等於-3,編碼為 1,第三組樣本對 5 – 13 =
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
32
-8,小於-3,編碼為 0,以此類推,直到編碼到 64 個位元,即為此 voxel 的描述 子(210….)。
假設模型經過些微的改變,可以發現第二組樣本對在二元編碼的情況下,關 係會發生變化,為原本樣本對2 和 1(2 – 1 得到編碼 1),變成樣本對 2 和 4(2 – 4 得到編碼 0),使得整體編碼由(110…)變成(100…);但在三元編碼下,關係仍然 不會改變,原本2 – 1 編碼為 1,改變後 2 – 4 仍然編碼為 1,整體編碼(210…)不 會因為受到輕微改變的影響,由此可觀察到三元編碼利用緩衝區的機制,防止因 些微改變造成數值不同而導致於編碼關係改變的問題,也因為二元變成三元,使 得特徵子的描述能力增加。
圖 3.9 三元特徵編碼示意圖
此外,每個model 所得到的特徵,都能夠以 L1-norm 或是 L2-norm 計算其 特徵描述子字串之間的距離,來選擇最相似的描述子,L1-norm 以式( 3.3)、L2-norm 以式( 2.1)計算:
𝐷(𝑥, 𝑦) = ∑ |𝑥𝑖− 𝑦𝑖|
𝑛−1
𝑖=0
( 3.3)
其中n 為描述子的長度,x 和 y 則分別為兩個 model 的描述子字串,由此可以得
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
33
知,三元編碼並不影響匹配方法的使用。
接下來,討論voxel 資料間的關係。我們採取了 Bipartite weighted matching 的方式,可以避免順序不對的問題產生。Voxel 彼此之間所對應的資料,可當作 是模型內部之間所對應的資訊,假設有兩個模型,一為方形模型,另一為球型模 型,則內部voxel 彼此之前所對應到的資訊應該會大不相同,也就表示我們所得 到3DLTD 特徵描述子的分佈是差異很大的。