Point-Based Multi-View Stereo Network是一篇点云重建领域的文章,其工作内容为通过输入多张不同角度的图片,提取不同的点云特征,再进行融合,从而生成最终的点云。

1.介绍

Point-MVSNet的大致流程如下:

  1. 首先生成一个粗略的深度图(通过MVSNet,这是另一篇文章提出的网络结构,不过它是通过cost volume的方式进行重建的)。
  2. 然后把深度图转换为点云,再通过事先生成的深度图与ground truth之间的差值,通过迭代的方式进一步优化点云。

Point-MVSNet的亮点为,该网络把3D几何先验知识和2D纹理信息融合到一个叫做特征增强点云中(feature-augmented point cloud),然后在为每一个点估计它的3D flow(什么是3D flow,难道是一个点的3D属性的抽象表示???)

2.方法

粗略深度图预测

论文采用MVSNet模型来生成一个粗略的深度图。通过给予MVSNet图片和相关的相机参数,MVSNet生成一个3D cost volume(代价块),所谓代价块,是指每一个像素其实都有一个代价值,这个代价是通过代价聚合(cost aggregation)的方式计算来的,假想此处有一个WxHxD的三维矩阵,W和H分别是图像的宽高,D是深度范围(一般这个D都是在实验中,假定的一个范围比如5-10之类的),这个三维矩阵的每一个值都是一个像素点在不同深度值下的代价,如果说某一个像素点在

的深度值下,它的代价最小,那么就取
作为该像素点的深度值,每一个像素点的深度值确定了之后,这张图片的深度图也就确定了。

2D-3D特征融合

在网络里面使用的点特征是由从多尺度条件下提取出来的图像2D特征和归一化的3D坐标组成的,这就是所谓的2D-3D特征融合。

这里的2D特征就是通过卷积网络金字塔结构,提取出多尺度的图像特征,赋予每个点更大的感受野和上下文信息,一张图片

的2D特征就是
,这些不同尺度下的特征图是需要融合在一起,再去和坐标信息融合的。而且这里还不止一张图片,是不同角度的多张图片,每一张图片还提取出了多尺度的特征图,融合不同角度的图像特征使,需要用到不同角度的相机参数,这样才能把特征图wrap到一个统一的方向(就是一些旋转矩阵和平移向量组成的相机外参以及相机内参,再和特征图做矩阵乘法)。多张图片在同一个尺度下的特征融合公式如下:
。j代表了不同尺度。

然后再和点云的坐标位置进行融合,公式如下:

文中提到的动态特征提取的意思就是,得出来的

输入到point flow中,得到深度残差,然后这个深度残差往回输入到点云中,进一步更新点云的位置,然后再通过更新后的点云输入到point flow得到深度残差。这个过程文中迭代了两次。

PointFlow

PointFlow是论文中的核心模块,工作内容为为unprojected point点(通过深度图外加相机参数,通过非映射的方式生成的点)生成一系列假设点,利用这些点构造出一个有向图,在进行边卷积进一步提取邻域特征。然后经过MLP判断unprojected point的偏移位置,偏移向量由各假设点带权平均得到。

假设点的生成(Point Hypothesis Generation)

对每一个unprojected point都会沿着参考相机的方向生成一系列不同偏移的点(就是在投影出来的点的前前后后生成一些点)。公式如下:

代表参考相机的方向,
代表偏移距离。最后会有2m+1个假设点。

边卷积(Edge Convolution)

如上图所示,论文通过KNN的方法生成一个有向图。边卷积可以先简单理解为提取出边的特征(后面研究DGCNN的时候再做详细记录)。

是一个可学习的非线性函数,
是一个逐渠道的对称聚合操作(对称操作主要是max pooling、average pooling和weighted sum等方法,可以把多个特征聚合到一起,所谓对称是指输入的顺序并不影响结果)。

如上图所示,边卷积过后的点云跳连接到一起。

Flow Prediction

如上图所示,Point Flow输入增强点云,输出深度残差图。内部使用了三个EdgeConv层来聚合不用尺度下的点特征(特征金字塔刚好也是3层),再通过快连接把EdgeConv的结果组合成一个局部点特征。最后通过MLP来转换点特征,输出每一个unprojected point在假设点上的概率值,最终的unprojected point的偏移是由每一个假设点带权平均得到的。

