openMVS深度图计算:DenseReconstruction Estimate之EVTEstimateDepthMap之patchmatch的传播优化

本文介绍了openMVS深度图计算的优化过程,通过之字形遍历、空间传播和随机传播优化像素的深度值。在初始深度和法向量的基础上,利用邻域像素信息进行迭代优化,以更准确地估算每个像素的深度。深度图经过多轮传播和随机搜索后,得到更接近真实值的结果。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

0. 前前言

对于深度图计算的流程,笔者认为是:

  1. 由SfM得到稀疏三维点云,通过构建网格和插值来初始化参考图像(要求深度图的那一帧)的其他像素点对应的深度值和法向量;
  2. 根据参考帧像素点的初始深度值、法向量以及像素坐标,我们可以得到该像素点在三维空间中三维点的局部切平面(Patch);
  3. 计算当前参考帧的像素(当前像素块)与邻域帧对应像素(邻域像素块)(通过当前像素的坐标、深度值等信息结合单应矩阵得到)的匹配代价;
  4. 匹配代价是NCC或加权NCC,主要比较的是当前像素块和邻域像素块的像素色度空间和几何空间邻近性;
  5. 但是这些像素的初始深度值和法向量不够准确,所以得到的匹配代价值并不是最优解。这里有一个假设:参考帧相邻像素可能有相似切平面,即相似的深度和法向。对于高分辨率图像,像素个数足够多,则在初始化的深度和法向值中很可能至少有一个邻域像素有接近中心像素真值的深度值和法向值
  6. 所以,我们需要拿中心像素的邻域像素的深度值、法向量(也就是邻域像素的Patch)当做中心像素的深度值和法向量,然后根据中心像素的新的深度值以及原来的像素坐标,得到邻域帧对应像素的坐标(根据坐标我们可以确定像素的灰度值、空间距离等NCC公式需要用到的信息);
  7. 当然了,我们不能简单的将邻域像素在邻域Patch的深度值就赋给当前像素,而是应该求解当前像素和邻域Patch的新深度值,再进行第6步操作;
  8. 按上述原理进行像素间的深度值和法向值的传播及随机搜
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cashapxxx

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值