Tôi có một thư mục hình ảnh của một chiếc xe từ mọi góc độ. Tôi muốn sử dụng túi của các từ tiếp cận để đào tạo hệ thống trong việc nhận ra chiếc xe. Sau khi đào tạo xong, tôi muốn rằng nếu một hình ảnh của chiếc xe đó được cho nó sẽ có thể nhận ra nó.Làm thế nào để đào tạo và dự đoán sử dụng túi từ?
Tôi đã cố gắng tìm hiểu hàm BOW trong opencv để thực hiện công việc này và đã đạt đến cấp độ mà tôi không biết phải làm gì bây giờ và một số hướng dẫn sẽ được đánh giá cao.
Đây là mã của tôi mà tôi sử dụng để làm cho túi chữ:
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);
này được tất cả dựa trên BOW documentation.
Tôi nghĩ ở giai đoạn này hệ thống của tôi được đào tạo. và bước tiếp theo là dự đoán.
đây là nơi tôi không biết phải làm gì. Nếu tôi sử dụng SVM
hoặc NormalBayesClassifier
, cả hai đều sử dụng thuật ngữ đào tạo và dự đoán.
Làm cách nào để dự đoán và đào tạo sau này? Bất kỳ sự hướng dẫn sẽ được nhiều đánh giá cao. Làm cách nào để kết nối việc đào tạo trình phân loại với hàm `bowDE`` của tôi?
Bạn đã quyết định các giá trị cho TermCriteria và dictionarySize, tc, retries, flags như thế nào? – definera