主要内容

探测

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

描述

例子

bboxes.=检测(探测器一世检测单个图像中的对象或图像数组,一世,使用you look only once version 3 (YOLO v3)对象检测器,探测器.图像的输入大小必须大于或等于预用探测器的网络输入大小。检测到的对象的位置作为一组边界框返回。

例子

[bboxes.得分] =检测(探测器一世还返回每个边界框的类特定的置信度分数。

例子

[bboxes.得分标签] =检测(探测器一世返回分配给边界框的分类标签数组。对象类的标签在培训期间定义。

例子

检测结果=检测(探测器DS.检测由此返回的所有图像中的对象输入数据存储的功能DS.

例子

[___] =检测(___ROI.检测矩形搜索区域内的对象ROI.除了来自以前语法的任何参数的组合之外。

[___] =检测(___名称,价值使用一个或多个名称值参数指定选项。

笔记

此函数需要电脑Vision Toolbox™型号为Yolo V3对象检测.你可以安装YOLO v3目标检测的计算机视觉工具箱模型从附加资源管理器。有关安装加载项的详细信息,请参阅获取和管理附加组件.要运行此功能,您将需要深度学习工具箱™。

例子

全部收缩

加载普雷雷y yolo v3对象探测器。

探测器= yolov3objectdetector('tiny-yolov3-coco');

通过使用使用读取测试图像并预处理测试图像预处理功能。

img = imread ('sherlock.jpg');img =预处理(探测器,img);

检测测试图像中的对象。

[Bboxes,Scores,标签] =检测(探测器,IMG);

显示检测结果。

结果=表(Bboxes,标签,分数)
结果=1×3表bboxes标签分数  ________________________ ______ _______ 134年69 280 272 0.56819的狗
detectedImg = insertObjectAnnotation (img,'矩形',bboxes,标签);图imshow(detectedimg)

加载佩带的yolov3对象探测器。

探测器= yolov3objectdetector('tiny-yolov3-coco');

阅读测试数据并存储为图像数据存储对象。

位置= fullfile(matlabroot,'工具箱''想象''VisionData''车辆');IMDS = IMAGEDATASTORE(位置);

检测测试数据集中的对象。设定阈值参数值为0.3和小匹匹匹匹配参数值为32。

检测=检测(探测器,IMDS,'临界点',0.3,'minibatchsize'、32);

从测试数据集中读取图像并提取相应的检测结果。

num = 10;我= readimage (imd, num);bboxes = detectionResults.Boxes {num};标签= detectionResults.Labels {num};成绩= detectionResults.Scores {num};

执行非最大抑制以从重叠群集选择最强的边界框。设定OverlapThreshold参数值为0.2。

[bboxes,sicrors,labels] = selectstrongestbbox multiclass(bboxes,scores,标签,'重叠阈值',0.2);

显示检测结果。

结果=表(Bboxes,标签,分数)
结果=3×3表Bboxes标签分数__________________________________ 14 71 52 27 CAR 0.93352 74 73 7 5 CAR 0.65369 102 73 15 10 CAR 0.85313
detectedimg = InsertObjectAnnotation(I,'矩形',bboxes,标签);图imshow(detectedimg)

加载普雷雷y yolo v3对象探测器。

探测器= yolov3objectdetector('tiny-yolov3-coco');

阅读测试图像。

img = imread (“highway.png”);

指定测试图像中的感兴趣区域(ROI)。

roibox = [70 40 100 100];

检测指定ROI中的对象。

[Bboxes,Scores,标签] =检测(探测器,IMG,ROIBOX);

显示ROI和检测结果。

结果=表(Bboxes,标签,分数)
结果=1×3表Bboxes标签分数____________________________________________99 103 41 33 CAR 0.72206
img = InsertObjectAnnotation(IMG,'矩形',roibox,'roi'“颜色”“蓝色”);detectedImg = insertObjectAnnotation (img,'矩形',bboxes,标签);图imshow(detectedimg)

输入参数

全部收缩

YOLO V3对象检测器,指定为ayolov3objectdetector目的。

测试图像,指定为尺寸的数字数组H——- - - - - -W.——- - - - - -C要么H——- - - - - -W.-经过C——- - - - - -T..图像必须是真实的,非问题,灰度或RGB图像。

  • H: 高度

  • W.: 宽度

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

  • T.:数组中的测试图像数。该功能计算阵列中的每个测试图像的对象检测结果。

测试图像的强度范围必须类似于用于训练检测器的图像的强度范围。例如,如果您培训探测器uint8.图像,将测试图像重新归类到范围[0,255]通过使用IM2UINT8.要么重新调节功能。测试图像的大小必须与培训中使用的图像的尺寸相媲美。如果这些尺寸非常不同,则检测器难以检测对象,因为测试图像中的物体的比例与检测器训练训练以识别的对象的比例不同。

数据类型:uint8.|uint16|int16||单身的

测试图像,指定为imageageAtastore.目的,ConventDatastore.对象,或者变换adatastore.包含测试图像的完整文件名的对象。数据存储中的图像必须是灰度或RGB图像。

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

名称值对参数

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

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

检测阈值,由逗号分隔的对组成'临界点'和范围的标量[0,1]。去除比该阈值小于该阈值的检测。为减少误报,增加此值。

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

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

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

    selectStrongestBboxMulticlass (bboxes分数,......'ratiotype''联盟'......'重叠阈值',0.5);

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

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

默认情况下,MinSize是1-by-1。

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

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

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

选项在执行对象检测之前预处理测试图像,指定为包括的逗号分隔对'DetectionPrepossing'和其中一个值:

  • '汽车'- 在执行对象检测之前预处理测试图像。这探测函数调用这件事预处理执行以下操作的函数:

    • 将训练图像的强度值重新分配到范围[0,1]。

    • 将训练图像的大小调整为最近的网络输入大小之一,并更新限定框坐标值以进行准确培训。该功能保留了训练数据的原始纵横比。

  • '没有任何'—不对测试图像进行预处理,进行目标检测。如果选择此选项,则测试映像的数据类型必须为单身的要么

数据类型:字符|细绳

输出参数

全部收缩

在输入图像或图像中检测到的物体的位置,返回为a

  • m-By-4矩阵如果输入是单个测试图像。

  • T.-1-1个单元阵列如果输入是测试图像数组。T.是数组中的测试图像数。阵列中的每个单元格都包含一个m-By-4矩阵指定边界框检测。

m是图像中的边界框的数量。

矩阵中的每一行是一个四元素向量,形式为[Xy宽度高度].此vector指定以像素为单位的左上角和该相应边界框的大小。

检测每个边界框的置信度分数,作为a返回

  • m- 元素行向量如果输入是单个测试图像。

  • T.-1-1个单元阵列如果输入是测试图像数组。T.是数组中的测试图像数。阵列中的每个单元格都包含一个m-element行矢量,指示相应边界框的检测分数。

m为图像中检测到的包围盒的数量。分数越高,表明对检测的信心越高。

边界框的标签,作为一个返回

  • m如果输入是单个测试图像,则使用-by-1分类数组。

  • T.-1-1个单元阵列如果输入是测试图像数组。T.是数组中的测试图像数。阵列中的每个单元格都包含一个m-by-1类别向量,包含对象类的名称。

m为图像中检测到的包围盒的数量。

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

在R2021A介绍