SuperVoxel:PCL中点云的超体素-程序员宅基地

技术标签: 算法  聚类  机器学习  计算机视觉  人工智能  

点击上方“3D视觉工坊”,选择“星标”

干货第一时间送达

标题:Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds

作者:Jeremie Papon,Jeremie Papon,Alexey Abramov

在公众号「3D视觉工坊」后台,回复「Supervoxels」即可获得论文pdf。

摘要

   

在图像算法中,无监督的过分割是一种广泛的预处理步骤,将图像分割成具有相似属性的像素区域,称之为超像素分割,该方法减少了之后后期算法计算的的成本,并且信息损失最小,本文提出的是一种新的过分割算法,该算利用点云体素关系生成具有空间一致性的过分割,而不是在三维点云映射或者投影到了二维空间中进行处理。论文是在已经校准的RGB_D相机的数据集上进行试验,并且与2D的处理速度相仿的条件下,保证了分割的高效。

分割算法介绍

分割算法目的是将图像中的像素分成符合对象边界有意义的区域,虽然这些方法最初只考虑图像的底层信息,但是最近的语义分割方法大多是利用了高层的对象信息来帮助消除对象边界的歧义,比如基于图的方法,马尔科夫随机场(MRF)以及条件随机场(CRF)。这些算法将图像中的底层信息与对象级信息相结合而变得更为流行。虽然这些技术已经十分成熟,但是他们的缺点是,对这些图像像素的计算成本随着节点的数目的增加而急剧的上升,这以为这每个像素对应一个节点求解图的方法变得十分困难,这就限制了他们在需要实时分割中的应用。

比较新的算法是,出现了一类速度明显更快的超混合方法——简单线性迭代聚类[1](SLIC)。这是一种迭代梯度上升算法,它采用局部k均值聚类方法,有效地找到超像素点,将像素点聚类在五维空间的颜色和像素位置。深度自适应Superpixels[2]最近将这种思想扩展到使用深度图像,通过增加深度和点云的法向角的维度来扩展聚类空间。虽然DASP是有效的,并且给出了有希望的结果,但它没有充分利用RGB+D数据,仍然停留在2.5D方法的类中,因为它没有明确考虑三维连通性或几何性质。

点云PCL库中的超体分割是一种基于点云体素的连通性分段算法(Voxel Cloud Connectivity Segmentation VCC)应用在RGBD相机获取的点云数据中,通过使用基于三维空间的播种的方法和使用颜色和几何特征的约束来实现点云的局部约束与聚类。文章还清楚的说明了点云的超体分割与“超体素”没有关系,超体素是二维算法简单的扩展到三维,这种方法是不能应用在三维的无序的空间中的,只能在有规则的体素中起作用。

基于几何约束超体素

点云体素连接性分割(VCCS)是一种从三维点云数据生成超像素和超体素的新方法。VCCS产生的超体素比最新的方法更符合物体边界,同时该方法实时性更好。vcc使用k-means聚类的变体来生成其点的标记,有两个重要的约束:

1.超体素簇的种子是通过分割三维空间而不是投影到图像层面来实现的。这可以确保超体素是根据场景的几何属性均匀分布。

2,迭代聚类算法在考虑聚类点时,对被占用的体素进行严格的空间连通性。这意味着超体素不能在三维空间中连接不相交的边界,即使它们在投影平面上是相连的。

接下来我们将描述相邻体素是如何的有效计算,如何生成种子并进行滤波,并对特征和距离测度进行聚类,最后如何迭代聚类算法加强了空间连通性。

邻接图

邻接性是该方法的一个关键步骤,这一步能够确保各个超体素不会在空间中不相连的边界上有交集,在体素化三维空间中,有三种相邻的定义 6,18,26相邻,他们分别共享一个面,面或者边和定点,在本论文中主要是26个相邻体素,这是算法的初始步骤,构建体素点云的邻接图,一般是通过KD树来有效的实现,所有的26个相邻体素的中心都一定要在根号3 * Rvoxle中,其中Rvoxel是指用于分割的体素分辨率,并且在该分辨率下讲离散的元素称之为体素。如此构建出来的邻接图在算法中能够广泛的使用。

晶体种子的生成与滤波

算法首先若干个种子点云,这个种子点云将用于初始化超体素,所以算法首先将空间点云划分为一个具有选定分辨率Rseed的体素化网格,该Rseed的大小是明显高于Rvoxel,其中种子分辨率与体素分辨率的关系如下图:

