主要内容

检测

使用SSD MultiBox对象检测器检测对象

描述

例子

bboxes.=检测(探测器一世检测单个图像中的对象或图像数组,一世,使用单次拍摄多杆探测器(SSD)。检测到的对象的位置作为一组边界框返回。

当使用这个函数时,使用CUDA®使英伟达®强烈推荐使用GPU。GPU大大减少了计算时间。使用GPU需要并行计算工具箱™。有关支持的计算能力的信息,请参见金宝appGPU支金宝app持情况(并行计算工具箱)

[bboxes.分数] =检测(探测器一世还返回每个边界框的检测分数。

[___标签] =检测(探测器一世也返回分配给边界框的标签的分类数组,使用前面的任何一种语法。对象类使用的标签是在训练期间使用trainssdobjectdetector功能。

[___] =检测(___roi检测由此指定的矩形搜索区域内的对象roi

detectionResults=检测(探测器DS.检测由此返回的一系列图像中的对象输入数据存储的功能。

[___] =检测(___名称,价值使用一个或多个指定选项名称,价值对论点。例如,检测(探测器,i,'阈值',0.75)设置检测评分阈值为0.75.除去分数较低的任何检测。

例子

全部收缩

加载佩带的单次检测器(SSD)对象以检测图像中的车辆。探测器接受过高速公路场景上的汽车图像培训。

vehicleDetector =负载(“ssdVehicleDetector.mat”'探测器');探测器=车辆levicetector.detector;

将测试图像读入工作区。

我= imread (“highway.png”);

显示测试图像。

imshow(i);

图中包含一个坐标轴。轴包含一个image类型的对象。

运行预先训练好的SSD对象检测器检测功能。输出包含在图像中检测到的车辆的边界框,分数和标签。标签源自来自Classnames.探测器的财产。

[bboxes、分数、标签]=检测(探测器,我)
bboxes =2×4139 78 96 81 99 67 165 146
得分=2x1单列向量0.8349 - 0.6302
标签=2x1分类车辆

用检测结果标注图像。

如果〜isempty(bboxes)detectedi = InsertObjectAnnotation(i,'矩形'、bboxes cellstr(标签);别的detectedi =插入文本(i,[10 10],“不检测”);结尾图imshow (detectedI)

图中包含一个坐标轴。轴包含一个image类型的对象。

输入参数

全部收缩

SSD对象检测器,指定为ssdobjectdetector对象。要创建此对象,请调用trainssdobjectdetector以训练数据作为输入。

输入图像,指定为H——- - - - - -W.——- - - - - -C——- - - - - -B.数字图像数组必须是真实的,非问题,灰度或RGB图像。

  • H: 高度

  • W.宽度:

  • C:每个图像中的通道大小必须等于网络的输入通道大小。例如,对于灰度图像,C必须等于1.对于RGB彩色图像,它必须等于3.

  • B.:数组中图像的数量。

检测器对输入图像的范围很敏感。因此,确保输入的图像范围与用于训练检测器的图像范围相似。例如,如果检测器被训练uint8图像,将此输入图像重新归类到范围[0,255]IM2UINT8.重新调节功能。该输入图像的大小应与培训中使用的图像的大小相媲美。如果这些尺寸非常不同,检测器难以检测对象,因为输入图像中的对象的比例与检测器训练以识别的对象的比例不同。考虑你是否使用过SmallestImageDimension培训期间的财产修改培训图像的大小。

数据类型:uint8|uint16|int16|||逻辑

指定为包含图像集合的数据存储对象。每个图像必须是灰度、RGB或多通道图像。该函数只处理数据存储的第一列,这一列必须包含图像,并且必须是单元格数组或具有多列的表。

搜索兴趣区域,指定为[Xy宽度高度)向量。向量以像素为单位指定区域的左上角和大小。

名称值对参数

指定可选的逗号分离对名称,价值参数。的名字是参数名称和价值为对应值。的名字必须出现在引号内。您可以以任何顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:'selectstrontest',真实

检测阈值,指定为范围的标量[0,1]。去除比该阈值小于该阈值的检测。为减少误报,增加此值。

为每个检测到的对象选择最强的边界框,指定为逗号分隔的对,由'Selectstrongest',要么真正的错误的

  • 真正的- 返回每个对象最强大的边界框。要选择这些框,检测打电话给selectStrongestBboxMulticlass函数,该函数使用非最大抑制来消除基于置信度评分的重叠边界框。

    例如:

    selectStrongestBboxMulticlass (bbox,分数,...'ratiotype''联盟'...“OverlapThreshold”,0.5);

  • 错误的-返回所有检测到的包围盒。然后,您可以创建自己的自定义操作来消除重叠的边界框。

包含检测到对象的最大区域大小指定为包含的逗号分隔对最大容量的和一个高度宽度)向量。单位是像素。

为了减少计算时间,将该值设置为在图像中检测到的对象的已知最大区域大小。默认情况下,最大容量的设置为输入图像的高度和宽度,一世

最小批量大小,指定为逗号分隔对组成“MiniBatchSize”和标量值。使用小匹匹匹匹配处理大量的图像。将图像分组成批处理,提高计算效率。增加迷你批处理大小以减少处理时间。减小大小以使用更少的内存。

运行检测器的硬件资源,指定为逗号分隔对组成'executionenvironment''汽车'“图形”,或“cpu”

  • '汽车'—如果有图形处理器,请使用图形处理器。否则,请使用CPU。

  • “图形”—使用GPU。要使用GPU,你必须有并行计算工具箱和支持CUDA的NVIDIA GPU。如果没有合适的GPU,该函数将返回一个错误。有关支持的计算能力的信息,请参见金宝appGPU支金宝app持情况(并行计算工具箱)

  • “cpu”—使用CPU。

输出参数

全部收缩

在输入图像或图像中检测到的对象的位置,返回为m- × 4矩阵或者aB.- 1个单元阵列。m是图像中的边界框的数量,以及B.m-By-4矩阵当输入包含图像数组时。

每一行的bboxes.包含形式为[Xy宽度高度].这个向量指定了左上角和相应边界框的大小(以像素为单位)。

检测置信分数,返回为m-by-1向量B.- 1个单元阵列。m是图像中的边界框的数量,以及B.m-1个向量输入时输入包含图像数组。得分更高表示对检测的置信度较高。

边界框的标签,作为一个返回m- 1个分类阵列或一个B.- 1个单元阵列。m是图像中标签的数量,和B.m当输入包含图像数组时,使用-by-1分类数组。在训练输入时,定义用于标记对象的类名探测器

检测结果,作为一个包含变量名的三列表返回,盒子分数, 和标签.的盒子列包含m4矩阵,m包围框为在图像中找到的对象。每行包含一个包含4个元素的边界框,其格式为[Xy宽度高度].该格式指定了对应图像中边界框的左上角位置和像素大小。

在R2020A中介​​绍