博客原文 https://blog.csdn.net/yongxiebin9947/article/details/79368752

PointNet 是斯垣福大学在2016年提出的一种点云分类/分割深度学习框架。众所周知,点云在分类或分割时存在空间关系不规则的特点,因此不能直接将已有的图像分类分割框架套用到点云上,也因此在点云领域产生了许多基于将点云体素化(格网化)的深度学习框架,取得了很好的效果。但是将点云体素化势必会改变点云数据的原始特征,造成不必要的数据损失,并且额外增加了工作量,而 PointNet 采用了原始点云的输入方式,最大限度地保留了点云的空间特征,并在最终的测试中取得了很好的效果。

主要是那张流程图。文章中的其他地方基本都是对各种方法的比较与数学证明,前者一直在说为啥我这个框架中的这个地方要用这个方法,对理解这个框架用途不大;而后者我直接跳过了,等有兴趣了(N年过后?)再来深究。
这里主要说一下PointNet的程序在分类模块实现的大致流程。
PointNet 官方使用了 tensorflow 实现,代码写的相当工整易读,而这个方法在代码中实现起来也比论文中看起来更简单。其主要分成以下三部分:数据处理 TF图谱构建 开始学习
数据处理,将点云处理成程序可用的格式,具体实现在 provider.py 中,主要包含了数据下载、预处理(shuffle、rotate等)、格式转换(hdf5->txt)
TF图谱构建,绿线框是一些很常规的操作,对应流程图中相对应的部分看看就好了。

红线框部分才是这篇论文一直在强调、证明的部分。下面先看一下第一个红线框中 input_transform_net() 对应的代码部分(下图)。可以看出,文章中的转换矩阵是使用额外一个小网络(T-Net),对其输入训练数据而学习得到的3*K的矩阵(K=3)。

而第二个转换矩阵微微有些不同,由于当进行到这一步的时候,点云已经被处理成了一条条的特征向量(B*N*1*K)。输入不同了,网络结构和参数也自然有了一些变化。最终输出 B*K*K 的转换矩阵。

在网络图谱整体框架搭好之后,就可以用TF提供的API进行训练了。

以上即为 PointNet 分类网络的大致框架。

【3D计算机视觉】Pointnet源码分析相关推荐

  1. java观察者模式类图_设计模式(十八)——观察者模式(JDK Observable源码分析)...

    1 天气预报项目需求,具体要求以下: 1) 气象站能够将天天测量到的温度,湿度,气压等等以公告的形式发布出去(好比发布到本身的网站或第三方).java 2) 须要设计开放型 API,便于其余第三方也能 ...

  2. SIFT原理与源码分析:DoG尺度空间构造

    <SIFT原理与源码分析>系列文章索引:http://blog.csdn.net/xiaowei_cqu/article/details/8069548 尺度空间理论 自然界中的物体随着观 ...

  3. caffe.proto源码分析

    一什么是protocol buffer 二caffeproto中的几个重要数据类型 三caffeproto源码 分析caffe源码,看首先看caffe.proto,是明智的选择.好吧,我不是创造者,只 ...

  4. android源码分析

    01_Android系统概述 02_Android系统的开发综述 03_Android的Linux内核与驱动程序 04_Android的底层库和程序 05_Android的JAVA虚拟机和JAVA环境 ...

  5. Android 源码分析

    查看源码版本号: build\core\version_defaults.mk //搜索该文件中的 PLATFORM_VERSION值 frameworks 目录 (核心框架--java及C++语言) ...

  6. docker push 过程 distribution源码 分析

    docker push 过程 distribution源码分析 承接上一篇"distribution structure and start up 分析"本文分析一下distrib ...

  7. OpenCascade源码分析之BRepMesh_IncrementalMesh(网格离散化操作)

    OpenCascade源码分析之BRepMesh_IncrementalMesh(网格离散化操作) 一.引言 在使用opencascade读取连续曲面模型的时候,一般来说我们都会调用BRepMesh_ ...

  8. Android shortcut的使用及源码分析

    Android shortcut的使用及源码分析 最近遇到了一个切换国家码后部分应用的shortcut未更新的问题,就学习了shortcut的相关知识,在这里分享一下我了解的知识,希望能对大家有帮助. ...

  9. CloudCompare源码分析:读取ply文件

    CloudCompare源码分析_读取ply文件 写这些博客的原因,是因为打算好好研究一下点云的各种库的源码,其中比较知名的是PCL(point cloud library)和CC(CloudComp ...

  10. marlin的源码分析

    marlin源码分析 文章转载:http://www.360doc.com/content/18/0716/00/52973095_770673230.shtml 一.前言 Delta机型是一种并联式 ...

最新文章

  1. Hadoop学习笔记一 简要介绍
  2. 【C#技术】一篇文章搞掂:Infragistics组件库
  3. 属性处理器Spring攻略学习笔记(2.12)------外部化Bean配置
  4. DevExpress的TreeList实现节点上添加自定义右键菜单并实现删除节点功能
  5. HBase性能优化方法总结(一):表的设计
  6. tomcat jar包编译后变成文件夹_tomcat学习|tomcat中的类加载器
  7. spring的beanutils工具类_基于spring-beans实现工具类BeanUtils基于Class实例化注入对象及查找方法、复制属性等操作...
  8. 滴滴开源夜莺 Nightingale:企业级监控解决方案
  9. iOS汉字转拼音,日韩文字转拼音
  10. 机器学习面试之算法思想简单梳理
  11. iOS archive(归档)的总结 (序列化和反序列化,持久化到文件)
  12. 小D课堂 - 零基础入门SpringBoot2.X到实战_第10节 SpringBoot整合定时任务和异步任务处理_41、SpringBoot定时任务schedule讲解...
  13. javascript location.href 参数详解
  14. ffmpeg 合并 flv 文件
  15. 读书笔记:《超越需求 敏捷思维模式下的分析》
  16. 我看TechEd 2012之App时代降临
  17. 标准模式(standard mode) 和 兼容模式(qurik mode)
  18. cenntos7安装Nginx添加passenger模块
  19. 华为 路由双点双向引入
  20. 在creo中,如何在轴上画一个键槽?

热门文章

  1. 新版UNITY游戏(IL2CPP类型)使用内嵌型机器翻译插件XUnity.AutoTranslator的食用方法
  2. XXXX大学课程设计说明书格式规范
  3. Poi 、Jacob 统计word文档字数实现方式
  4. 【win10 cuda pytorch】从无到有配置gpu运算pytorch的极度详细完整方法教程(包括各种坑),网上其他方法基本可行性不高
  5. 大数据入门教程系列之Hadoop环境搭建--新建Hadoop用户
  6. Mixly遥控调光器
  7. echarts世界地图(含中国省份地图),中国省份下钻到县,点击按钮返回上一级
  8. mini_c编译器的简单代码逻辑
  9. Android 基础知识之 VelocityTracker使用(提供手指速度计算,可用于笔迹优化哦)
  10. 达梦数据库的表空间及用户管理