检测

使用YOLO v2对象检测器检测对象

描述

bboxes=检测(探测器一世检测单个图像或图像的阵列内的对象,一世使用你看起来只有一次版本2(YOLO V2)目标物检测。图像的输入尺寸必须大于或等于所述预训练检测器的网络输入的大小。检测对象的位置返回为一组的包围盒。

使用此功能时,使用CUDA的®- 启用NVIDIA®强烈建议GPU具有3.0或更高的计算能力。该GPU显著减少计算时间。GPU的使用需要并行计算工具箱™。

[bboxes分数] =检测(探测器一世也返回每个边界框类特定的信心分数。

[___标签] =检测(探测器一世返回除了从以前的语法输出参数分配给包围盒标签的分类数组。用于对象类的标签所使用的训练期间定义trainYOLOv2ObjectDetector功能。

detectionResults=检测(探测器DS检测通过返回的一系列图像中物体输入数据存储的功能。

[___] =检测(___投资回报率检测由指定的矩形搜索区域内的物体投资回报率。使用前面任何语法的输出参数。指定来自前面任何语法的输入参数。

[___] =检测(___名称,值使用一个或多个指定的选择名称,值对参数除了输入参数中任语法。

例子

全部收缩

加载预训练的,以检测车辆用YOLO V2对象检测器。

vehicleDetector =负载(“yolov2VehicleDetector.mat”'探测器');检测器= vehicleDetector.detector;

阅读测试图像到工作空间。

我= imread (“highway.png”);

显示输入的测试图像。

imshow(I);

在测试图像上运行预先训练好的YOLO v2对象检测器。检查车辆检测结果。标签派生自类名检测器的性能。

[bboxes、分数、标签]=检测(探测器,我)
bboxes =1×478 81 64 63
分数=0.6224
标签=分类车辆

用检测到的边界框标注图像。

如果〜的isEmpty(bboxes)detectedI = insertObjectAnnotation(I,'长方形'、bboxes cellstr(标签);结束图imshow(detectedI)

输入参数

全部收缩

YOLO V2对象检测器,指定为yolov2ObjectDetector对象。要创建此对象,调用trainYOLOv2ObjectDetector与训练数据作为输入的功能。

输入图像,指定为H——- - - - - -w ^——- - - - - -C——- - - - - -图像的图像的数字阵列必须是真实的,非稀疏,灰度或RGB图像。

  • H:身高

  • w ^:宽

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

  • :数组中图像的数量。

该检测器是将输入图像的范围敏感。因此,确保了输入图像范围类似于用于训练检测器的图像的范围。例如,如果检测器被训练上UINT8图像,通过使用重新缩放此输入图像到范围[0,255]im2uint8要么重新调节功能。该输入图像的尺寸应当与在训练中使用的图像的尺寸。如果这些尺寸是非常不同的,检测器有难以检测对象,因为在输入图像不同的对象的从的规模规模对象检测器被训练来识别。考虑是否使用了SmallestImageDimension培训期间,要修改的属性训练图像的大小。

数据类型:UINT8|uint16|int16|||合乎逻辑

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

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

名称 - 值对参数

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

例子:检测(检测器,I, '阈值',0.25)

检测阈值,指定为逗号分隔对所组成的'阈'和范围内的标量[0,1]。有得分低于该阈值检测被删除。为了减少误报,增加该值。

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

  • 真正- 返回每个对象最强的边框。该方法调用selectStrongestBboxMulticlass功能,它采用非最大抑制以消除重叠的基础上他们的信心分数边框。

    默认情况下,selectStrongestBboxMulticlass函数的调用如下

    selectStrongestBboxMulticlass (bbox,分数,...'RatioType''联盟'...'OverlapThreshold',0.5);

  • - 返回所有检测到的边界框。然后,您可以编写自己的自定义的方法来消除重叠的边界框。

最小区域尺寸,指定为逗号分隔的一对组成的'MINSIZE'和形式的向量[高度宽度]。单位以像素为单位。的最小区域尺寸限定包含该对象的最小区域的尺寸。

默认情况下,MinSize是1×1。

最大区域大小,指定为逗号分隔的一对组成的最大容量的和形式的向量[高度宽度]。单位以像素为单位。最大区域大小定义了包含对象的最大区域的大小。

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

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

在其上运行的检测器的硬件资源,指定为逗号分隔的一对组成的“执行环境”'汽车'“图形”, 要么'中央处理器'

  • '汽车'-使用GPU如果它是可用的。否则,使用CPU。

  • “图形”-使用GPU。要使用GPU,你必须有并行计算工具箱和支持cuda的NVIDIA GPU,计算能力为3.0或更高。如果没有合适的GPU可用,函数将返回一个错误。

  • '中央处理器'-用中央处理器。

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

  • '汽车'- 自动应用一系列适合于输入网络和硬件资源的优化。

  • 'MEX'- 编译并执行MEX功能。只有使用GPU时,此选项可用。使用GPU需要并行计算工具箱和支持CUDA的NVIDIA GPU计算能力3.0或更高版本。如果并行计算工具箱或合适的GPU不可用,则该函数返回一个错误。

  • '没有'- 禁用所有加速。

默认选项为'汽车'。如果'汽车'是指定的,MATLAB®应用许多兼容的优化。如果你使用'汽车'选项,MATLAB永远不会生成MEX函数。

使用“加速”选项'汽车''MEX'可以提供性能优势,但在增加的初始运行时间为代价的。兼容参数后续调用更快。使用性能,当你打算使用新的输入数据的功能多次调用优化。

'MEX'选项生成和执行基于在函数调用中使用的网络和参数上的MEX功能。你可以有一个网络在同一时间相关的几个MEX功能。清除网络变量还清除与该网络相关联的任何MEX功能。

'MEX'选项仅可用于指定为数值数组、数值数组的单元格数组、表或图像数据存储的输入数据。没有其他类型的数据存储支持万博1manbetx'MEX'选择。

'MEX'选项只有在使用GPU时才可用。您还必须安装一个C/ c++编译器。有关安装说明,请参见MEX设置(GPU编码器)。

'MEX'加速并不支持所有图层。万博1manbetx对于支持层的列表,请参阅万博1manbetx万博1manbetx支持层(GPU编码器)。

输出参数

全部收缩

对象的位置处的输入图像或图像内检测到的,返回一个中号-乘4矩阵,或者a×1单元阵列。中号是在图像中的边界框的数目,并且中号-by-4矩阵当输入包含图像的阵列。

每行bboxes包含形式的四个元素向量[Xÿ宽度高度]。这个向量指定的左上角和以像素为单位对应的边界框的尺寸。

检测置信度分数,返回为中号乘以1向量,或者a×1单元阵列。中号是在图像中的边界框的数目,并且中号×1矢量,当输入中包含的图像的阵列。得分越高,表明在检测更有信心。

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

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

更多关于

全部收缩

数据预处理

默认情况下,检测功能为预处理对象检测由测试图像:

  • 将其调整为最接近的图像大小,用于训练YOLO v2网络。函数确定与的最接近的可能图像大小TrainingImageSize财产的yolov2ObjectDetector对象。

  • 将其像素值归一化,使其与用于训练YOLO v2目标检测器的图像在相同的范围内。例如,如果检测器被训练上UINT8图像,测试图像还必须在[0,255]范围内的像素值。否则,使用im2uint8要么重新调节起作用以重新调整测试图像中的像素值。

介绍了在R2019a