DenseCRFSegmentationProcessor.h File Reference
#include <ArmarXCore/core/Component.h>
#include <ArmarXCore/core/application/properties/PluginAll.h>
#include <ArmarXCore/util/CPPUtility/TripleBuffer.h>
#include <ArmarXCore/util/CPPUtility/ConfigIntrospection/create_macro.h>
#include <ArmarXCore/interface/observers/ObserverInterface.h>
#include <RobotAPI/interface/visualization/DebugDrawerInterface.h>
#include <ArmarXCore/core/services/tasks/TaskUtil.h>
#include <ArmarXGui/interface/RemoteGuiInterface.h>
#include <ArmarXGui/libraries/RemoteGui/WidgetProxy.h>
#include <ArmarXGui/libraries/RemoteGui/WidgetBuilder.h>
#include <ArmarXGui/libraries/ArmarXGuiComponentPlugins/RemoteGuiComponentPlugin.h>
#include <VisionX/interface/components/DenseCRFSegmentationProcessorInterface.h>
#include <VisionX/components/pointcloud_core/PointCloudProcessor.h>
#include <VisionX/libraries/PointCloudGraph/voxel_grid_graph_builder.h>
#include <VisionX/libraries/PointCloudGraph/point_cloud_graph.h>
#include <VisionX/libraries/PointCloudGraph/PointXYZRGBLNormal.h>
#include <VisionX/libraries/PointCloudGraph/common.h>
#include <pcl/point_types.h>
#include <boost/graph/filtered_graph.hpp>
#include <ArmarXCore/util/CPPUtility/trace.h>
#include "DenseGraphCRF.hpp"
#include "Common.h"
+ Include dependency graph for DenseCRFSegmentationProcessor.h:
+ This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Classes

class  DenseCRFSegmentationProcessor
 Brief description of class DenseCRFSegmentationProcessor. More...
 
class  DenseCRFSegmentationProcessorPropertyDefinitions
 

Namespaces

 armarx
 This file offers overloads of toIce() and fromIce() functions for STL container types.
 

