Skip to content
Snippets Groups Projects
Commit 0c88cc69 authored by Sergi Pujol's avatar Sergi Pujol
Browse files

scene candidate evaluation added

parent cc62e523
No related branches found
No related tags found
1 merge request!4Resolve "Implementation of Falko lib"
This commit is part of merge request !4. Comments created here will be created in the context of that merge request.
......@@ -29,13 +29,7 @@ CornerFalko2d::~CornerFalko2d()
}
void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int scanInterval){
scanNumber=scanNumber+1;
if (scanNumber % scanInterval == 0){
falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams);
void CornerFalko2d::AddNewReferenceScene (falkolib::LaserScan scanFALKO){
// Extract keypoints
lastKeypointSet.clear();
......@@ -50,8 +44,6 @@ void CornerFalko2d::storeCorners (LaserScan scan,LaserScanParams scanParams, int
scansExtracted=scansExtracted+1;
}
}
void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){
......@@ -80,15 +72,7 @@ void CornerFalko2d::findLoopClosure(LaserScan scan,LaserScanParams scanParams){
matchingNumber=NewMatchingNumber;
matchingPosition=i;
}
/* for (auto& match : assoNN) {
if (match.second >= 0) {
int i1 = match.first;
int i2 = match.second;
std::cout << "i1: " << i1 << "\ti2: " << i2 << "\t keypoints distance: " << (keypoints1[i1].distance(keypoints2[i2])) << "\t CHG Distance: " << (cghDesc1[i1].distance(cghDesc2[i2])) << "\t BSC Distance: " << (bscDesc1[i1].distance(bscDesc2[i2])) << endl;
}
}
*/ }
}
}
......@@ -101,6 +85,26 @@ falkolib::LaserScan CornerFalko2d::convert2LaserScanFALKO(LaserScan scan,LaserSc
}
int CornerFalko2d::evaluateNewReferenceScene(LaserScan scan,LaserScanParams scanParams, int scanInterval){
scanNumber=scanNumber+1;
int NewSceneAdded=0;
if (scanNumber % scanInterval == 0){
falkolib::LaserScan scanFALKO= convert2LaserScanFALKO(scan, scanParams);
AddNewReferenceScene(scanFALKO);
NewSceneAdded=1;
}
return NewSceneAdded;
}
} // laserscanutils namespace
......@@ -48,6 +48,11 @@ namespace laserscanutils
class CornerFalko2d: public falkolib::FALKOExtractor, public falkolib::BSCExtractor<falkolib::FALKO>, public falkolib::NNMatcher<falkolib::FALKO>
{
private:
/** \brief Get and stores a scene to use as trained/Reference set of keypoints.
**/
void AddNewReferenceScene (falkolib::LaserScan scanFALKO);
public:
/**
* @brief Constructor
......@@ -65,10 +70,6 @@ public:
**/
~CornerFalko2d();
/** \brief Gets a set of landmarks/scenes to use as trained set.
**/
void storeCorners(LaserScan scan, LaserScanParams scanParams, int scanInterval);
/** \brief Extract landmark/scene (list of corners) from a given 2D scan
**/
......@@ -85,6 +86,13 @@ public:
**/
falkolib::LaserScan convert2LaserScanFALKO(LaserScan scan,LaserScanParams scanParams);
/** \brief Evaluates if New scene is a good candidate to be a Reference Scene. If it is detected as good,
* the scene is added and the functions returns 1. If it is not a good candidate, the function returns 0
* and the scene is not added.
**/
int evaluateNewReferenceScene(LaserScan scan,LaserScanParams scanParams, int scanInterval);
std::vector<std::vector<falkolib::FALKO>> keypointSets;
std::vector<falkolib::FALKO> lastKeypointSet;
std::vector<std::vector<falkolib::BSC>> descriptorSets;
......
......@@ -35,7 +35,7 @@ int main(int argc, char** argv)
CornerFalko2d cornerMatching;
cornerMatching.storeCorners(scan, laserParams, scanInterval);
cornerMatching.evaluateNewReferenceScene(scan, laserParams, scanInterval);
std::cout << "num keypoints1 extracted: " << cornerMatching.lastKeypointSet.size() << std::endl;
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment