其他分享
首页 > 其他分享> > Plane Sweeping | 平面扫描

Plane Sweeping | 平面扫描

作者:互联网

核心思想

如果平行平面足够密集,物体表面的任意一点p一定位于某平面Di上,可以看到p的相机看到点p必定是同一颜色;假设与p在同一平面的另一点p’,不位于物体表面,则投影到每个相机上呈现的颜色不同, 于是Plane Sweeping算法假设:

对于平面上任意一点p,其如果投影到每个相机上的颜色均相同,那么可以说这个点很大概率是物体表面上的点

核心步骤

对于平行平面Di上的每个点p,将其投影到所有相机上,之后根据投影的颜色进行匹配计算,得到点p对应的分数以及其对应的深度,p得分越高,代表其投影在各相机上的颜色越接近
p计算之后,将其投影到虚拟相机cam x上,从后向前扫描,如果某一个平面Dj上的点q投影到cam x后,发现得分高于之前该点的分数,则更新该点的分数和深度,直至平面扫描结束

数学建模

Homography


相机C看 x π x_\pi xπ​和C’看 x π x_\pi xπ​存在单应关系

省略公式和推导

Cost Function

有了点的对应关系,接下来就是找到cost function对其优化。由于噪声的影响,不能只利用颜色信息,需要结合窗口信息进行比较

C ( x , y , Π k ) = ∑ k = 0 N − 1 ∑ ( i , j ) ∈ W ∣ I r e f ( x − i , y − j ) − β k r e f I k ( x k − i , y k − j ) ∣ \begin{aligned} C\left(x, y, \Pi_{k}\right) &=\sum_{k=0}^{N-1} \sum_{(i, j) \in W} \mid I_{r e f}(x-i, y-j)-\beta_{k}^{r e f} I_{k}\left(x_{k}-i, y_{k}-j\right) \mid \end{aligned} C(x,y,Πk​)​=k=0∑N−1​(i,j)∈W∑​∣Iref​(x−i,y−j)−βkref​Ik​(xk​−i,yk​−j)∣​

在得到了cost function后只需计算个点最小值即为对应的平面:
Π ~ ( x , y ) = argmin ⁡ Π m C ( x , y , Π m ) \tilde{\Pi}(x, y)=\underset{\Pi_{m}}{\operatorname{argmin}} C\left(x, y, \Pi_{m}\right) Π~(x,y)=Πm​argmin​C(x,y,Πm​)
有了对应平面该点的深度如下计算:
Z m ( x , y ) = − d m [ x y 1 ] K r e f − T n m Z_{m}(x, y)=\frac{-d_{m}}{\left[\begin{array}{cc} x & y & 1 \end{array}\right] K_{r e f}^{-T} n_{m}} Zm​(x,y)=[x​y​1​]Kref−T​nm​−dm​​

Reference

标签:right,投影,扫描,相机,Plane,该点,Sweeping,平面,Pi
来源: https://blog.csdn.net/double_ZZZ/article/details/112577320