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 = Img“stopSignTest.jpg”);[bboxes,scores] = detect(acfDetector,img);
显示检测结果,并将对象的边界框插入图像中。
为I = 1:length(scores) annotation = sprintf(“信心= %.1f”分数(i));img = insertobjectnotation (img,“矩形”bboxes(我:),注释);结束图imshow (img)
输入参数
trainingData
- - - - - -标记的基础真理
数据存储|表格
标记的基本事实,指定为数据存储或表。
如果使用数据存储,则必须对数据进行设置,以便使用
读
和readall
函数返回至少有两列的单元格数组或表。该表描述了列中包含的数据:图片 盒子 标签(可选) 灰度或RGB图像的单元向量。
米形式为[的边界框矩阵x,y,宽度,高度],其中[x,y]表示边界框的左上角坐标。
单元格数组,包含米包含对象类名的element分类向量。数据存储返回的所有分类数据必须包含相同的类别。
当您提供此数据时,该函数使用类标签来填充
ModelName
训练检测器的属性,指定为acfObjectDetector
对象。否则,训练不需要类标签,因为ACF对象检测器是单个类检测器。如果使用表,则该表必须有两个或更多列。表的第一列必须包含带有路径的映像文件名。图像必须是灰度或真彩色(RGB),它们可以是由万博1manbetx
imread
。其余每个列必须是单元格向量,其中包含米表示单个对象类的矩阵,例如车辆,花,或停车标志。列包含4元素的双数组米格式为[x,y,宽度,高度]。该格式指定了相应图像中边界框的左上角位置和大小。要创建基本真值表,可以使用图片标志应用程序或贴标签机视频要从生成的地面真值创建训练数据表,请使用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中编写了一种常用的求解方法:
Esegui将在MATLAB中执行编译。I浏览器网页不支持命令MATLAB。万博1manbetx
你亦可选择下列网址:
如何获得最佳的网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他MathWorks国家网站没有针对您所在位置的访问进行优化。