Training loss

损失函数的公式如下所示:

代表迭代次数

invalid floating point operation什么意思_Point-MVSNet:基于多视角的点云重建网络相关推荐

  1. invalid floating point operation什么意思_数据可视化有意思的小例子:Taylor Swift 歌词数据分析和可视化...

    原文地址 Data Visualization and Analysis of Taylor Swift's Song Lyrics 英语学习时间 Taylor Swift - She is the ...

  2. 软考报名照片验证软件报错invalid floating point operation

    原因一:照片验证软件下载问题,请解压后再进行安装 原因二:考虑可能是照片的存储路径存在特殊符号问题,将源照片的路径更换至无特殊符号的存储路径下方可解决.

  3. 解决提示:Invalid floating point operation.无效的浮点运算

    一步就搞定,在该屏幕的FormCreate函数中加入这段代码:Set8087CW(DWord($133f)); 已经在Delphi7的程序中测试通过,如果在其他版本中不行,那请再找原因 交流QQ:26 ...

  4. Invalid input for operation: physical_network 'physnet1' unknown for flat provider network.

    在devstack中  按照这个教程给bare metal创建flat network,一切都配置好之后, 执行net-create时遇到错误: Invalid input for operation ...

  5. VS工作笔记-C++在release模式下可以进行调试

    原文地址: https://blog.csdn.net/u010565765/article/details/70045196 1,在菜单栏中的生成中,点击配置管理器,在活动解决方案中选择releas ...

  6. C++ builder报错

    First chance exception at $754AB9BC. Exception class EInvalidOp with message 'Invalid floating point ...

  7. KEIL软件错误代码及错误信息

    KEIL软件错误代码及错误信息 错误代码及错误信息 错误释义 error 1: Out of memory 内存溢出 error 2: Identifier expected 缺标识符 error 3 ...

  8. 使用vs调用DLL在运行时调用的方法,使用delph调用dll

    运行时调用: 1,将*.lib放在和32位debug,release和x64相同的文件夹下,将*.dll放在对应的debug或者release文件夹下: 2,在调用的文件中编写:在声明处编写  typ ...

  9. ECCV2022论文列表(中英对照)

    Paper ID Paper Title 论文标题 8 Learning Uncoupled-Modulation CVAE for 3D Action-Conditioned Human Motio ...

最新文章

  1. 简述计算机科学的核心内容,北京大学-计算机科学与技术(2018秋)作业及复习
  2. Ubuntu 12.04安装firefox 26中的flash plugin方法
  3. SSHDroid及sshpass简介
  4. html 页面内锚点定位及跳转方法总结
  5. Google调查了人们过去24小时的观看记录,发现了这些......
  6. 锁住文件linux,linux新手教程之创建锁文件的方法
  7. css规则可以放在云上,CSS中!important规则的使用方法
  8. Sencha ID的注册
  9. python数列分段_按范围分段的Python数组
  10. Spring4配置文件模板
  11. Eclipse: the import java.util cannot be resolved
  12. VB模拟键盘输入的N种方法
  13. opencv图像分析与处理(14)- 图像压缩基础知识
  14. python相关系数显著性检验_Python+pandas计算数据相关系数的实例
  15. 群晖NAS系统DSM入门
  16. kali破解wifi 密码(仅供学习)
  17. 【转】Sphinx速成指南
  18. 41-牛栏-最短路径
  19. 微型计算机电路试卷,微机原理试卷及答案2
  20. python根须系统斜杠_尝试在Win10系统搭建esp32编译系统.下

热门文章

  1. SHT知识库操作要点
  2. BlockingCollectionT 类实现 列队操作
  3. Tranquility
  4. 堆以及stl堆的使用
  5. day8-异常处理与网络编程
  6. Android深入源代码分析理解Aidl总体调用流程(雷惊风)
  7. iis6.0与asp.net的运行原理
  8. ubuntu 下mysql的常用命令
  9. vue-i18n使用及踩坑记录
  10. CentOS 6.3 下用ntfs-3g挂载Windows NTFS分区