您的位置:首页 > 运维架构

opencv训练自己的分类器

2012-10-16 14:18 183 查看
主要参考文档http://blog.csdn.net/tyt2222008/article/details/5838389
1. 找到正样本图片N张,负样本M张,所有正样本图片大小设置为一样大(如20X30)。负样本没有要求,最好是图片大一点,但是负样本不能包含正样本目标特征(具体是什么判断标准我还真没找到相关资料)。负样本图片需要多一点(我用一张正样本,10张负样本,运行成功了的),否则opencv_haartraining一直停在那里,没办法生成XML文件
2. 我是在windows下制作文件。将正样本放在一个文件夹下,cmd到当前文件夹,
dir /b > info.txt
就将所有的文件名保存到记事本里了,然后用查找替换将bmp换为bmp 1 0 0 20 30,其中后面两个参数是你的图片大小,然后删除最后一行的info.txt。
3. 将负样本放在一个文件夹下,cmd到当前文件夹,dir /b > bg.txt
就将所有负样本的文件名保存成到记事本里了,然后删除最后一行的bg.txt,然后不需要其他操作了。
4. 在linux终端里执行如下语句(参数解释在后面)
./opencv_createsamples -info /usr/bin/1/info.txt -vec a.vec -bg /usr/bin/2/bg.txt -num 2 -w 70 -h 10(据说使用了info后,不用bg信息,但是我用了也看不出明显问题)

./opencv_haartraining  -data /usr/bin/data -vec /usr/bin/a.vec -bg /root/Desktop/2/bg.txt -npos 10 -nneg 646 -w 60 -h 60 -nonsym -mode ALL
在bin目录下就有了data.xml了

createsamples参数解释:
Usage: ./createsamples
[-info <description_file_name>]
[-img <image_file_name>]
[-vec <vec_file_name>]
[-bg <background_file_name>]
[-num <number_of_samples = 1000>]
[-bgcolor <background_color = 0>]
[-inv] [-randinv] [-bgthresh <background_color_threshold = 80>]
[-maxidev <max_intensity_deviation = 40>]
[-maxxangle <max_x_rotation_angle = 1.100000>]
[-maxyangle <max_y_rotation_angle = 1.100000>]
[-maxzangle <max_z_rotation_angle = 0.500000>]
[-show [<scale = 4.000000>]]
[-w <sample_width = 24>]
[-h <sample_height = 24>]

haartraining参数解释:
Usage: ./haartraining(xml文件存在bin目录下)
-data <dir_name>生成的数据放在这个路径里(不是xml文件)
-vec <vec_file_name>vec文件的路径
-bg <background_file_name>负样本的集合文件路径
[-npos <number_of_positive_samples = 2000>]
[-nneg <number_of_negative_samples = 2000>]
[-nstages <number_of_stages = 14>]训练的层数
[-nsplits <number_of_splits = 1>]使用2效果好些,但是耗时
[-mem <memory_in_MB = 200>]分配内存
[-sym (default)] [-nonsym]训练目标是否垂直对称,对称则提高训练速度
[-minhitrate <min_hit_rate = 0.995000>]每级的最小命中率
[-maxfalsealarm <max_false_alarm_rate = 0.500000>]
[-weighttrimming <weight_trimming = 0.950000>]是否使用权修正和多大修正,一般0.9
[-eqw]
[-mode <BASIC (default) | CORE | ALL>]BASIC用于正立,ALL还使用于旋转的45°
[-w <sample_width = 24>]
[-h <sample_height = 24>]
[-bt <DAB | RAB | LB | GAB (default)>]
[-err <misclass (default) | gini | entropy>]
[-maxtreesplits <max_number_of_splits_in_tree_cascade = 0>]
[-minpos <min_number_of_positive_samples_per_cluster = 500>]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  file basic xml cmd windows image