• 输入:一系列经过校准的照片以及拍摄相机对应的投影矩阵
  • 假设(定义):所有物体只有漫反射,有一个虚拟相机cam x,定义一个近平面和一个远平面,在这之间物体被一系列密集的平行平面划分

核心思想

如果平行平面足够密集,物体表面的任意一点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)∣​

  • W W W:以x,y为中心的窗口
  • β \beta β:增益因子,计算光照变化后转换为增益因子

在得到了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​​

  • 局限性:基于窗口的匹配,窗口内像素与中心像素极可能不在一个平面(阶梯状、不连续性),因此会干扰中心像素的匹配
  • 改进之一
    • photo consistency:直接估计窗口内平面方程,有了平面方程直接带入该点坐标即是深度值

Reference

  • Plane-sweeping - 代码天地
  • Multi-resolution real-time stereo on commodity graphics hardware
  • Real-time Plane-sweeping Stereo with Multiple Sweeping Directions

Plane Sweeping | 平面扫描相关推荐

  1. 三维重建之平面扫描算法(Plane-sweeping)

    平面扫描(plane-sweeping)介绍: plane-sweeping算法在三维重建中非常重要,其特别适合并行计算,因此通过GPU加速后可以使复杂的稠密重建达到实时.大多实时三维重建的深度图生成 ...

  2. 基于正向扫描的并行区间连接平面扫描算法(IEEE论文)

    作者: Panagiotis Bouros ∗ Department of Computer Science Aarhus University, Denmark pbour@cs.au.dk Nik ...

  3. POJ2932Coneology(计算几何、平面扫描)

    整理的算法模板合集: ACM模板 平面上有N NN个两两没有公共点的圆,i ii号圆的圆心在(xi,yi)(x_i,y_i)(xi​,yi​),半径为rir_iri​.求所有最外层的,即不包含与其他圆 ...

  4. plane-sweep

    论文:<A Space-Sweep Approach t o True Multi-Image Matching> 起因:看DSGN看不懂,什么cost volume搞不明白,然后一路摸到 ...

  5. PlaneMVS: 3D Plane Reconstruction from Multi-View Stereo介绍

    PlaneMVS:多视点立体三维平面重建 Abstract 我们提出了一个名为PlaneMVS的新框架,用于从已知相机姿态的多个输入视图中重建3D平面.以往大多数基于学习的平面重建方法都是从单幅图像重 ...

  6. 激光振镜误差校正算法C语言,动态聚焦激光振镜扫描系统的误差分析及图形校正算法.pdf...

    动态聚焦激光振镜扫描系统的误差分析及图形校正算法.pdf 份态象金激疙非在镜扫描系统份钱差令祈怠⑤荷乡镇正算法 文世峰,史玉升,谢 军 (华中科技大学材料学院塑性成形模拟及模具技术国家重点实验室,湖北 ...

  7. unity2d随机生成物体_平面测量路径生成的4种方式

    平面度(flatness),是属于形位公差中的一种,指物体表面具有的宏观凹凸高度相对理想平面的偏差.在传统的检测方法中,平面度的测量通常有:塞规/塞尺测量法.液平面法.激光平面干涉仪测量法(平晶干涉法 ...

  8. Unity学习2:如何实现个性化渲染平面(图文详细)

    Unity学习2:如何实现个性化渲染平面(图文详细) AR Plane Manager(平面追踪对象管理器) 可视化平面 个性化渲染平面 AR Plane Manager(平面追踪对象管理器) 平面管 ...

  9. NETDMIS5.0偏置构造平面2023

    "台阶面"建立坐标系第一轴向,图纸要求Z轴原点最终建立在平面1处. 常规检测方法:测量其中一个平面,比如平面1,建立坐标系第一轴向.然后测量平面2和平面3.分别偏置平面2和平面3与 ...

最新文章

  1. 什么是C ++ 11中的lambda表达式?
  2. 继电器rc吸收电路取值_一文读懂继电器的工作原理以及驱动电路
  3. Linkedin Camus的使用
  4. nginx php value,PHP+NGINX参数优化
  5. 算法入门经典-第七章 例题7-2最大乘积
  6. (85)FPGA约束有哪些-面试必问(九)(第17天)
  7. 树状数组相关应用之多叉树子树问题
  8. Mysql替换字段中的内容
  9. 如何连接到远程SQL Server
  10. 《刀塔传奇》付费设计分析
  11. linux 免密登录
  12. HDU 1102 Constructing Roads
  13. 成员函数指针有多态的效果吗?
  14. 转 未能使用提供程序 RsaProtectedConfigurationProvider 进行解密 的解决办法
  15. vfp程序设计和c语言6,VFP程序设计总结
  16. truetype字体怎么转换成普通字体_【转】TrueType(二)字体格式解析
  17. Nodejs之路(四)—— MongoDBMySQL
  18. 单条视频播放量破2000w,一首《孤勇者》就能盘活一个账号?
  19. Jmeter简单操作
  20. Dijkstra,A*,DWA,TEB

热门文章

  1. python读取xlsx python读取excel数据
  2. Java API文档
  3. 推荐系统之数据与特征工程
  4. python 囚徒困境_40行Python代码实现“旅行者困境“演化过程
  5. 浅显易懂的Java入门(一)【基本程序设计】
  6. VPX显示计算机学习资料第711篇:飞腾1500A-4+8860 6UVPX显示计算机
  7. 23种设计模式-行为型模式-访问者模式
  8. 石英砂过滤器 多介质过滤器 活性炭过滤器
  9. 【PAT】2021年春季PAT甲级题解
  10. 解题-->在线OJ(五)