Patch Graph Operations
(PCIPatchGraphExtract)
Short Description
Extract and merge patch graphs from animated point cloud data
Section A - Point Data Handling
The combobox allows one to create some test data sets. Alternatively, any animated point cloud data can be used.
However, it needs to be structured as follows: the animation node needs to be found at "root/data" and all frame
nodes need to be named "frame0", "frame1", ... Additionally, some channels are required throughout the patch graph extraction
process. These can automatically be added via the "Init" button. Finally, for testing purposes, noise can be added to
all points in the animation.
Section B - Settings
All settings required throughout the reconstruction process can be set here. For some datasets, the set of settings and
parameters can be set using the template combo box. Two important paramers are
-
"region growing epsilon": neighborhood size used to find connected regions which form the initial pathes after uncertain
points have been discarded via the tensor voting process.
-
"resampling spacing": minimum spacing between points as the result of the resampling process.
This section also gives access to the tensor voting tool. There, the "sigma" neighborhood parameter has to be adjusted to
the input data. Both the "curvature penalty" and the "surfaceness threshold" can usually remain unchanged.
Also, the outliers tool can be configured here. Usually, the default settings be be left unchanged here as well. In order
to apply tensor voting to the currently selected frame only, the "1"-button needs to be clicked; the "n"-button applies the
outlier detection to all frames in the animation. Also the number of outlier removal runs can be set. Three runs have
shown to lead to reasonable results in most cases.
Section C - Patch Graph Container Access
The result of the extraction process is a container (pretty much simply a list) of patch graphs. This section allows
to load or save a patch graph container. Clicking the "Info"-button will display some details about the container content on
the debug-console. Also the patch graph renderer, used for rendering of the patch graphs in the current frame can be
configured here.
Section D - Extraction Routines
This section provides access to the actual extraction functionality. The first step in the extraction process applies tensor
voting to all frames in the animation ("1"-button for tensow voting on the current frame, "n"-button for tensor voting on all
frames). In order to work properly, the "sigma"-parameter in the tensor voting tool needs to be set appropriately (see
Section B). The result of the tensor voting process can be visualized by clicking on the "Color:saliency"-button in Section
G: all invalid points are marked in red.
The second step of the extraction process is to apply region growing on the valid points in each frame. Therefore, the "region
growing"-parameter in Section B needs to be set appropriately. Again, via the "1"-button extraction on the current frame only is performed,
the "n"-button accounts for a complete patch graph container for the whole animation. Finally, it is required to save the
animation sequence in the patch graph container. This is done by clicking the "Set animSeq"-button (automatically when pressing
the "n"-button). Before saving the extracted patches to the patch graph container, they get resampled using the parameter specified in
"resampling spacing" in Section B.
Section E - Patch Graph Merge
This section requires a valid patch graph container as input. It can either be created using the functionality in Section
D or loaded from a file using the buttons in Section C. The next merge can be chosen in two ways. Either the patch graph
pair with the highest merge score can be used or the pair can be selected manually. If the checkbox "show next merge candidates"
in Section F is checked, the two next merge candidates start blinking. If the "highest score" selection of the next merge
candidates is selected then several merges in a row can be applied (the number has to be set in the "#steps"-field).
Section F - Rendering
This section controls the rendering and visualization of all data parts which occur throughout the process. They are
mainly required when tuning the user-specified parameters for the extration and the merge part. Most important are the
"influence radius" (equals the "sigma"-parameter in the tensor voting tool) and "region growing expsilon" in the "Show"
combo box. They show the neighborhood size and allow to easily find/tune these parameters. "renderScale" is a scaling
parameter used in most visualization objects. "debugPointID" is the index of the point in the current frame used for
the visualization (e.g. the point whose sigma-neighborhood gets visualized). The input data and patch graph rendering can
be switched on and off using the according check boxes. "Show next merge candidates" causes the two next merge patch graphs
to be highlighted as blinking. If the current frame contains more than one patch graphs, either all patch graphs can be shown
(-1 in the "single frame" field) or a selected number.
The rendering settings for the patch graphs is configured via the patch graph rendering tool to be accessed via Section C.
Section G - Debug Functionality
Small tools which are not part of the main pipeline but offer functionality which is used thoughout the extraction/merge
process are accessible via this section. Since these tools change functionality rather ofthen, they are not explained in
this help.