opencv_haartraining.exe 分类器训练----命令执行,执行项学习(1)

本文是在样本处理完成情况下,进行分类器训练。关于分类器训练网上有很多讲解,但是对于初学者还是有一定难度,这可能与个人学习笔记的习惯有关。对此我讲我学习的总结下来以图像方式展示给大家。

执行命令:opencv_haartraining.exe -data xml -vec pos.vec -bg neg.txt -nstages 10 -nsplits 1 -npos 35 -nneg 100 -mem 1280 -mode all -w 30 -h 30

命令讲解:opencv_haartraining.exe   这是一个opencv自带的可执行函数,用于实现对分类器的训练。直接在doc下用命令执行即可,存放路径一般为:   

                                                    ..\opencv\build\x86\vc11\bin(一般我们用的是win32位环境下的运行程序(参考:                                      

                                                                                                                                           http://www.cnblogs.com/linmengran/p/5898303.html),

                                                    因此在opencv环境配置时就只加入了x86的bin路径,因此在这里选取x86下的opencv_haartraining.exe )。这里我为了找路径方便与

                                                    样本文件放在同一目录下这样可以找到 很容易调取 mlx文件夹,和pos.vec、neg.txt,也可以直接调用。

              -data xml        存储训练时的生成的文件。最终生成一个.xml文件,如下图:

 

                                    xml文件夹内容:

 

              -vec pos.vec    调用.vec文件,与neg.txt放在同一目录下。

              -bg neg.txt     负样本生成文件,可以理解成是负样本的索引。

              -nstages 10     训练级数

              -nsplits 1         2表示弱分类器二叉决策树的分裂数   1表示使用简单stump 分类(只有一个树桩)

              -npos 35          正样本数量

              -nneg 100        负样本数量

              -mem 1280      训练时内存预留的空间1280MB

              -mode all          级联器的类型,all代表所有类型

              -w 30               图片的宽30像素,必须与之前一致

              -h 30               图片的高30像素,必须与之前一致

执行结果如下:

训练结果:

运用其训练的结果测试了一下:

 

但是效果不是很稳定,有时会变得不准确,这与分类器的样本和测试方式,以及测试代码有关,目前修改中,以后附上测试代码。

其他参考命令:

  1. "  -data <dir_name>\n"  
  2. "  -vec <vec_file_name>\n"  
  3. "  -bg <background_file_name>\n"  
  4. "  [-bg-vecfile]\n"  
  5. "  [-npos <number_of_positive_samples = %d>]\n"  
  6. "  [-nneg <number_of_negative_samples = %d>]\n"  
  7. "  [-nstages <number_of_stages = %d>]\n"  
  8. "  [-nsplits <number_of_splits = %d>]\n"  
  9. "  [-mem <memory_in_MB = %d>]\n"  
  10. "  [-sym (default)] [-nonsym]\n"  
  11. "  [-minhitrate <min_hit_rate = %f>]\n"  
  12. "  [-maxfalsealarm <max_false_alarm_rate = %f>]\n"  
  13. "  [-weighttrimming <weight_trimming = %f>]\n"  
  14. "  [-eqw]\n"  
  15. "  [-mode <BASIC (default) | CORE | ALL>]\n"  
  16. "  [-w <sample_width = %d>]\n"  
  17. "  [-h <sample_height = %d>]\n"  
  18. "  [-bt <DAB | RAB | LB | GAB (default)>]\n"  
  19. "  [-err <misclass (default) | gini | entropy>]\n"  
  20. "  [-maxtreesplits <max_number_of_splits_in_tree_cascade = %d>]\n"  
  21. "  [-minpos <min_number_of_positive_samples_per_cluster = %d>]\n"  
posted @ 2017-03-07 09:20  林梦然  阅读(7557)  评论(1编辑  收藏  举报