reference:
三維重建之平面掃瞄演算法(plane-sweeping)
plane-sweeping演算法在三維重建中非常重要,其特別適合平行計算,因此通過gpu加速後可以使複雜的稠密重建達到實時。大多實時三維重建的深度圖生成部分採用plane-sweeping演算法。而且plane-sweeping不用rectify,甚至radial distortion的影象也可以用。研究semantic 3d的christian hane直接利用魚眼相機的影象planes-weeping也得到很好的效果。可以說plane-sweeping和patch-match為三維重建實時和非實時深度圖估計的主要演算法。
平面掃瞄法通過將一**像投影到乙個平面假設上,然後再投影到參考影象上來匹配參考影象。通過這個步驟捲曲的影象將和參考影象比較測量影象的不相似度,這將通過乙個小的匹配視窗來評估。如果測試的平面假設接近參考影象中乙個畫素的真實深度,則對應的差異值會較低。測試許多平面假設,取每個畫素的最佳匹配平面所產生的深度,然後生成參考影象的深度圖。
最初,平面掃瞄法被提出用於針孔影象,其中影象通過平面單應性被扭曲成參考檢視。為了讓每乙個攝像頭覆蓋更大的視野,從而實現對汽車周圍障礙物的檢測,也可以使用魚眼攝像頭。雖然這略微增加了扭曲過程的複雜性,但深度對映仍然可以在圖形處理單元(gpu)上實時計算。
平面掃瞄法將重建的三維結構區域性逼近為平面。如果平面假設的法線方向與實際的表面方向沒有很好的對齊,則變形後的影象相對於參考影象會出現區域性畸變,即使是匹配patch也會增加其不相似度評分。這可以通過對準場景中的主要方向來克服。
如圖所示,平面掃瞄演算法將深度範圍分成了乙個個的平面,深度範圍可以由很多方法獲得。如果平行平面足夠密集,空間被分割的足夠細,那麼,空間物體表面上的一點m一定位於眾多平行平面中的其中乙個平面上。同時,所有能看到m的攝像機看向m必然看到的是同乙個顏色,也就是物體在點m本來的顏色。假設現在又有另一點m』,這個點也在乙個平面上,假定如同m一樣也在同一平面上,但是他並不位於任何可見物體的表面上。這樣的點很有可能投影到每個可見攝像機上,並不是同樣的顏色(圖中的兩個黑點)。
施工中
Plane Sweeping 平面掃瞄
如果平行平面足夠密集,物體表面的任意一點p一定位於某平面di上,可以看到p的相機看到點p必定是同一顏色 假設與p在同一平面的另一點p 不位於物體表面,則投影到每個相機上呈現的顏色不同,於是plane sweeping演算法假設 對於平面上任意一點p,其如果投影到每個相機上的顏色均相同,那麼可以說這個...
poj2932 計算幾何平面掃瞄)
解題思路 其實就是把圓的左右兩端記錄下來,然後沿x軸從左到右進行掃瞄,掃到圓的左端點時,則判斷其是否被其他圓包含,如果不被包含就加入set中維護,到碰到圓的右端點時,就從set中刪除左端點。但做的時候調了一些時間,發現有個以前沒注意到的語法問題。網上的版本都是用pair進行資料組合的,這樣排序的時候...
poj2932 掃瞄線 平面幾何
挑戰程式設計p258 將圓的x左邊左端和右端儲存起來 for int i 0 i排序 sort events.begin events.end 判斷 在本題中圓只有兩種情況 包含與不包含 for int i 0 i iterator it outers.lower bound make pair y...