This class finds the best correspondence between the planes of two subgraphs (i.e. sets of neighbor planes). It relies on an interpretation tree employing geometric restrictions that are represented as a set of unary and binary constraints.
Definition at line 37 of file SubgraphMatcher.h.
#include <mrpt/pbmap/SubgraphMatcher.h>
Public Member Functions | |
SubgraphMatcher () | |
bool | evalUnaryConstraints (Plane &plane1, Plane &plane2, PbMap &trgPbMap, bool useStructure=false) |
bool | evalUnaryConstraints2D (Plane &plane1, Plane &plane2, PbMap &trgPbMap, bool useStructure=false) |
bool | evalUnaryConstraintsOdometry (Plane &plane1, Plane &plane2, PbMap &trgPbMap, bool useStructure=false) |
bool | evalUnaryConstraintsOdometry2D (Plane &plane1, Plane &plane2, PbMap &trgPbMap, bool useStructure=false) |
bool | evalBinaryConstraints (Plane &plane1, Plane &plane2, Plane &planeA, Plane &planeB) |
bool | evalBinaryConstraintsOdometry (Plane &plane1, Plane &plane2, Plane &planeA, Plane &planeB) |
void | exploreSubgraphTreeR (std::set< unsigned > &evalRef, std::set< unsigned > &evalCheck, std::map< unsigned, unsigned > &matched) |
void | exploreSubgraphTreeR_Area (std::set< unsigned > &evalRef, std::set< unsigned > &evalCheck, std::map< unsigned, unsigned > &matched) |
void | setSourceSubgraph (Subgraph &subgSrc) |
void | setTargetSubgraph (Subgraph &subgTrg) |
std::map< unsigned, unsigned > | compareSubgraphs (Subgraph &subgraphSource, Subgraph &subgraphTarget, const int option=0) |
float | calcAreaMatched (std::map< unsigned, unsigned > &matched_planes) |
Public Attributes | |
std::vector< std::map< unsigned, unsigned > > | alreadyExplored |
Subgraph * | subgraphSrc |
Subgraph * | subgraphTrg |
int | nCheckConditions |
int | totalUnary |
int | semanticPair |
int | rejectSemantic |
config_heuristics | configLocaliser |
Private Member Functions | |
float | calcAreaUnmatched (std::set< unsigned > &unmatched_planes) |
Private Attributes | |
std::map< unsigned, unsigned > | winnerMatch |
float | areaWinnerMatch |
std::vector< std::vector< int8_t > > | hashUnaryConstraints |
mrpt::pbmap::SubgraphMatcher::SubgraphMatcher | ( | ) |
float mrpt::pbmap::SubgraphMatcher::calcAreaMatched | ( | std::map< unsigned, unsigned > & | matched_planes | ) |
Return the total area of the matched planes in the frame source.
|
private |
std::map<unsigned,unsigned> mrpt::pbmap::SubgraphMatcher::compareSubgraphs | ( | Subgraph & | subgraphSource, |
Subgraph & | subgraphTarget, | ||
const int | option = 0 |
||
) |
Returns a list with plane matches from subgraphSrc to subgraphTrg.
Referenced by setTargetSubgraph().
bool mrpt::pbmap::SubgraphMatcher::evalBinaryConstraints | ( | Plane & | plane1, |
Plane & | plane2, | ||
Plane & | planeA, | ||
Plane & | planeB | ||
) |
Check if the two pair of planes plane1-plane2 ans planeA-planeB fulfill the same geometric relationship, and so, if they are candidates to be the same planes.
bool mrpt::pbmap::SubgraphMatcher::evalBinaryConstraintsOdometry | ( | Plane & | plane1, |
Plane & | plane2, | ||
Plane & | planeA, | ||
Plane & | planeB | ||
) |
bool mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints | ( | Plane & | plane1, |
Plane & | plane2, | ||
PbMap & | trgPbMap, | ||
bool | useStructure = false |
||
) |
Check if the two input planes fulfill a set of geometric constraints, and so, if they are candidates to be the same plane.
bool mrpt::pbmap::SubgraphMatcher::evalUnaryConstraints2D | ( | Plane & | plane1, |
Plane & | plane2, | ||
PbMap & | trgPbMap, | ||
bool | useStructure = false |
||
) |
bool mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry | ( | Plane & | plane1, |
Plane & | plane2, | ||
PbMap & | trgPbMap, | ||
bool | useStructure = false |
||
) |
bool mrpt::pbmap::SubgraphMatcher::evalUnaryConstraintsOdometry2D | ( | Plane & | plane1, |
Plane & | plane2, | ||
PbMap & | trgPbMap, | ||
bool | useStructure = false |
||
) |
void mrpt::pbmap::SubgraphMatcher::exploreSubgraphTreeR | ( | std::set< unsigned > & | evalRef, |
std::set< unsigned > & | evalCheck, | ||
std::map< unsigned, unsigned > & | matched | ||
) |
Find the best combination of planes correspondences given two subgraphs represeting local neighborhoods of planes.
void mrpt::pbmap::SubgraphMatcher::exploreSubgraphTreeR_Area | ( | std::set< unsigned > & | evalRef, |
std::set< unsigned > & | evalCheck, | ||
std::map< unsigned, unsigned > & | matched | ||
) |
|
inline |
Set source (current) subgraph.
Definition at line 62 of file SubgraphMatcher.h.
References subgraphSrc.
|
inline |
Set target subgraph.
Definition at line 65 of file SubgraphMatcher.h.
References compareSubgraphs(), and subgraphTrg.
std::vector<std::map<unsigned,unsigned> > mrpt::pbmap::SubgraphMatcher::alreadyExplored |
List of combinations that have been explored in the interpretation tree.
Definition at line 55 of file SubgraphMatcher.h.
|
private |
Definition at line 93 of file SubgraphMatcher.h.
config_heuristics mrpt::pbmap::SubgraphMatcher::configLocaliser |
Set of thresholds for PbMap matching.
Definition at line 87 of file SubgraphMatcher.h.
|
private |
Hash table for unary constraints.
Definition at line 96 of file SubgraphMatcher.h.
int mrpt::pbmap::SubgraphMatcher::nCheckConditions |
Definition at line 77 of file SubgraphMatcher.h.
int mrpt::pbmap::SubgraphMatcher::rejectSemantic |
Definition at line 81 of file SubgraphMatcher.h.
int mrpt::pbmap::SubgraphMatcher::semanticPair |
Definition at line 80 of file SubgraphMatcher.h.
Subgraph* mrpt::pbmap::SubgraphMatcher::subgraphSrc |
One subgraph to be matched.
Definition at line 72 of file SubgraphMatcher.h.
Referenced by setSourceSubgraph().
Subgraph* mrpt::pbmap::SubgraphMatcher::subgraphTrg |
The other subgraph to be matched.
Definition at line 75 of file SubgraphMatcher.h.
Referenced by setTargetSubgraph().
int mrpt::pbmap::SubgraphMatcher::totalUnary |
Definition at line 79 of file SubgraphMatcher.h.
|
private |
List of planes correspondences.
Definition at line 92 of file SubgraphMatcher.h.
Page generated by Doxygen 1.8.11 for MRPT 1.3.2 SVN:Unversioned directory at Sun May 1 08:45:24 UTC 2016 |