主要内容

sampleLidarData

从训练数据中抽取三维包围框和相应的点

    描述

    例子

    纤毛运动建筑物= sampleLidarData(trainingData一会从指定的训练数据中对三维包围框和对应的点进行采样,并将其作为数据存储对象返回。

    纤毛运动建筑物= sampleLidarData(___名称=值除前面语法中的所有输入参数外,指定一个或多个名称-值参数。例如,sampleLidarData (trainingData一会,MinPoints = 20)样本只包含至少有20个点的盒子。

    例子

    全部折叠

    将点云及其类标签加载到工作区中。

    解压缩(“sampleWPIPointClouds.zip”, tempdir);dataLocation = fullfile(tempdir,“sampleWPIPointClouds”);负载(“sampleWPILabels.mat”“trainLabels”);

    为培训数据创建一个数据存储。

    pcds = fileDatastore(数据位置,“ReadFcn”@ (x) pcread (x));blds = boxLabelDatastore(trainLabels);trainingData = combine(pcds,blds);

    定义从输入数据中取样的类名。使用sampleLidarData函数对相应的包围框进行采样。

    classNames = {“汽车”};[pcdsSampled,bldsSampled] = sampleLidarData(trainingData,classNames,Verbose=false);cdsSampled = combine(pcdsSampled,bldsSampled);

    从训练数据中读取点云。

    pcBoxLabels = read(trainingData);图pcshow(pcBoxLabels{1,2} .Location) showShape(cuboid=pcBoxLabels{1,2},透明度=0.1,...颜色=“黄色”线宽= 0.5);标题(“原始点云”

    增加点云数据pcBoxLabels使用从数据存储中采样的点cdsSampled使用pcBboxOversample函数。

    totalObjects = 5;augmentedPcBoxLabels = pcbboxoverample (pcBoxLabels,cdsSampled,classNames,totalObjects);图pcshow(augmentedPcBoxLabels{1,1}.Location) showShape(cuboid=augmentedPcBoxLabels{1,2},透明度=0.1,...颜色=“黄色”线宽= 0.5);标题(“增强点云”

    输入参数

    全部折叠

    输入点云数据,指定为有效的数据存储对象或表。

    • 如果指定了数据存储对象,则必须对数据进行设置,以便使用函数返回一个有三列的单元格数组或表。每一行对应一个点云,列必须遵循这种格式。

      • 第一列-有组织或无组织的点云数据,指定为pointCloud对象。

      • 第二列-边界框,指定为包含m × 9矩阵的单元格数组。矩阵的每一行都是[xyz长度宽度高度球场偏航],表示边界框的位置和维度。是包围框的数量。

      • 的单元格数组指定的标签-by-1包含对象类名的分类向量。

      您可以使用结合函数组合两个或多个数据存储。有关创建数据存储对象的详细信息,请参见数据存储函数。

    • 如果指定一个表,则该表必须有两个或多个列。第一列必须包含点云文件名。控件支持的任何格式都可以是点云文件pcread函数。其余的每一列都包含一个单元格数组,表示单个对象类,例如,或卡车.每个单元格包含一个9矩阵。矩阵的每一行都是[xyz长度宽度高度球场偏航],指定边界框在相应点云中的位置和尺寸。是包围框的数量。

    对象类的名称,指定为字符向量、字符串标量、字符串的向量或字符向量的单元格数组。函数从输入训练数据中对这些类进行采样。例如,“car”、“truck”或“pedestrian”。

    名称-值参数

    指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

    例子:sampleLidarData (trainingData一会,MinPoints = 20)只对内部至少有20个点的对象进行采样。

    采样对象所需的最小点数,指定为正标量或元向量。是类的数量。如果值为vector,则每个元素对应于各自的类。否则,该函数对所有类使用相同的值。

    数据类型:||int8|int16|int32|int64|uint8|uint16|uint32|uint64

    写入采样数据的文件夹,指定为字符向量或字符串标量。该文件夹必须存在于指定的位置,并且您必须具有写权限。默认情况下,该函数将此数据写入当前工作文件夹。数据由采样点及其各自的框标签组成。

    数据类型:字符|字符串

    显示以逻辑形式指定的数据写入进度真正的

    数据类型:逻辑

    输出参数

    全部折叠

    从训练数据中采样的点的文件位置,返回为fileDatastore对象。

    采样的三维包围框和标签,返回为boxLabelDatastore对象。

    算法

    激光雷达物体检测技术直接预测感兴趣物体周围的三维包围框。数据增强可以帮助您提高预测精度并避免训练时的过拟合问题。

    您可以使用以下步骤在点云上执行地面真相数据增强。

    1. 样本三维包围框和对应的点从输入训练数据使用sampleLidarData函数。

    2. 方法随机地用采样的包围框增加点云pcBboxOversample函数。该函数对采样盒与输入点云的地面真值盒进行碰撞测试,避免重叠。

    该技术缓解了激光雷达目标检测中的类不平衡问题。

    版本历史

    R2022a中引入

    Baidu
    map