【CVPR 2018】PU-Net: Point Cloud Upsampling Network

news2024/10/6 8:31:57

文章目录

  • PU-Net: Point Cloud Upsampling Network
    • 网络架构
      • 训练数据生成
      • 点特征嵌入
      • Feature Expansion
      • Cfoordinate Reconstruction
    • 端到端训练
      • Joint Loss Function

PU-Net: Point Cloud Upsampling Network

网络架构

PU-Net有四个组件:patch extraction, point feature embedding, feature expansion和coordinate reconstruct。

patch extraction:从给定的一组先验3D模型中提取不同比例和分布的点块。

point feature embedding:通过分层特征学习和多层次特征聚合将原始3D坐标映射到特征空间。

feature expansion:扩展特征数量。

coordinate reconstruct:用一系列全连接层重建输出点云的三维坐标。

训练数据生成

为了学习点云中的局部几何图形,作者采取基于分块的方法来训练网络。首先,在这些对象点云的表面上随机选择 M M M个点。然后从每个选定的点开始,在对象上生长出一个曲面分块,使得分块上的任何点都在曲面上与选定点的特定的测地线距离( d d d)内。最后,使用Poisson disk采样在每个面片上随机生成 N ^ \hat{N} N^个点,作为分块上的参考真实点云,而输入点在每个训练时期以 r r r的下采样率从真实点集合随机采样。

点特征嵌入

分层特征学习:

Pu-Net采用PointNet++中提出的分层特征学习机制作为网络的开端,逐步捕获层次结构中不断增长的尺度特征。

多级特征聚合

Pu-Net首先通过PointNet++中的插值方法从下采样的点特征中恢复所有原始点的特征,等级为 l l l的插值点 x x x的特征计算为:

其中 w i ( x ) 1 / d ( x , x i ) w_i(x)1/d(x,x_i) wi(x)1/d(x,xi)为逆距离权重, x 1 , x 2 , x 3 x_1,x_2,x_3 x1,x2,x3 x x x的三个最近邻点。然后使用1x1的卷积减少不同级别的内插特征到相同维度 C C C。最后将各个级别的特征连接,得到最终的点特征 f f f

Feature Expansion


假使 f f f的维度为 N × C ~ N\times\tilde{C} N×C~ N N N为输入点数, C ~ \tilde{C} C~为连接的点特征的维度。特征扩展层将输出 r N × C ~ 2 rN\times\tilde{C}_2 rN×C~2的特诊 f ′ f' f,其中 r r r为上采样率.

基于sub-pixel convolution layer,PU-Net的上采样表示为:


其中 C i 1 ( ⋅ ) \mathcal{C}_i^1(\cdot) Ci1()(每个特征集共享参数)和 C i 2 ( ⋅ ) \mathcal{C}_i^2(\cdot) Ci2()(每个特征集参数不同)表示对 f f f进行的两次1x1卷积。 R S ( ⋅ ) \mathcal{RS}(\cdot) RS() N × r C ~ 2 N\times r\tilde{C}_2 N×rC~2的张量reshape为 r N × C ~ 2 rN\times \tilde{C}_2 rN×C~2

Cfoordinate Reconstruction

使用全连接网络将 N × C ~ 2 N\times \tilde{C}_2 N×C~2的扩展特征变换为 N × 3 N\times3 N×3

端到端训练

Joint Loss Function

重建损失使用Earth Mover’s distance(EMD):

其中 S p S_{p} Sp为predicted point cloud; S g t S_{gt} Sgt为参考点云。 ϕ : S p → S g t \phi:S_p\rightarrow S_{gt} ϕ:SpSgt为双射映射

尽管具有重建损失的训练可以在基础对象表面上生成点,但生成的点往往位于原始点附近。为了更均匀地分布所生成的点,Pu-Net还包含一个排斥损失,表示为:

