主要内容

检测

检测对象使用YOLO v3意思对象探测器

描述

例子

bboxes=检测(探测器,)检测对象在一个图像或一组图片,,使用你看起来只有一次版本3 (YOLO v3意思)对象探测器,探测器。输入图像的大小必须大于或等于网络输入的大小pretrained探测器。返回对象的位置检测的边界框。

例子

(bboxes,分数)=检测(探测器,)也得分为每个边界框返回职业专用的信心。

例子

(bboxes,分数,标签)=检测(探测器,)返回一个分类标签分配的数组边界框。在培训对象类定义的标签。

例子

detectionResults=检测(探测器,ds)在所有返回的图像检测对象输入数据存储的功能ds

例子

(___)=检测(___,roi)检测对象内部的矩形的搜索区域roi除了参数从以前的语法的任意组合。

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

请注意

这个函数需要计算机视觉工具箱YOLO v3意思™模型对象检测。您可以安装计算机视觉工具箱YOLO v3意思对象模型检测从附加的探险家。关于安装插件的更多信息,请参阅获取和管理插件。要运行这个函数,您将需要深度学习工具箱™。

例子

全部折叠

加载一个pretrained YOLO v3意思对象探测器。

探测器= yolov3ObjectDetector (“tiny-yolov3-coco”);

读一个测试图像和测试图像进行预处理通过使用进行预处理函数。

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

检测测试图像中的对象。

[bboxes、分数、标签]=检测(探测器,img);

显示检测结果。

结果=表(bboxes、标签分数)
结果=1×3表bboxes标签分数________________________ ______ 134 0.56819 69 280 272只狗
detectedImg = insertObjectAnnotation (img,“矩形”、bboxes、标签);图imshow (detectedImg)

加载一个pretrained YOLOv3对象探测器。

探测器= yolov3ObjectDetector (“tiny-yolov3-coco”);

读取测试数据并存储为一个图像数据存储对象。

位置= fullfile (matlabroot,“工具箱”,“愿景”,“visiondata”,“汽车”);imd = imageDatastore(位置);

检测对象的测试数据集。设置阈值参数值为0.3MiniBatchSize参数值为32。

detectionResults =检测(imd探测器,“阈值”,0.3,“MiniBatchSize”、32);

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

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

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

(bboxes、分数、标签)= selectStrongestBboxMulticlass (bboxes,分数,标签,“OverlapThreshold”,0.2);

显示检测结果。

结果=表(bboxes、标签分数)
结果=3×3表bboxes标签分数________________________ ______ _________ 14 71 52 27车0.93352 74 73 7 5车15 10车0.85313 0.65369 102 73
detectedImg = insertObjectAnnotation(我“矩形”、bboxes、标签);图imshow (detectedImg)

加载一个pretrained YOLO v3意思对象探测器。

探测器= yolov3ObjectDetector (“tiny-yolov3-coco”);

读一个测试图像。

img = imread (“highway.png”);

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

roiBox = 40 100 100 [70];

检测对象在指定的ROI。

[bboxes、分数、标签]=检测(探测器,img, roiBox);

显示投资回报率和检测结果。

结果=表(bboxes、标签分数)
结果=1×3表bboxes标签分数_______________________ ______ 41 99 103 33汽车0.72206
img = insertObjectAnnotation (img,“矩形”roiBox,“投资回报”,“颜色”,“蓝色”);detectedImg = insertObjectAnnotation (img,“矩形”、bboxes、标签);图imshow (detectedImg)

输入参数

全部折叠

YOLO v3意思对象探测器,指定为一个yolov3ObjectDetector对象。

测试图像,指定为一个数值数组的大小H——- - - - - -W——CH——- - - - - -W——C——- - - - - -T。图片必须是真实的,nonsparse、灰度或RGB图像。

  • H:身高

  • W宽度:

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

  • T:数量的测试图像数组中。函数计算每个测试图像的目标检测结果的数组。

测试图像的强度范围必须类似于图像的强度范围用于训练检测器。例如,如果你训练检测器uint8图片,重新测试图像的范围内(0 255)使用im2uint8重新调节函数。测试图像的大小必须与培训中使用的图像的大小。如果这些尺寸是非常不同的,检测器检测对象困难因为测试图像中对象的规模与规模不同的探测器被训练来识别对象。

数据类型:uint8|uint16|int16||

测试图像,指定为一个ImageDatastore对象,CombinedDatastore对象,或TransformedDatastore对象包含完整的测试图像的文件名。必须灰度图像数据存储,或RGB图像。

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

名称-值参数

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

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

检测阈值,指定为逗号分隔两人组成的“阈值”和一个标量范围[0,1]。检测有分数小于这个阈值删除。减少假阳性,增加这个值。

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

  • 真正的——每个对象返回最强的边界框。的方法调用selectStrongestBboxMulticlass函数实现的,它使用nonmaximal抑制消除重叠边界框基于他们的信心的分数。

    默认情况下,selectStrongestBboxMulticlass函数如下

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

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

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

默认情况下,MinSize1×1。

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

默认情况下,最大容量的将输入图像的高度和宽度,。为了减少计算时间,将这个值设置为已知的最大区域大小的对象能被探测到的输入测试图像。

最小批量大小,指定为逗号分隔组成的“MiniBatchSize”和一个标量值。使用MiniBatchSize处理大量的形象。图像分为minibatches和加工作为一个批处理来提高计算效率。增加minibatch大小减少处理时间。减少使用更少的内存大小。

选择预处理之前测试图像进行目标检测,指定为逗号分隔组成的“DetectionPreprocessing”这些值之一:

  • “汽车”——图像预处理测试之前执行对象检测。的检测函数调用的进行预处理函数执行这些操作:

    • 重新调节训练图像的强度值区间[0,1]。

    • 调整训练图像,一个最近的网络输入大小和边界框的坐标值更新准确的培训。函数保留原来的宽高比的训练数据。

  • “没有”——没有预处理测试图像进行目标检测。如果您选择这个选项,必须要么测试图像的数据类型

数据类型:字符|字符串

输出参数

全部折叠

在输入图像或图像中检测到的对象的位置,作为一个返回

  • 4矩阵如果输入是一个单独的测试图像。

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

是一个图像的边界框。

矩阵中的每一行是一个研制出向量的形式xy宽度高度]。这个向量指定相应的边界框的左上角和大小(以像素为单位)。

检测信心成绩对于每个边界框,作为一个返回

  • 行向量元素如果输入是一个单独的测试图像。

  • T1单元阵列测试图像的如果输入是一个数组。T测试图像的数量在数组中。数组中的每个单元格都包含一个有效的检测成绩行向量表示相应的边界框。

是发现边界框的数量在一个图像。更高的分数表明更高的诊断信心。

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

  • 1分类数组如果输入是一个单独的测试图像。

  • T1单元阵列测试图像的如果输入是一个数组。T测试图像的数量在数组中。数组中的每个单元格都包含一个1分类向量包含对象类的名称。

是发现边界框的数量在一个图像。

检测结果,作为三栏返回表变量名,盒子,分数,标签。的盒子4矩阵,发现在图像边界框的对象。每一行包含一个边界框的第4单元矢量格式(x,y,宽度,高度]。格式指定左上角位置和大小的像素边界框在相应的形象。

介绍了R2021a