主要内容

检测

使用point柱子对象检测器检测对象

    描述

    bboxes=检测(探测器ptCloud检测输入点云内的对象,ptCloud.该函数将检测到的对象的位置作为一组包围框返回。

    bboxes分数=检测(探测器ptCloud返回每个包围框的特定于类的置信度分数。

    ___标签=检测(探测器ptCloud返回分配给每个包围框的标签。对象类使用的标签在训练期间使用trainPointPillarsObjectDetector函数。

    detectionResults=检测(探测器DS检测数据存储中点云系列中的对象DS

    例子

    ___=检测(___名称=值)使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,检测(检测器、ptCloud阈值= 0.5)检测输入点云内的对象,检测阈值为0.5

    例子

    全部折叠

    将预先训练好的point柱子对象检测器加载到工作区中。

    预训练检测器=负载(“pretrainedPointPillarsDetector.mat”“探测器”);检测器=预训练的检测器;

    方法读取输入点云pcread函数。

    ptCloud = pcread(“PandasetLidarData.pcd”);

    在点云上运行预训练的对象检测器。

    [bboxes,scores,labels] = detect(检测器,ptCloud);bboxCar = bboxes(标签”= =“汽车”:);bboxTruck = bboxes(标签”= =“卡车”:);

    方法可视化结果pcshow函数。为了更好的可视化,选择一个感兴趣的区域,roi,来自点云数据。控件显示汽车、卡车的边界框showShape函数。

    ROI = [0.0 89.12 -49.68 49.68 -5.0 5.0];指数= findPointsInROI(ptCloud,roi);figure ax = pcshow(select(ptCloud, indexes).Location);变焦(ax, 1.5) showShape (“长方体”、bboxCar颜色=“绿色”,父母= ax,透明度= 0.3,线宽= 1);showShape (“长方体”、bboxTruck颜色=“红色”,父母= ax,透明度= 0.3,线宽= 1)

    输入参数

    全部折叠

    PointPillars对象检测器,指定为pointPillarsObjectDetector对象。

    输入点云,指定为apointCloud对象。该对象必须包含渲染点云所需的位置、强度和RGB颜色。

    数据存储,指定为有效的数据存储对象,它是点云的集合。此数据存储必须设置为使用函数返回一个单元格数组或表,其中第一列包含点云。有关创建数据存储对象的详细信息,请参见数据存储函数。

    名称-值参数

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

    例子:检测(检测器、ptCloud阈值= 0.5)

    检测阈值,指定为范围[0,1]中的标量。该函数删除分数低于此阈值的检测。为了减少误报,增加这个值。

    为每个检测到的对象选择最强的包围框,指定为逻辑对象1真正的)或0).

    • 真正的-函数返回每个对象的最强包围框。函数使用selectStrongestBboxMulticlass函数,该函数使用非最大抑制来根据置信分数消除重叠的包围框。

      默认情况下,检测类使用此代码selectStrongestBboxMulticlass功能:

      selectStrongestBboxMulticlass (bbox,分数,RatioType =“联盟”...OverlapThreshold = 0.1);

    • —该函数返回所有检测到的包围框。然后可以使用自定义流程消除重叠的包围框。

    迷你批处理的大小,指定为正标量。使用MiniBatchSize参数来处理大量点云集合。利用这个参数,函数组将云指向小批量,并将其作为批量处理,以提高计算效率。增加小批尺寸以减少处理时间。减小大小以使用更少的内存。

    性能优化,指定为“汽车”“没有”

    • “汽车”—自动选择适合检测器所在网络和环境的优化配置。这些优化以牺牲第一次调用的一些开销和可能的额外内存使用为代价来提高性能。

    • “没有”-禁用所有加速功能。

    输出参数

    全部折叠

    点云内检测到的对象的位置,返回为9矩阵。矩阵中的每一行都是[xyz长度宽度高度球场偏航],表示边界框的尺寸和位置。是包围框的数量。

    边界框的检测置信度分数,返回为元素列向量。是包围框的数量。每个检测的分数是其目标性预测和分类分数的乘积。每个分数都在[0,1]范围内。分数越高,表示检测的可信度越高。

    边界框的标签,返回为-by-1分类数组。是点云中包围框的个数。定义训练对象检测器时用于标记对象的类名。

    检测结果,作为带列的表返回,盒子分数,标签.表中的每一行都对应于输入数据存储中的一个点云。

    列名 价值 描述
    盒子 -by-9矩阵,其中是包围框的数量。 在相应的点云中找到的对象的包围框。
    分数 元素列向量 边界框的检测分数。
    标签 -by-1分类数组 包围框的标签。

    要评估检测结果,请使用evaluateDetectionAOS函数。

    metrics = evaluateDetectionAOS(detectionResults,testLabels);

    扩展功能

    版本历史

    R2021b中引入