throbber
IMMerge™
`
`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-01139
`
`

`

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

This document is available on Docket Alarm but you must sign up to view it.


Or .

Accessing this document will incur an additional charge of $.

After purchase, you can access this document again without charge.

Accept $ Charge
throbber

Still Working On It

This document is taking longer than usual to download. This can happen if we need to contact the court directly to obtain the document and their servers are running slowly.

Give it another minute or two to complete, and then try the refresh button.

throbber

A few More Minutes ... Still Working

It can take up to 5 minutes for us to download a document if the court servers are running slowly.

Thank you for your continued patience.

This document could not be displayed.

We could not find this document within its docket. Please go back to the docket page and check the link. If that does not work, go back to the docket and refresh it to pull the newest information.

Your account does not support viewing this document.

You need a Paid Account to view this document. Click here to change your account type.

Your account does not support viewing this document.

Set your membership status to view this document.

With a Docket Alarm membership, you'll get a whole lot more, including:

  • Up-to-date information for this case.
  • Email alerts whenever there is an update.
  • Full text search for other cases.
  • Get email alerts whenever a new case matches your search.

Become a Member

One Moment Please

The filing “” is large (MB) and is being downloaded.

Please refresh this page in a few minutes to see if the filing has been downloaded. The filing will also be emailed to you when the download completes.

Your document is on its way!

If you do not receive the document in five minutes, contact support at support@docketalarm.com.

Sealed Document

We are unable to display this document, it may be under a court ordered seal.

If you have proper credentials to access the file, you may proceed directly to the court's system using your government issued username and password.


Access Government Site

We are redirecting you
to a mobile optimized page.





Document Unreadable or Corrupt

Refresh this Document
Go to the Docket

We are unable to display this document.

Refresh this Document
Go to the Docket