PointNet++: Deep Hierarchical Feature Learning on Point Sets in a Metric Space

在表述PointNet++之前,其实列出题目可以更好的表述这篇paper,PointNet++其实就是PointNet的分层版本,并且顺便解决了由于分层带来的系列问题以及PointNet遗留的问题。

在PointNet中,一个显著的问题是对于局部特征问题的处理,在原PointNet中,对于part segmentation以及scene semantic sparsing,即需要得到每个点的得分时,处理办法是直接将点特征与全局特征结合到一块进行处理,忽略了局部特征这一中间步骤,例如在一个场景中,我们先识别出椅子是椅子,桌子是桌子等这些局部特征,是否在最终对每个点进行分类时,是否会更加准确呢,所以PointNet++采用了分层的结构用于处理局部特征,用论文中的词来描述就是可以更好的处理fine-grained patterns,而在PointNet中,并没有进行分层处理,所以PointNet++对这一部分工作进行了完善。

其次还有一点背景知识是,点云数据的一个特征是数据密度不同,体现出近多远少等问题,而在密度不同的情况下,使用统一的模板处理这些数据显然是不对的,基于此,PointNet++的作者提出了密度适应的网络结构。

而综上,PointNet++的主要就是在PointNet的基础上,加入局部特征提取以及在进行局部分割时,在网络结构中加入密度适应使得分割更加准确合理的处理点云数据的论文,而事实上,论文也就这两个问题展开,当然PointNet++在标准数据集的表现是better than state-of-the-art。

问题1: 如何进行局部划分?

对数据集进行划分,提取局部特征,然后不断抽象,提取更高维的特征,是PointNet++的基本思路,那么首先的问题是如何定义局部,PointNet++给出的解决思路是使用点球模型,从全部数据集中选出若干质心点,然后选取半径,完成覆盖整个数据集的任务。在质心点的选取上,采用的是FPS算法,即随机选取一个点,然后选择离这个点最远的点加入到结果集中,迭代这个过程,直到结果集中点的数量达到某个给定值,在PointNet++中,很常见的一个词是metric,即度量,PointNet++中的很多东西都是依赖度量的,而在PointNet中,其实对于度量并不是很强调,或者细究的话都有可能不需要是度量空间。在读到中心点的集合后,第二个问题是如何选择半径,其实半径的选取是个很麻烦的事,在点云数据集中,有些地方比较稠密,有些地方比较稀疏,稠密的地方必然半径要小,而稀疏的地方必然半径要大,不然可能都提取不出什么特征,此时引出第二个问题——密度适应,若半径确定,即局部大小确定,此时训练的模板大小也就确定了。

问题2: 密度适应问题

论文中提到的处理密度适应的方法有两种,方法1为MSG,即把每种半径下的局部特征都提取出来,然后组合到一起,作者在如何组合的问题上提到了一种random dropping out input points的方法,存在两个参数p和q(原文中为theta),每个点以q的概率进行丢弃,而q为在[0,p]之间均匀采样,这样做,可以让整体数据集体现出不同的稠密性和均匀性。这儿论文中没有提到但存疑的问题是实验时是在不同random dropping out input points后得到的points上得到不同特征,根据最终点的分类得到的组合策略抑或是其他方式?

先抛开这个问题,MSG有一个巨大的问题是运算的问题,然后作者经过思量,提出we can avoid the feature extraction in large scale neighborhoods at lowest levels,因为在低层级处理大规模数据,可能模板处理能力不够,感受野有些过大,基于此,作者提出了MRG。

MRG有两部分向量构成,分别为上一层即Li-1层的向量和直接从raw point上提取的特征构成,当点比较稀疏时,给从raw point提取的特征基于较高的权值,而若点比较稠密,则给Li-1层提取的向量给予较高的权值,因为此时raw point的抽象程度可能不够,而从Li-1层的向量也由底层抽取而得,代表着更大的感受野。

上图为MSG和MRG的图像话表示,可见 MRG为分层结构。

最后对整体网络结构和如何得到每个点的分数(即segmentation相关问题)进行介绍。

在整体网络结构中,首先进行set abstraction,这一部分主要即对点云中的点进行局部划分,提取整体特征,如图可见,在set abstraction中,主要有Sampling layer、Grouping layer、以及PointNet layer三层构成,sampling layer即完成提取中心点工作,采用fps算法,而在grouping中,即完成group操作,采用mrg或msg方法,最后对于提取出得点,使用pointnet进行特征提取。在msg中,第一层set abstraction取中心点512个,半径分别为0.1、0.2、0.4,每个圈内的最大点数为16,32,128。之后几层如代码所示,在classification的处理上,与pointnet相似,不再详述。

最后提及的一点是对于每个点的打分问题,即segmentation部分

pointnet++对于每个原始点的得分采用了插值及回溯的方式,对于l - 1层的点,它有l层点插值后与在set abstraction时得到的特征进行1 * 1的卷积,最终得到l - 1层的点的值,一直回溯,最终得到原始点的score。插值公式如下:

其中采用knn取最近的k个,论文中提及k一般取3,p取2,此处距离即为相应点的权值,显然距离与权值大小成反比。

以上。

个人笔记——PointNet++初读相关推荐

  1. nginx源码初读(8)--让烦恼从数据结构开始(ngx_event)

    nginx中的事件模块是一个很重要的模块,但这里作为初读,我们只简单看一下ngx_event的数据结构,至于模块和机制,留作之后再分析. 下面是结构体ngx_event_t的代码: typedef s ...

  2. 初读《设计模式之禅》

    读这本书的起因源于csdn学生大本营的一次活动<设计模式之禅>试读员招募,身为程序员兼之学生大本营的老师没有道理不踊跃参加了(参加时可没走任何后门),佛祖显灵,真的能有幸成为了试读员.从得 ...

  3. 敬天爱人 大道至简——初读《经营十二条》

    老板送了一本稻盛和夫的<经营十二条>让我看看,前段时间一直忙于应付考试与工作,直到今天才抽出时间好好研读了一番.从这本书里读到的第一印象就是日本人性格里特有的精神至上.团队意识.日本人强调 ...

  4. 初读《偷影子的人》观后感

    初读<偷影子的人>观后感 "为每一个你所偷来的影子找到点亮生命的小小光芒,为它们找回隐匿的记忆拼图,这便是我们对你的全部请托." < 偷影子的人>是法国作家 ...

  5. 数学建模笔记之一起读论文2019年C题——机场的出租车问题

    数学建模笔记之一起读论文--机场的出租车问题 2021-8-28 全国大学生数学建模竞赛 2019年C题 B站链接--国赛C题真题解析 1 赛题阅读与分析 原题再现: 问题C 机场的出租车问题 大多数 ...

  6. JavaScript权威指南(第六版) 初读笔记

    JavaScript的5种原始类型:undefined.null.布尔值.数字和字符串. JavaScript中两个非常重要的数据类型是对象和数组. 通过方括号定义数组元素和通过花括号定义对象属性名和 ...

  7. CSS 设计指南(第3版) 初读笔记

    第1章 HTML标记与文档结构 关于<title>标签:搜索引擎会给<title>标签中的文字内容赋予很高的权重.而且这些文字也会作为网页标题出现在搜索结果列表中. 无论你想了 ...

  8. 《黑客与画家》初读笔记

    断断续续读了很久,有的地方觉得有趣,有的地方又觉得难以理解.感觉可能需要几年后再复读. 这是不是Java被黑的最惨的一次? 好的软件应该像一棵榕树,不是一开始就是大型软件.而是由一颗种子变成一棵树再独 ...

  9. windows internals 6th edition 初读笔记

    前两周心血来潮,直接买了一本英文版的windows internals 6th edition,因为第四版虽然有潘爱民译的中文,但上面的WDK版本已经不同,第六版本也刚出不久,人民邮电出版社直接拿到了 ...

最新文章

  1. Mybatis的工作原理,你了解过吗?
  2. 用计算机a 3如何定义,计算机绘图A 3次.doc
  3. led大屏按实际尺寸设计画面_Micro LED电视:模块化的设计思路,能实现16K巨幕
  4. 论文浅尝|简单高效的知识图谱表示学习负样本采样方法
  5. c++中wstring 和 string的转换
  6. 《天天数学》连载42:二月十一日
  7. 第一款青少年搜索引擎“花漾搜索“APP正式上线
  8. Linux添加/删除用户和用户组(linux中,添加cvs用户,实质就是添加linux用户。)
  9. 64位ubuntu能安装mysql数据库_Ubuntu操作系统下安装MySQL数据库的方法
  10. 【转】如何解决:Android中 Error generating final archive: Debug Certificate expired on 10/09/18 16:30 的错误...
  11. 高德地图vs百度地图
  12. 线性表学习归纳总结一
  13. 【FCPX插件】56种标题文本输入逐字出现字幕打字机动画效果 Typing Titles,支持M1芯片!
  14. vga转html电脑打不开,如何解决HDMI到VGA转换的常见故障_四种解决方法
  15. 哪个服务器便宜又稳定,便宜又稳定的云服务器
  16. java Lambda表达式详解
  17. win7系统安装信息服务器不可用怎么办,win7系统rpc服务器不可用怎么办
  18. 针对Typora for Win v0.11.18最后一个免费版本安装后提示更新解决办法This beta version of Typora Q is expired
  19. 计算机网络谢希仁第七版答案
  20. 河北欧格教育:什么是白底图

热门文章

  1. php结束代码,php语句以什么符号结束
  2. linux下部署thinkphp5项目
  3. 《Centos下部署ThinkPHP》
  4. 没有钱 想创业 怎么办
  5. Python 画图程序
  6. node.js项目中的package.json
  7. 使用Cheat Engine在Cooking Fever中修改金钱和钻石
  8. 人间天堂——大美青海——天镜祁连
  9. 基于jsp+mysql+Spring+mybatis的SSM学生兼职项目网站
  10. 是奶就给孩子喝?这几种奶医生建议别再喝了!