Rseed确定超级体素之间的距离,而Rvoxel确定点云量化的分辨率。Rsearch用于确定是否有足够数量的种子占用体素。

根据这个图我们也可以理解初始种子的后选择是如何被选择出来的,通过选择点云中最靠近我们种子体素中心的点作为种子候选点,并且我们知道一旦有了种子的候选对象,就必要要去除候选的噪声点种子,为此算法为每个种子建立一个较小的搜索半径Rsearch,用来删除那些没有被搜索半径的一半覆盖的点云种子,如图的绿色部分,过滤后,我们将剩余的种子归类为搜索体积中梯度最小的连接体素,其中的梯度计算公式:

一旦种子体素被选中,我们通过在特征空间中找到种子体素的中心和两个体素内的连接邻域来初始化超体素特征向量。

超体的特征和距离测度进行聚类

     VCCS超体素聚类是在39个维度上进行的:

其中前三者是空间坐标,L,a,b为颜色,FPFH是局部几何特征点特征直方图,FPFH是具有空间不变性的描述局部表面模型的特征,为了计算空间中的距离算法首先是规范化空间中的点的距离这个分量,并且该分量取决于种子的分辨率Rseed, FPFH空间中的距离Df是使用直方图相交核计算的[3]。这就引出了标准化距离D的方程式:

基于约束的迭代聚类(Flow Constrained Clustering)

迭代地将体素点云指定给超体素,显著的区别在于我们在将像素指定给聚类时考虑连通性和流。一般过程如下:

(1)从距离点云簇中心最近的体素开始,我们向外流动到相邻的体素,并使用方程4计算每个体素到超体素中心的距离。如果距离是该体素所看到的最小距离,则设置其标签,并使用邻接图将其距离中心更远的邻居添加到该标签的搜索队列中。

(2)然后迭代下一个超级体素,这样从中心向外的每一层都会同时考虑所有的超级体素。我们反复向外搜索,直到找到每个超级体素的搜索体积的边缘(或者没有更多的邻居可以检查),这相当于邻接图的广度优先搜索,在深入搜索图之前,我们检查所有超级体素的相同级别。重要的是,需要避免了相邻体素的边,当我们到达一个超级体素的邻接图的所有叶节点或者在当前级别中搜索的节点都没有设置为其标签时,搜索就结束了。这个搜索过程下图所示,与现有的相比有两个重要优点。

 流约束聚类算法的搜索顺序

1,由于算法只考虑相邻的体素,因此超体素标签不能跨越在三维空间中实际不接触的对象边界

2,超级体素标签在三维空间中往往是连续的,因为标签从每个超级体素的中心向外流动,在空间中以相同的速率扩展。

一旦所有超体素邻接图的搜索结束,我们就通过取其所有成分的平均值来更新每个超体素簇的中心。这是以迭代的方式完成的;要么直到集群中心稳定下来,要么进行固定次数的迭代。实验中发现超体素在5次迭代之后是稳定的。

三维体素分割

所提出的方法直接作用于点云,它比在投影图像平面上操作的现有方法有优势。其中最重要的是能够分割来自多种传感器捕获的点云数据,算法是具有通用性的。

总结与参考文献

Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds 文章中提到的超体(supervoxel)是一种集合,集合的元素是“体”。与体素滤波器中的体类似,其本质是一个个的小方块。与之前提到的所有分割手段不同,超体聚类的目的并不是分割出某种特定物体,其对点云实施过分割(over segmentation),将场景点云化成很多小块,并研究每个小块之间的关系。比如在图像分割中,像素聚类形成超像素,以超像素关系来理解图像已经广为研究。本质上这种方法是对局部的一种总结,纹理,材质,颜色类似的部分会被自动的分割成一块,有利于后续识别工作。比如对人的识别,如果能将头发,面部,四肢,躯干分开,则能更好的对各种姿态的人进行识别。

代码实现部分可参考PCL库中的分割模块中的supervoxel_clustering类具体实现。

参考文献:

(1)Slic superpixels compared to state-of-the-art  superpixel methods. 

(2)Depth-adaptive superpixels

(3)Histogram interp kernel for image classification

本文仅做学术分享,如有侵权,请联系删文。

下载1

在「3D视觉工坊」公众号后台回复:3D视觉即可下载 3D视觉相关资料干货,涉及相机标定、三维重建、立体视觉、SLAM、深度学习、点云后处理、多视图几何等方向。

下载2

