`
`Multiple 3D Images Merging Software
`
`Reference Guide Version 8.0 for Windows
`July 2003
`
`InnovMetric Software Inc.
`2014 Jean-Talon Nord, Suite 310
`Ste-Foy, Québec, Canada, G1N 4N6
`Tel.: (418) 688-2061 Fax: (418) 688-3001
`
`IMMerge is a trademark of InnovMetric Software Inc.
`
`Copyright © 1995-2003 by InnovMetric Software Inc. All rights
`reserved. Reproduction in whole or in part in any way without written
`permission from InnovMetric Software is strictly prohibited.
`
`0001
`
`EX1090
`Yita v. MacNeil
`IPR2020-01142
`
`
`
`Contents
`
`Introduction
`
`Contents of the IMMerge Reference Guide 8.0 ................................................................ii
`Related documentation .....................................................................................................ii
`Technical support ..............................................................................................................ii
`
`1. Using IMMerge
`
`1.1 Specifying required input parameters ..................................................................... 1-2
`1.1.1 Specifying an IMAlign group directory name ............................................ 1-2
`1.1.2 Setting the maximum distance between two overlapping surface areas .. 1-2
`1.1.3 Setting the surface sampling step ............................................................ 1-3
`1.1.4 Specifying the output model format .......................................................... 1-3
`1.2 Specifying optional input parameters ...................................................................... 1-3
`1.2.1 Smoothing the generated high-resolution polygonal mesh ...................... 1-3
`1.2.2 Specifying a tolerance for reducing the number of triangles .................... 1-4
`1.2.3 Controlling the subdivision of the merging job .......................................... 1-5
`1.2.4 Specifying the output model filename ...................................................... 1-6
`1.2.5 Setting memory management parameters ............................................... 1-6
`1.2.6 Miscellaneous ........................................................................................... 1-7
`1.3 Merging color 3D images ........................................................................................ 1-7
`1.4 The merging phase illustrated ................................................................................. 1-7
`1.4.1 Specifying the merge parameters ............................................................ 1-7
`1.4.2 Visualizing the merging process ............................................................... 1-8
`1.5 IMMerge command-line parameters ....................................................................... 1-8
`
`i
`
`0002
`
`
`
`Introduction
`
`The IMMerge Reference Guide 8.0 is intended for users of IMMerge Version 8.0 for
`Windows. IMMerge is a software tool that merges a set of 3D images into a unified
`polygonal mesh.
`
`Contents of the IMMerge Reference Guide 8.0
`
`This document contains one section:
`
`(cid:134)
`
`1. Using IMMerge
`
`This section presents IMMerge, a fully automated software tool that merges multiple 3D
`images into a global polygonal surface.
`
`Related documentation
`
`The PolyWorks Reference Guide presents the PolyWorks software suite, describes the
`installation procedure, and shows how to invoke IMMerge from the PolyWorks interface.
`
`Technical support
`
`Report any problems or send your suggestions directly to InnovMetric Software at the
`address on the front page of this document. The InnovMetric Software technical team can
`also be contacted by e-mail at support@innovmetric.com.
`
`ii
`
`0003
`
`
`
`1. Using IMMerge
`
`IMMerge is a completely automated software tool for merging a set of aligned 3D images
`into a global surface triangulation model. IMMerge only requires the setting of two intui-
`tive geometrical parameters. In addition to being an automated process, IMMerge can
`merge any number of 3D images for any kind of object topology.
`
`IMMerge is accessed from the IMMerge tab of the PolyWorks Module Access Center,
`shown in Figure 1.1. IMMerge is also a command-line program (see Section 1.5 for com-
`plete information). Please ensure that IMMerge has been properly installed on your system.
`The installation procedure is described in Appendix A of the PolyWorks Reference Guide.
`
`This section describes each parameter in the IMMerge interface, and recommends values
`where appropriate.
`
`Figure 1.1 The IMMerge tab of the MAC.
`
`IMMerge Reference Guide Version 8.0
`
`1-1
`
`0004
`
`
`
`Using IMMerge
`
`Figure 1.2 Two scans overlap in this illustration. The maximum distance parameter
`permits the detection and the elimination of the overlap. The resulting sur-
`face would be situated somewhere between the two scans.
`
`1.1 Specifying required input parameters
`
`1.1.1 Specifying an IMAlign group directory name
`
`IMMerge computes a high-resolution polygonal mesh from a set of 3D images aligned by
`IMAlign. Therefore, you must first specify the path to an IMAlign group directory describ-
`ing a set of aligned 3D images in the IMAlign group text box of the IMMerge interface.
`Note that an adjacent Browse button is available for searching the directory structure.
`
`1.1.2 Setting the maximum distance between two overlapping surface areas
`
`
`
`In the modeling philosophy of PolyWorks, there must be a minimum amount of overlap be-
`tween images in a set of 3D images. For instance, IMAlign can only compute alignment
`parameters for surface areas measured by more than one 3D image. In IMAlign, a maxi-
`mum distance parameter defines an acceptable maximum distance between a 3D image
`point and another 3D image. The maximum distance parameter thus acts as a threshold for
`detecting overlaps in the set of 3D images.
`
`IMMerge has the same parameter, the Max. distance text box of the Meshing group box.
`The Max. distance defines a maximum acceptable 3D distance between two overlapping
`surface areas belonging to two distinct 3D images (see Figure 1.2). The Max. distance is
`used by IMMerge to detect overlaps in the set of 3D images. This detection is essential in
`order to reconstruct a non-redundant surface representation where each part of the mea-
`sured object is only described once. It is important to specify a Max. distance value that is
`sufficiently large to detect all actual surface overlaps. Max. distance should be set to at
`least 10 times the standard deviation of the 3D digitizer noise distribution. The Max. dis-
`tance value must be specified in the same units as the 3D images.
`
`Note that when IMMerge is accessed through PolyWorks’s MAC interface, the Max. dis-
`tance parameter reads a default value from the same parameter in IMAlign’s default con-
`figuration file.
`
`IMMerge Reference Guide Version 8.0
`
`1-2
`
`0005
`
`
`
`Using IMMerge
`
`Figure 1.3 The image on the left shows two overlapped alignment grids coming from
`different directions. Once IMMerge has been applied (image on the right),
`the density of the vertices in the mesh is nearly constant.
`
`1.1.3 Setting the surface sampling step
`
`In the surface models generated by IMMerge, the density of mesh vertices is nearly con-
`stant, as can be seen in Figure 1.3. The density is defined by the Surface sampling step
`text box of the Meshing group box, which defines the surface sampling step of the IM-
`Merge models. The step value must be specified in the same units as the 3D images.
`
`Note that when IMMerge is accessed through PolyWorks’ MAC interface, the Surface
`sampling step parameter displays the value last used in IMMerge. If you then load an
`IMAlign group in IMAlign, the parameter value will reset to 0. On saving the IMAlign
`group, IMAlign calculates the average value of the Interpolation step for each image file,
`and transfers the value to IMMerge. On returning to the IMMerge tab, this value will show
`in the Surface sampling step text box.
`
`1.1.4 Specifying the output model format
`
`Select the output polygonal format, which will be used to write the final output model, from
`the Format combo box of the Output model group box. See Figure 1.1 for the formats of-
`fered by IMMerge.
`
`1.2 Specifying optional input parameters
`
`1.2.1 Smoothing the generated high-resolution polygonal mesh
`
`IMMerge offers the possibility of smoothing the generated high-resolution polygonal mesh
`to reduce the impact of digitizing noise. IMMerge’s smoothing algorithm can preserve edg-
`es and regions of high curvature.
`
`IMMerge Reference Guide Version 8.0
`
`1-3
`
`0006
`
`
`
`Using IMMerge
`
`Surface sampling step
`
`Smoothing
`Radius
`
`Figure 1.4 Illustration of the width of a smoothing radius with a value of roughly two
`times the surface sampling step.
`
`Two items control the smoothing algorithm. The Radius text box of the Smoothing group
`box lets you specify a 3D distance (a sphere) around a vertex for the smoothing filter (see
`Figure 1.4). A larger radius increases the smoothing effects, and allows more noise reduc-
`tion.
`
`The Tolerance text box of the Smoothing group box lets you define a maximum deviation
`between a smoothed vertex and its original position (see Figure 1.5). The tolerance should
`be set to a value large enough to filter the data in smooth regions, but small enough to guar-
`antee the preservation of edges. For example, if a digitizer’s standard deviation is 50 mi-
`crons, a tolerance of three standard deviations (150 microns) would be appropriate to
`guarantee a good preservation of the edges.
`
`Smoothing is only performed if a radius larger than zero is specified. Note that smoothing
`is applied prior to applying IMMerge’s optional polygon reduction process.
`
`1.2.2 Specifying a tolerance for reducing the number of triangles
`
`IMMerge offers a tolerance parameter that allows you to reduce the generated high-resolu-
`tion polygonal mesh. For very large models, such as full scale vehicles and aerospace parts,
`the use of a small surface sampling step and a merging tolerance results in accurate edges
`and features, while maintaining a reasonable number of triangles in the generated polygo-
`nal models. The Tolerance text box of the Reduction group box lets you specify a toler-
`ance. A value of 1/5 the digitizer’s standard deviation is recommended. IMMerge will
`reduce the number of triangles, but not lose definition (see Figure 1.6).
`
`IMMerge Reference Guide Version 8.0
`
`1-4
`
`0007
`
`
`
`Smoothing radius
`
`A
`
`Using IMMerge
`
`Smoothing radius
`
`Smoothing
`Tolerance
`
`A
`
`Before smoothing A
`
`After smoothing A
`
`Figure 1.5 This is a side view of the smoothing process. The point A at the center of
`the smoothing radius will move towards the average position of the other
`points within the radius, but will never move by more than the user-spec-
`ified smoothing tolerance distance.
`
`1.2.3 Controlling the subdivision of the merging job
`
`Merging large sets of 3D images requires a lot of system memory. To reduce the amount of
`RAM needed to perform the merging task, InnovMetric uses a strategy that subdivides the
`global merging job into smaller, more manageable local merging jobs.
`
`By default, IMMerge estimates the number of triangles that will be produced and subdi-
`vides the global merging job until each local merging job creates less than 500,000 triangles
`for every 128 MBytes of RAM. For example, if a system has 512 MBytes of RAM, subdi-
`vision would occur until each local triangulated model contains less than 2,000,000 trian-
`gles.
`
`IMMerge provides two parameters to change this default behavior. You can directly specify
`in the Subdivision group box the maximum number of triangles that should be generated
`by each merging job. First choose # Triangles per Job in the top combo box, and then spec-
`ify a value in the bottom combo box, or accept the Default value.
`
`You can also directly specify in the Subdivision group box the number of merging jobs.
`First choose # Merging Jobs in the top combo box, and then specify a value in the bottom
`combo box, or accept the Default value. If IMMerge runs out of memory using the default
`subdivision strategy, it is a good idea to restart IMMerge and double the number of merging
`jobs.
`
`When the IMMerge Verbose check box is set, the comment “The data will be
`merged using N iterations” reports the number of merging jobs. This comment
`is printed out early in the merging process.
`
`IMMerge Reference Guide Version 8.0
`
`1-5
`
`0008
`
`
`
`Initial dense mesh
`
`Final reduced mesh
`
`Using IMMerge
`
`c u r v e d e d g e
`
`e
`
`g
`
`d
`
`d e
`
`e
`
`v
`
`r
`
`u
`
`c
`
`Figure 1.6 The polygon reduction algorithm is applied to an initial dense mesh. Note
`that the triangles that compose the curved edges of the piece are pre-
`served, while the number of triangles is reduced in the flat areas.
`
`1.2.4 Specifying the output model filename
`
`By default, the output model is written inside the IMAlign group directory, in a file called
`model.fmt, where fmt is the specified output model format. To change this behavior,
`specify a path for the output model in the Name text box of the Output model group box,
`or press the adjacent Browse button to specify a file name.
`
`1.2.5 Setting memory management parameters
`
`A memory manager has been implemented in IMMerge which surveys IMMerge and inter-
`cepts memory allocation commands. Only the memory manager is allowed to request mem-
`ory space from the system. The memory is obtained from the system in blocks of the same
`size. The memory manager then makes this memory space available for internal IMMerge
`routines. By default, the size of memory blocks is set to 40 MBytes. You can modify this
`default value by specifying an integer value, that represents the block size in MBytes, in the
`
`IMMerge Reference Guide Version 8.0
`
`1-6
`
`0009
`
`
`
`Using IMMerge
`
`Block size text box of the Memory management group box. The recommended value is
`20% of RAM on computers with 1 CPU, and 10% of RAM on computers with 2 CPUs.
`
`The memory manager also has the ability to recuperate memory space that has been freed
`by IMMerge routines. Once the limit of the last memory block has been reached, the mem-
`ory manager checks the amount of memory space that has been previously freed. If that
`amount is larger than a given threshold, the manager then compacts the memory blocks by
`sequentially moving the pointers, and placing them side by side starting from the first
`block. Otherwise, a new block is obtained from the system. This threshold is important
`since it avoids compacting memory when there is not enough memory space left. By de-
`fault, the threshold is set to 4 MBytes. This default value can be modified by specifying an
`integer value, that represents a compaction threshold in MBytes, in the Compaction text
`box of the Memory management group box.
`
`1.2.6 Miscellaneous
`
`When the Verbose check box of the IMMerge tab interface is set, IMMerge reports the
`progress of the meshing process in the Output window of the MAC. After the initialization
`phase, PolyWorks prints one line per merging job, and provides real-time status information
`for each merging job, possibly distributed over several processors. A progress bar, designed
`to be accurate on large jobs, provides a quick visualization of the meshing time.
`
`1.3 Merging color 3D images
`
`If all 3D images contained in the input group directory are color 3D images, IMMerge au-
`tomatically generates an output model with color per vertex information. The output model
`then consists of a surface triangulation with RGB colors defined for each triangulation ver-
`tex. Please note that some polygonal formats do not support the specification of vertex col-
`ors. InnovMetric’s POL format, the Inventor format, and the VRML format all support the
`generation of polygonal models with color per vertex information.
`
`1.4 The merging phase illustrated
`
`This section describes how parameters would be set for a typical merging job, and provides
`illustrations of a real model at each stage of the merging process.
`
`1.4.1 Specifying the merge parameters
`
`The progression of a typical merging job involves first specifying settings in the IMMerge
`interface (see Figure 1.7):
`
`IMMerge Reference Guide Version 8.0
`
`1-7
`
`0010
`
`
`
`Using IMMerge
`
` at least 10 σ
`
`digitizer
`resolution
`
` σ/5
`
` 2 or 3 x the surface
` sampling step
`
` 3 σ
`
`Figure 1.7 IMMerge’s parameters, and ways to calculate their recommended values.
`
`(cid:122) In the Meshing group box, set the Max. distance to at least 10 σ, and the Surface
`sampling step to the digitizer resolution.
`
`(cid:122) In the Smoothing group box, set the Radius to 2 to 3 times the surface sampling
`step, and the Tolerance to 3σ.
`
`(cid:122) In the Reduction group box, set the Tolerance to σ/5.
`
`Then, press the Start button to invoke the merging operation.
`
`1.4.2 Visualizing the merging process
`
`The images shown in Figure 1.8 illustrate the results of the three possible merge processes:
`
`(cid:122) The best-fit meshing of the digitized points, shown in step 1.
`
`(cid:122) The smoothing of the mesh, shown in step 2.
`
`(cid:122) The optional reduction of the number of triangles, shown in step 3.
`
`1.5 IMMerge command-line parameters
`
`IMMerge is also a command-line program. A general call to IMMerge has the following
`format:
`
`immerge
`
`group_directory_name
`
`-fo output_format [-o output_model]
`
`-snt threshold
`
`IMMerge Reference Guide Version 8.0
`
`1-8
`
`0011
`
`
`
`flat drawing type
`
`flat + wireframe drawing type
`
`Using IMMerge
`
`1. The best-fit meshing of the digitized points using the spatial neighborhood threshold
`and the surface sampling step parameters. The visual appearance of the model to the left
`is somewhat rugged due to noise in the digitizer data.
`
`2. The meshed is smoothed using the smoothing radius and the smoothing tolerance pa-
`rameters, eliminating the noise. Notice that while the visual appearance has become
`more smooth in the image to the left, the triangle distribution (to the right) has not
`changed.
`
`3. The number of triangles is reduced using the tolerance parameter. Notice that while the
`triangle distribution has changed in the image to the right from the one just above it, the
`visual appearance in the respective images to the left has not. This is due to the use of a
`very small reduction tolerance that introduces minute differences between the original
`and the reduced meshes.
`
`Figure 1.8 The merging phase illustrated.
`
`IMMerge Reference Guide Version 8.0
`
`1-9
`
`0012
`
`
`
`Using IMMerge
`
`-step sampling_step
`
`[-smoothrad radius]
`
`[-smoothtol tolerance]
`
`[-tol tolerance]
`
`[-ntpm nb_triangles_per_merging]
`
`[-memblock MBytes] [-memcompact MBytes]
`
`[-verbose]
`
`immerge
`
`group_directory_name
`
`-fo output_format [-o output_model]
`
`-snt threshold
`
`-step sampling_step
`
`[-smoothrad radius]
`
`[-smoothtol tolerance]
`
`[-tol tolerance]
`
`[-subdiv nb_merging_jobs]
`
`[-memblock MBytes] [-memcompact MBytes]
`
`[-verbose]
`
`Note that the optional -ntpm and -subdiv parameters are mutually exclusive.
`
`Indicated below is the correspondence between the IMMerge tab interface items and the
`IMMerge command-line parameters:
`
`Interface items
`
`Command-line parameters
`
`(cid:122) IMAlign group
`
`group_directory_name
`
`(cid:122) Meshing Max. distance
`
`(cid:122) Meshing Surface sampling step
`
`-snt
`
`-step
`
`IMMerge Reference Guide Version 8.0
`
`1-10
`
`0013
`
`
`
`Using IMMerge
`
`(cid:122) Reduction Tolerance
`
`-tol
`
`(cid:122) Smoothing Radius
`
`(cid:122) Smoothing Tolerance
`
`(cid:122) Output model Name
`
`(cid:122) Output model Format
`
`-smoothrad
`
`-smoothtol
`
`-o
`
`-fo
`
`(cid:122) Memory management Block size
`
`-memblock
`
`(cid:122) Memory management Compaction
`
`-memcompact
`
`(cid:122) Subdivision # Triangles per Job
`
`-ntpm
`
`(cid:122) Subdivision # Merging Jobs
`
`(cid:122) Verbose
`
`-subdiv
`
`-verbose
`
`IMMerge Reference Guide Version 8.0
`
`1-11
`
`0014
`
`