文档帮助中心文档
用于深度学习对象探测器的锚箱
锚箱=估计锚箱(训练数据,单位)
[anchorboxes,meaniou] = extimateanchorboxes(TrainingData,Numanchors)
例子
锚箱=估计锚箱(TrainingData.,努曼彻斯)使用培训数据估计指定的锚框。
锚箱=估计锚箱(TrainingData.,努曼彻斯)
锚箱
TrainingData.
努曼彻斯
[锚箱,卑鄙] = extimateanchorboxes(TrainingData.,努曼彻斯)此外,还返回每个簇中锚定框的联合平均交点(IoU)值。
[锚箱,卑鄙] = extimateanchorboxes(TrainingData.,努曼彻斯)
卑鄙
全部收缩
此示例使用:
此示例显示如何使用包含培训数据的表来估算锚框。第一列包含训练图像,剩余列包含标记的边界框。
数据=负载('vevicletrainingdata.mat');trainingData = data.vehicletRainingData;
创建一个Boxlabeldata商店对象使用来自培训数据的标记边界框。
Boxlabeldata商店
blds=boxLabelDatastore(培训数据(:,2:end));
使用以下公式估算锚箱:Boxlabeldata商店目的。
numanchors = 5;anchorboxes = extimateanchorboxes(BLD,Numanchors);
指定图像大小。
InputImagesize = [128,228,3];
指定要检测的类数。
numclasses = 1;
使用预先使用的Reset-50网络作为YOLO V2网络的基础网络。
网络=resnet50();
指定要用于特征提取的网络层。你可以使用分析函数查看网络中的所有图层名称。
分析
FeatureLayer =.'activation_49_relu';
创建YOLO V2对象检测网络。
Lgraph = Yolov2Layers(InputImagesize,Numcrasses,Anchorboxes,Network,FeatureLayer)
lgraph=LayerGraph,属性为:层:[182×1 nnet.cnn.layer.layer]连接:[197×2表]输入名称:{'input_1'}输出名称:{'yolov2OutputLayer'}
使用网络分析仪可视化网络。
分析网络(lgraph)
锚盒是深度学习对象探测器的重要参数,如更快的R-CNN和YOLO V2。锚箱的形状,缩放和数量会影响探测器的效率和准确性。
有关更多信息,请参阅用于目标检测的锚盒.
负载培训数据
加载车辆数据集,其中包含295个图像和关联的框标签。
数据=负载('vevicletrainingdata.mat'); vehicleDataset=数据。vehicleTrainingData;
将完整路径添加到本地车辆数据文件夹。
datadir = fullfile(toolboxdir(“愿景”),“视觉数据”);vevicledataset.imagefilename = fullfile(datadir,vevicledataset.imagefilename);
显示数据集摘要。
摘要(车辆题目)
变量:imagefilename:295×1个字符向量阵列车辆:295×1个细胞
可视化地面真相盒分布
可视化标记的框,以便更好地了解数据集中存在的对象大小范围。
将所有地面真相盒合并为一个阵列。
Allboxes = VertCAT(车辆ledledataset.vehicle {:});
绘制长方体面积与长方体纵横比。
Aspectratio = Allboxes(:,3)./ Allboxes(:,4);区域= Prod(Allboxes(:,3:4),2);图分散(区域,aspectratio)xlabel(“盒子区域”)ylabel(“纵横比(宽度/高度)”);标题(“框面积与纵横比”)
该图显示了几组具有相似尺寸和形状的物体,因为该组被展开,手动选择锚箱是困难的。估算锚框的更好方法是使用群集算法,可以使用有意义的指标将类似的框分组。
估算锚箱
估算锚箱,从训练数据使用估计锚箱函数,该函数使用联合上的交点(IoU)距离度量。
估计锚箱
与欧几里德距离度量不同,基于IoU的距离度量对长方体大小是不变的,欧几里德距离度量随着长方体大小的增加而产生更大的误差[1]。此外,使用IoU距离度量将导致具有相似长宽比和大小的框聚集在一起,从而产生适合数据的锚定框估计。
创建一个Boxlabeldata商店使用车辆数据集中的地面真值箱。如果训练目标检测器的预处理步骤涉及调整图像的大小,请使用转变和bboxresize.调整边界框中的大小Boxlabeldata商店在估算锚箱之前。
转变
bboxresize.
trainingData=boxLabelDatastore(车辆数据集(:,2:end));
选择锚的数量和估计锚盒使用估计锚箱功能。
Numanchors =5.;[anchorboxes,meaniou] = extimateanchorboxes(TrainingData,Numanchors);锚箱
锚箱=5×221 27 87 116 67 92 43 61 86 105
选择锚的数量是另一个训练超参数,需要使用实证分析进行仔细选择。判断估计锚箱的一个质量指标是每个集群中锚箱的平均IoU估计锚箱函数使用K-使用IoU距离度量的均值聚类算法,使用公式计算重叠,1 -bboxOverlapRatio(所有盒子,包括盒子).
1 -
bboxOverlapRatio
(所有盒子,包括盒子)
平均IOU=0.8411
大于0.5的平均值可确保锚盒在训练数据中的框中重叠。增加锚点的数量可以改善平均iou测量。然而,在物体检测器中使用更多锚盒也可以增加计算成本并导致过度拟合,这导致差的检测器性能差。
扫描一系列值并绘制平均IoU与锚框数量的关系图,以测量锚数量与平均IoU之间的权衡。
Maxnumanchors = 15;Meaniou = Zeros([Maxnumanchors,1]);锚盒=细胞(Maxnumanchors,1);对于k=1:maxNumAnchors%估计锚和平均值。[anchorBoxes{k},meanIoU(k)]=估计的anchorBoxes(训练数据,k);结束图绘图(1:Maxnumanchors,Meaniou,“-o”)ylabel(“平均借据”)xlabel(“锚的数量”) 标题(“锚数量与平均IoU”)
使用两个锚箱会导致平均IoU值大于0.65,而使用7个以上锚箱只会使平均IoU值略有改善。鉴于这些结果,下一步是使用2到6之间的值来训练和评估多个目标探测器。此实证分析有助于确定满足应用程序性能要求(如检测速度或精度)所需的锚箱数量。
培训数据,指定为数据存储,返回具有两个或多个列的单元格数组或表。边界框必须是单元格数组M-4格式的矩阵[x,Y,宽度,高度]。
数据存储必须是以下之一:
A.Boxlabeldata商店格式[盒,标签]
{图片,盒,标签}-组合数据存储。例如,使用结合(imds,blds)。
结合
imds
blds
要返回的函数的锚定框数,指定为整数。
锚盒,返回为N-by-2矩阵,其中N是锚框的数量,每个条目都有格式[高度,宽度]。用努曼彻斯指定定位框的数量。
距离度量,作为标量值返回。距离度量提供了每个集群中锚盒的平均并交(IoU)值。为确保锚定框与训练数据中的框良好重叠卑鄙值必须大于0.5。该K- 模拟算法使用iou距离度量来计算使用等式的重叠1.-bboxOverlapRatio(box1,box2.)。
1.
box1,box2.
fasterRCNNObjectDetector
约洛夫2层
您有此示例的修改版本。您是否希望使用您的编辑打开此示例?
您单击了与此MATLAB命令对应的链接:
通过在MATLAB命令窗口中输入命令来运行该命令。Web浏览器不支持MATLAB命令。万博1manbetx
选择一个网站以获取可用的翻译内容,并查看本地活动和优惠。根据您的位置,我们建议您选择:.
您还可以从以下列表中选择一个网站:
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家/地区网站未针对您所在地的访问进行优化。
联系您当地的办公室