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 48 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< std::vector< uint32_t >> &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 370 of file SemanticClustering.h.
References DEFAULT_VECTOR_U, and vicinity.
|
inlineprivate |
Arrange the semantic groups
Definition at line 191 of file SemanticClustering.h.
References DEFAULT_VECTOR_U, groups, mPbMap, neighborGroups, planesVicinity_order, vicinity, and mrpt::pbmap::PbMap::vPlanes.
Referenced by evalPartition().
|
inlineprivate |
Build the co-visibility matrix
Definition at line 126 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 69 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 379 of file SemanticClustering.h.
References arrangeNewGroups(), buildProximityMatrix(), connectivity_matrix, currentSemanticGroup, 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 367 of file SemanticClustering.h.
|
private |
Definition at line 62 of file SemanticClustering.h.
Referenced by buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 51 of file SemanticClustering.h.
Referenced by buildCoVisibilityMatrix(), buildProximityMatrix(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and evalPartition().
|
private |
Definition at line 57 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), mrpt::pbmap::PbMapMaker::detectPlanesCloud(), and evalPartition().
|
private |
Definition at line 53 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 55 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and evalPartition().
|
private |
Definition at line 64 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), and buildProximityMatrix().
|
private |
Definition at line 60 of file SemanticClustering.h.
Referenced by arrangeNewGroups(), buildCoVisibilityMatrix(), buildProximityMatrix(), and SemanticClustering().
Page generated by Doxygen 1.8.17 for MRPT 1.9.9 Git: ad3a9d8ae Tue May 1 23:10:22 2018 -0700 at miƩ 12 jul 2023 10:03:34 CEST |