主要内容

检测

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

描述

例子

bboxes=检测(探测器,)检测对象在一个图像或一组图片,,使用一个单一multibox检测器(SSD)。返回对象的位置检测的边界框。

使用这个函数时,使用CUDA®使英伟达®GPU是强烈推荐。GPU大大减少了计算时间。使用GPU的并行计算需要工具箱™。关于支持计算能力的信息,看到金宝appGPU的金宝app支持版本(并行计算工具箱)

(bboxes,分数)=检测(探测器,)为每一个边界框也返回检测得分。

(___,标签)=检测(探测器,)还返回一个分类标签分配的数组边界框,使用前面的语法。标签用于定义对象类在训练使用trainSSDObjectDetector函数。

(___)=检测(___,roi)检测对象在指定的矩形的搜索区域roi

detectionResults=检测(探测器,ds)检测对象返回的一系列图像输入数据存储的功能。

(___)=检测(___,名称,值)使用一个或多个指定选项名称,值对参数。例如,检测(探测器,我,“阈值”,0.75)设置检测分数阈值0.75。任何检测较低分数被删除。

例子

全部折叠

加载pretrained单发射击检测器(SSD)对象来检测图像中的车辆。探测器是训练图像的汽车在公路上的场景。

vehicleDetector =负载(“ssdVehicleDetector.mat”,“探测器”);探测器= vehicleDetector.detector;

读一个测试图像到工作区中。

我= imread (“highway.png”);

显示测试图像。

imshow(我);

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

运行pretrained SSD对象探测器使用检测函数。输出包含边界框、分数和车辆图像中检测到的标签。来自的标签一会财产的探测器。

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

注释的图像检测的结果。

如果~ isempty (bboxes) detectedI = insertObjectAnnotation(我,“矩形”、bboxes cellstr(标签);其他的detectedI = insertText(10[10],我“不检测”);结束图imshow (detectedI)

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

输入参数

全部折叠

SSD对象探测器,指定为一个ssdObjectDetector对象。创建这个对象,调用trainSSDObjectDetector函数与训练数据作为输入。

输入图像,作为指定H——- - - - - -W——- - - - - -C——- - - - - -B数值数组的图像图像必须真实,nonsparse、灰度或RGB图像。

  • H:身高

  • W宽度:

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

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

探测器对输入图像的范围十分敏感。因此,确保输入图像范围相似图像的范围用于训练检测器。例如,如果探测器被训练uint8图片,重新输入图像的范围内(0 255)使用im2uint8重新调节函数。这个输入图像的大小应与培训中使用的图像的大小。如果这些尺寸是非常不同的,检测器检测对象困难因为输入图像中对象的规模与规模不同的探测器被训练来识别对象。考虑你是否使用了SmallestImageDimension房地产在训练修改训练图像的大小。

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

数据存储,指定为一个数据存储对象包含图片的集合。每个图像必须是一个灰度、RGB或多通道图像。函数过程只有第一列的数据存储,它必须包含图片和必须细胞数组或包含多个列的表。

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

名称-值参数

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

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“SelectStrongest”,真的

检测阈值,指定为一个标量在[0,1]。检测有分数小于这个阈值删除。减少假阳性,增加这个值。

为每个检测到的对象选择最强的边界框,指定为逗号分隔组成的“SelectStrongest”,要么真正的

  • 真正的——每个对象返回最强的边界框。选择这些箱子,检测调用selectStrongestBboxMulticlass函数实现的,它使用nonmaximal抑制消除重叠边界框基于他们的信心的分数。

    例如:

    selectStrongestBboxMulticlass (bbox,分数,“RatioType”,“联盟”,“OverlapThreshold”,0.5);

  • ——返回所有检测到的边界框。然后您可以创建您自己的自定义操作,消除重叠边界框。

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

为了减少计算时间,将这个值设置为已知的最大区域大小的物体图像中被发现。默认情况下,最大容量的将输入图像的高度和宽度,

最小区域大小包含检测对象,指定为逗号分隔组成的“MinSize”,(高度宽度)向量。单位是像素。

为了减少计算时间,将这个值设置为已知的最小区域大小的物体图像中被发现。默认情况下,“MinSize”设置为(1]。

最小批量大小,指定为逗号分隔组成的“MiniBatchSize”和一个标量值。使用MiniBatchSize处理大量图像。图像分为minibatches和加工作为一个批处理来提高计算效率。增加minibatch大小减少处理时间。减少使用更少的内存大小。

硬件资源上运行探测器,指定为逗号分隔组成的“ExecutionEnvironment”“汽车”,“图形”,或“cpu”

  • “汽车”——使用GPU(如果可用)。否则,使用CPU。

  • “图形”——使用GPU。使用GPU,必须启用并行计算工具箱和CUDA NVIDIA GPU。如果没有一个合适的GPU,函数返回一个错误。关于支持计算能力的信息,看到金宝appGPU的金宝app支持版本(并行计算工具箱)

  • “cpu”——使用CPU。

性能优化,指定为逗号分隔组成的“加速”和下列之一:

  • “汽车”——自动应用一些优化适合输入网络和硬件资源。

  • 墨西哥人的——编译和执行一个墨西哥人的功能。此选项仅在使用GPU可用。使用GPU并行计算需要工具箱和CUDA NVIDIA GPU启用。如果并行计算工具箱或合适的GPU不可用,那么函数将返回一个错误。关于支持计算能力的信息,看到金宝appGPU的金宝app支持版本(并行计算工具箱)

  • “没有”——禁用所有加速度。

默认的选项是“汽车”。如果“汽车”MATLAB是指定的,®适用于许多兼容优化。如果你使用“汽车”选项,MATLAB不生成一个墨西哥人的功能。

使用“加速”选项“汽车”墨西哥人的可以提供性能优势,但在初始运行时间增加为代价的。后续调用与兼容的参数是更快。使用性能优化计划多次调用该函数时使用新的输入数据。

墨西哥人的选项生成并执行一个墨西哥人函数基于网络和参数在函数调用中使用。你可以有几个墨西哥人函数与一个网络。结算网络变量也清除任何墨西哥人功能与网络有关。

墨西哥人的选项只用于输入数据指定为一个数值数组,细胞数值数组,数组表,或图像数据存储。没有其他类型的数据存储支持金宝app墨西哥人的选择。

墨西哥人的选项仅当你使用GPU。你还必须有一个C / c++编译器安装。设置说明,请参阅墨西哥人设置(GPU编码器)

墨西哥人的加速度不支持所有层。金宝app支持层的列表,请参阅金宝app金宝app支持层(GPU编码器)

输出参数

全部折叠

在输入图像或图像中检测到的对象的位置,作为一个返回4矩阵或B1单元阵列。边界框的数量在一个图像,然后呢B的数量是4矩阵当图像的输入包含一个数组。

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

检测信心得分,作为一个返回1的向量或一个B1单元阵列。边界框的数量在一个图像,然后呢B的数量是1当图像的输入包含一个数组向量。更高的分数表明更高的诊断信心。

边界盒的标签,作为一个返回1分类或数组B1单元阵列。标签的数量在一个图像,然后呢B的数量是1分类数组当图像的输入包含一个数组。定义用于标签的类名称的对象,当你训练的输入探测器

检测结果,作为三栏返回表变量名,盒子,分数,标签。的盒子4矩阵,发现在图像边界框的对象。每一行包含一个边界框的第4单元矢量格式(x,y,宽度,高度]。格式指定左上角位置和大小的像素边界框在相应的形象。

版本历史

介绍了R2020a