5.1 平面優先權 (Patch Priority)
從實驗結果我們發現,patch 的 expansion 若是考慮了 priority 則會有較佳的 連續性與收斂結果;在 Furukawa 的 PMVS 中,他們實作了高度平行化的 optimization process,並且每個 patch 彼此間都互為 independent,缺點是 patch 間 需要經過多次的 filtering 與 re-expansion 才能有較佳的連續性。而 Habbecke 的方 法中同時在 growing 的 region 僅有一個,僅在 growing region 無法再向外 expansion 時才注入一個新的 seed region,filtering 的過程利用與 parent patch 的關係在 runtime 就已決定,因此擁有較佳的 surface 連續性。基於平行化的結構與考慮 surface 連續性,我們認為所有 patch 都有其 priority,並且要由 priority 較高的 patch 先行 expansion。我們經實驗觀察發現 priority 較高的 patch 其 expansion patch 的 priority 也較高,因此利用 priority 來決定先後順序可較有意義的填補穩定的 surface,並且也先確定有信心的 patch 參數作為下一個 expansion 的 parent patch。
每個 patch 的 priority 定義為 𝑞(𝑝),數值越小則 priority 越高,考慮下列幾 點分別是 fitness、correlation、visible camera number 與 level of detail。我們認為 texture 對應較佳以及 visible camera 較多的 patch 相對穩定,而 level of detail 較低 的 patch 也含有較多的 texture,故給予較高的 priority。
如下式, 𝜉(𝑝) 表該 patch 經 adaptive weighting 的 fitness、𝛾(𝑝) 表該 patch
首先,我們將 seed patch 放入 priority queue 中,並依照 patch priority 由高至 低取出作為 parent patch 進行 expansion,而 expansion 產生的 child patch 也會放
21
入 priority patch 中進行排序,重複直到 priority queue 為空時整個重建則結束。
5.2 影像網格 (Image Cell Map)
本論文的最終目的是在物體表面上佈滿 dense 的 patch,為了要能夠衡量重 建的完整性以及 expansion 鄰近的新 patch,我們將影像切割為 cell size 𝜏 pixel 的 cell map 𝑄𝑖;𝜏 定義了 patch 在空間中的密度,數值越小則密度越高,描述物
體也越精細,但也相對需要更多時間來重建整個模型,在有效的取樣密度下,𝜏 的
最小值可以是 1 pixel。當所有 priority queue 取出的 parent patch 都無法再向鄰近 cell expansion 時程式就結束。而可能有 object image regions 與其四周有陡峭牆壁, 而自身又無 seed points,未被掃到的地方就為空缺不重建。
將 𝑝 投影到所有 visible image 上的 cell 𝐶𝑖(𝑝), 𝑖 ∈ 𝑉(𝑝),並紀錄該 cell 包含 哪些 patch。Expansion 的過程嘗試使每一個 cell 都至少有一個 patch,但為了在 patch filtering 步驟確認 cell 中 patch 的正確性,我們允許一個 cell 能夠有複數個 patch。為了計算效率問題,我們在實作上仍然加入了一個 cell 所能容納的最大 patch 數量 𝐶𝑚𝑎𝑥,當大於或等於 𝐶𝑚𝑎𝑥 則該 cell 就算完成 expansion。
5.3 擴增相鄰網格之平面 (Expansion of Neighboring Cells)
我們嘗試在 𝐶𝑖(𝑝), 𝑖 ∈ 𝑉(𝑝) 的 one-ring neighbor cells 𝑁𝑖(𝑝) 共 8 個方向做 expansion,但不包含三種情況,第一是若 neighbor cell 中已有一個已經長好的 patch 且與目前 patch 相近時,第二是 neighbor cell 已有一個不相鄰但可信度很高 的 patch 時,第三則是當這個 neighbor cell 已經達到 patch 數量上限 𝐶𝑚𝑎𝑥 時。
在第一種情況時,由於 neighbor cell 已經有一個經過最佳化後仍可能會調整 到相近參數的 patch,我們可以直覺的省略該 neighbor cell 的 expansion。我們投
影兩個 patch 中心點到對方平面,並計算平均是否小於 𝜌,若實為共平面,則平
均距離會相當接近 0,反之則會越大。如下式,其中|(𝑐(𝑝1) − 𝑐(𝑝2)) ∙ 𝑛(𝑝1)|為
22
𝑐(𝑝2)到𝑝1之距離,相對的|(𝑐(𝑝1) − 𝑐(𝑝2)) ∙ 𝑛(𝑝2)|則是𝑐(𝑝1)到𝑝2的距離。
n(𝑝1, 𝑝2) =|(𝑐(𝑝1) − 𝑐(𝑝2)) ∙ 𝑛(𝑝1)| + |(𝑐(𝑝1) − 𝑐(𝑝2)) ∙ 𝑛(𝑝2)|
2 < 𝜌
圖 9. 相鄰 patch 距離示意圖,計算兩個紅色線段的平均長度作為判斷基準
第二種情況則常發生在 depth 不連續的地方,雖然兩個 patch 距離很遠,但 由於該處也有一個很穩定的 patch,實作上我們判斷若 𝛾(𝑝) > 𝛼,則不 expansion。
第三種情況則是為了要加速 expansion 過程,理論上我們希望可以從同一個 cell 中建立多個 patch,來幫助我們判斷 patch 是否需要 filtering,若 |𝑉(𝑝)| 很大 則會造成一些 overhead,所以我們這裡僅取到足夠的 patch 數量 𝐶𝑚𝑎𝑥 即可。
𝑐(𝑝1)
𝑐(𝑝2) 𝑛(𝑝1) 𝑛(𝑝2)
23