在「3D视觉工坊」公众号后台回复:3D视觉github资源汇总即可下载包括结构光、标定源码、缺陷检测源码、深度估计与深度补全源码、点云处理相关源码、立体匹配源码、单目、双目3D检测、基于点云的3D检测、6D姿态估计汇总等。

下载3

在「3D视觉工坊」公众号后台回复:相机标定即可下载独家相机标定学习课件与视频网址;后台回复:立体匹配即可下载独家立体匹配学习课件与视频网址。

重磅!3DCVer-学术论文写作投稿 交流群已成立

扫码添加小助手微信,可申请加入3D视觉工坊-学术论文写作与投稿 微信交流群,旨在交流顶会、顶刊、SCI、EI等写作与投稿事宜。

同时也可申请加入我们的细分方向交流群,目前主要有3D视觉CV&深度学习SLAM三维重建点云后处理自动驾驶、CV入门、三维测量、VR/AR、3D人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流等微信群。

一定要备注:研究方向+学校/公司+昵称,例如:”3D视觉 + 上海交大 + 静静“。请按照格式备注,可快速被通过且邀请进群。原创投稿也请联系。

▲长按加微信群或投稿

▲长按关注公众号

3D视觉从入门到精通知识星球:针对3D视觉领域的知识点汇总、入门进阶学习路线、最新paper分享、疑问解答四个方面进行深耕,更有各类大厂的算法工程人员进行技术指导。与此同时,星球将联合知名企业发布3D视觉相关算法开发岗位以及项目对接信息,打造成集技术与就业为一体的铁杆粉丝聚集区,近2000星球成员为创造更好的AI世界共同进步,知识星球入口:

学习3D视觉核心技术,扫描查看介绍,3天内无条件退款

 圈里有高质量教程资料、可答疑解惑、助你高效解决问题

觉得有用,麻烦给个赞和在看~  

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/Yong_Qi2015/article/details/108613311

智能推荐

使用JDBC连接数据库出现 The server time zone value ‘�й���׼ʱ��‘ is unrecognized or represents more than one解决方案_jdbc.properties timezone-程序员宅基地

文章浏览阅读553次。在 jdbc.properties 文件中的 url 后面加上 ?serverTimezone=UTC加入之前的jdbc.properties文件:user=rootpassword=12345678url=jdbc:mysql://localhost:3306/testdriverClass=com.mysql.cj.jdbc.Driver加入之后:user=rootpassword=12345678url=jdbc:mysql://localhost:3306/test?serv_jdbc.properties timezone

计算机图形学孔令德基础知识,计算机图形学基础教程孔令德答案-程序员宅基地

文章浏览阅读1.4k次。计算机图形学基础教程孔令德答案【篇一:大学计算机图形学课程设】息科学与工程学院课程设计任务书题目:小组成员:巴春华、焦国栋成员学号:专业班级:计算机科学与技术、2009级本2班课程:计算机图形学指导教师:燕孝飞职称:讲师完成时间: 2011年12 月----2011年 12 月枣庄学院信息科学与工程学院制2011年12 月20日课程设计任务书及成绩评定12【篇二:计算机动画】第一篇《计算机图形学》..._计算机图形学基础教程 孔令德 答案

python xlwings追加数据_大数据分析Python库xlwings提升Excel工作效率教程-程序员宅基地

文章浏览阅读1k次。原标题:大数据分析Python库xlwings提升Excel工作效率教程Excel在当今的企业中非常非常普遍。在AAA教育,我们通常建议出于很多原因使用代码,并且我们的许多数据科学课程旨在教授数据分析和数据科学的有效编码。但是,无论您偏爱使用大数据分析Python的程度如何,最终,有时都需要使用Excel来展示您的发现或共享数据。但这并不意味着仍然无法享受大数据分析Python的某些效率!实际上,..._xlwings通过索引添加数据

java8u211_jre864位u211-程序员宅基地

文章浏览阅读911次。iefans为用户提供的jre8 64位是针对64位windows平台而开发的java运行环境软件,全称为java se runtime environment 8,包括Java虚拟机、Java核心类库和支持文件,不包含开发工具--编译器、调试器和其它工具。jre需要辅助软件--JavaPlug-in--以便在浏览器中运行applet。本次小编带来的是jre8 64位官方版下载,版本小号u211版..._jre8是什么

kasp技术原理_KASP基因分型-程序员宅基地

