-
Notifications
You must be signed in to change notification settings - Fork 96
Open
Description
Hello @dorian3d,
First of all thank you for this great library.
I modified the demo.cpp in DBoW2 that works on Orb to train feature vectors in order to generate a vocabulary similar to the one used in DLoopDetector.
Here are the two functions I'm using:
void loadFeatures(vector<vector<BRIEF::bitset > > &features)
{
features.clear();
features.reserve(NIMAGES);
cout << "Extracting BRIEF features..." << endl;
for(int i = 1; i < 25; ++i)
{
stringstream ss;
ss << "/home/thesidjway/train2/DBoW2/build/brief_train/frame" << setfill('0') << setw(4) << i << ".jpg";
cout << ss.str() << endl;
cv::Mat image = cv::imread(ss.str(), 0);
cv::Mat mask;
vector<cv::KeyPoint> keypoints, kpt;
cv::Mat descriptors;
vector<BRIEF::bitset> descriptors_1;
DVision::BRIEF m_brief;
cv::FAST(image, kpt, 20, true);
m_brief.compute(image, kpt, descriptors_1);
features.push_back(descriptors_1);
}
}
void testVocCreation(const vector<vector<BRIEF::bitset > > &features)
{
// branching factor and depth levels
const int k = 10;
const int L = 6;
const WeightingType weight = TF_IDF;
const ScoringType score = L1_NORM;
BriefVocabulary voc(k, L, weight, score);
cout << "Creating a small " << k << "^" << L << " vocabulary..." << endl;
voc.create(features);
cout << "... done!" << endl;
cout << "Vocabulary information: " << endl
<< voc << endl << endl;
// save the vocabulary to disk
cout << endl << "Saving vocabulary..." << endl;
voc.save("/home/thesidjway/brief_k10L6_edited.voc.gz");
cout << "Done" << endl;
}
The functions compile and run just fine and I am able to output a voc.gz file but when I import the file into the DLoopDetector, it just crashes.
Could you please help me in this regard?
Also can existing vocabularies be appended with new BoWvectors in any way?
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels