This class arranges the planes of a PbMap into groups according to a co-visibility measure The groups are divided using graph minimum normaized-cut (minNcut). The resulting groups can be used to represent semantic groups corresponding human identifiable structures such as rooms, or environments as an office. These groups of closely related planes can be used also for relocalization.
Definition at line 49 of file SemanticClustering.h.
#include <mrpt/pbmap/SemanticClustering.h>
Public Member Functions | |
SemanticClustering (PbMap &mPbM) | |
int | evalPartition (std::set< unsigned > &observedPlanes) |
Private Member Functions | |
void | buildProximityMatrix () |
void | buildCoVisibilityMatrix () |
void | arrangeNewGroups (std::vector< mrpt::vector_uint > &parts) |
Private Attributes | |
unsigned | currentSemanticGroup |
PbMap & | mPbMap |
std::vector< unsigned > | neighborGroups |
std::map< unsigned, std::vector< unsigned > > | groups |
std::map< unsigned, std::vector< unsigned > > | vicinity |
mrpt::math::CMatrix | connectivity_matrix |
std::vector< unsigned > | planesVicinity_order |
Friends | |
class | PbMapMaker |
|
inline |
Definition at line 371 of file SemanticClustering.h.
References DEFAULT_VECTOR_U, and vicinity.
|
inlineprivate |
Arrange the semantic groups
Definition at line 192 of file SemanticClustering.h.
References DEFAULT_VECTOR_U, for(), groups, mPbMap, neighborGroups, planesVicinity_order, vicinity, and mrpt::pbmap::PbMap::vPlanes.
Referenced by evalPartition().
|
inlineprivate |
Build the co-visibility matrix
Definition at line 127 of file SemanticClustering.h.
References connectivity_matrix, currentSemanticGroup, groups, min, mPbMap, neighborGroups, planesVicinity_order, vicinity, and mrpt::pbmap::PbMap::vPlanes.
|
inlineprivate |
Build the proximity matrix
Definition at line 70 of file SemanticClustering.h.
References connectivity_matrix, currentSemanticGroup, groups, mPbMap, neighborGroups, planesVicinity_order, vicinity, and mrpt::pbmap::PbMap::vPlanes.
Referenced by evalPartition().
|
inline |
Evaluate the partition of the current semantic groups into new ones with minNcut
Definition at line 380 of file SemanticClustering.h.
References arrangeNewGroups(), buildProximityMatrix(), connectivity_matrix, currentSemanticGroup, for(), groups, mPbMap, neighborGroups, mrpt::graphs::CGraphPartitioner< GRAPH_MATRIX, num_t >::RecursiveSpectralPartition(), and mrpt::pbmap::PbMap::vPlanes.
Referenced by mrpt::pbmap::PbMapMaker::run().
|
friend |
Definition at line 368 of file SemanticClustering.h.
|
private |
Definition at line 63 of file SemanticClustering.h.
Referenced by buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 52 of file SemanticClustering.h.
Referenced by buildCoVisibilityMatrix(), buildProximityMatrix(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and evalPartition().
|
private |
Definition at line 58 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and evalPartition().
|
private |
Definition at line 54 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 56 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 65 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), and buildProximityMatrix().
|
private |
Definition at line 61 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and SemanticClustering().
Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ae4571287 Thu Nov 23 00:06:53 2017 +0100 at dom oct 27 23:51:55 CET 2019 |