opencv_createsamples和opencv_traincascade命令

opencv_createsamples和opencv_traincascade命令

opencv_traincascade -data dstBuild -vec new_vec.vec -bg sample_neg.dat   -numStages 20 -minHitRate 0.999 -maxFalseAlarmRate 0.5 -numPos 100   -numNeg 700 -w 20 -h 20 -mode ALL -precalcValBufSize 1024   -precalcIdxBufSize 1024 -featureType LBP
通用参数:

-data <cascade_dir_name>
目录名,如不存在训练程序会创建它,用于存放训练好的分类器。
-vec <vec_file_name>
包含正样本的vec文件名(由 opencv_createsamples 程序生成)。
-bg <background_file_name>
背景描述文件,也就是包含负样本文件名的那个描述文件。
-numPos <number_of_positive_samples>
每级分类器训练时所用的正样本数目。其指设置为正样本数量的85%(这是一个保守值)。具体的也要根据级联器的层数来决定的。因为每个stages都是会增加图片数量来进行分类。
-numNeg <number_of_negative_samples>
每级分类器训练时所用的负样本数目,可以大于 -bg 指定的图片数目。
-numStages <number_of_stages>
训练的分类器的级数。
-precalcValBufSize <precalculated_vals_buffer_size_in_Mb>
缓存大小,用于存储预先计算的特征值(feature values),单位为MB。
-precalcIdxBufSize <precalculated_idxs_buffer_size_in_Mb>
缓存大小,用于存储预先计算的特征索引(feature indices),单位为MB。内存越大,训练时间越短。
-baseFormatSave
这个参数仅在使用Haar特征时有效。如果指定这个参数,那么级联分类器将以老的格式存储。
级联参数:
-stageType <BOOST(default)>
级别(stage)参数。目前只支持将BOOST分类器作为级别的类型。
-featureType<{HAAR(default), LBP}>
特征的类型: HAAR - 类Haar特征; LBP - 局部纹理模式特征。
-w
-h
训练样本的尺寸(单位为像素)。必须跟训练样本创建(使用 opencv_createsamples 程序创建)时的尺寸保持一致。
Boosted分类器参数:
-bt <{DAB, RAB, LB, GAB(default)}>
Boosted分类器的类型: DAB - Discrete AdaBoost, RAB - Real AdaBoost, LB - LogitBoost, GAB - Gentle AdaBoost。
-minHitRate <min_hit_rate>
分类器的每一级希望得到的最小检测率。总的检测率大约为 min_hit_rate^number_of_stages。总检测率即为整个级联器的检测召回率,
-maxFalseAlarmRate <max_false_alarm_rate>
分类器的每一级希望得到的最大误检率。总的误检率大约为 max_false_alarm_rate^number_of_stages. 为整个级联器的误检率
-weightTrimRate <weight_trim_rate>
Specifies whether trimming should be used and its weight. 一个还不错的数值是0.95。
-maxDepth <max_depth_of_weak_tree>
弱分类器树最大的深度。一个还不错的数值是1,是二叉树(stumps)。
-maxWeakCount <max_weak_tree_count>
每一级中的弱分类器的最大数目。The boosted classifier (stage) will have so many weak trees (<=maxWeakCount), as needed to achieve the given -maxFalseAlarmRate.
类Haar特征参数:
-mode <BASIC (default) | CORE | ALL>
选择训练过程中使用的Haar特征的类型。 BASIC 只使用右上特征, ALL 使用所有右上特征和45度旋转特征。

opencv_createsamples.exe -info cascade/pos/sample_pos.dat -vec new_vec.vec -bg cascade/neg/sample_neg.dat -num 100 -w 20 -h 20
参数说明

-vec <vec_file_name> :包含训练样本的输出文件的名称。
-img <image_file_name> :源对象图像(如公司标识)。
-bg <background_file_name>:背景描述文件; 包含用作对象的随机变形版本的背景的图像列表。
-num <number_of_samples> :生成的阳性样本数。
-bgcolor <background_color>:背景颜色(目前为灰度图像)背景颜色表示透明颜色。由于可能会出现压缩伪影,所以可以通过-bgthresh指定颜色容差的数量。具有bgcolor-bgthresh和bgcolor + bgthresh范围的所有像素被解释为透明的。
-bgthresh <background_color_threshold>
-inv :如果指定,颜色将被反转。
-randinv :如果指定,颜色将随机反转。
-maxidev <max_intensity_deviation> :前景样本中像素的最大强度偏差。
-maxxangle <max_x_rotation_angle> :朝向x轴的最大旋转角度必须以弧度表示。
-maxyangle <max_y_rotation_angle> :向y轴的最大旋转角度必须以弧度表示。
-maxzangle <max_z_rotation_angle> :朝向z轴的最大旋转角度必须以弧度表示。
-show:有用的调试选项。如果指定,将显示每个样品。按Esc将继续样品创建过程,而不显示每个样品。
-w <sample_width> :输出样本的宽度(以像素为单位)。
-h <sample_height> :输出样本的高度(以像素为单位)。

`opencv_createsamples.exe` 是 OpenCV 中用于生成训练样本的命令行工具。下面是 `opencv_createsamples.exe` 命令的基本语法: ``` opencv_createsamples.exe -info <info_file> -vec <vec_file> [-num <number_of_samples>] [-w <sample_width>] [-h <sample_height>] [-maxxangle <max_x_rotation_angle>] [-maxyangle <max_y_rotation_angle>] [-maxzangle <max_z_rotation_angle>] [-bgcolor <background_color>] [-bgthresh <background_threshold>] [-maxidev <max_intensity_deviation>] [-maxsdev <max_color_deviation>] [-randseed <random_seed>] [-show] ``` 其中,参数的含义如下: - `-info`:指定包含正样本文件名及其对应的目标框信息的文本文件名。 - `-vec`:指定输出的正样本向量文件名。 - `-num`:指定生成的样本数量,默认为 `1000`。 - `-w`:指定生成的样本宽度,默认为 `24`。 - `-h`:指定生成的样本高度,默认为 `24`。 - `-maxxangle`:指定样本在 X 轴方向上的最大旋转角度,默认为 `0`。 - `-maxyangle`:指定样本在 Y 轴方向上的最大旋转角度,默认为 `0`。 - `-maxzangle`:指定样本在 Z 轴方向上的最大旋转角度,默认为 `0`。 - `-bgcolor`:指定背景颜色,默认为 `0`。 - `-bgthresh`:指定背景阈值,默认为 `0`。 - `-maxidev`:指定样本像素强度的最大变化量,默认为 `40`。 - `-maxsdev`:指定样本颜色的最大变化量,默认为 `40`。 - `-randseed`:指定随机数生成器的种子值,默认为 `0`。 - `-show`:在生成样本时显示每个样本的图片。 注意,`opencv_createsamples.exe` 只能生成正样本,如果需要生成负样本,则需要使用其他工具或手动创建。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值