主要内容

检测

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

描述

例子

bboxes=检测(探测器检测单个图像或图像数组中的对象,,使用你只看一次版本2 (YOLO v2)的对象检测器。图像的输入大小必须大于或等于预训练的检测器的网络输入大小。检测到的对象的位置作为一组包围框返回。

当使用此功能时,使用CUDA®使英伟达®强烈推荐GPU。GPU显著减少了计算时间。GPU的使用需要并行计算工具箱™。有关受支持的计算功能的信息,请参见金宝appGPU计算要求(并行计算工具箱)

bboxes分数=检测(探测器还返回每个边界框的特定于类的置信度分数。

例子

___标签=检测(探测器返回分配给边界框的标签的分类数组,以及前面语法中的输出参数。对象类使用的标签在训练期间使用trainYOLOv2ObjectDetector函数。

detectionResults=检测(探测器ds方法返回的所有图像中的对象输入数据存储的函数。

___=检测(___roi所指定的矩形搜索区域内的对象roi.使用前面任何语法的输出参数。从前面的语法中指定输入参数。

___=检测(___名称,值使用一个或多个选项指定选项名称,值在前面任何语法的输入参数之外对参数。

例子

全部折叠

加载预先训练的YOLO v2对象检测器来检测车辆。

车辆检测仪=负载(“yolov2VehicleDetector.mat”“探测器”);探测器=车辆探测器。探测器;

将一个测试映像读入工作区。

I = imread(“highway.png”);

显示输入的测试图像。

imshow(我);

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

在测试图像上运行预训练的YOLO v2对象检测器。检查车辆检测结果。标签派生自一会检测器的属性。

[bboxes,scores,labels] = detect(检测器,I)
bboxes =1×478 81 64 63
成绩=0.6224
标签=分类车辆

用检测的包围框注释图像。

如果~isempty(bboxes) detectedI = insertObjectAnnotation(I,“矩形”、bboxes cellstr(标签);结束图imshow (detectedI)

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

输入参数

全部折叠

YOLO v2对象检测器,指定为yolov2ObjectDetector对象。要创建此对象,请调用trainYOLOv2ObjectDetector函数以训练数据作为输入。

输入图像,指定为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,…,以=家,在那里的名字参数名称和价值对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。

在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字在报价。

例子:检测(探测器,我,“阈值”,0.25)

检测阈值,指定为逗号分隔的对,由“阈值”和范围[0,1]中的标量。分数小于此阈值的检测将被删除。为了减少误报,增加这个值。

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

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

    默认情况下,selectStrongestBboxMulticlass函数按如下方式调用

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

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

最小区域大小,指定为逗号分隔的对,由“MinSize”一个形式为[的向量高度宽度].单位是像素。最小区域大小定义包含对象的最小区域的大小。

默认情况下,MinSize1×1。

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

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

最小批大小,由逗号分隔的对组成“MiniBatchSize”和一个标量值。使用MiniBatchSize处理大量的图像集合。为了提高计算效率,将图像分组为小批量,进行批量处理。增加小批尺寸以减少处理时间。减小大小以使用更少的内存。

运行检测器的硬件资源,指定为逗号分隔的对,由“ExecutionEnvironment”而且“汽车”“图形”,或“cpu”

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

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

  • “cpu”—使用CPU。

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

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

  • 墨西哥人的—编译并执行MEX函数。该选项仅在使用GPU时可用。使用GPU需要并行计算工具箱和支持CUDA的NVIDIA GPU。如果并行计算工具箱或合适的GPU不可用,则该函数返回一个错误。有关受支持的计算功能的信息,请参见金宝appGPU计算要求(并行计算工具箱)

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

默认选项为“汽车”.如果“汽车”指定,MATLAB®应用许多兼容优化。如果你使用“汽车”选项,MATLAB不生成MEX函数。

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

墨西哥人的选项根据函数调用中使用的网络和参数生成并执行一个MEX函数。您可以同时拥有与单个网络关联的多个MEX功能。清除网络变量也会清除与该网络关联的任何MEX函数。

墨西哥人的选项仅适用于指定为数值数组、数值数组的单元格数组、表或图像数据存储的输入数据。类型的数据存储不支持金宝app墨西哥人的选择。

墨西哥人的选项仅在使用GPU时可用。还必须安装C/ c++编译器。有关设置说明,请参见墨西哥人设置(GPU编码器)

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

输出参数

全部折叠

在输入图像或图像中检测到的对象的位置,作为-乘4矩阵或aB-by-1单元格数组。是图像中包围框的数量,和B-by-4矩阵,当输入包含图像数组时。

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

检测信心分数,返回为an-by-1向量或者aB-by-1单元格数组。是图像中包围框的数量,和B-by-1向量,当输入包含图像数组时。分数越高,表示检测的可信度越高。

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

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

更多关于

全部折叠

数据预处理

默认情况下,检测函数对测试图像进行预处理,用于对象检测:

  • 将其调整为用于训练YOLO v2网络的最接近的图像大小。函数确定最接近的图像大小TrainingImageSize的属性yolov2ObjectDetector对象。

  • 将其像素值归一化,使其位于与用于训练YOLO v2对象检测器的图像相同的范围内。例如,如果探测器被训练在uint8图像,测试图像的像素值也必须在[0,255]范围内。否则,使用im2uint8重新调节函数重新缩放测试图像中的像素值。

扩展功能

版本历史

在R2019a中引入