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

干货第一时间送达

文章导读

本文针对自动驾驶中三维点云的道路目标聚类进行讲解,从聚类算法的原理出发,介绍几种常用的点云障碍物聚类算法,并对比分析算法的优劣和适用场景,从工程角度给出算法的优化方式。

1

什么是聚类算法

聚类就是按照某种特定的标准把一个数据集分割成不同的簇,使得同一个簇内的数据尽可能相似,不在同一个簇的数据差异尽可能大。

常用的聚类算法包括以下几种:

k-means是典型的基于划分的聚类算法,针对散落的点集,选定聚类个数然后随机初始化中心点,通过迭代计算拉近类内点的距离,增大类间点的距离。

基于网格的聚类是将数据空间划分成栅格形式,将数据映射到网格中,然后计算每个栅格中点集密度,根据预设的阈值对网格单元的类别作出分类,并与邻近的栅格组形成类。(之前的文章中提到的栅格法道路分割用的就是这种思想)

GMM是一种基于模型的聚类方法,为每簇假定了一个模型,以概率的方式寻找数据对给定模型的最佳拟合。

2

聚类的评判标准

聚类是一种无监督算法,一个好的聚类算法具有高的类内距离,同时具有低的类间距离。但是既然没有标签,那么如何判断聚类的好坏呢?

通常可以通过内在方法和外在方法进行评估。

内部评价是一种无监督的方式,采用类内聚集程度和类间离散程度衡量,比如轮廓系数、DB指数等。

外部评价是一种有监督的方式,用一定的度量评判聚类结果与基准数据的相似程度。比如归一化信息,兰德指数等。

3

三维点云的聚类

三维点云通常利用其特征属性进行聚类,对每个点空间或者局部空间进行特征的提取或者转换,得到多种属性,比如:法向量,密度,距离,高程,强度等等,将不同属性的点云分割出来。

在点云处理中常见的有欧式聚类,密度聚类,超体聚类,针对不同的场景其各有优缺点,从算法耗时角度出发超体聚类最慢,欧式聚类最快;从算法效果角度出发欧式距离最暴力直接,超体聚类对特殊形态的物体表征最好。下图是一张经过点云预处理后的障碍物聚类图:

4

点云的欧式聚类

欧式聚类依据欧式距离作为判定准则,对于空间内的一点P,通过KD-Tree在领域搜索k个距离P点最近的点,其中距离小于设定阈值的便放入集合Q中,如果Q中元素不在增加,则聚类过程结束;否则在集合Q中选取P点以外的点,重复以上步骤。

欧式聚类算法在调参过程中有一个比较关键,就是点与点之间的距离阈值的设定。激光雷达在采样过程中具有近密远稀的特点,所以近处的点集之间距离较小,远处的点集之间距离较大。

经常遇到的一种现象就是,设定了距离阈值后,近处的目标聚类效果较好,但是远处的目标出现欠分割或者截断的问题。如下图所示:顶部车辆中间区域点距离较远导致被聚类成两个目标。

为了解决欧式聚类在不同距离段,点的间距不同的问题。在工程上有人采用分段聚类,在不同距离段设置不同的阈值,多线程并行运算每一段的聚类算法,最后在分段间隔处对聚类目标进行融合。

5

点云的密度聚类

密度聚类是将簇定义为密度相连的点的最大集合,能够把具有足够高密度的区域划分为簇,并可在噪声的空间数据库中发现任意形状的聚类。

DBSCAN是一种典型的密度聚类算法,它使用两个参数来描述样本的紧密程度,其一是邻域半径,用来描述当前点的邻域距离阈值;其二是点的个数,用来描述在邻域范围内数据点的最小个数。

从原理出发还需要了解几个基本概念:

  • 核心对象:对于空间任一点P,如果其邻域内至少包含k个样本点,则P是核心对象;

  • 密度直达:如果点Q位于点P的邻域内,且P是核心对象,则Q由P密度直达;

  • 密度可达:如果在样本序列中P1,P2,P3,P2由P1密度直达,P3由P2密度直达,则P3由P1密度可达;

  • 密度直连:对于空间点P和Q,如果存在核心对象T使得P和Q均由T密度可达,则称P和Q密度相连;

算法流程如下:

  1. 设置参数Distance作为距离阈值;

  2. 选取空间一点P,搜索最近的k个点;

  3. 将k个点中小于阈值Distance的点归入集合Q;

  4. 在集合Q中选取P以外的点重复2操作;

  5. Q中的点不再增加则完成聚类;

6

点云的超体聚类

超体聚类类似于基于网格的聚类方式,欧式聚类和密度聚类均采用kdtree的方式进行点的搜索,而超体聚类采用八叉树进行点云的编码。对三维空间进行3D栅格化,在栅格之间做区域生长的操作。由于运行速度较慢,所以小编没去测试过,在这就不细讲了。

7

道路目标的聚类分析

欧式聚类算法实现相对简单,采用kd-tree搜索空间点,运算效率相对较高。但是对离群点和噪声点敏感,在道路场景对障碍物聚类时,会对灌木,树枝等点云分布不规则静态障碍物,在连续帧中聚类出不同的效果,导致外接框拟合抖动。并且欧式聚类的距离阈值对近处和远处的目标点集难以有通用性。

密度聚类对噪声点不敏感,选择合适的阈值可以将目标点和离群点分离。但是在大规模的点云数据中,每个三维点都必须与其他对象点进行比较,算法耗时严重。而且对于线束较少的激光雷达点云,由于线束之间采样点间隔较大,邻域内的点云稀疏,采用密度聚类很容易造成目标点被当成噪声丢失掉,如下图所示:

左图是聚类前的点云,右图是密度聚类后的点云,红色圆圈处的点集由于核心对象邻域内点数稀疏,聚类后被当做噪声点丢失。

