overview project page about

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 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.


Overview project page about