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

fb0dbbeb20d72b14882ff99e2818fba2.png

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之类的),这个三维矩阵的每一个值都是一个像素点在不同深度值下的代价,如果说某一个像素点在

equation?tex=d%5E%7B%27%7D 的深度值下,它的代价最小,那么就取
equation?tex=d%5E%7B%27%7D 作为该像素点的深度值,每一个像素点的深度值确定了之后,这张图片的深度图也就确定了。

2D-3D特征融合

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

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

equation?tex=I_%7Bi%7D 的2D特征就是
equation?tex=F%5E%7Bi%7D+%3D+%5BF%5E%7B1%7D_%7Bi%7D%2CF%5E%7B2%7D_%7Bi%7D%2CF%5E%7B3%7D_%7Bi%7D%5D ,这些不同尺度下的特征图是需要融合在一起,再去和坐标信息融合的。而且这里还不止一张图片,是不同角度的多张图片,每一张图片还提取出了多尺度的特征图,融合不同角度的图像特征使,需要用到不同角度的相机参数,这样才能把特征图wrap到一个统一的方向(就是一些旋转矩阵和平移向量组成的相机外参以及相机内参,再和特征图做矩阵乘法)。多张图片在同一个尺度下的特征融合公式如下:

equation?tex=C%5E%7Bj%7D%3D%5Cfrac%7B%5Csum_%7Bi%3D1%7D%5E%7BN%7D%7B%28F%5E%7Bj%7D_%7Bi%7D-%5Cbar%7BF%5E%7Bj%7D%7D%29%5E%7B2%7D%7D%7D%7BN%7D%2C%28j%3D1%2C2%2C3%29 。j代表了不同尺度。

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

equation?tex=C_%7Bp%7D%3Dconcat%5BC%5E%7Bj%7D_%7Bp%7D%2CX_%7Bp%7D%5D%2C%28j%3D1%2C2%2C3%29

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

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

PointFlow

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

假设点的生成(Point Hypothesis Generation)

71dd6a8db043b868aaa2e7c1fb48881e.png

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

equation?tex=%5Cbar%7Bp_%7Bk%7D%7D%3Dp%2Bkst%2C+k%3D-m%2C...%2Cm

equation?tex=t 代表参考相机的方向,
equation?tex=s 代表偏移距离。最后会有2m+1个假设点。
边卷积(Edge Convolution)

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

53576300d4fc5b474b57df2d66962dda.png

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

948eb48d9fe5016f80295ba526853957.png

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

Flow Prediction

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

equation?tex=%5CDelta+d_%7Bp%7D+%3D+E%28ks%29+%3D+%5Csum_%7Bk%3D-m%7D%5E%7Bm%7D%7Bks%5Ctimes+Prob%28%5Ctilde%7Bp_%7Bk%7D%7D%29%7D

Training loss

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

equation?tex=l 代表迭代次数

b6b1f9f10d0b5b640c073035d2f4fcdb.png

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/460372.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在ubuntu 12.04上安装tomcat 7.40

因为源上的版本问题,所以没有使用源上的自动安装包,老规矩,Tomcat 7.0.40 Core下载地址:http://mirror.bit.edu.cn/apache/tomcat/tomcat-7/v7.0.40/bin /apache-tomcat-7.0.40.tar.gz 放入当前登录用户根目录: ~ 1、依旧是解压 t…

Nonblocking I/O 与 Asynchronous I/O

2019独角兽企业重金招聘Python工程师标准>>> Nonblocking IO 使用的是 polling (轮询)的方法(主动去问), 而 异步IO 使用的是信号机制(等待系统通知) 转载于:https://my.oschina.ne…

锐浪报表数据源access_kylin+SuperSet实现实时大数据报表的快速开发

最近我的团队将报表计算引擎从阿里的OLAP分析中间价迁移到了kylin上,解决了非常多的问题,将一些我们的解决方案分享出来,希望对读者或者在用kylin的人有所帮助。一、 之前现状和问题之前我们系统的报表都是基于阿里云的相关组件开发的&#x…

结构体定义的三钟方式

#include <stdio.h>#include <string.h>structStudent{ intid; charname[ 20 ]; intage;} s3; //定义方式3&#xff0c;不常用的一种方式intmain(){ structStudent s1; //定义方式1s1.id 0 ; strcpy (s1.name, "Zhang" ); s1.age 20 ; stru…

极大似然估计 摘自维基百科

最大似然估计[编辑] 原文地址&#xff1a; http://zh.wikipedia.org/wiki/%E6%9C%80%E5%A4%A7%E4%BC%BC%E7%84%B6%E4%BC%B0%E8%AE%A1 最大似然估计&#xff0c;也称为最大概似估计&#xff0c;是一种统计方法&#xff0c;它用来求一个样本集的相关概率密度函数的参数。这个方…

unity改变图片像素大小_类动森像素画反向转换 (xBR)

起因前阵子沉迷动森&#xff0c;DIY 样式的画风真的超萌(&#xff9f;д&#xff9f;)&#xff89;&#xff0c;恰巧在推上看到有个小姐姐在讨论这个像素画转换的算法&#xff0c;就想在 Unity 里整整。最后实现的镜头特效效果如下图。像素缩放算法常见的像素缩放算法对比图如下…

【记忆化搜索】bzoj3208 花神的秒题计划Ⅰ

