主要内容

检测

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

描述

例子

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

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

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

例子

[___标签] =检测(探测器一世除了来自上一个语法的输出参数,还返回分配给边界框的分类标签数组。用于对象类的标签在使用过程中定义trainYOLOv2ObjectDetector函数。

detectionResults=检测(探测器DS.在返回的所有图像中检测物体输入数据存储的功能。

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

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

例子

全部收缩

装载YOLO v2物体探测器,预先训练用于检测车辆。

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

将测试图像读入工作区。

我= imread (“highway.png”);

显示输入测试图像。

imshow(i);

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

在测试图像上运行预训练的YOLO v2对象检测器。检查车辆检测结果。标签是从Classnames.探测器的财产。

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

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

如果〜isempty(bboxes)detectedi = InsertObjectAnnotation(i,'矩形'、bboxes cellstr(标签);结尾图imshow (detectedI)

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

输入参数

全部收缩

YOLO V2对象检测器,指定为aYolov2ObjectDetector.对象。要创建此对象,请调用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,…,的家

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

检测阈值,由逗号分隔的对组成“阈值”和一个范围为[0,1]的标量。分数小于此阈值的检测将被删除。要减少误报,请增加该值。

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

  • 真正的- 返回每个对象最强大的边界框。该方法调用selectStrongestBboxMulticlass函数,该函数使用非最大抑制来消除基于置信度评分的重叠边界框。

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

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

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

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

默认情况下,MinSize1×1。

最大区域大小,指定为逗号分隔对,由最大容量的和形式为[高度宽度].单位是像素。最大区域大小定义了包含该对象的最大区域的大小。

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

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

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

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

  • “图形”- 使用GPU。要使用GPU,您必须具有并行计算工具箱和支持CUDA的NVIDIA GPU。如果不可用合适的GPU,则该函数返回错误。有关支持的计算能力的信息,请参阅万博1manbetxGPU支万博1manbetx持情况(并行计算工具箱)

  • “cpu”—使用CPU。

性能优化,指定为逗号分隔对组成'加速'和以下之一:

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

  • 'mex'- 编译并执行MEX功能。仅使用GPU时可用此选项。使用GPU需要并行计算工具箱和支持CUDA的NVIDIA GPU。如果并行计算工具箱或合适的GPU不可用,则该函数返回一个错误。有关支持的计算能力的信息,请参阅万博1manbetxGPU支万博1manbetx持情况(并行计算工具箱)

  • '没有任何'- 禁用所有加速度。

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

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

'mex'选项基于函数调用中使用的网络和参数生成并执行MEX函数。您可以一次使用与单个网络相关联的多个MEX函数。清除网络变量还清除与该网络相关联的任何MEX功能。

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

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

'mex'加速并不支持所有层。万博1manbetx有关受支持的层的列表,请参见万博1manbetx万博1manbetx支持层(GPU编码器)

输出参数

全部收缩

在输入图像或图像中检测到的对象的位置,返回为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宽度高度].该格式指定了对应图像中边界框的左上角位置和像素大小。

更多关于

全部收缩

数据预处理

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

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

  • 将其像素值归一化,使其位于与用于训练YOLO v2物体检测器的图像相同的范围内。例如,如果检测器被训练uint8图像,测试图像也必须具有范围内的像素值[0,255]。否则,使用IM2UINT8.重新调节函数重新扫描测试图像中的像素值。

在R2019A介绍