概述:
点云特征点是点云数据中的一种重要特征,主要用于对点云数据进行分析和描述。点云特征点可以用于识别点云数据中的关键形状和结构,并将其作为点云数据的代表性特征进行保存和传递。在现有的点云特征点提取算法中,基于特征属性的方法是最常见的一种,通过设定特征属性阈值提取特征点。此类方法能够有效提取到点云特征点,表现出色。但在多尺度的点云模型中,设置全局统一属性阈值,很难完全提取模型中的特征点,为进一步提取模型中潜在的特征点,往往还需要进一步的精细化参数设置,这种做法效率极低,且可能提取不完全。
点云特征线是点云特征点的集合,可以有效地捕捉点云中的几何形状、轮廓、纹理等信息。点云特征线的优势在于其能够保留点云数据的几何信息和细节,并且可以提取出具有代表性的特征线,从而方便点云数据的进一步分析和处理。例如,点云特征线可以用于点云分割、模型重建、物体识别等领域。在散乱点云中,特征线的提取通常通过连接特征点实现。然而,生成的特征线可能会出现折线或者连接不完整的问题。
设计思想:
在此博客中介绍了一种基于深度学习的方法,基于点云切片提取点云特征点,在特征点的基础上,连接特征线,完成特征线的提取。此处网络用的是PCPNet
简略版。基于点云切片的方法,说直白一点就是依次判断每个点是否是特征点,进行二分类的操作。不能光输入一个点进行判断,因此需要该点的邻域点作为网络的输入,进行二分类。
算法的效果图如下:
效果感觉还行吧(大佬轻喷),想要效果提升一下,可以对网络进行改进。
代码:
想必看这博客的读者应该对PointNet
、PCPNet
网络有所了解,对于大佬来说,上手就用,直接参考网络作者的github仓库,但对新手来说,作者开源的代码感觉读起来很费脑,这里整理了一下最核心简单的代码,仅供参考,有错误请指出。(还在整理,写的low,怕被骂,后面在开放出来),此处感谢开源算法的大佬,给我们学术菜鸡分杯羹。
总结
最近几年感觉深度学习都火半天,啥都用深度学习(此处捂脸哭表情包)。该方法仅仅提供一条思路,从某种程度上解决全局统一属性阈值的限制,但是慢啊!流程看下图,又是找邻域,又是判断,能不慢吗?此处博主用的是尊贵的NVIDIA 3090Ti
火神(装*
如风,长伴吾身,此处脑补嘚瑟),对于10万点的模型,大概需要2 ~ 3s 左右。