trainACFObjectDetector
训练ACF对象检测器
描述
返回一个训练好的聚合信道特征(ACF)对象检测器。该函数使用存储在表或数据存储中的图像中的对象的正实例,并由探测器
= trainACFObjectDetector (trainingData
)trainingData
.该函数在训练过程中自动从图像中收集负面实例。要创建基本真值表,请使用图片标志或贴标签机视频应用程序。
返回一个探测器
= trainACFObjectDetector (trainingData
,名称=值
)探测器
使用一个或多个名称-值参数以及以前语法中的参数组合指定选项。例如,ObjectTrainingSize = [100100]
设置训练期间对象的高度和宽度。
例子
列车停止标志检测器使用ACF对象检测器
使用trainACFObjectDetector
与训练图像一起创建一个ACF对象检测器,可以检测到停止标志。用单独的图像测试检测器。
加载训练数据。
负载(“stopSignsAndCars.mat”)
为停止标志图像的完整路径加上前缀。
stopSigns = fullfile(toolboxdir(“愿景”),“visiondata”stopSignsAndCars {: 1});
创建数据存储以加载停止标志的真实数据。
imds = imageDatastore(stopSigns);blds = boxLabelDatastore(stopSignsAndCars(:,2));
组合图像和框标签数据存储。
Ds = combine(imds,blds);
训练ACF检测器。设置每个阶段要使用的负样本数量为2
.您可以通过指定关闭训练进度输出Verbose = false,
作为一个名称-值
论点。
acfDetector = trainACFObjectDetector(ds,NegativeSamplesFactor=2);
ACF对象检测器培训培训将分为4个阶段。模型尺寸为34x31。样本正面例子(~100%完成)计算近似系数…完成。计算聚合通道特性…已完成。-------------------------------------------- 阶段1:样本的负面例子(~ 100%)完成计算聚合通道特性…完成。用42个正例和84个反例训练分类器…完成。训练后的分类器有19个弱学习器。-------------------------------------------- 阶段2:样本负面例子(~ 100%完成)发现了84个新的负面例子进行训练。计算聚合通道特性…已完成。用42个正例和84个反例训练分类器…完成。 The trained classifier has 20 weak learners. -------------------------------------------- Stage 3: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 54 weak learners. -------------------------------------------- Stage 4: Sample negative examples(~100% Completed) Found 84 new negative examples for training. Compute aggregated channel features...Completed. Train classifier with 42 positive examples and 84 negative examples...Completed. The trained classifier has 61 weak learners. -------------------------------------------- ACF object detector training is completed. Elapsed time is 34.2692 seconds.
在测试图像上测试ACF检测器。
Img = imread(“stopSignTest.jpg”);[bboxes,scores] = detect(acfDetector,img);
显示检测结果,并在图像中插入对象的包围框。
为I = 1:length(scores) annotation = sprintf(“信心= %.1f”分数(i));img = insertObjectAnnotation(img,“矩形”bboxes(我:),注释);结束图imshow (img)
输入参数
trainingData
- - - - - -标记地面真相
数据存储|表格
标记的基本值,指定为数据存储或表。
如果使用数据存储,则必须设置数据,以便使用
读
而且readall
函数返回至少有两列的单元格数组或表。下表描述了各列中包含的数据:图片 盒子 标签(可选) 灰度或RGB图像的单元向量。
米形式为[的包围框的-by-4矩阵x,y,宽度,高度],其中[x,y]表示边界框的左上角坐标。
元素的单元格数组米-element包含对象类名的分类向量。数据存储返回的所有类别数据必须包含相同的类别。
提供此数据时,函数使用类标签填充
ModelName
属性,指定为acfObjectDetector
对象。否则,训练不需要类标签,因为ACF对象检测器是单个类检测器。如果使用表,则表必须有两个或多个列。表的第一列必须包含带有路径的映像文件名。图像必须是灰度或真彩色(RGB),它们可以是任何格式支持金宝app
imread
.其余每一列都必须是单元格向量,包含米-by-4表示单个对象类的矩阵,例如车辆,花,或停车标志.列包含的4元双数组米格式为[的包围框x,y,宽度,高度].该格式指定了相应图像中左上角的位置和包围框的大小。要创建基本真值表,可以使用图片标志应用程序或贴标签机视频要根据生成的ground truth创建训练数据表,请使用objectDetectorTrainingData
函数。
名称-值参数
指定可选参数对为Name1 = Value1,…,以=家
,在那里的名字
参数名称和价值
对应的值。名称-值参数必须出现在其他参数之后,但对的顺序无关紧要。
在R2021a之前,使用逗号分隔每个名称和值,并将其括起来的名字
在报价。
例子:ObjectTrainingSize = [100100]
设置训练期间对象的高度和宽度。
ObjectTrainingSize
- - - - - -训练时物体的大小
“汽车”
(默认)|2-element向量
训练期间对象的大小,指定为形式为[的2元素向量高度宽度]以像素表示。最小训练规模为[8]
.在训练过程中,对象被调整为指定的高度和宽度“ObjectTrainingSize”
.增加尺寸可以提高检测精度,但也会增加训练和检测次数。
当你指定“汽车”
,大小是根据正面实例的宽高比中值设置的。
例子:[100100]
数据类型:单
|双
|int8
|int16
|int32
|int64
|uint8
|uint16
|uint32
|uint64
NumStages
- - - - - -培训阶段数
4
(默认)|正整数
迭代训练过程的训练阶段数,指定为正整数。增加这个数字可以改善检测器和减少训练误差,但代价是更长的训练时间。
数据类型:双
NegativeSamplesFactor
- - - - - -负样本因子
5
(默认)|实值标量
负抽样因子,指定为实值标量。每一阶段使用的负样本数等于
NegativeSamplesFactor
×每个阶段使用的阳性样本数量
数据类型:双
MaxWeakLearners
- - - - - -最大弱学习器数
2048
(默认)|正整数标量|正整数向量
最后一阶段弱学习器的最大数目,指定为正整数标量或正整数向量。如果输入是标量,MaxWeakLearners
指定最后阶段的最大数目。如果输入是一个向量,MaxWeakLearners
指定每个阶段的最大数量,长度必须等于'NumStages
”。这些值通常在各个阶段中不断增加。ACF对象检测器使用增强算法来创建弱学习器的集合。您可以使用更高的值来提高检测精度,但以降低检测性能速度为代价。推荐取值范围为300 ~ 5000。
数据类型:双
详细的
- - - - - -显示进度信息
真正的
(默认)|假
选项显示培训过程的进度信息,指定为真正的
或假
.
数据类型:逻辑
输出参数
探测器
-训练基于acf的目标检测器
acfObjectDetector
对象
训练过的基于acf的对象检测器,返回为acfObjectDetector
对象。
版本历史
在R2017a中引入
MATLAB命令
你点击了一个对应于这个MATLAB命令的链接:
在MATLAB命令窗口中输入该命令来运行该命令。Web浏览器不支持MATLAB命令。金宝app
您也可以从以下列表中选择一个网站:
如何获得最佳的网站性能
选择中国站点(中文或英文)以获得最佳站点性能。其他MathWorks国家站点没有针对您所在位置的访问进行优化。