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

干货第一时间送达

文章导读

本文介绍点云聚类后的点集包围框拟合方法,分别对不同形式的包围框分析其构建方法、拟合特性,通过实际测试中遇到的问题,对比优缺点和适用场景。

目录

  • 轴对齐包围框

  • 方向包围框

  • 点云簇凸包

  • 对比总结

什么是包围框?

包围框是指一个简单的几何空间,在三维点云中,里面包含的是聚类后的一系列点集。为目标点集构建包围框能够提取出障碍物的几何属性给跟踪模块作为观测值;将零散的目标点云通过包围框转换成规则物体,会使决策模块更易规划运动轨迹。

有哪些包围框类型?

点云包围框的类型主要包括轴对齐包围框、方向包围框、固定方向凸包等。

在道路目标的障碍物检测中,由于障碍物通常在地面上,所以从简化计算的角度,包围框的拟合可以先在目标点集的Z方向检索最小值/最大值,再对点集做XY平面上求取包围框。

轴对齐包围框

轴对齐包围框在三维空间中是一个简单的六面体,每一边都平行于一个坐标平面,所以构成的包围框的三条边与坐标轴平行,简称AABB。

实现方法:

  1. 遍历聚类后的目标点集,分别记录三个轴方向上最小的三个值x1,y1,z1和最大的三个值x2,y2,z2;

  2. 组成两个三维点(x1,y1,z1)和(x2,y2,z2)作为包围框的对角点即可;

拟合特性:当目标有旋转方向的时候,轴对齐包围框的拟合会增加空隙,放大目标的实际尺寸,从而不利于碰撞检测或者路径规划的任务。如下图所示:

针对倾斜的多个目标也会由于包围框相交引起一些后处理的错误,如下图:

因为传统的点云聚类算法得到的目标点集本身存在过分割、欠分割等问题,所以在拟合出包围框后,我们常根据目标的先验信息做后处理操作,可能就会出现以下状况,两个目标被融合成了一个:

方向包围框

方向包围框是根据目标本身的几何形状来决定框的大小和方向,包围框无须和坐标轴平行,从而可以求出最紧凑的包围框。

通过考虑点集中所有点的空间分布,通过算法找到最优方向的矩形。常用方法如下:

1. 基于主成分分析拟合矩形

通过求取点集的特征向量得到外接框的轴方向,从而计算出带旋转角的外接框,具体流程如下:

  1. 利用主成分分析法找到目标点集的三个主方向,求出质心,计算协方差,获得协方差矩阵;

  2. 采用雅可比迭代法求取协方差矩阵的特征值和特征向量,特征向量即为主方向;

  3. 将每个点的(x, y, z)坐标投影到计算出的坐标轴上,位置由累加所有点再求均值得到,求出中心点和半长度。

拟合特性:包围框始终沿着目标的主成分方向生成最小的旋转矩形,但是由于采用点集的特征向量,引入了所有点均值和方差的概念,可能出现以下情况,虽然是旋转框,但是仍不能紧贴目标物体:

2. 基于搜索算法近似拟合矩形

算法来源于《Efficient L-Shape Fitting for Vehicle Detection Using Laser Scanners》。迭代遍历所有可能方向,通过评价指标衡量损失最小的即为最优外接框。流程如下:

  1. 遍历矩形的所有可能方向,每次迭代时找到一个指向该方向并包含所有扫描点的矩形;

  2. 得到所有点到矩形四条边的距离,根据这些距离将点分成p和q,并计算出相应的平方误差作为目标函数;

  3. 在迭代所有方向并获得所有相应的平方误差后,寻找得到最小平方误差的最佳方向,并根据该方向调整矩形。

算法提供了三个评价标准来选择拟合的矩形:

  • 矩形面积最小化

  • 点到边缘贴近度最大化

  • 点到边缘平方误差最小化

根据小编的需求场景,实际测试采用第二种标准效果较好,耗时最少,第三种效果最优,耗时较大。

拟合特性:迭代每一个可能的方向,通过求最小方向的损失得到最优旋转方向,所以随着目标的旋转,可以更加精确的提供目标尺寸信息。如下图所示:

但是由于在求旋转外接框时,通常是依据目标点集的空间分布得到旋转方向,这种方式对车辆等长条形目标效果较好,但是对于行人等长宽等比例的目标,在连续帧的拟合上会出现抖动现象,如下图所以:

点云簇凸包

所谓凸包就是针对点集构建一个凸多边形。如下图所示:

常用算法较多,如:

  • 穷举法

  • 分治法

  • Jarvis步进法

  • Graham扫描法

  • Melkman算法

以Graham扫描法为例:先将所有的点按照纵坐标优先的方式排序,显然纵坐标最小的点会在凸包上,所以从纵坐标最小的点开始入栈0,按逆时针方向搜索,将角度最小的点压入栈,然后重复操作。

以下为用Graham扫描法动态求解的过程:

在求解点集目标时,我们先提取z方向的最大值和最小值,然后将三维点压缩到XY二维平面计算凸包,如下图所示:

如何求取凸包的最小外接矩形?

  1. 以其中两点作为矩形的一条边

  2. 以该边作为x轴基坐标,并做y轴基坐标

  3. 将所有点以该基坐标进行旋转,找到以该边为基准的所有点的x坐标的最小和最大值,既y轴的最大值

  4. 获取该范围的面积值,并获取边界数据

  5. 重复每条边,并每次判断保存最小面积及参数

  6. 最终输出最小外接矩形的参数

拟合特征:通过凸包表征点集能够最大程度的贴近目标,但是由于激光雷达成像特性,会丢失很多目标另一面的点,凸包更像是包围框拟合的中间产物,常常基于它再求取方向外接框,得到目标几何信息。

对比总结