其中 N ^ = r N \hat{N}=rN N^=rN为输出点的数目, K i K_{i} Ki x i x_i xik个最近邻点的索引。 ∣ ∣ ⋅ ∣ ∣ ||\cdot|| ∣∣∣∣为L2范数。递减函数 η ( r ) = − r \eta(r)=-r η(r)=r作为排斥项(距离越小值越大),避免 x i x_i xi离其他点 K i K_{i} Ki太近。 w ( r ) = e − r 2 / h 2 w(r)=e^{-r^2/h^2} w(r)=er2/h2为权重因子。

最终的端到端训练损失函数:


其中 θ \bold{\theta} θ为网络参数, α \alpha α β \beta β为权重。

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

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

相关文章

「自定义类型」C语言中的构造数据类型如结构,联合,枚举

​​​​​​​🚀🚀🚀大家觉不错的话,就恳求大家点点关注,点点小爱心,指点指点🚀🚀🚀目录 🐰结构 🏡 前言 🌸数据类型的定义 &…

SpringBoot动态导出word文档(完美实整教程 复制即可使用,不能实现你找我)

背景 最近有一个需求是需要动态导出合同、订单等信息,导出一个word文档供客户进行下载查看。 需要导出的word文件,主要可以分为两种类型。 导出固定内容和图片的word文档导出表格内容不固定的word文档 经过对比工具,我实践过两种实现方式…

一文细说引导内存分配器

一、引导内存分配器 1.引导内存分配器的作用 因为内核里面有很多内存结构体,不可能在静态编译阶段就静态初始化所有的这些内存结构体。另外,在系统启动过程中,系统启动后的物理内存分配器本身也需要初始化,如伙伴分配器&#xff…

OD笔试题-空汽水瓶可以换汽水