文章浏览阅读5k次。KASP基因分型介绍KASP(Kompetitive Allele-Specific PCR),即竞争性等位基因特异性PCR,原理上与TaqMan检测法类似,都是基于终端荧光信号的读取判断,每孔反应都是采用双色荧光检测一个SNP位点的两种基因型,不同的SNP对应着不同的荧光信号。KASP技术与TaqMan法类似,它与TaqMan技术不同的是,它不需要每个SNP位点都合成特异的荧光引物,它基于独特的..._kasp是什么

华为p50预装鸿蒙系统,华为p50会不会预装鸿蒙系统_华为p50会预装鸿蒙系统吗-程序员宅基地

文章浏览阅读154次。华为现在比较火的还真就是新开发的鸿蒙系统了,那么在即将上市的华为p50手机上会不会预装鸿蒙系统呢?接下来我们就来一起了解一下华为官方发布的最新消息吧。1.华为p50最新消息相信大家都知道,随着华为鸿蒙OS系统转正日期临近,似乎全网的花粉们都在关注华为鸿蒙OS系统优化、生态建设等等,直接忽略了不断延期发布的华为P50手机,如今华为P50系列手机终于传来了最新的好消息,在经过一系列方案修改以后,终于被..._华为手机p50直接预装鸿蒙系统

随便推点

python用什么软件编程好-初学python编程,有哪些不错的软件值得一用?-程序员宅基地

文章浏览阅读2.1k次。Python编程的软件其实许多,作为一门面向大众的编程言语,许多修正器都有对应的Python插件,当然,也有特地的PythonIDE软件,下面我简单引见几个不错的Python编程软件,既有修正器,也有IDE,感兴味的朋友可以本人下载查验一下:1.VSCode:这是一个轻量级的代码修正器,由微软规划研发,免费、开源、跨途径,轻盈活络,界面精练,支撑常见的自动补全、语法提示、代码高亮、Git等功用,插..._python入门学什么好

pytorch一步一步在VGG16上训练自己的数据集_torch vgg训练自己的数据集-程序员宅基地

文章浏览阅读3.2w次,点赞30次,收藏307次。准备数据集及加载,ImageFolder在很多机器学习或者深度学习的任务中,往往我们要提供自己的图片。也就是说我们的数据集不是预先处理好的,像mnist,cifar10等它已经给你处理好了,更多的是原始的图片。比如我们以猫狗分类为例。在data文件下,有两个分别为train和val的文件夹。然后train下是cat和dog两个文件夹,里面存的是自己的图片数据,val文件夹同train。这样我们的..._torch vgg训练自己的数据集

毕业论文管理系统设计与实现(论文+源码)_kaic_论文系统设计法-程序员宅基地

文章浏览阅读968次。论文+系统+远程调试+重复率低+二次开发+毕业设计_论文系统设计法

在python2与python3中转义字符_Python 炫技操作:五种 Python 转义表示法-程序员宅基地

文章浏览阅读134次。1. 为什么要有转义?ASCII 表中一共有 128 个字符。这里面有我们非常熟悉的字母、数字、标点符号,这些都可以从我们的键盘中输出。除此之外,还有一些非常特殊的字符,这些字符,我通常很难用键盘上的找到,比如制表符、响铃这种。为了能将那些特殊字符都能写入到字符串变量中,就规定了一个用于转义的字符 \ ,有了这个字符,你在字符串中看的字符,print 出来后就不一定你原来看到的了。举个例子>..._pytyhon2、python3对%转义吗

java jar 文件 路径问题_「问答」解决jar包运行时相对路径问题-程序员宅基地

文章浏览阅读1.3k次。我这几天需要做一个Java程序,需要通过jar的形式运行,还要生成文件。最终这个程序是要给被人用的,可能那个用的人还不懂代码。于是我面临一个问题:生成的文件一定不能存绝对路径。刚开始我想得很简单,打绝对路径改成相对路径不就行了吗?于是有了这样的代码:String path = "../test.txt";File file = new File(path);……这个写法本身并没有问题,直接运行代码..._jar启动文件路径中存在!

微信读书vscode插件_曾经我以为 VSCode 是程序员专属的工具,直到发现了这些……...-程序员宅基地

文章浏览阅读598次。如果你知道 VSCode,一说起它,你可能第一个想到的就是把它当做一个代码编辑器,而它的界面应该可能大概率是这样的——如果你恰好又是个程序员,那你可能经常会用到它,不管是 Python、JS 还是 C++ 等各种语言对应的文件,都可以用它来进行简单的编辑和整理,甚至是运行和 debug......但是今天要讲的显然不是这些,经过小美的多方研究,发现了即使是对于大多数并不了解 VSCode,也完全不..._vscode weixin read

推荐文章

热门文章

相关标签