理论教育 智能车辆理论与应用:慕课版-分类器训练参数设置

智能车辆理论与应用:慕课版-分类器训练参数设置

时间:2023-10-02 理论教育 版权反馈
【摘要】:针对这些可选参数的设置,可以从以下几个方面考虑。若某一级联分类器有10级,每级的命中率为0.995,误检率为0.5,则经过10个强分类器,最终命中率为0.99510=0.95,误检率为0.510=0.000 9。如果没有足够的正样本,训练就会停止,函数会发出警告。

智能车辆理论与应用:慕课版-分类器训练参数设置

在MATLAB中,计算机视觉工具箱(Computer Vision Toolbox)提供了一个trainCascade ObjectDetector函数来训练自定义分类器。函数的语法为:

function trainCascadeObjectDetector(name,pos_image,neg_image,varargin)

该函数的输入为:需保存的分类器名称(name)、正样本集(pos_image)和负样本集(neg_image),另外可以设置级联分类器级数(NumCascadeStages)、每级误检率(FalseAlarmRate)、每级命中率(TruePositiveRate)、检测特征类型(FeatureType)、负样本因子(NegativeSamplesFactor)和正样本归一化尺寸(ObjectTrainingSize),最终输出为分类器文件。

针对这些可选参数的设置,可以从以下几个方面考虑。

1.NumCascadeStages(级联分类器级数)

增加级数会使分类器更准确,但也会增加训练时间。级数越多,需要的训练图像越多,因为在每级,一定数量的正样本和负样本会被消除。

2.FeatureType(检测特征类型)

特征类型会影响训练时长,通常使用Haar特征要比使用LBP或HOG特征花费更长的训练时间。

3.ObjectTrainingSize(正样本归一化尺寸)

正样本归一化尺寸过小,容易造成特征缺失;正样本归一化尺寸过大,容易增加训练时长。

4.NegativeSamplesFactor(负样本因子)(www.daowen.com)

每级使用的负样本数=NegativeSamplesFactor×[该级使用的正样本数],通常负样本因子默认为2。

只要用于训练某一阶段的负样本数大于计算得出的负样本数的10%,训练就继续进行。

5.FalseAlarmRate(每级误检率)

较低的误检率值增加了每级的复杂性,增加复杂性可以实现更少的错误检测,但可能导致更长的训练和检测时间。而较高的误检率值则可能需要更多的级数才能达到合理的检测精度。

6.TruePositiveRate(每级命中率)

较高的命中率值增加了每级的复杂性,增加的复杂性可以实现更多的正确检测,但可能导致更长的训练和检测时间。

通过上述对每级误检率和每级命中率的介绍,可知在级联分类器中,假设各个强分类器的检测命中率为p1,p2,…,pM,误检率为r1,r2,…,rM,由于各强分类器以串联的形式排列,因此最终的检测命中率为∏1<i<M pi,最终误检率为∏1<i<M ri。若某一级联分类器有10级,每级的命中率为0.995,误检率为0.5,则经过10个强分类器,最终命中率为0.99510=0.95,误检率为0.510=0.000 9。

另外,trainCascadeObjectDetector函数能够自动计算训练每级的正样本的数量,该数目基于用户提供的正样本总数以及每级命中率(TruePositiveRate)和级数(NumCascadeStages)的值,具体公式如下:

只要用于训练某一阶段的正样本数大于式(2-14)计算得出的样本数的10%,训练就继续进行。如果没有足够的正样本,训练就会停止,函数会发出警告。如果训练停止,可以选择添加更多的正样本、增加每级命中率或是减少级数,但级数的减少也会导致较高的整体误检率。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