主要内容

检测

使用R-CNN深学习检测器检测对象

描述

bboxes=检测(探测器,)检测对象内部图片使用一个R-CNN检测器与卷积神经网络(地区)对象。返回对象的位置检测的边界框。

使用这个函数时,使用CUDA®使英伟达®GPU是强烈推荐。GPU大大减少了计算时间。使用GPU的并行计算需要工具箱™。关于支持计算能力的信息,看到万博1manbetxGPU的万博1manbetx支持版本(并行计算工具箱)

(bboxes,分数)=检测(探测器,)为每一个边界框也返回检测得分。

例子

(___,标签)=检测(探测器,)还返回一个分类标签分配的数组边界框,使用前面的语法。标签用于定义对象类在训练使用trainRCNNObjectDetector函数。

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

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

例子

全部折叠

负荷训练数据和网络层。

负载(“rcnnStopSigns.mat”,“stopSigns”,“层”)

映像目录添加到MATLAB路径。

imDir = fullfile (matlabroot,“工具箱”,“愿景”,“visiondata”,“stopSignImages”);目录(imDir);

设置网络训练选项使用mini-batch 32减少GPU内存使用量的大小。降低InitialLearningRate减少的速率网络参数改变。这是有益的在微调pre-trained网络和阻止网络改变过快。

选择= trainingOptions (“个”,“MiniBatchSize”32岁的“InitialLearnRate”1 e-6“MaxEpochs”10);

火车R-CNN探测器。训练可以花几分钟来完成。

rcnn = trainRCNNObjectDetector (stopSigns层,选择,“NegativeOverlapRange”0.3 [0]);
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *培训R-CNN对象探测器以下对象类:* stopSign步骤1的3:从27日训练图像提取区域建议……。步骤2的3:在训练数据训练神经网络分类对象……| = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | | |时代迭代时间| Mini-batch | Mini-batch |基地学习| | | |(秒)| | |精度损失速率| | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = | | 3 | 50 | 9.27 | 0.2895 | 96.88% | 0.000001 | | 100 | | 14.77 | 0.2443 | 93.75% | 0.000001 | | 150 | | 20.29 | 0.0013 | 100.00% | 0.000001 | | 200 | | 25.94 | 0.1524 | 96.88% | 0.000001 | | = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = = |网络训练完成。步骤3的3:训练边界框回归模型为每个对象类……100.00%……做的。R-CNN培训完成。* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

测试R-CNN探测器测试图像。

img = imread (“stopSignTest.jpg”);[bbox,分数,标签]=检测(rcnn img,“MiniBatchSize”、32);

显示强大的检测结果。

[得分,idx] = max(分数);bbox = bbox (idx:);注释= sprintf (' % s:(信心= % f) '标签(idx),得分);detectedImg = insertObjectAnnotation (img,“矩形”bbox,注释);图imshow (detectedImg)

删除图像目录的路径。

rmpath (imDir);

输入参数

全部折叠

R-CNN对象探测器,指定为一个rcnnObjectDetector对象。创建这个对象,调用trainRCNNObjectDetector函数与训练数据作为输入。

输入图像,作为指定H——- - - - - -W——- - - - - -C数字图像的数组。图片必须是真实的,nonsparse、灰度或RGB图像。

  • H:身高

  • W宽度:

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

探测器对输入图像的范围十分敏感。因此,确保输入图像范围相似图像的范围用于训练检测器。例如,如果探测器被训练uint8图片,重新输入图像的范围内(0 255)使用im2uint8重新调节函数。这个输入图像的大小应与培训中使用的图像的大小。如果这些尺寸是非常不同的,检测器检测对象困难因为输入图像中对象的规模与规模不同的探测器被训练来识别对象。考虑你是否使用了SmallestImageDimension房地产在训练修改训练图像的大小。

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

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

名称-值参数

指定可选的双参数作为Name1 = Value1,…,以=家,在那里的名字参数名称和吗价值相应的价值。名称-值参数必须出现在其他参数,但对的顺序无关紧要。

R2021a之前,用逗号来分隔每一个名称和值,并附上的名字在报价。

例子:“NumStongestRegions”, 1000年

最大数量的最强的地区建议,指定为逗号分隔组成的“NumStrongestRegions”和一个整数。降低这个值来加快处理时间为代价的检测精度。使用所有地区的提案,这个值指定为

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

  • 真正的——每个对象返回最强的边界框。选择这些箱子,检测调用selectStrongestBboxMulticlass函数实现的,它使用nonmaximal抑制消除重叠边界框基于他们的分数。

    例如:

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

  • ——返回所有检测到的边界框。然后您可以使用一个自定义的操作来消除重叠边界框。

R-CNN数据处理规模较小的批次,指定为逗号分隔组成的“MiniBatchSize”和一个整数。更大的批量大小导致更快的处理,但是会占用更多的内存。

硬件资源上运行探测器,指定为逗号分隔组成的“ExecutionEnvironment”“汽车”,“图形”,或“cpu”。表显示了有效的硬件资源值。

资源 行动
“汽车” 使用GPU(如果可用)。否则,使用CPU。
“图形” 使用GPU。使用GPU,必须启用并行计算工具箱和CUDA NVIDIA GPU。如果没有一个合适的GPU,函数返回一个错误。关于支持计算能力的信息,看到万博1manbetxGPU的万博1manbetx支持版本(并行计算工具箱)
“cpu” 使用CPU。

输出参数

全部折叠

图像中检测到的对象的位置,作为一个返回4矩阵定义边界框。每一行的bboxes包含一个研制出向量的形式xy宽度高度]。这个向量指定边界框的左上角和大小(以像素为单位)。

检测成绩,作为一个返回1的向量。更高的分数表明更高的诊断信心。

边界盒的标签,作为一个返回1分类组标签。定义用于标签的类名称的对象,当你训练的输入探测器

版本历史

介绍了R2016b