opencv级联分类器训练和检测过程

Opencv3.1 

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

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-nnSVM,决策树,随机树等等,在old_ml中。但在boost中的CvCascadeBoost类,也有相关的公有的训练和预测方法与级联分类器的区别需要进一步确认

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

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

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

 

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

http://docs.opencv.org/3.1.0/dc/d88/tutorial_traincascade.html#gsc.tab=0

 

你可能感兴趣的:(opencv级联分类器训练和检测过程)