MRPT  1.9.9
mrpt::pbmap::SemanticClustering Class Reference

Detailed Description

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 45 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
 
PbMapmPbMap
 
std::vector< unsigned > neighborGroups
 
std::map< unsigned, std::vector< unsigned > > groups
 
std::map< unsigned, std::vector< unsigned > > vicinity
 
mrpt::math::CMatrixF connectivity_matrix
 
std::vector< unsigned > planesVicinity_order
 

Friends

class PbMapMaker
 

Constructor & Destructor Documentation

◆ SemanticClustering()

mrpt::pbmap::SemanticClustering::SemanticClustering ( PbMap mPbM)
inline

Definition at line 331 of file SemanticClustering.h.

References DEFAULT_VECTOR_U, and vicinity.

Member Function Documentation

◆ arrangeNewGroups()

void mrpt::pbmap::SemanticClustering::arrangeNewGroups ( std::vector< std::vector< uint32_t >> &  parts)
inlineprivate

Arrange the semantic groups

Definition at line 166 of file SemanticClustering.h.

References DEFAULT_VECTOR_U, groups, mPbMap, neighborGroups, planesVicinity_order, vicinity, and mrpt::pbmap::PbMap::vPlanes.

Referenced by evalPartition().

Here is the caller graph for this function:

◆ buildCoVisibilityMatrix()

void mrpt::pbmap::SemanticClustering::buildCoVisibilityMatrix ( )
inlineprivate

Build the co-visibility matrix

Definition at line 123 of file SemanticClustering.h.

References connectivity_matrix, currentSemanticGroup, groups, min, mPbMap, neighborGroups, planesVicinity_order, mrpt::math::CMatrixDynamic< T >::resize(), mrpt::math::MatrixVectorBase< Scalar, Derived >::setZero(), vicinity, and mrpt::pbmap::PbMap::vPlanes.

Here is the call graph for this function:

◆ buildProximityMatrix()

void mrpt::pbmap::SemanticClustering::buildProximityMatrix ( )
inlineprivate

Build the proximity matrix

Definition at line 66 of file SemanticClustering.h.

References connectivity_matrix, currentSemanticGroup, groups, mPbMap, neighborGroups, planesVicinity_order, mrpt::math::CMatrixDynamic< T >::resize(), mrpt::math::MatrixVectorBase< Scalar, Derived >::setZero(), vicinity, and mrpt::pbmap::PbMap::vPlanes.

Referenced by evalPartition().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ evalPartition()

int mrpt::pbmap::SemanticClustering::evalPartition ( std::set< unsigned > &  observedPlanes)
inline

Evaluate the partition of the current semantic groups into new ones with minNcut

Definition at line 340 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().

Here is the call graph for this function:
Here is the caller graph for this function:

Friends And Related Function Documentation

◆ PbMapMaker

friend class PbMapMaker
friend

Definition at line 328 of file SemanticClustering.h.

Member Data Documentation

◆ connectivity_matrix

mrpt::math::CMatrixF mrpt::pbmap::SemanticClustering::connectivity_matrix
private

◆ currentSemanticGroup

unsigned mrpt::pbmap::SemanticClustering::currentSemanticGroup
private

◆ groups

std::map<unsigned, std::vector<unsigned> > mrpt::pbmap::SemanticClustering::groups
private

◆ mPbMap

PbMap& mrpt::pbmap::SemanticClustering::mPbMap
private

◆ neighborGroups

std::vector<unsigned> mrpt::pbmap::SemanticClustering::neighborGroups
private

◆ planesVicinity_order

std::vector<unsigned> mrpt::pbmap::SemanticClustering::planesVicinity_order
private

◆ vicinity

std::map<unsigned, std::vector<unsigned> > mrpt::pbmap::SemanticClustering::vicinity
private



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: ce1a28c9f Fri Aug 23 08:02:09 2019 +0200 at vie ago 23 08:10:11 CEST 2019