Functions

 ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE (armarx::densecrf::config, data,(armarx::densecrf::config::general, general),(armarx::densecrf::config::output, out),(armarx::densecrf::config::edge_comp, edge))
 
 ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE (armarx::densecrf::config, edge_comp,(bool, use_xyz, AX_DESCRIPTION("If true xyz values are used for edge computation"), AX_DEFAULT(true)),(float, xyz_influence, AX_DESCRIPTION("Weight for the influence of position in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100)),(bool, use_normals, AX_DESCRIPTION("If true normal values are used for edge computation"), AX_DEFAULT(true)),(float, normals_influence, AX_DESCRIPTION("Weight for the influence of normals in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100)),(bool, use_rgb, AX_DESCRIPTION("If true RGB values are used for edge computation"), AX_DEFAULT(true)),(float, rgb_influence, AX_DESCRIPTION("Weight for the influence of color in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100)),(bool, use_curvature, AX_DESCRIPTION("If true curvature values are used for edge computation"), AX_DEFAULT(true)),(float, curvature_influence, AX_DESCRIPTION("Weight for the influence of curvature in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100)),(bool, use_time, AX_DESCRIPTION("If true time values are used for edge computation"), AX_DEFAULT(true)),(float, time_influence, AX_DESCRIPTION("Weight for the influence of time in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100)),(bool, use_combined, AX_DESCRIPTION("If true the influence values are combined before they are given to DenseCRF"), AX_DEFAULT(true)),(float, potts_compatibilty, AX_DESCRIPTION("Weight factor for the Potts Compatibility"), AX_DEFAULT(10), AX_MIN(0.5), AX_MAX(50), AX_DECIMALS(1), AX_STEPS(200)))
 
 ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE (armarx::densecrf::config, general,(int, num_classes, AX_DESCRIPTION("Number of maximal object classes in an image"), AX_DEFAULT(20), AX_MIN(1), AX_MAX(255), AX_NO_REMOTE_GUI()),(float, ground_truth_prob, AX_DESCRIPTION("Number of maximal object classes in an image"), AX_DEFAULT(0.5), AX_MIN(0), AX_MAX(1), AX_DECIMALS(2), AX_STEPS(100)),(bool, use_vertex_only_graph, AX_DESCRIPTION("If true, the graph is not computed via a voxel grid and" " therefore has no edges between the vertices. This also means the" " curvature is not signed in this case."), AX_DEFAULT(false)),(bool, use_approximate_voxels, AX_DESCRIPTION("If true & UseVertexOnlyGraph is true, the downsampling" " uses the ApproximateVoxelGrid for downsampling instead of the normal" "VoxelGrid"), AX_DEFAULT(false)),(float, voxel_resolution, AX_DESCRIPTION("Resolution of the Voxels used as Vertices of the Graph"), AX_DEFAULT(0.05), AX_MIN(0.01), AX_MAX(.02), AX_DECIMALS(3), AX_STEPS(100)),(int, map_iterations, AX_DESCRIPTION("Number of iterations used for the map"), AX_DEFAULT(5), AX_MIN(1), AX_MAX(100)))
 
 ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE (armarx::densecrf::config, output,(bool, provide_graph_pclouds, AX_DESCRIPTION("If true a segmentation for each timestep" "is provided as result cloud"), AX_DEFAULT(false), AX_NO_REMOTE_GUI()),(bool, provide_confidence_pclouds, AX_DESCRIPTION("If true a confidence for each timestep" "is provided as result cloud"), AX_DEFAULT(false), AX_NO_REMOTE_GUI()),(bool, colorize_confidence_pclouds, AX_DESCRIPTION("If true the confidence pclouds are colorized"), AX_DEFAULT(false), AX_NO_REMOTE_GUI()))
 

Function Documentation

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE() [1/4]

ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE ( armarx::densecrf::config  ,
data  ,
(armarx::densecrf::config::general, general)  ,
(armarx::densecrf::config::output, out)  ,
(armarx::densecrf::config::edge_comp, edge)   
)

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE() [2/4]

ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE ( armarx::densecrf::config  ,
edge_comp  ,
(bool, use_xyz, AX_DESCRIPTION("If true xyz values are used for edge computation"), AX_DEFAULT(true))  ,
(float, xyz_influence, AX_DESCRIPTION("Weight for the influence of position in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100))  ,
(bool, use_normals, AX_DESCRIPTION("If true normal values are used for edge computation"), AX_DEFAULT(true))  ,
(float, normals_influence, AX_DESCRIPTION("Weight for the influence of normals in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100))  ,
(bool, use_rgb, AX_DESCRIPTION("If true RGB values are used for edge computation"), AX_DEFAULT(true))  ,
(float, rgb_influence, AX_DESCRIPTION("Weight for the influence of color in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100))  ,
(bool, use_curvature, AX_DESCRIPTION("If true curvature values are used for edge computation"), AX_DEFAULT(true))  ,
(float, curvature_influence, AX_DESCRIPTION("Weight for the influence of curvature in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100))  ,
(bool, use_time, AX_DESCRIPTION("If true time values are used for edge computation"), AX_DEFAULT(true))  ,
(float, time_influence, AX_DESCRIPTION("Weight for the influence of time in the edge computation"), AX_DEFAULT(0), AX_MIN(-2), AX_MAX(2), AX_DECIMALS(1), AX_STEPS(100))  ,
(bool, use_combined, AX_DESCRIPTION("If true the influence values are combined before they are given to DenseCRF"), AX_DEFAULT(true))  ,
(float, potts_compatibilty, AX_DESCRIPTION("Weight factor for the Potts Compatibility"), AX_DEFAULT(10), AX_MIN(0.5), AX_MAX(50), AX_DECIMALS(1), AX_STEPS(200))   
)

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE() [3/4]

ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE ( armarx::densecrf::config  ,
general  ,
(int, num_classes, AX_DESCRIPTION("Number of maximal object classes in an image"), AX_DEFAULT(20), AX_MIN(1), AX_MAX(255), AX_NO_REMOTE_GUI())  ,
(float, ground_truth_prob, AX_DESCRIPTION("Number of maximal object classes in an image"), AX_DEFAULT(0.5), AX_MIN(0), AX_MAX(1), AX_DECIMALS(2), AX_STEPS(100))  ,
(bool, use_vertex_only_graph, AX_DESCRIPTION("If true, the graph is not computed via a voxel grid and" " therefore has no edges between the vertices. This also means the" " curvature is not signed in this case."), AX_DEFAULT(false))  ,
(bool, use_approximate_voxels, AX_DESCRIPTION("If true & UseVertexOnlyGraph is true, the downsampling" " uses the ApproximateVoxelGrid for downsampling instead of the normal" "VoxelGrid"), AX_DEFAULT(false))  ,
(float, voxel_resolution, AX_DESCRIPTION("Resolution of the Voxels used as Vertices of the Graph"), AX_DEFAULT(0.05), AX_MIN(0.01), AX_MAX(.02), AX_DECIMALS(3), AX_STEPS(100))  ,
(int, map_iterations, AX_DESCRIPTION("Number of iterations used for the map"), AX_DEFAULT(5), AX_MIN(1), AX_MAX(100))   
)

◆ ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE() [4/4]

ARMARX_CONFIG_STRUCT_DEFINE_ADAPT_CONFIGURE ( armarx::densecrf::config  ,
output  ,
(bool, provide_graph_pclouds, AX_DESCRIPTION("If true a segmentation for each timestep" "is provided as result cloud"), AX_DEFAULT(false), AX_NO_REMOTE_GUI())  ,
(bool, provide_confidence_pclouds, AX_DESCRIPTION("If true a confidence for each timestep" "is provided as result cloud"), AX_DEFAULT(false), AX_NO_REMOTE_GUI())  ,
(bool, colorize_confidence_pclouds, AX_DESCRIPTION("If true the confidence pclouds are colorized"), AX_DEFAULT(false), AX_NO_REMOTE_GUI())   
)