运行 opencv_traincascade.exe 命令可以查看参数帮助,如下:
> opencv_traincascade.exe
Usage: opencv_traincascade.exe
-data <cascade_dir_name>
-vec <vec_file_name>
-bg <background_file_name>
[-numPos <number_of_positive_samples = 2000>]
[-numNeg <number_of_negative_samples = 1000>]
[-numStages <number_of_stages = 20>]
[-precalcValBufSize <precalculated_vals_buffer_size_in_Mb = 1024>]
[-precalcIdxBufSize <precalculated_idxs_buffer_size_in_Mb = 1024>]
[-baseFormatSave]
[-numThreads <max_number_of_threads = 20>]
[-acceptanceRatioBreakValue <value> = -1>]
--cascadeParams--
[-stageType <BOOST(default)>]
[-featureType <{HAAR(default), LBP, HOG}>]
[-w <sampleWidth = 24>]
[-h <sampleHeight = 24>]
--boostParams--
[-bt <{DAB, RAB, LB, GAB(default)}>]
[-minHitRate <min_hit_rate> = 0.995>]
[-maxFalseAlarmRate <max_false_alarm_rate = 0.5>]
[-weightTrimRate <weight_trim_rate = 0.95>]
[-maxDepth <max_depth_of_weak_tree = 1>]
[-maxWeakCount <max_weak_tree_count = 100>]
--haarFeatureParams--
[-mode <BASIC(default) | CORE | ALL
--lbpFeatureParams--
--HOGFeatureParams--
参数详解
-data: 应存储经过训练的分类器的位置。此文件夹应事先手动创建
-vec: 带有正样本的 vec 文件(由 opencv_createsamples 实用程序创建)
-bg: 背景描述文件。这是包含负样本图像的文件
-numPos: 每个分类器阶段训练中使用的正样本数
-numNeg: 每个分类器阶段训练中使用的负样本数
-numStages: 要训练的级联阶段数
-precalcValBufSize: 预先计算的特征值的缓冲区大小(以 Mb 为单位)。您分配的内存越多,训练过程就越快,但请记住,两者的-precalcValBufSize总和-precalcIdxBufSize不应超过您可用的系统内存
-precalcIdxBufSize: 预先计算的特征索引的缓冲区大小(以 Mb 为单位)。您分配的内存越多,训练过程就越快,但请记住,两者的-precalcValBufSize总和-precalcIdxBufSize不应超过您可用的系统内存
-baseFormatSave: 这个论点在 Haar-like 特征的情况下是真实的。如果指定,级联将以旧格式保存。这只适用于向后兼容的原因,并允许用户坚持使用旧的已弃用界面,至少可以使用较新的界面训练模型
-numThreads: 训练期间使用的最大线程数。请注意,实际使用的线程数可能会更少,具体取决于您的机器和编译选项。默认情况下,如果您使用 TBB 支持构建 OpenCV,则会选择最大可用线程,这是优化所必需的
-acceptanceRatioBreakValue: 此参数用于确定您的模型应该保持学习的精确程度以及何时停止。一个好的指导原则是训练不超过 10e-5,以确保模型不会过度训练您的训练数据。默认情况下,此值设置为 -1 以禁用此功能
--cascadeParams--
-stageType: 阶段类型。目前仅支持增强分类器作为阶段类型
-featureType: 特征类型:HAAR-类HAAR特征,LBP-局部二进制模式,默认是HAAR类型,因为HAAR需要浮点运算,精度比LBP高,但是LBP的效果也基本能达到HAAR的效果
-w: 训练样本的宽度(以像素为单位)。必须与创建训练样本时使用的值完全相同
-h: 训练样本的高度(以像素为单位)。必须与创建训练样本时使用的值完全相同
--boostParams--
-bt: 增强分类器的类型:DAB - Discrete AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB - Gentle AdaBoost
-minHitRate: 分类器的每个阶段的最小期望命中率
-maxFalseAlarmRate: 分类器的每个阶段的最大期望虚警率
-weightTrimRate: 指定是否应使用修剪及其权重。一个不错的选择是0.95
-maxDepth: 弱树的最大深度。一个不错的选择是1,文档是这样翻译的,不知道啥意思
-maxWeakCount: 每个级联阶段弱树的最大计数
--haarFeatureParams--
-mode: 选择训练中使用的哈尔特征集的类型。BASIC仅使用直立功能,而ALL使用全套直立和45度旋转功能集 BASIC(default) | CORE | ALL
详见官网:https://docs.opencv.org/3.4.1/dc/d88/tutorial_traincascade.html