upsampling,
reconstruction,
segmentation
object detection ,
Shape Completion: 单个物体,缺损部分的补全。
Scene Completion:场景中的物体之间有遮挡,缺失部分补全。
Instance Reconstruction:实例构面。
这里以2D图像为例,3D的和它类似。(因为本人没有2D基础,所以这里也列举一下)
abcd分别是:
不规则性:分布不均
非结构化:点与点之间的关系,没有确定的四邻域,八邻域
无序性:点的顺序不同完全不影响。因此不同的三维矩阵表达可以是相同的点云。
旋转性:如果点云整体旋转,每个点坐标都会变,但点云是不变的。
发布于2017年的PointNet是大多数技术的基础。
简单的说,用mlp逐点提取特征,每点1024个。用maxpool处理每个点的特征,得到1024个总体特征。
同时用空间变换解决旋转性问题。
无序性问题:用一个对称方法g来解决
h: 特征提取层
g:简单的对称方法。如max pooling.
γ:高层特征提取
最后加一个softmax之类用于分类。
旋转性问题:通过STN(spacial transform netw)来解决。
符号解释:
过程概述:
亮点:
通过对称性函数(如max pool) 解决无序性问题,和通过空间转换解决旋转性问题。其中首次input transform是直接对3D的点进行旋转,比较好理解;后面的feature transform是在特征层面旋转了。
在poingnet以及很多代码中,共享权重mlp通常用核为11的卷积实现。
输出特征是多少维,就用多少个filter。
比如,最初的n3用mlp转化为n*64。
原作者用的是2维卷积,参考此文。其实也可以用一维。
net = tf_util.conv2d(input_image, 64, [1,3], ...) # 64是out channels, 1,3是卷积核尺寸
net = tf_util.conv2d(input_image, 64, [1,1], ...)
参考此文
可以看到pointnet只是把所有点放在一起,因此只能提取全局特征。
而局部特征在语义分割等各方面都很重要。
包括pointnet团队本队和其他团队后面都进行了局部区域特征提取方面的研究。
参考这篇知乎文章。
可以看到
setAbstraction结构可以叠多层,如上图所示。
基本思路是把所有点云分簇,每一簇用poingnet提特征,如下图所示(图片来自这篇博客)。
点的个数N越来越少,而每个点特征包含的信息越来越多,特征维度C也发生变化。
主要分为三步: fps 最远距离采样, ball query分簇, pointnet对每一簇提取特征。
fps:Farthest Point Sampling
是一种常见的采样方法,从n个点中采k个(k方法:
- 选第一个点,比如随机选。假设为a。
- 选第二个点:从其他点中,选离a最远的点。假设为b。
- 选第三个点:从其他点中,选 min( dis(a), dis(b) ) 最大的点。
- 继续,直至选了k个点。
详见此文。
Ball query
聚合以每个中心点为球心,a为半径的球体内的所有点,k为上限(即半径内找到k个点就不再找了,每个组最多k个点)
PointNet
- 接受N’×K×(d+C)的输入。
- 输出是N’×(d+C)。
- 其中N是输入点的数量,d是坐标维度,C是特征维度。
- 坐标输入时,使用每个点相对于其group中心点的相对坐标。
直接把得到的每个点的特征拼起来,再用全连接层输出最后结果。
对Set Abstraction 得到的点进行插值,然后每点用pointnet提特征,继续插值,最后得到完整的结果。
有很多物体数据集,这里略过,主要总结一些室外场景数据集,尤其是机载LiDAR点云的数据集:
关键词:Aerial , airborne, UAV,
链接:https://projects.asl.ethz.ch/datasets/doku.php?id=home
这是一个大集合,里面有很多小数据集,比如ISER2016 (机载的)
https://projects.asl.ethz.ch/datasets/doku.php?id=iser2016
点云配准源码链接:https://github.com/ethz-asl/robust_point_cloud_registration
还有这个
https://projects.asl.ethz.ch/datasets/doku.php?id=koptinspection:koptinspection
https://udayton.edu/engineering/research/centers/vision_lab/research/was_data_analysis_and_processing/dale.php
https://www.fct.unesp.br/#!/unespdataset
https://ieee-dataport.org/documents/dataset-containing-frame-images-and-dense-airborne-laser-scanning-point-clouds
链接:http://www.semantic3d.net/ 但是502 bad gateway 了
好像是地面LiDAR扫描的
链接:http://data.ign.fr/benchmarks/UrbanAnalysis/#
该数据库包含来自巴黎(法国)密集城市环境的3DMLS数据,
(分类的)
链接:http://www.cs.cmu.edu/~vmr/datasets/oakland_3d/cvpr09/doc/
这个数据库的采集地点是在美国卡耐基梅隆大学周围,数据采集使用Navlab11,配备侧视SICK LMS激光扫描仪,用于推扫。 其中包含了完整数据集、测试集、训练集和验证集。
这一实验室提供了多个三维数据集,包括:
ObjectNet3D:100类, 90127张图像, 其中有201888个物体和44147 个3D 形状;
城市街景三维数据库
Stanford 2D-3D-Semantics Dataset (2D-3D-S):大型建筑物内部平面语义图–3D图数据集,包含了RGB图,二维语义、深度和三维网格语义以及表面法向量。
此外还包含了无人机监控、多视角tracking、街景等数据库。
普林斯顿的数据集,大场景重建。主要用于SFM方法。
————————————————
待看文献:
https://blog.csdn.net/xnliu/article/details/82747308
https://blog.csdn.net/u013019296/article/details/108526109?utm_medium=distribute.pc_relevant.none-task-blog-2defaultbaidujs_baidulandingword~default-1.control&spm=1001.2101.3001.4242
https://blog.csdn.net/bornfree5511/article/details/109901196
基础:
pointnet
pointnet++
目标检测:votenet (和pointnet是同一个作者,目标检测用的)
重构(构面、建模):occupancy net
知乎:什么是体素
semantic segmentation 和instance segmentation
CSDN:【论文速读】2020最新点云深度学习综述
CSDN: 点云深度学习