我从各个角度一辆汽车的图像的文件夹。 我想的话的方法来训练系统中认识到汽车上使用的袋子。 一旦训练完成后,我想,如果是汽车的图像被赋予它应该能够识别它。
我一直在努力学习OpenCV的船头功能,以使这项工作,并已付出了水平,我不知道现在该做什么和一些指导,将不胜感激。
这里是我的代码,我用来做文字的包:
Ptr<FeatureDetector> features = FeatureDetector::create("SIFT");
Ptr<DescriptorExtractor> descriptors = DescriptorExtractor::create("SIFT");
Ptr<DescriptorMatcher> matcher = DescriptorMatcher::create("FlannBased");
//defining terms for bowkmeans trainer
TermCriteria tc(MAX_ITER + EPS, 10, 0.001);
int dictionarySize = 1000;
int retries = 1;
int flags = KMEANS_PP_CENTERS;
BOWKMeansTrainer bowTrainer(dictionarySize, tc, retries, flags);
BOWImgDescriptorExtractor bowDE(descriptors, matcher);
//training data now
Mat features;
Mat img = imread("c:\\1.jpg", 0);
Mat img2 = imread("c:\\2.jpg", 0);
vector<KeyPoint> keypoints, keypoints2;
features->detect(img, keypoints);
features->detect(img2,keypoints2);
descriptor->compute(img, keypoints, features);
Mat features2;
descripto->compute(img2, keypoints2, features2);
bowTrainer.add(features);
bowTrainer.add(features2);
Mat dictionary = bowTrainer.cluster();
bowDE.setVocabulary(dictionary);
这是所有基于上BOW文件 。
我认为在这个阶段,我的系统培训。 和下一个步骤是预测。
这就是我不知道该怎么办。 如果我使用SVM
或NormalBayesClassifier
它们都使用术语火车和预测。
如何预测和火车后呢? 任何指导,将不胜感激。 如何分类的培训连接到我的`bowDE``功能?