opencv3.1 boost级联分类器

来源:互联网 发布:安卓翻墙软件哪个好 编辑:程序博客网 时间:2024/06/06 22:38

级联分类器整个过程主要包括:样本准备,数据生成,训练,交叉验证,检测。涉及的源代码主要包括:

1)  样本标注的工具:applications->opencv_annotation   opencv_annotation.exe

注意:在标注的过程中,需要注意标注程序要能正确读取到相应的图像。每次画完标注框,需要按C键才能保存该标注框。

2)  测试或训练样本的生成工具:applications->opencv_createsamples    opencv_createsamples.exe

说明:将样本以向量的方式写到vec文件中,给定正样本进行变形的方法没有成功,目前只试过第三种方法:给定正样本图像集合文件(即第一步获得的标注文件),将样本文件的每个样本逐个写到vec文件中,超过样本图像数后会输出parse error,但不是报错,属正常结束。

3)  级联分类器训练工具: applications->opencv_traincascade中的cascadeclassifier中的CvCascadeClassifier类,主要用于train,但具有私有方法predict;   opencv_traincascade.exe
(之前的诸如:贝叶斯,k-nn,SVM,决策树,随机树等等,在old_ml中。但在boost中的CvCascadeBoost类,也有相关的公有的训练和预测方法,与级联分类器的区别需要进一步确认)

说明:bgName参数为负样本描述文件(.dat),文件中包含一系列的图像文件名,这些图像将被随机选作物体的背景,具体可以是每一行为一个包含绝对路径的背景图像文件名。

4)  级联分类器检测:可以利用modules->opencv_objdetect中cascadedetect中的CascadeClassifierImpl类;也可以利用opencv2/objdetect.hpp定义的CascadeClassifier类,具体在modules->opencv_objdetect->Src中cascadedetect.cpp中实现(基于BaseCascadeClassifier类实现);也可以利用训练工具中的predict方法进行预测。

5)  Opencv提供了测试方法:tests accuracy->opencv_test_objdetect的测试方法;testsperformance->opencv_perf_objdetect的测试方法。

 

级联分类器的训练过程参考:

http://docs.opencv.org/3.1.0/dc/d88/tutorial_traincascade.html#gsc.tab=0
0 0
原创粉丝点击