opencv_traincascade 是一个新程序,使用OpenCV 2.x API 以C++ 编写。
这二者主要的区别是 opencv_traincascade 支持 Haar 和 LBP 两种特征,现在已经发展到可以支持hog特征,并易于增加其他的特征。
与Haar特征相比,LBP特征是整数特征,因此训练和检测过程都会比Haar特征快几倍。
LBP和Haar特征用于检测的准确率,是依赖训练过程中的训练数据的质量和训练参数。
训练一个与基于Haar特征同样准确度的LBP的分类器是可能的。
Usage: opencv_traincascade.exe
-data <cascade_dir_name> //目标xml文件
-vec <vec_file_name> //vec文件
-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 = 9>]
[-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 //BASIC CORE ALL
--lbpFeatureParams--
--HOGFeatureParams--
opencv_traincascade.exe
-data D:\开发工具安装包\openCV\5-opencv级联分类\test
-vec D:\开发工具安装包\openCV\5-opencv级联分类\test\positive\my.vec
-bg bg.txt
-numPos 170
-numNeg 500
-numStages 12
-featureType LBP
-w 24
-h 24
-minHitRate 0.996
-maxFalseAlarmRate 0.5