/*** 某商店规定&#xff1a;三个空汽水瓶可以换一瓶汽水&#xff0c;允许向老板借空汽水瓶&#xff08;但是必须要归还&#xff09;。* 小张手上有n个空汽水瓶&#xff0c;她想知道自己最多可以喝到多少瓶汽水。* 数据范围&#xff1a;输入的正整数满足 1≤n≤100* <p>*…

springboot 多环境配置yml

创建多个配置文件 创建文件时注意&#xff0c;一定是 application-文件名称.yml 这种格式 application.yml #主配置文件 application-dev.yml #开发环境的配置 application-prod.yml #生产环境的配置application-prod.yml # 生产环境端口为90 server:port: 90applica…

Python实现将一段话txt生成字幕srt文件

Python实现将一段话txt生成字幕srt文件 作者&#xff1a;虚坏叔叔 博客&#xff1a;https://xuhss.com 早餐店不会开到晚上&#xff0c;想吃的人早就来了&#xff01;&#x1f604; 一、为什么要将txt转换成字幕 1.1方便到剪辑软件剪辑 有时获取到一段文本&#xff0c;想要直…

点分治学习笔记

有时候我们会碰到一些树上的路径问题&#xff0c;如果需要处理的规模很大的话&#xff0c;这时候点分治是一个很好的工具&#xff0c;往往可以在O(nlogn)的复杂度内完成操作&#xff0c;一般用于离线处理问题 前置芝士 树的重心&#xff1a;最大子树的值最小的点叫做重心。 …

【手撕面试题】HTML+CSS(高频知识点二)

目录 面试官&#xff1a;页面导入样式时&#xff0c;使用 link 和 import 有什么区别&#xff1f; 面试官&#xff1a;简要说说 title与h1的区别、b与strong的区别、i与em的区别&#xff1f; 面试官&#xff1a;img标签的title和alt有什么区别&#xff1f; 面试官&#xff…

给特别规则FeignClient增加统一的RequestInterceptor

需求背景&#xff1a; 在微服务横行天下的今天&#xff0c;Spring Cloud OpenFeign 早就成了我们服务间调度的主要远程调用手段。 在Feign进行远程调度的时候&#xff0c;难免会做一些心跳&#xff0c;权限的校验&#xff0c;来保证调度过程的相对安全。 但对于外部系统来说…

Unity 之 Addressable可寻址系统 -- 资源远程加载 | 资源预下载 -- 进阶(三)

可寻址系统远程加载 -- 资源预下载 -- 进阶&#xff08;三&#xff09;一&#xff0c;Unity 云资源分发 -- 使用介绍1.1 CCD 的介绍1.2 后台准备工作二&#xff0c;CDD的使用2.1 CCD可视化界面的使用2.2 CDD命令行界面使用2.2.1 准备工作2.2.2 CLI 用法三&#xff0c;AA CCD资…

Java中的快速排序

快速排序递归版本挖坑法Hoare法优化非递归相信即使大家并不知道快速排序究竟是个啥,但也一定听说过快排,今天我来给兄弟们讲讲快速排序!递归版本 快速排序的思想就是找基准,就比如我们以数组中的第一个数字12为基准,我们从最后往前面找,如果找到一个比12小的数字就用它覆盖12,但…

Linux—InstallOS-RedHat9.1

下载https://developers.redhat.com/products/rhel/download 需注册账号。安装正常安装就行。安装注意事项&#xff1a;(1)Software SelectionCentOS的摘录过来&#xff0c;通用。最小安装&#xff08;Minimal Install&#xff09;这个选项只提供运行CentOS 的基本软件包。最小…

Python学习-----起步4(列表元素的添加,删除,修改,查询,获取长度)

目录 前言&#xff1a; 列表元素的添加&#xff08;或者叫写入&#xff09; 1.append&#xff08;&#xff09;函数 2.extend&#xff08;&#xff09;函数 3.insert()函数 列表元素的删除 1.remove() 函数 2. pop() 函数 3.clear&#xff08;&#xff09;函数 4.del …

公司40岁的程序員到底在写什么代码

去年在前公司玩了一年&#xff08;基本兩三個月一個需求&#xff09;&#xff0c;除了日常維護就一些特別簡單的功能開發&#xff0c;到年底也沒見到公司黃&#xff08;國企背景&#xff09;&#xff0c;沒辦法只好裸辭&#xff0c;現在這個公司各方面还不错&#xff0c;但是令…

Cookie、Session、Token、JWT只看这一篇文章就够了

什么是认证&#xff08;Authentication&#xff09; 通俗地讲就是验证当前用户的身份&#xff0c;证明“你是你自己”&#xff08;比如&#xff1a;你每天上下班打卡&#xff0c;都需要通过指纹打卡&#xff0c;当你的指纹和系统里录入的指纹相匹配时&#xff0c;就打卡成功&a…

MongoDB Map Reduce

在用 MongoDB 查询时&#xff0c;若返回的数据量很大&#xff0c;或者做一些比较复杂的统计和聚合操作做花费的时间很长时&#xff0c;可以使用 MongoDB 中的 mapReduce 进行实现。mapReduce 是个灵活且强大的数据聚合工具&#xff0c;它的好处是可以把一个聚合任务分解为多个小…

设计模式(三)----创建型模式之单例模式(一)

一、创建型模式 创建型模式的主要关注点是“怎样创建对象&#xff1f;”&#xff0c;它的主要特点是“将对象的创建与使用分离”。 这样可以降低系统的耦合度&#xff0c;使用者不需要关注对象的创建细节。 创建型模式分为&#xff1a; 单例模式 工厂方法模式 抽象工厂模式…

英语学习 3

1 词汇积累 1、ships 船 2、class 级 3、marvels 奇迹 4、marvelous 非凡的、了不起的、极好的 5、cursed 诅咒、被诅咒的 6、the most luxurious ships 最豪华的船 7、luxury 奢侈、奢华的 8、luxurious 心满意足的、舒适的 9、utmost 极度的、最大的 10、kind 种类 11、voya…

Kali Linux神秘工具教程(详细版)

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录前言一、Kali Linux - 安装和配置信息收集工具二、NMAP隐形扫描搜索Searchsploit域名系统工具dnsenum.plDNSMAPdnstracerLBDHping3漏洞分析工具Cisco-torch工具Cisco…

回溯算法(基础)

目录 一、基本概念 二、以简单全排列认识回溯 &#xff08;一&#xff09;决策树 &#xff08;二&#xff09;回溯示意图 &#xff08;三&#xff09;核心代码 &#xff08;四&#xff09;完整代码 三、组合问题 &#xff08;一&#xff09;问题 &#xff08…