主要内容

检测

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

描述

例子

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

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

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

例子

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

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

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

___) =检测(___名称,值使用一个或多个选项指定选项名称,值对除上述语法中的输入参数外的参数。

例子

全部折叠

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

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

将测试映像读入工作空间。

我= imread (“highway.png”);

显示输入的测试图像。

imshow(我);

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

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

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

用检测的边界框注释图像。

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

图中包含一个axes对象。坐标轴对象包含一个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,函数将返回一个错误。有关支持的计算功能的信息,请参见GPU计算的需求(并行计算工具箱)

  • “cpu”—使用CPU。

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

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

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

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

默认选项是“汽车”.如果“汽车”MATLAB是指定的,®应用许多兼容优化。如果您使用“汽车”选项,MATLAB从未生成MEX函数。

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

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

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

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

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

输出参数

全部折叠

对象在输入图像中检测到的对象的位置-by-4矩阵或aB1单元阵列。一个图像中边界框的数量,和B-by-4矩阵,当输入包含图像数组时。

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

检测信心分数,返回为-by-1向量或aB1单元阵列。一个图像中边界框的数量,和B-by-1向量,当输入包含图像数组时。分数越高表示检测的信心越高。

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

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

更多关于

全部折叠

数据预处理

默认情况下,检测函数预处理测试图像以进行目标检测:

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

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

扩展功能

版本历史

介绍了R2019a

Baidu
map