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.
| 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 |
| 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.9.1 for MRPT 1.4.0 SVN: at Fri Sep 3 01:11:30 UTC 2021 |