轴对齐包围框(AABB)对点集拟合简单,存储空间小,但是对不规则的目标紧密性差,边角增加了冗余空间。不适合带旋转的场景和柔性的物体,如前方卡车转弯时采用AABB拟合会出现很大的矩形障碍物,导致后续路径规划出现误差。

方向包围框(OBB)对点集的拟合更加精确和健壮,对方向任意的目标可以紧密的包围,并且能够避免包围框相交检测的情况。但是实现更复杂,速度较慢,不太适合动态或者柔性的物体,比如树枝,灌木等。

点云凸包(Convex hull)继承了AABB简单性的特点,但具备良好的空间紧密度,比其他包围体更紧密地包围原物体,但是会因为目标部分点的变化,造成拟合效果抖动。

写作不易,觉得有用可以点个赞+关注,谢谢!

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

下载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天内无条件退款

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

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

如何拟合点云目标的最小外包围box相关推荐

  1. 无人驾驶汽车系统入门:基于深度学习的实时激光雷达点云目标检测及ROS实现...

    参加 2018 AI开发者大会,请点击 ↑↑↑ 作者:申泽邦(Adam Shan),兰州大学在读硕士研究生,主要研究方向无人驾驶,深度学习:兰大未来计算研究院无人车团队负责人,自动驾驶全栈工程师. 近 ...

  2. 如何提高3D点云目标检测的难例精度?

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 文章导读 本文是一篇将注意力机制应用在点云目标检测中的文章<TANet: Robust 3D O ...

  3. P2B: Point-to-Box Network 点云目标跟踪(CVPR 2020)

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者: 不知道叫什么好 https://zhuanlan.zhihu.com/p/146512901 ...

  4. 三维点云目标提取总结(续)

    三维点云目标提取(续) 3.三维点云目标提取 3.1一般流程 先根据个人认识总结一下目标提取的一般性步骤: 如上所示,三维点云的目标提取关键性的两步即为:特征提取与选择.分类,是不是整个方法流程与图像 ...

  5. 圆 最小外包矩形_【OpenCV3图像处理】提取轮廓的凸包、外包矩形、最小外包矩形、最小外包圆...

    1.提取轮廓的凸包 convexhull()函数(点我看OpenCV3.2帮助文档) 函数调用形式: void convexhul(InputArray points,OutputArray hull ...

  6. 云澈找到了鸿蒙生死印了吗,逆天邪神:洛孤邪、千叶影儿再出手,云澈遭放逐外混沌生死未卜!...

    话说<逆天邪神>的剧情是越来越精彩了,沐玄音十级神主不仅打退了前来寻仇的洛孤邪,更是震惊了宙天神帝和琉光界水千衍,而云澈身负光明玄力的事实,更是让宙天神帝看到了抵御绯红劫难的希望,毕竟这个 ...

  7. 无人驾驶汽车系统入门(二十六)——基于深度学习的实时激光雷达点云目标检测及ROS实现

    无人驾驶汽车系统入门(二十六)--基于深度学习的实时激光雷达点云目标检测及ROS实现 在前两篇文章中,我们使用PCL实现了在点云中对地面的过滤和点云的分割聚类,通常来说,在这两步以后我们将对分割出来的 ...

  8. CVPR 2022 | PTTR: 基于Transformer的三维点云目标跟踪

    点击上方"3D视觉工坊",选择"星标" 干货第一时间送达 作者丨罗志鹏 来源丨商汤学术 导读 在CVPR 2022上,商汤研究院团队提出了基于Transform ...

  9. 目标检测中的Bounding Box Regression Loss

    目标检测中的Bounding Box Regression Loss PyTorch: https://github.com/shanglianlm0525/CvPytorch 目标检测中的Bound ...

最新文章

  1. codevs 1147 排座椅
  2. SAP CRM one order框架到了S/4HANA后是如何重构的
  3. java 输入流关闭顺序_JAVA的节点流和处理流以及流的关闭顺序
  4. Verilog基本语法初学
  5. c++ 中extern C 及#ifdef __cplusplus的作用
  6. Mybatis(7)参数传递和结果封装
  7. tomcat异常[0]--java.lang.ClassNotFoundException: org.apache.taglibs.standard.tlv.JstlCoreTLV
  8. 删除某个目录及目录下的所有子目录和文件
  9. Akka增加消息的灵活性《eleven》译
  10. 分享一个 pycharm 专业版的永久使用方法
  11. 反射方式,获取出集合ArrayList类的class文件对象
  12. 敲一下enter键,完成iOS的打包工作
  13. android连接打印机打印pdf文件,如何在Android设备上打印PDF文件
  14. matlab gui仿真实验,基于Matlab GUI设计的光学实验仿真
  15. Unity 自定义Package
  16. 小白windows内网离线部署宝塔面板
  17. 走钢索的人---走出软件作坊:三五个人十来条枪 如何成为开发正规军(十七)[转]...
  18. docker安装minio:Access key length should be at least 3, and secret key length at least 8 characters
  19. 2018 计蒜之道-初赛 第二场 B-阿里巴巴的手机代理商(简单)
  20. SQL Server查询分类汇总

热门文章

  1. 吉林大学966java_2021年吉林大学计算机考研科目
  2. Simple-SR(AAAI-2022):Best-Buddy GANs for Highly Detailed Image Super-Resolution论文浅析
  3. 学习笔记——mysql数据库(四)
  4. Spring事务失效的几种原因
  5. 【程序人生】 第一届国际虚拟现实技术及应用创新大赛
  6. Python+Flask+MySQL实例——简单的成语词典实现
  7. 【数据结构】【离线操作】飘雪圣域
  8. Linux 多进程通信开发(五): 信号量
  9. 【iintern】在美国留学,你要知道cpt和opt有什么区别!
  10. php normalize,normalize.css的使用