基于OpenPCDet的三维目标检测点云学习--取出标注框内的点云

这篇博客介绍了在OpenPCDet框架内如何通过Delaunay三角剖分来筛选点云数据,实现数据增强和可视化。函数`in_hull`用于确定点是否在标注框内,返回的mask可以过滤出点云中的目标物体。博客作者展示了使用该方法在百度车路协同数据集上的应用,通过Open3D库进行点云着色可视化。
摘要由CSDN通过智能技术生成

记录一下最近在基于OpenPCDet的三维目标检测点云学习过程中遇到的取出标注框内的点云(在该框架内用于取出标注框内的点云物体用于后续的数据增强),除了数据增强,还可以在可视化的过程中给标注框框住的物体点云上色,以百度新开源的车路协同数据集可视化为例:

框架内函数原型如下:

def in_hull(p, hull):
    try:
        if not isinstance(hull, Delaunay):
            hull = Delaunay(hull)
        flag = hull.find_simplex(p) >= 0
    except scipy.spatial.qhull.QhullError:
        print('Warning: not a hull %s' % str(hull))
        flag = np.zeros(p.shape[0], dtype=np.bool)
    return flag

涉及引入的相关库如下(需要提前pip或conda安装):

import scipy
from scipy.spatial import Delaunay

以原始输入点云为例,函数输入p为(N,3)的原始点云(N为点数,3为空间坐标值),hull为(8,3)的标注框数据(8为构成标注框的8个顶点,3为空间坐标值),函数返回的是一个布尔型的mask,shape为(N,),利用该返回值能够帮助从输入的点云中过滤出需要的在框内的点云数据,用法如下:

flag = in_hull(pc[:, 0:3], corner_3d.T)
point_inbox = pc[flag]

其中point_inbox即为框内包含的点云数据,利用open3d点云可视化效果如下:

 关于该函数具体的数学原理由于目前还在学习等以后整理好了再单独发出来,如有不对的地方还请多多指出~

  • 3
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
三维点云目标检测是自动驾驶等领域中的重要应用,其目的是在点云数据中检测并定位车辆、行人等物体。传统的三维点云目标检测方法通常需要大量标注好的点云数据进行训练,但这种方法非常耗时且昂贵。因此,基于弱监督学习三维点云目标检测方法应运而生。 基于弱监督学习三维点云目标检测方法通过利用仅有的部分标注信息来训练模型,从而实现效、准确的目标检测。该方法通常包括两个主要步骤:1)利用未标注点云数据进行预训练;2)利用部分标注数据进行微调。 在预训练阶段,可以使用无标注点云数据进行训练,比如使用自动驾驶车辆搭载的传感器获取的点云数据。预训练模型可以通过自监督学习方法进行训练,例如使用点云的自身几何特征进行学习,或者使用点云数据之间的关系进行学习。 在微调阶段,可以使用部分标注点云数据来微调预训练模型。这些标注信息可以是点云中物体的边界、语义信息等。此时,可以使用半监督学习方法来训练模型,例如使用伪标签方法或利用标签传播算法对未标注数据进行标注。 基于弱监督学习三维点云目标检测方法具有训练数据成本低、效等优点,但仍然存在一些挑战,例如如何设计有效的自监督学习方法、如何利用最少的标注信息来实现效的模型微调等问题。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值