主要内容

检测

使用快速R-CNN对象检测器检测对象

描述

bboxes=检测(探测器,检测单个图像或图像数组中的对象,,使用快速R-CNN(卷积神经网络区域)目标检测器。检测到的对象的位置作为一组包围框返回。

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

bboxes,分数=检测(探测器,还返回每个包围框的检测分数。

例子

___,标签=检测(探测器,还使用上述语法之一返回分配给边界框的标签的分类数组。对象类使用的标签在训练期间使用trainFastRCNNObjectDetector函数。

___=检测(___,roi所指定的矩形搜索区域内的对象roi

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

___=检测(___,名称,值使用一个或多个选项指定选项名称,值对参数。例如,检测(探测器,我,‘NumStongestRegions’,1000)将最强区域提案的数量限制为1000个。

例子

全部折叠

使用Faster R-CNN对象检测器检测图像中的车辆。

加载一个预先训练的Faster R-CNN对象检测器来检测车辆。

数据=负载(“fasterRCNNVehicleTrainingData.mat”,“探测器”);探测器=数据。探测器;

读入一个测试映像。

I = imread(“highway.png”);imshow(我)

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

在图像上运行检测器并检查结果。标签来自一会检测器的属性。

[bboxes,scores,labels] = detect(检测器,I)
bboxes =2×4150 86 80 72 91 89 67 48
成绩=2x1个单列向量1.0000 - 0.9001
标签=2 x1分类车车

该探测器对探测有较高的置信度。用检测和相应检测分数的包围框注释图像。

detectedI = insertObjectAnnotation(I,“矩形”、bboxes cellstr(标签);图imshow (detectedI)

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

输入参数

全部折叠

快速R-CNN对象检测器,指定为fastRCNNObjectDetector对象。要创建此对象,请调用trainFastRCNNObjectDetector函数以训练数据作为输入。

输入图像,指定为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,…,的家

例子:“NumStrongestRegions”,1000年

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

最强区域提议的最大数目,指定为逗号分隔的对,由“NumStrongestRegions”一个正整数。降低该值可以加快处理时间,但以检测精度为代价。若要使用所有区域建议,请将此值指定为

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

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

    例如:

    selectStrongestBboxMulticlass (bbox,分数,...“RatioType”,“最小值”,...“OverlapThreshold”, 0.5);

  • —返回所有检测到的包围框。然后,您可以创建自己的自定义操作来消除重叠的包围框。

包含被检测对象的最小区域大小,指定为逗号分隔的对,由“MinSize”和a [高度宽度)向量。单位是像素。

默认情况下,MinSize最小的物体是被训练的吗探测器可以检测。

包含被检测对象的最大区域大小,由逗号分隔的对组成最大容量的和a [高度宽度)向量。单位是像素。

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

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

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

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

  • “图形”—使用GPU。要使用GPU,您必须具有并行计算工具箱和启用CUDA的NVIDIA GPU。如果没有合适的GPU,该函数将返回一个错误。有关受支持的计算功能的信息,请参见万博1manbetxGPU支万博1manbetx持版本(并行计算工具箱)

  • “cpu”—使用CPU。

输出参数

全部折叠

在输入图像或图像中检测到的对象的位置,作为-乘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个元素向量的包围框,格式为[x,y,宽度,高度].该格式指定了相应图像中边界框的左上角位置和像素大小。

在R2017a中引入