大規模SfM的Cut Expand

2021-10-13 12:33:55 字數 1273 閱讀 3523

expand

判斷cluster的大小。若cluster的image的數目足夠小,不進行任何操作,返回cluster

cluster的大小可以進行cut,對cluster進行normalized cut,返回每個image及其所屬的cluster_id

將image分配到clustered的child cluster

收集inter child cluster(shares common images)和intar child cluster(has no connection with each other)之間的edges

遞迴地對child cluster進行partition

(graph-based parallel large sclale structure from motion)

根據image的數目和每個cluster的image數,計算要分成幾個cluster

對image使用normalized cut

使用normalized cut來進行partition

根據partition的結果來收集image的節點node

根據cluster_id來對edge進行grouping。若image_pair的節點的cluster_id相同,則認為image_pair屬於同一cluster,將image_pair放入intra_clusters_;image_pair的cluster_id不同,將image_pair放入clusters_lost_edges_

對每個cluster進行expand,保證整體重建結果的完整性

expanding images(cluster中edge節點的expanding)

g_inter := g_intra

將節點不在同一cluster的lost_edge新增到同一cluster中。如:lost_edge的兩個節點分別在cluster a, cluster b中,將cluster b的節點新增到cluster a中,將cluster a的節點新增到cluster b中。

2.expanding all lost images(lost edge中節點的expanding)

將lost_edge的乙個節點初始化為乙個cluster,將lost_edge中的image_id放入size較小的cluster中。將lost_edge的另一端節點放入所選的cluster中。

expanding

- colmap的expanding是根據cluster來展開的

- chen的expanding分為cluster的expanding和lost edge的expanding

軟體的大規模生產

很多人都幻想軟體可以工廠化,流水線化生產,但是這一天卻從來沒有到來。軟體和工廠模式的不同在於軟體是研發出來,而工廠是研發出來後,持續生產。工廠中的生產階段是重點,而軟體的生產階段只需要複製複製,可以忽略不計。所謂的流水線指的是工廠的生產階段,所以軟體很難出現所謂的流水線。那麼軟體是不是無法擴大規模,...

軟體的大規模生產

很多人都幻想軟體可以工廠化,流水線化生產,但是這一天卻從來沒有到來。軟體和工廠模式的不同在於軟體是研發出來,而工廠是研發出來後,持續生產。工廠中的生產階段是重點,而軟體的生產階段只需要複製複製,可以忽略不計。所謂的流水線指的是工廠的生產階段,所以軟體很難出現所謂的流水線。那麼軟體是不是無法擴大規模,...

大規模機器學習

如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應 該怎樣應對乙個有 100 萬條記錄的訓練集?以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。首先應該做的事是去檢查乙個這麼大...