主要内容

润垫标签

平衡包围盒标签用于对象检测

描述

例子

地点= anderalboxlabels(boxlabels.BlockedImages.blocksizenumobservations.余额绑定框标签,boxlabels.,通过对包含较少频繁类的图像块进行过采样,这些类包含在块图像对象集合中BlockedImages.numobservations.是否要求街区位置的数量,和blocksize指定块大小。

地点= anderalboxlabels(boxlabels.BlockedImages.blocksizenumobservations.名称,值使用名称-值参数指定所选块的其他方面。

例子

全部折叠

加载包含一个图像的框和标签的标签数据。每个盒子的高度和宽度是[20,20]。

d =负载('batandboxlabelsdata.mat');boxLabels = d.BoxLabels;

创建一个封锁的大小图像[500,500]

blockedImages = blockedImage (0 ([500500]));

选择每个观测的图像大小。

blockSize = (50,50);

使用直方图可视化,以识别框标签中的任何类不平衡。

BLDS = BoxLabeldAtastore(BoxLabels);datasetcount = counteChentlabel(BLD);数字;H1 =直方图(“类别”,datasetcount.label,“BinCounts”datasetCount.Count)
H1 =具有属性的直方图:数据:[0x0分类]值:[1 1 1 1 1 1 1 11 1 11 11] NumDisplayBins:12类:{1x12 Cell}显示顺序:'手动'标准化:'Count's DisplayStyle:'BAR'FaceColor:'Auto'Edgecolor:[0 0 0]显示所有属性

衡量箱标签的分布。如果变异的系数超过1,则存在类别不平衡。

cvbefore = std(datasetcount.count)/均值(datasetcount.count)
cvBefore = 1.5746

通过查找每个类的计数的平均值来选择观测数量的启发式值,乘以类数。

numClasses =身高(datasetCount);nummobations = mean(datasetCount.Count) * numClasses;

控制可以使用盒子的金额OverlapThreshold.使用较低的阈值将在块的边界切割更多的对象。增加此值可以减少对象在边框上的剪切量,但会牺牲不均衡的框标签。

阈值= 0.5;

平衡boxlabels.使用润垫标签功能。

locationset = anderalboxLabels(boxlabels,blockedimages,blocksize,......numObservations,'重叠阈值', ThresholdValue);
平衡箱标签为1的图像  [==================================================] 100年 % [==================================================] 100%平衡箱标签完成。

计算包含在图像块中的标签。

bldsBalanced = boxLabelDatastore (boxLabels locationSet);balancedDatasetCount = countEachLabel (bldsBalanced);

覆盖另一个直方图对原始标签计数,以查看框标签是否平衡。如果通过查看直方图,标签似乎不平衡,请增加值numobservations.

抓住;balancedLabels = balancedDatasetCount.Label;balancedCount = balancedDatasetCount.Count;h2 =直方图(“类别”balancedLabels,“BinCounts”, balancedCount);标题(h2。父母,“平衡课程标签(重叠阈值:”+ ThresholdValue +“)”);传奇(H2.Parent,{'前'“后”});

图中包含一个坐标轴。标题为平衡类标签的轴(OverlapThreshold: 0.5)包含2个类别直方图对象。这些对象表示Before和After。

衡量新的Baanced Box标签的分布。

cvAfter =性病(balancedCount) /意味着(balancedCount)
CVAFTER = 0.4588.

输入参数

全部折叠

标记的边界框数据,指定为具有两列的表。

  • 第一列包含边界框,并且必须是细胞向量。单元格矢量中的每个元素包含m- × 4矩阵的格式[Xy宽度高度]m盒子。

  • 第二列必须是包含对应于每个边界框的标签名称的单元格向量。单元格向量中的每个元素必须是m- 1个分类或串向量。

要从ground truth数据创建一个盒标签表,

  1. 使用图像贴标器视频贴图应用程序标签你的地面真相。导出标记的地面真实数据到您的工作空间。

  2. 控件创建边界框标签数据存储ObjectDetortRaringData.功能。

  3. 你可以获得boxlabels.LabelData返回的框标签数据存储的属性ObjectDetortRaringData.,(建筑物。LabelData).

标记的块图像,指定为blockedImage包含像素标签图像的对象。

块大小的读取数据,指定为正整数的两个元素行向量,[numrows.numcols].第一个元素指定块中的行数。第二个元素指定列的数目。

要返回的块位置的数目,指定为正整数。

名称-值对的观点

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

例子:'OverlapThreshold','1'

数组中每个图像的分辨率级别blockedImage对象,指定为正整数标量或B.- 1个正整数矢量,在哪里B.数组的长度是blockedImage对象。

重叠阈值,指定为范围的正标量[0,1]。当边界框和裁剪窗口之间的重叠大于阈值时,框中boxlabels.输入剪切到图像块窗口边框。当重叠小于阈值时,丢弃框。当您降低阈值时,会丢弃对象的一部分。要减少对象可以在边框剪裁的量,增加阈值。增加阈值也可能导致较少平衡的盒子标签。

边界框和裁剪窗口之间的重叠量定义为。

一种 R. E. 一种 B. B. O. X 一种 W. 一世 N. D. O. W. / 一种 R. E. 一种 B. B. O. X 一种

显示以数字或逻辑方式指定的进度信息1真正的)或0.).将此属性设置为真正的显示信息。

输出参数

全部折叠

平衡的盒子标签,返回作为BlockLocations对象。对象包含numobservations.平衡块的数量,每个尺寸blocksize

算法

全部折叠

平衡箱标签

为了平衡框标签,该函数在块图像或大图像中表示较少的样例类上。框标签在整个数据集上进行计数,并根据每个类计数进行排序。每个图像大小被分割成几个象限,基于blocksize输入值。该算法随机从每个象限内选择几个块,具有较少的类。没有任何物体的块被丢弃。一旦选择指定的块数,平衡就会停止。

检查余额

通过比较平衡之前和之后的标签计数的直方图,可以检查平衡的成功。您还可以检查变化系数。为获得最佳结果,值应小于原始值。有关更多信息,请参阅国家标准和技术研究所(NIST)网站,见变异系数为更多的信息。

兼容性的考虑

全部展开

不建议从R2021a开始

介绍了R2020a