当前位置: 首页 > ai >正文

Multi-View Stereo for Community Photo Collections

全局视图选择介绍

在SFM阶段计算的3D点(共有特征)是一个很好的指示,对于给定的视图R去找到与之相关的视图V,因为3D点源自于三角化,而三角化又来自于特征的匹配,那么如果两个视图存在匹配了,直接就说明两个视图之间存在重叠关系。

但是,两个视图之间存在共有的特征不能保证好的稠密重建的结果,两个视图之间存在很多的匹配的时候,往往的重叠度很高,这个时候一般两张图之间基线很小,基线小计算的视差误差就会偏大。此外,特征匹配一般是存在尺度不变性的,也就是大分辨率的视图可能和小分辨率的视图存在匹配,但是在稠密重建中,最好两张视图分辨率基本一样是最好的。因此作者给出了计算得分的方式,去评价两张视图去计算MVS的好坏。

如公式1所示,其中Fx是可以被视图X观测到的共有的特征,wN(f)是用于评估两个视图之间重叠度是否合适的函数,ws(f)是两个视图分辨率是否合适的函数。

其中,其中α是视图Vi和Vj与对应的共同的特征点f (3D点)的夹角,也就是两个视图的相机中心与3D点坐标求得的向量,计算反余弦得到的夹角。其中αmax在实验中设置为10度。二次函数用于抵消随着角度减小而出现的特征数量增加的趋势。

为了估计在特征点 f 附近,三维数据 V 的空间采样率,我们找一个以 f 为中心的球,使得它在图像 V 上投影的直径正好等于一像素的间距。这个球的实际三维直径 sV(f) 就代表了在该区域的采样间距(或说空间分辨率)。其中。在实际的计算中,sR(f)等于对应的图像的焦距F除以对应的3D点的深度。如公式所示,对应的分辨率的比值在1-2之间时,得分是最高的1,也就是说两张图像的分辨率越相近,得分越高。

具体的代码可以参考openMVS,如链接所示:

https://github.com/cdcseacave/openMVS/blob/e134eb4430b73cd14077f73a0ace297b61f942b6/libs/MVS/Scene.cpp#L835

http://www.xdnf.cn/news/1249.html

相关文章:

  • 云原生--CNCF-1-云原生计算基金会介绍(云原生生态的发展目标和未来)
  • C语言学习记录(17)编译和链接
  • 硬件工程师面试常见问题(5)
  • C语言教程(十一):C 语言中四种主要作用域及作用域嵌套遮蔽
  • 2023蓝帽杯初赛内存取证-8
  • 【Dart语言】八、并发
  • 宏函数 和 C++ 内联函数
  • java知识点
  • Swoole-添加自定义路由实现控制器访问
  • 互联网三高-高性能之IO网络技术底层机制
  • 《TCP/IP详解 卷1:协议》之第四、五章:ARP RARP
  • CLIP | 训练过程中图像特征和文本特征的在嵌入空间中的对齐(两个投影矩阵的学习)
  • 武装Burp Suite工具:RouteVulScan插件_被动扫描发现漏洞.
  • python高级特性01
  • 代码随想录算法训练营Day34
  • (16)VTK C++开发示例 --- 转换文件格式
  • ProxySQL 性能调优工具推荐
  • day48—双指针-通过删除字母匹配到字典最长单词(LeetCode-524)
  • 【随机过程】柯尔莫哥洛夫微分方程总结
  • 算力网络的早期有关论文——自用笔记
  • 在Pytorch中使用Tensorboard可视化训练过程
  • 基于DeepSeek的网络爬虫技术创新与实践应用
  • 若依如何切换 tab 不刷新
  • Google 开发者政策中心 - 3 月版
  • 【Spring】AutoConfigureOrder与Order注解的区别与使用方式
  • Gboard安卓版手势输入与多语言支持全面评测【输入顺滑】
  • Java数组
  • C++抽象基类定义与使用
  • linux kallsys
  • 探索Cangjie Magic:仓颉编程语言原生的LLM Agent开发新范式