PointNet网络结构详细解析

一、重要知识点

  1. Transforming point clouds data to regular 3D voxel grids or collections of images, however, renders(cause to be) data unnecessarily voluminous(length, vast) and introducing quantization artifacts, obscure(conceal) natural invariances of the data.
  2. PointNet learns to summarize an input point cloud by a sparse set of key points, which roughly corresponds to the skeleton of objects.
  3. 将点云体素化会改变点云数据的原始特征,造成不必要的数据损失,并且额外增加了工作量,而 PointNet 采用了原始点云的输入方式,最大限度地保留了点云的空间特征,并在最终的测试中取得了很好的效果。
  4. A symmetric function is invariant to the input order. For example, + and * operators are symmetric binary function.
  5. Treat the input as a sequence to train an RNN.
  6. 相同的点云在空间中经过一定的刚性变化(旋转或平移),坐标发生变化,但希望网络都能正确的识别出物体(Special Transform Network, STN),但最终实验结果和后续论文PointNet++表示,STN并无多大作用。
  7. 基本思想:对输入点云中的每一个点学习其对应的空间编码,之后再利用所有点的特征,得到一个全局的点云特征。
  8. 第一次input transform是对空间中点云进行调整,直观上理解是旋转出一个有利于分类或分割的角度(点云的刚性变化),第二次feature transform是对提取出的特征进行变换,类似点的刚性变化,想利用这个得到一个有利于分类的特征角度(上一个是dim=3,这一个是dim=64罢了,没有本质区别)。

二、详细网络架构
解析详细结构时需注意以下几点:

  1. kernel_shape = (kernel_h, kernel_w, num_in_channels, num_output_channels),实现conv2卷积时代码中定义的卷积核大小。
  2. tf_util.conv2d: activation = tf.nn.relu, batch_norm_for_conv2d ,每次卷积时均使用了relu和bn,画图时不再画出。
  3. 数据维度表示-(B, H, W, C),B=Batch, H=Height, W=width, C=channel,画图时省略了B,只画了后三维,但书写时没有省略。

<1> Classification Network

<2> Segmentation Network

<3> T-net(input transform和feature transform分开看,只是画一起了,所以第一张图中这两个不是合并,只是后面的步骤相同)


三、整体感知

其中,h、r都是mlp,g是Maxpool。

PointNet网络结构详细解析相关推荐

  1. 最新最全GPT-3模型网络结构详细解析

    最近,GPT3很火,现在有很多讲GPT-3的文章,比如讲解它可以做什么, 思考它的带来的影响, 可视化其工作方式.看了这些文章并不足以详细了解GPT-3模型,仍然需要认真研究相关论文和博客. 因此,本 ...

  2. PointNet代码详细解释(Pytorch版本)

    pointnet.pytorch的代码详细解释 1. PointNet的Pytorch版本代码解析链接 2. 代码解释 2.1 代码结构思维导图 2.2 代码注释 2.2.1 build.sh 2.2 ...

  3. 深度学习目标检测详细解析以及Mask R-CNN示例

    深度学习目标检测详细解析以及Mask R-CNN示例 本文详细介绍了R-CNN走到端到端模型的Faster R-CNN的进化流程,以及典型的示例算法Mask R-CNN模型.算法如何变得更快,更强! ...

  4. OpenCL编程详细解析与实例

    OpenCL编程详细解析与实例 C语言与OpenCL的编程示例比较 参考链接: https://www.zhihu.com/people/wujianming_110117/posts 先以图像旋转的 ...

  5. celery的使用(最新详细解析)

    celery的使用(最新详细解析) 一. Celery简介 Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统,专注于实时处理的异步任务队列,同时也支持任务调度. Celery的架构由三部 ...

  6. 汇编语言 第3版 王爽 检测点习题部分—答案及详细解析

    第一章 基础知识 检测点1.1 (1)1个CPU的寻址能力为8KB,那么它的地址总线的宽度为()位. (2)1KB的存储器有() 个存储单元,存储单元的编号从()到() . (3)1KB的存储器可以存 ...

  7. Eclipse快捷键详细解析

    android开发中常用的Eclipse快捷键详细解析 1.查看快捷键定义的地方 Window->Preferences->General->Keys. 2.更改启动页 在Andro ...

  8. AlphaCode到底强在哪儿?清华博士后十分钟视频详细解析

    来源:机器之心 本文约2300字,建议阅读5分钟 AlphaCode 到底是怎么练成的? 春节期间,DeepMind 的编程版 AlphaGo--AlphaCode 一度火到刷屏.它可以编写与普通程序 ...

  9. mysql grant all详解_MySQL grant 语法的详细解析

    以下的文章是MySQL grant语法的详细解析,如果你对MySQL grant 语法的相关的实际操作有兴趣的话,你就可以对以下的文章点击观看了.我们大家都知道MySQL数据库赋予用户权限命令的简单格 ...

最新文章

  1. ovs router
  2. 从30岁到35岁:为你的生命多积累一些厚度(转)
  3. linux on android分区,linux分区笔记
  4. CaseStudy(showcase)界面篇-导出xaml以及放入Blend的技巧
  5. linux系统原理是什么意思,Linux系统原理之整体概述
  6. python函数参数类型及顺序_python函数参数类型及其顺序
  7. wait()和waitpid()的参数解析
  8. java检测文件修改_Java 实例 – 查看主机指定文件的最后修改时间
  9. 【实践】微博多尺度序列推荐算法实践.pdf(附下载链接)
  10. python获取当前日期的前一天爆炸_python蒙特卡洛脚本模拟—挑战者号爆炸概率
  11. c语言二级考试题型2016,2016年计算机二级《C语言》操作试题及答案
  12. Fiddler2 抓包工具,让你的信息无处可藏
  13. 软件工程能调剂到计算机么,愿意调剂到计算机专业或软件工程专业
  14. 遥感NDVI估算植被覆盖度
  15. highcharts 开发笔记
  16. ios 设置属性的center_iOS游戏平台Game Center成就显示设置指南
  17. 数据库SQL实战 --43.将id=5以及emp_no=10001的行数据替换成id=5以及emp_no=10005
  18. 排序算法——十大排序算法总结与对比
  19. Linux – cp: omitting directory 复制文件失败
  20. DiskGenius备份/还原分区=备份Windows系统

热门文章

  1. 中国的漫威,还很遥远么
  2. 各种浏览器User-Agent大全
  3. android视频用什么组件,一个简单的移动端视频组件的实现
  4. java:获取两个日期相隔天数
  5. VS 制作自定义安装程序
  6. B站才是头条系的大敌
  7. 生无可恋的一叶知秋#百度刘超事件#
  8. 统计学中几种简单的检验方式
  9. 用Linux开发板制作智能音箱,【工程师实战】只要几步,普通音箱秒变小度智能音箱...
  10. vue二维码生成可自定义logo