点云采用聚类算法进行障碍物分割经常出现欠分割和过分割的问题。一般聚类算法需要设置一个搜索半径,如果搜索半径过小,会将一个对象分割成多个聚类目标;如果搜索半径太大,会将多个对象分割为一个聚类目标。如下图所示:

左边的卡车被聚类成两块,右边的卡车被聚类成三块。

实际工程开发中会对根据使用的激光雷达数据对典型算法进行改进,比如为了降低密度聚类逐点比较的时间成本,可以将三维点云数据按照维度划分为体素栅格为单元进行聚类,减少在空间中以点为单位的邻域搜索时间。

传统聚类算法的参数设定需要根据不同的应用场景进行调节,操作算法鲁棒性较差,针对阈值参数的设定如果可以接触学习的方法或者自适应的方式会是一直算法优化的趋势。

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

下载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人脸识别、医疗影像、缺陷检测、行人重识别、目标跟踪、视觉产品落地、视觉竞赛、车牌识别、硬件选型、学术交流、求职交流、ORB-SLAM系列源码交流、深度估计等微信群。

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

▲长按加微信群或投稿

▲长按关注公众号

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

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

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

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

一文详解激光点云的物体聚类相关推荐

  1. 一文详解激光点云的地面分割

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 采用传统的点云处理算法做障碍物检测有一个重要的环节就是地面分割,本文介绍各种常用的地面分割方 ...

  2. 一文详解激光SLAM框架LeGO-LOAM

    作者介绍:Zach,移动机器人从业者,热爱移动机器人行业,立志于科技助力美好生活. LOAM存在的问题 LeGO-LOAM全称为:Lightweight and Groud-Optimized Lid ...

  3. 2.0 解析系列 | 一文详解新一代OceanBase云平台

    小蚂蚁说: 9月21日,OceanBase 2.0 在云栖大会上重磅发布.我们将在接下来的时间里为大家持续推出 "OceanBase 2.0 技术解析系列" 文章,分别从 可运维性 ...

  4. 云服务器CentOS8.2安装部署Docker一文详解

    目录 前言 一.Docker简介 二.安装部署以及测试Docker 1.安装Docker 1.1查看系统版本 1.2移除旧依赖 1.3安装方法 1.4设置存储库 ​编辑 1.5安装Docker引擎 1 ...

  5. 用pcl读ply文件_一分钟详解PCL中点云配准技术

    原文首发于微信公众号「3D视觉工坊」:一分钟详解PCL中点云配准技术 本文是对前两篇文章:点云配准(一 两两配准)以及3D点云(二 多福点云配准)的补充,希望可以在一定程度上帮助大家对点云配准理解地更 ...

  6. 一文详解自动驾驶的运行设计域(ODD)| 自动驾驶系列 1

    一文详解自动驾驶的运行设计域(ODD)| \n 自动驾驶系列 2021年4月30日,SAE发布了第四版J3016<驾驶自动化分级>,这是即2014年1月16日.2016年9月30日.201 ...

  7. 一分钟详解PCL中点云配准技术

    原文首发于微信公众号「3D视觉工坊」: 一分钟详解PCL中点云配准技术 本文是对前两篇文章:

  8. 一文详解JavaBean 看这篇就够了

    一文详解JavaBean 看这篇就够了 JavaBean的历史渊源 JavaBean的定义(通俗版) JavaBean应用 < jsp:useBean > < jsp:getProp ...

  9. 【卷积神经网络结构专题】一文详解AlexNet(附代码实现)

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! [导读]本文是卷积神经网络结构系列专题第二篇文章,前面我们已经介绍了第一个真正意义 ...

最新文章

  1. 人人可以理解的区块链100问——区块链记录哪些信息
  2. c语言查找功能的怎么使用方法,求C语言实现查询功能(如果选择3,如何实现查询)...
  3. python微服务监控_如何用zabbix监控微服务
  4. 【今日CV 视觉论文速览】19 Feb 2019
  5. libv4l 库【转】
  6. 1899元起!iQOO Z5造梦空间配色明日正式开售
  7. LeetCode34.在排序数组中查找元素的第一个和最后一个位置 JavaScript
  8. 计算机组成原理(白中英) 第八章 课后题答案
  9. js Date 获取 年 月 日
  10. 海通股票交易接口查询当日成交c++源码分享
  11. 保存360锁屏壁纸批量修改文件后缀名
  12. 2021-09-30 js手动轮播图
  13. www.ku6d.com采集目标
  14. UiPath:Windows计划任务调度UiPath(直接调用及.bat方式)
  15. 荣耀v40和荣耀v40pro的区别
  16. 网络切片使能千行百业,助5G无所不能,5G网络切片“切”的是什么?
  17. 如何用好 Google 搜索引擎?
  18. 知识共享许可 cc 协议
  19. ET篇:斗地主的流程(资源工作流)
  20. sensor尺寸、35mm等效焦距、FOV、ZOOM倍数的换算关系

热门文章

  1. 监控Oracle性能的SQL
  2. ActiveMQ常见问题
  3. 千万QPS毫秒响应:快手数据中台建设实践
  4. 你的简历写了 “熟悉” zookeeper ?那这些你会吗?
  5. 硬不硬你说了算!近 40 张图解被问千百遍的 TCP 三次握手和四次挥手面试题
  6. Hadoop数据收集与入库系统Flume与Sqoop
  7. 不懂SOLID,GRASP这些软件开发原则!写出来的代码都是垃圾!
  8. 强烈推荐8个值得下载的神仙软件,每一个都让人惊喜
  9. 推荐7款冷门但是非常值得推荐的windows软件
  10. 在家办公如何提高效率?