暴力 #include<cstdio> #include<cstring> #include<algorithm> using namespace std; #define N 701 const int dx[]{0,0,-1,1},dy[]{-1,1,0,0}; int n,mem[N][N],a[N][N],m; bool cant[N][N]; int f(int x,int y) {if(mem[x][y]) return mem[x][y];mem[x][…

c语言程序2

题目&#xff1a;有一分数序列&#xff1a;2/1&#xff0c;3/2&#xff0c;5/3&#xff0c;8/5&#xff0c;13/8&#xff0c;21/13...求出这个数列的前20项之和。1.程序分析&#xff1a;请抓住分子与分母的变化规律。2.程序源代码&#xff1a; #include "stdio.h" …

99 网络编程_传统网络工程师如何利用python实现公司内网IP地址信息查询?

网工圈网络工程师阿龙圈内最早的公益公众号,本号已认证&#xff01;学网络关注我一个就够了(关注近5w)关注听说99%的网工都来这里充电吖关注我&#xff0c;一个老HCIE(编号3558)带你轻松玩网络技术&#xff01; 交个朋友&#xff0c;一起和一个技术狂热者相互交流&#xff0c;共…

[原创]windows server 2012 AD架构试验系列 – 12 配置操作主机

[原创]windows server 2012 AD架构试验系列 – 12 配置操作主机ActiveDirectory支持域中所有域控制器之间的目录数据存储的多主机复制&#xff0c;因此域中的所有域控制器实质上都是对等的。ActiveDirectory支持域中所有域控制器之间的目录数据存储的多主机复制&#xff0c;因此…

应用沙盒

应用沙盒结构&#xff1a; 应用程序包&#xff1a;包含了所有的资源文件和可执行文件&#xff0c;这个压缩包的内容是不可以修改的。 Documents:保存应用程序运行时生成的需要持久化的的数据&#xff0c;ITunes同步设备时会备份该目录。 Library/Caches:保存应用程序运行时生成…

笔记本换内存条

步骤一 拆除护盖 笔记本内存插槽上都有护盖保护&#xff0c;首先第一步就是先将护盖拆掉。大多数笔记本的护盖上都有标识&#xff0c;有的是内凹的内存图形&#xff0c;而且从护盖的大小也能看出来&#xff0c;一般内存护盖的大小&#xff0c;就比内存条大一点。当然有不少笔记…

python更新es数据_python操作es增删改查

1.查询(search)# 获取案例库信息app.route(/get_dcn_cases, methods[GET, POST])def get_dcn_cases():# 告警事件数据dcn_cases_query {"_source": {"includes": ["faultName", "endTime", "startTime", "checked&quo…

angularJS 指令实践

AngularJS 指令&#xff08;Directives&#xff09;实践指南(1) 2014-03-12 10:22 陈鑫伟 编译 伯乐在线我要评论(0)字号&#xff1a;T|T一个指令用来引入新的HTML语法。指令是DOM元素上的标记&#xff0c;使元素拥有特定的行为。举例来说&#xff0c;静态的HTML不知道如何来创…

数据结构四双向链表

双向链表也叫双链表&#xff0c;是链表的一种&#xff0c;它的每个数据结点中都有两个指针&#xff0c;分别指向直接后继和直接前驱。所以&#xff0c;从双向链表中的任意一个结点开始&#xff0c;都可以很方便地访问它的前驱结点和后继结点。而之前的单链表为单向链表&#xf…

smtplib python教程_Python使用poplib模块和smtplib模块收发电子邮件的教程

poplib模块接收邮件python的poplib模块是用来从pop3收取邮件的&#xff0c;也可以说它是处理邮件的第一步。POP3协议并不复杂&#xff0c;它也是采用的一问一答式的方式&#xff0c;你向服务器发送一个命令&#xff0c;服务器必然会回复一个信息。pop3命令码如下&#xff1a;命…

C#发送电子邮件 (异步) z

///验证电子邮件的正则表达式 string emailStr "^([\w-\.])((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([\w-]\.)))([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$"; /// <summary> /// 异步发送电子邮件 /// </summary> /// <p…

Linux服务器的初步配置流程

开发网站的时候&#xff0c;常常需要自己配置Linux服务器。 本文记录配置Linux服务器的初步流程&#xff0c;也就是系统安装完成后&#xff0c;下一步要做的事情。这主要是我自己的总结和备忘&#xff0c;如果有遗漏&#xff0c;欢迎大家补充。 下面的操作针对Debian/Ubuntu系统…

C语言趣味程序百例精解

1.绘制余弦曲线 在屏幕上用“*”显示0~360度的余弦函数cos(x)曲线 *问题分析与算法设计 如果在程序中使用数组&#xff0c;这个问题十分简单。但若规定不能使用数组&#xff0c;问题就变得不容易了。 关键在于余弦曲线在0~360度的区间内&#xff0c;一行中要显示两个点&#xf…

cocos2dx 圆盘抽奖_cocoscreator之微信小游戏的抽奖转盘

许多小游戏里面都有涉及到抽奖环节&#xff0c;所以就可能会用到抽奖转盘的制作&#xff0c;今天分享一个自己左转盘的小小过程。1、准备材料过程不多说&#xff0c;拼完界面之后大概是这样的&#xff1a;2、给界面绑定脚本&#xff0c;在脚本的properties里面绑定转盘节点&…