Tutorials

Video tutorials can be found in our YT YouTube channel.

This is an application-based manual for the GigaMesh Software framework. It shows basic processing steps typically and also very often used within our projects. Many of the steps can be combined for more advanced tasks. Theoretical concepts can be found in the publications section. For earlier versions of the manual click here.

Topics found in the manual:

11. MSII Filtering - Feature Vectors

Note, that there is an alternate tutorial for MSII Filtering: Cuneiform Characters & Fingerprints on YouTube. As shown in the video the feature vectors can be computed using the Graphical User Interface (GUI). However, this tutorial explains the usage on the Command Line Interface (CLI).

Multi-Scale Integral Invariant (MSII) filtering is a core function of GigaMesh implemented to visualize and extract smallest details in 3D-datasets like faint fingerprints or damaged cuneiform characters. See [Mar12] for the mathematical and algorithmic background.

MSII filtering is applied to each vertex of the mesh. The result is a feature vector per vertex. Each element of the vector describes the curvature within a sphere, which is centered at the vertex. The radius of the sphere defines the scale of feature detected by the filter. Therefore a radius (-r) has to be given by the user, which has to be equal or larger than the largest surface feature to be detected. By default 16 smaller spheres are used to compute smaller features using smaller spheres. The number of scales can be changed (-n). Having a file called mesh.ply with features having a size of 2 millimeter is filtered by calling:

gigamesh-featurevectors -r 2 mesh.ply

Note: MSII filtering is computationally expensive and can take up to severall hours. After each batch of filtering 5.000 vertices an estimate for the processing time will be shown. Multi-threading is automatically enabled. One core of your CPU will kept free to keep your computer useable for other tasks. gigamesh-featurevectors --help provides information about further options.

On Linux it is recommended to use screen for MSII filtering or other means to prevent the computation from being stopped e.g. nohup gigamesh-featurevectors -r 2 mesh.ply &.

Finally, there will be severall files generated depending on the command line parameters:

Finally, there should have appeared six additional files adjacent to the data file. The naming convention added the radius _r1.0, the number of scales in power of two _r1.0 means 2^4 = 16 equidistant radii in the interval [r, 0] , and a rasterization of e.g. the volume with e.g. _v256 means 256 voxels along the diameter of the biggest sphere. One of the files is a short text file containing information on the process itself (with the suffix info.txt), four of them store the feature vectors separated in only volume or only surface or both, or store the normals. They have the suffix *.mat, where the wildcard * stands for surface, volume, vs or normal. These files can be used to re-import feature vectors if they have been discarded when saving other information important for a certain visualization. The sixth data file is a *.ply -file which also contains the feature vectors and can be processed by the graphical user interface of GigaMesh for visualization purposes.

Processing multiple files

Using Linux is straight forward and multiple files can be processed with the same given parameters using wildcards, e.g. gigamesh-featurevectors -r 2 *.ply will apply MSII filtering for a radius of 2 for all files in Stanford Polygon (PLY) format.

Windows does not support wildcards, but the optional PowerShell provides similar function. So the equivalent command is gigamesh-featurevectors.exe -r 2 -e 4 $(ls *.ply | % {$_.FullName})