自动驾驶之3D点云聚类算法调研

1. 方法

总共分为4类

  • 基于欧式距离的聚类
  • Supervoxel 聚类
  • 深度(Depth) 聚类
  • Scanline Run 聚类

1.1 基于欧氏距离的聚类

思路: 在点云上构造kd-tree, 然后在某个半径阈值(例如0.5m), 则分割为一个实例。
自动驾驶之3D点云聚类算法调研_第1张图片

相似算法: RBNN (radially bounded nearest neighbor graph), 2008.
自动驾驶之3D点云聚类算法调研_第2张图片
自动驾驶之3D点云聚类算法调研_第3张图片

1.2 Supervoxel Cluster

CVPR13 Voxel Cloud Connectivity Segmentation - Supervoxels for Point Clouds
3D is here: Point Cloud Library (PCL), 2011
自动驾驶之3D点云聚类算法调研_第4张图片
自动驾驶之3D点云聚类算法调研_第5张图片
类似于K-Means
自动驾驶之3D点云聚类算法调研_第6张图片

1.3 Depth Cluster

Fast range image-based segmentation of sparse 3D laser scans for online operation, 2016
首先,移除地面
基于range image,优点是直接定义了邻居关系,使得分割更加简单;避免了3D点云的生成,速度更快.

  • 行数: 垂直方向的线数, 即16,32或64

  • 列: 旋转一周

  • 像素点: 雷达到物体的距离
    自动驾驶之3D点云聚类算法调研_第7张图片

    判断两个点是否属于同一个目标,可以使用angle-based measure.
    自动驾驶之3D点云聚类算法调研_第8张图片
    自动驾驶之3D点云聚类算法调研_第9张图片
    β \beta β的定义方法:

    • 激光雷达处于原点
    • y轴选择两条线中更长的线
    • β \beta β定义为laser beam(较远的)和连接AB的线之间角度
      在range image上视为邻居条件
  • if they are neighbours in a the range image (we use an N4 neighbourhood on the grid)

  • angle β \beta β between them is larger than θ = 10 \theta=10 θ=10度.

问题转换为 找利用range image的结构和 β \beta β的限制找连接的2D部分

从range image的左上角开始,遍历到右下角. 从左到右,从上到下。

广度优先,搜索上下左右四个点是否满足条件。

自动驾驶之3D点云聚类算法调研_第10张图片
自动驾驶之3D点云聚类算法调研_第11张图片

效果图
自动驾驶之3D点云聚类算法调研_第12张图片

1.4 Scanline Run Cluster

Fast segmentation of 3D point clouds: A paradigm on LiDAR data for autonomous vehicle applications, 2017
需要实现去除地面。
scan line: 在SLR中,所有相同(水平的角度)发散出的点被认为是一个scan-line.
run. :在单个scan line中,所有距离小于阈值的点会被分组在一起,成为一个run.

  • Step1: SLR对第一个line, 获取第一个line的runs. 每个run有不同的label
  • Step2: SLR对第二个line, 重复run segmenting,检查是否新的run满足由新的阈值定义的merging条件. 如果满足merge条件,则merge. 如果没有merge,则新的run获取新的label, 直到将所有的line都扫一遍.
    自动驾驶之3D点云聚类算法调研_第13张图片
    自动驾驶之3D点云聚类算法调研_第14张图片
    自动驾驶之3D点云聚类算法调研_第15张图片

2. 测速和实现

ICCV21, A Technical Survey and Evaluation of Traditional Point Cloud Clustering
Methods for LiDAR Panoptic Segmentation
github,C++ and Python

思路: 使用Cylinder3D(CVPR2021)做语义分割,获得所有点的类别,再使用以上方法做聚类,得到实例分割结果。

数据集: SemanticKITTI

PQ (panoptic quality)
自动驾驶之3D点云聚类算法调研_第16张图片

Cylinder3D速度: 文章没提,github说10HZ, python代码,不知显卡类型。

速度
自动驾驶之3D点云聚类算法调研_第17张图片

你可能感兴趣的:(自动驾驶,CV,聚类,自动驾驶,3d点云聚类)